Remove honeynode source code 58/89858/9
authormanuedelf <emmanuelle.delfour@gmail.com>
Mon, 18 May 2020 10:21:08 +0000 (12:21 +0200)
committerGuillaume Lambert <guillaume.lambert@orange.com>
Tue, 19 May 2020 13:19:20 +0000 (13:19 +0000)
- remove honeynode source code under tests/honeynode/1.2.1
- remove honeynode source code under tests/honeynode/2.2.1
- remove buildHoneynode.sh script under tests directory
- add install_honeynode.sh script under tests directory
- update tox.ini
- update tests/transportpce_tests/1.2.1/test_utils.py
  with new honeynode path
- update tests/transportpce_tests/2.2.1/test_utils.py
  with new honeynode path

TODO: update tests/Xtesting/DockerSims/Dockerfile.
      It will be done in another change.

JIRA: TRNSPRTPCE-238
Change-Id: I87282c61db9bd57e08941095e2dd615c1b7b89b5

678 files changed:
.gitignore
tests/buildHoneynode.sh [deleted file]
tests/honeynode/1.2.1/.gitkeep [new file with mode: 0644]
tests/honeynode/1.2.1/README [deleted file]
tests/honeynode/1.2.1/honeynode-common/asciidoc/Readme.adoc [deleted file]
tests/honeynode/1.2.1/honeynode-common/pom.xml [deleted file]
tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/AbstractDataObjectConverter.java [deleted file]
tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/JSONDataObjectConverter.java [deleted file]
tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/XMLDataObjectConverter.java [deleted file]
tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/api/DataObjectConverter.java [deleted file]
tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/test/common/DataStoreContext.java [deleted file]
tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/test/common/DataStoreContextImpl.java [deleted file]
tests/honeynode/1.2.1/honeynode-distribution/asciidoc/Readme.adoc [deleted file]
tests/honeynode/1.2.1/honeynode-distribution/pom.xml [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/asciidoc/Readme.adoc [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/pom.xml [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/alarms/rev180116/AlarmStateTypeIdBuilder.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/platform/rev180130/PlatformComponentPropertiesConfigValueBuilder.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/platform/rev180130/PlatformComponentStateTypeBuilder.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev161014/PmDataTypeBuilder.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/HostBuilder.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressBuilder.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressNoZoneBuilder.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpPrefixBuilder.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/netconf/monitoring/rev101004/netconf/state/schemas/SchemaLocationBuilder.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/iana-afn-safi@2013-07-04.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/iana-if-type@2017-01-19.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-inet-types@2013-07-15.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-interfaces@2014-05-08.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-monitoring-extension@2013-12-10.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-monitoring@2010-10-04.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-notifications@2012-02-06.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf@2011-06-01.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-network-topology@2015-06-08.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-network@2015-06-08.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-yang-types@2013-07-15.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/notifications@2008-07-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-common-types@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-common-types@2017-09-29.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-device@2017-02-06.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-equipment-states-types@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-ethernet-interfaces@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-interfaces@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-layerRate@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-lldp@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-maintenance-loopback@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-maintenance-testsignal@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-maintenance@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-optical-channel-interfaces@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-optical-multiplex-interfaces@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-optical-transport-interfaces@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-otn-odu-interfaces@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-otn-otu-interfaces@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-physical-types@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-pm-types@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-pm@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-port-types@2017-09-29.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-resource-types@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-resource@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-swdl@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-user-mgmt@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-wavelength-map@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-alarm-types@2018-01-16.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-alarms@2018-01-16.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-extensions@2017-04-11.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-if-ethernet@2018-01-05.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-interfaces@2018-01-05.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-linecard@2017-08-03.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-port@2018-01-20.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-transceiver@2018-01-22.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-types@2018-01-16.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform@2018-01-30.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-terminal-device@2017-07-08.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-transport-line-common@2017-09-08.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-transport-types@2017-08-16.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-types@2018-01-16.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-yang-types@2017-07-30.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/asciidoc/Readme.adoc [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/pom.xml [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceBindingDataBrokerProvider.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceModule.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceNotificationModule.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceReaderModule.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceRpcModule.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceWriterModule.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/DeviceConfiguration.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/DeviceConfigurationModule.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/NetconfConfiguration.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/NetconfConfigurationModule.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcPlatformConfiguration.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcPlatformConfigurationModule.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcTerminalDeviceConfiguration.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcTerminalDeviceConfigurationModule.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/PmConfiguration.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/PmConfigurationModule.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/notifications/DeviceNotificationProducer.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/DeviceReaderFactory.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/DummyMonitoringService.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/NetconfStateReaderFactory.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/OcPlatformReaderFactory.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/OcTerminalDeviceReaderFactory.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/PmReaderFactory.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/rpcs/ConnectionPortTrailService.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultDeviceFactory.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultNetconfFactory.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultOcPlatformFactory.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultOcTerminalDeviceFactory.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultPmListFactory.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/ExtractXMLTag.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/ComponentsChangeListener.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/DeviceChangeListener.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/DeviceWriterFactory.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/OcPlatformWriterFactory.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/OcTerminalDeviceWriterFactory.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/TerminalDeviceChangeListener.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/NamespaceTrimmer.xslt [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/OperToConfig.xsl [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/config.xsl [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/ocplatformOperToConfig.xsl [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/octerminaldeviceOperToConfig.xsl [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/iana-afn-safi@2013-07-04.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/iana-if-type@2017-01-19.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-inet-types@2013-07-15.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-interfaces@2014-05-08.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-monitoring-extension@2013-12-10.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-monitoring@2010-10-04.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-notifications@2012-02-06.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf@2011-06-01.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-network-topology@2015-06-08.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-network@2015-06-08.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-yang-types@2013-07-15.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/notifications@2008-07-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-common-types@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-common-types@2017-09-29.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-device@2017-02-06.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-equipment-states-types@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-ethernet-interfaces@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-interfaces@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-layerRate@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-lldp@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-maintenance-loopback@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-maintenance-testsignal@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-maintenance@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-optical-channel-interfaces@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-optical-multiplex-interfaces@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-optical-transport-interfaces@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-otn-odu-interfaces@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-otn-otu-interfaces@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-physical-types@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-pm-types@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-pm@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-port-types@2017-09-29.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-resource-types@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-resource@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-swdl@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-user-mgmt@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-wavelength-map@2016-10-14.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-alarm-types@2018-01-16.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-alarms@2018-01-16.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-extensions@2017-04-11.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-if-ethernet@2018-01-05.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-interfaces@2018-01-05.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-linecard@2017-08-03.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-port@2018-01-20.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-transceiver@2018-01-22.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-types@2018-01-16.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform@2018-01-30.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-terminal-device@2017-07-08.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-transport-line-common@2017-09-08.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-transport-types@2017-08-16.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-types@2018-01-16.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-yang-types@2017-07-30.yang [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/CreateDeviceFromXMLFileTest.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/CreatePmListFromXMLFileTest.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/DeviceOperToConfig.java [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA-cpm.xml [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA-full.xml [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA.xml [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC-cpm.xml [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC-full.xml [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC.xml [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRA-OCbidouille.xml [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRA.xml [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRC.xml [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-psi2t-platform-terminal-device.xml [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/psi-2t-operational-data.xml [deleted file]
tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/result.xml [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/asciidoc/Readme.adoc [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/pom.xml [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/InitializationException.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActivationConfig.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActivationModule.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActiveModuleProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActiveModules.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/cfgattrs/CfgAttrsModule.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/cfgattrs/HoneycombConfiguration.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/BindingDataBrokerProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ConfigAndOperationalPipelineModule.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DOMNotificationServiceProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DataStoreProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DataTreeProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombBindingDataBrokerProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMDataBrokerProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMRpcServiceProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombNotificationManagerProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/InmemoryDOMDataBrokerProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/LegacyBindingDataBrokerProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ModifiableDTDelegProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/PersistedConfigInitializerProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/PersistingDataTreeProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/RpcRegistryBuilderProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/RpcRegistryProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ShutdownHandlerProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/config/WriterRegistryProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/ContextPipelineModule.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/HoneycombContextDOMDataBrokerProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/ModifiableDTMgrProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/PersistedContextInitializerProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/RealtimeMappingContextProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/oper/ReadableDTDelegProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/oper/ReaderRegistryProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapterProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/LegacySerializerProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/ModuleInfoBackedCtxProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/ResourceLoader.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SchemaModule.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SchemaServiceProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SerializerProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangBindingProviderModule.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangModuleMappingIndex.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangModulesProvider.java [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/cert/honeycomb-keystore [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/WEB-INF/web.xml [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/activation.json [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/honeycomb.json [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/logback.xml [deleted file]
tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/honeycomb-tpce [deleted file]
tests/honeynode/1.2.1/minimal-distribution/asciidoc/Readme.adoc [deleted file]
tests/honeynode/1.2.1/minimal-distribution/pom.xml [deleted file]
tests/honeynode/1.2.1/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/pom.xml [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerDispatcherImpl.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSession.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionListener.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiator.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactory.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactoryBuilder.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/SessionIdProvider.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSession.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultNetconfOperation.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStartExi.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExi.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactory.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringService.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfImplActivator.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfMonitoringServiceImpl.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouter.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImpl.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationServiceFactoryTracker.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringService.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandler.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/main/resources/getConfig_candidate.xml [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/AdditionalHeaderParserTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ConcurrentClientsTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ExiEncodeDecodeTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/MessageParserTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfDispatcherImplTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionListenerTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSessionTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExiTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactoryTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringServiceTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfImplActivatorTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImplTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationServiceFactoryTrackerTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringServiceTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandlerTest.java [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/resources/getConfig_reply_unfiltered.xml [deleted file]
tests/honeynode/1.2.1/netconf-impl/src/test/resources/logback-test.xml [deleted file]
tests/honeynode/1.2.1/netconf/asciidoc/Readme.adoc [deleted file]
tests/honeynode/1.2.1/netconf/pom.xml [deleted file]
tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/HoneycombNotification2NetconfProvider.java [deleted file]
tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfBindingBrokerProvider.java [deleted file]
tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfConfigurationModule.java [deleted file]
tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMdsalMapperProvider.java [deleted file]
tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfModule.java [deleted file]
tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringMapperProvider.java [deleted file]
tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringReaderFactoryProvider.java [deleted file]
tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringServiceProvider.java [deleted file]
tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationMapperProvider.java [deleted file]
tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationsReaderFactoryProvider.java [deleted file]
tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfReadersModule.java [deleted file]
tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfServerDispatcherProvider.java [deleted file]
tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfSshServerProvider.java [deleted file]
tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfTcpServerProvider.java [deleted file]
tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NettyThreadGroupProvider.java [deleted file]
tests/honeynode/1.2.1/netconf/src/main/resources/honeycomb-minimal-resources/config/netconf-whitelist.xml [deleted file]
tests/honeynode/1.2.1/netconf/src/main/resources/honeycomb-minimal-resources/config/netconf.json [deleted file]
tests/honeynode/1.2.1/pom.xml [deleted file]
tests/honeynode/1.2.1/restconf/asciidoc/Readme.adoc [deleted file]
tests/honeynode/1.2.1/restconf/pom.xml [deleted file]
tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/BrokerFacadeProvider.java [deleted file]
tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/ControllerContextProvider.java [deleted file]
tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/HttpConnectorProvider.java [deleted file]
tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/HttpsConnectorProvider.java [deleted file]
tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/JettyServerProvider.java [deleted file]
tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/JettyServerStarter.java [deleted file]
tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfApplicationProvider.java [deleted file]
tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfConfiguration.java [deleted file]
tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfConfigurationModule.java [deleted file]
tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfModule.java [deleted file]
tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfProvider.java [deleted file]
tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfServiceProvider.java [deleted file]
tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/StatisticsRestconfServiceWrapperProvider.java [deleted file]
tests/honeynode/1.2.1/restconf/src/main/resources/honeycomb-minimal-resources/config/restconf-whitelist.xml [deleted file]
tests/honeynode/1.2.1/restconf/src/main/resources/honeycomb-minimal-resources/config/restconf.json [deleted file]
tests/honeynode/2.2.1/.gitkeep [new file with mode: 0644]
tests/honeynode/2.2.1/README [deleted file]
tests/honeynode/2.2.1/honeynode-common/asciidoc/Readme.adoc [deleted file]
tests/honeynode/2.2.1/honeynode-common/pom.xml [deleted file]
tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/AbstractDataObjectConverter.java [deleted file]
tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/JSONDataObjectConverter.java [deleted file]
tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/XMLDataObjectConverter.java [deleted file]
tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/api/DataObjectConverter.java [deleted file]
tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/test/common/DataStoreContext.java [deleted file]
tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/test/common/DataStoreContextImpl.java [deleted file]
tests/honeynode/2.2.1/honeynode-distribution/asciidoc/Readme.adoc [deleted file]
tests/honeynode/2.2.1/honeynode-distribution/pom.xml [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/asciidoc/Readme.adoc [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/pom.xml [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/alarms/rev180116/AlarmStateTypeIdBuilder.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/platform/rev180130/PlatformComponentPropertiesConfigValueBuilder.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/platform/rev180130/PlatformComponentStateTypeBuilder.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev171215/PmDataTypeBuilder.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/syslog/rev171215/syslog/selector/log/selector/selector/facility/log/facility/LogFacilityFacilityBuilder.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/HostBuilder.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressBuilder.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressNoZoneBuilder.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpPrefixBuilder.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/netconf/monitoring/rev101004/netconf/state/schemas/SchemaLocationBuilder.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/iana-afn-safi@2013-07-04.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/iana-if-type@2017-01-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-inet-types@2013-07-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-interfaces@2014-05-08.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-monitoring-extension@2013-12-10.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-monitoring@2010-10-04.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-notifications@2012-02-06.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf@2011-06-01.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-network-topology@2015-06-08.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-network@2015-06-08.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-yang-types@2013-07-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/notifications@2008-07-14.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-alarm@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-common-types@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-equipment-states-types@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-layerRate@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-maintenance@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-manifest-file@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-otn-common-types@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-pm-types@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-pm@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-port-types@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-probable-cause@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-resource-types@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-resource@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-switching-pool-types@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-tca@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-user-mgmt@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-database@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-de-operations@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-device@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-ethernet-interfaces@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-file-transfer@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-fwdl@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-interfaces@2017-06-26.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-lldp@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-maintenance-loopback@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-maintenance-testsignal@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-media-channel-interfaces@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-network-media-channel-interfaces@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-optical-channel-interfaces@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-optical-transport-interfaces@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-otn-common@2017-06-26.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-otn-odu-interfaces@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-otn-otu-interfaces@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-physical-types@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-pluggable-optics-holder-capability@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-port-capability@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-prot-otn-linear-aps@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-rstp@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-swdl@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-syslog@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-wavelength-map@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-alarm-types@2018-01-16.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-alarms@2018-01-16.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-extensions@2017-04-11.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-if-ethernet@2018-01-05.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-interfaces@2018-01-05.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-linecard@2017-08-03.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-port@2018-01-20.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-transceiver@2018-01-22.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-types@2018-01-16.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform@2018-01-30.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-terminal-device@2017-07-08.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-transport-line-common@2017-09-08.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-transport-types@2017-08-16.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-types@2018-01-16.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-yang-types@2017-07-30.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/asciidoc/Readme.adoc [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/pom.xml [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceBindingDataBrokerProvider.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceModule.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceNotificationModule.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceReaderModule.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceRpcModule.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceWriterModule.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/DeviceConfiguration.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/DeviceConfigurationModule.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/NetconfConfiguration.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/NetconfConfigurationModule.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcPlatformConfiguration.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcPlatformConfigurationModule.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcTerminalDeviceConfiguration.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcTerminalDeviceConfigurationModule.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/PmConfiguration.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/PmConfigurationModule.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/notifications/DeviceNotificationProducer.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/DeviceReaderFactory.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/DummyMonitoringService.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/NetconfStateReaderFactory.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/OcPlatformReaderFactory.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/OcTerminalDeviceReaderFactory.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/PmReaderFactory.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/rpcs/ConnectionPortTrailService.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultDeviceFactory.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultNetconfFactory.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultOcPlatformFactory.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultOcTerminalDeviceFactory.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultPmListFactory.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/ExtractXMLTag.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/ComponentsChangeListener.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/DeviceChangeListener.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/DeviceWriterFactory.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/OcPlatformWriterFactory.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/OcTerminalDeviceWriterFactory.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/TerminalDeviceChangeListener.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/NamespaceTrimmer.xslt [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/OperToConfig.xsl [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/config.xsl [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/ocplatformOperToConfig.xsl [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/octerminaldeviceOperToConfig.xsl [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/iana-afn-safi@2013-07-04.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/iana-if-type@2017-01-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-inet-types@2013-07-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-interfaces@2014-05-08.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-monitoring-extension@2013-12-10.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-monitoring@2010-10-04.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-notifications@2012-02-06.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf@2011-06-01.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-network-topology@2015-06-08.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-network@2015-06-08.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-yang-types@2013-07-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/notifications@2008-07-14.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-alarm@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-common-types@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-equipment-states-types@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-layerRate@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-maintenance@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-manifest-file@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-otn-common-types@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-pm-types@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-pm@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-port-types@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-probable-cause@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-resource-types@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-resource@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-switching-pool-types@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-tca@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-user-mgmt@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-database@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-de-operations@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-device@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-ethernet-interfaces@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-file-transfer@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-fwdl@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-interfaces@2017-06-26.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-lldp@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-maintenance-loopback@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-maintenance-testsignal@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-media-channel-interfaces@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-network-media-channel-interfaces@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-optical-channel-interfaces@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-optical-transport-interfaces@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-otn-common@2017-06-26.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-otn-odu-interfaces@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-otn-otu-interfaces@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-physical-types@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-pluggable-optics-holder-capability@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-port-capability@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-prot-otn-linear-aps@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-rstp@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-swdl@2018-10-19.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-syslog@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-wavelength-map@2017-12-15.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-alarm-types@2018-01-16.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-alarms@2018-01-16.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-extensions@2017-04-11.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-if-ethernet@2018-01-05.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-interfaces@2018-01-05.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-linecard@2017-08-03.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-port@2018-01-20.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-transceiver@2018-01-22.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-types@2018-01-16.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform@2018-01-30.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-terminal-device@2017-07-08.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-transport-line-common@2017-09-08.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-transport-types@2017-08-16.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-types@2018-01-16.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-yang-types@2017-07-30.yang [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/CreateDeviceFromXMLFileTest.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/CreatePmListFromXMLFileTest.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/DeviceOperToConfig.java [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA-cpm.xml [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA-full.xml [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA.xml [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC-cpm.xml [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC-full.xml [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC.xml [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRA-OCbidouille.xml [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRA.xml [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRC.xml [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-psi2t-platform-terminal-device.xml [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/psi-2t-operational-data.xml [deleted file]
tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/result.xml [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/asciidoc/Readme.adoc [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/pom.xml [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/InitializationException.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActivationConfig.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActivationModule.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActiveModuleProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActiveModules.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/cfgattrs/CfgAttrsModule.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/cfgattrs/HoneycombConfiguration.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/BindingDataBrokerProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ConfigAndOperationalPipelineModule.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DOMNotificationServiceProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DataStoreProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DataTreeProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombBindingDataBrokerProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMDataBrokerProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMRpcServiceProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombNotificationManagerProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/InmemoryDOMDataBrokerProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/LegacyBindingDataBrokerProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ModifiableDTDelegProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/PersistedConfigInitializerProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/PersistingDataTreeProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/RpcRegistryBuilderProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/RpcRegistryProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ShutdownHandlerProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/config/WriterRegistryProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/ContextPipelineModule.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/HoneycombContextDOMDataBrokerProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/ModifiableDTMgrProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/PersistedContextInitializerProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/RealtimeMappingContextProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/oper/ReadableDTDelegProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/oper/ReaderRegistryProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapterProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/LegacySerializerProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/ModuleInfoBackedCtxProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/ResourceLoader.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SchemaModule.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SchemaServiceProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SerializerProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangBindingProviderModule.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangModuleMappingIndex.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangModulesProvider.java [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/cert/honeycomb-keystore [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/WEB-INF/web.xml [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/activation.json [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/honeycomb.json [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/logback.xml [deleted file]
tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/honeycomb-tpce [deleted file]
tests/honeynode/2.2.1/minimal-distribution/asciidoc/Readme.adoc [deleted file]
tests/honeynode/2.2.1/minimal-distribution/pom.xml [deleted file]
tests/honeynode/2.2.1/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/pom.xml [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerDispatcherImpl.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSession.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionListener.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiator.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactory.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactoryBuilder.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/SessionIdProvider.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSession.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultNetconfOperation.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStartExi.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExi.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactory.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringService.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfImplActivator.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfMonitoringServiceImpl.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouter.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImpl.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationServiceFactoryTracker.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringService.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandler.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/main/resources/getConfig_candidate.xml [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/AdditionalHeaderParserTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ConcurrentClientsTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ExiEncodeDecodeTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/MessageParserTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfDispatcherImplTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionListenerTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSessionTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExiTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactoryTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringServiceTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfImplActivatorTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImplTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationServiceFactoryTrackerTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringServiceTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandlerTest.java [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/resources/getConfig_reply_unfiltered.xml [deleted file]
tests/honeynode/2.2.1/netconf-impl/src/test/resources/logback-test.xml [deleted file]
tests/honeynode/2.2.1/netconf/asciidoc/Readme.adoc [deleted file]
tests/honeynode/2.2.1/netconf/pom.xml [deleted file]
tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/HoneycombNotification2NetconfProvider.java [deleted file]
tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfBindingBrokerProvider.java [deleted file]
tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfConfigurationModule.java [deleted file]
tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMdsalMapperProvider.java [deleted file]
tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfModule.java [deleted file]
tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringMapperProvider.java [deleted file]
tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringReaderFactoryProvider.java [deleted file]
tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringServiceProvider.java [deleted file]
tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationMapperProvider.java [deleted file]
tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationsReaderFactoryProvider.java [deleted file]
tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfReadersModule.java [deleted file]
tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfServerDispatcherProvider.java [deleted file]
tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfSshServerProvider.java [deleted file]
tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfTcpServerProvider.java [deleted file]
tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NettyThreadGroupProvider.java [deleted file]
tests/honeynode/2.2.1/netconf/src/main/resources/honeycomb-minimal-resources/config/netconf-whitelist.xml [deleted file]
tests/honeynode/2.2.1/netconf/src/main/resources/honeycomb-minimal-resources/config/netconf.json [deleted file]
tests/honeynode/2.2.1/pom.xml [deleted file]
tests/honeynode/2.2.1/restconf/asciidoc/Readme.adoc [deleted file]
tests/honeynode/2.2.1/restconf/pom.xml [deleted file]
tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/BrokerFacadeProvider.java [deleted file]
tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/ControllerContextProvider.java [deleted file]
tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/HttpConnectorProvider.java [deleted file]
tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/HttpsConnectorProvider.java [deleted file]
tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/JettyServerProvider.java [deleted file]
tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/JettyServerStarter.java [deleted file]
tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfApplicationProvider.java [deleted file]
tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfConfiguration.java [deleted file]
tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfConfigurationModule.java [deleted file]
tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfModule.java [deleted file]
tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfProvider.java [deleted file]
tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfServiceProvider.java [deleted file]
tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/StatisticsRestconfServiceWrapperProvider.java [deleted file]
tests/honeynode/2.2.1/restconf/src/main/resources/honeycomb-minimal-resources/config/restconf-whitelist.xml [deleted file]
tests/honeynode/2.2.1/restconf/src/main/resources/honeycomb-minimal-resources/config/restconf.json [deleted file]
tests/honeynode/fd_io_honeycomb_settings.xml [deleted file]
tests/install_honeynode.sh [new file with mode: 0755]
tests/transportpce_tests/1.2.1/test_utils.py
tests/transportpce_tests/2.2.1/test_utils.py
tox.ini

index 688e2cd8ba0c0194f3c312d48193b2321bfe9873..4b372bd4bf2c8e5c2f08bcbd465dd84107dc3e97 100644 (file)
@@ -37,3 +37,4 @@ api/src/main/java/org/opendaylight/yang/gen/v1/gnpy/path/rev190502/AccumulatedMe
 # Sphinx documentation
 .tox/
 docs/_build/
+honeynode-simulator/
diff --git a/tests/buildHoneynode.sh b/tests/buildHoneynode.sh
deleted file mode 100755 (executable)
index d91bd9e..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-ORDMVERSION=${1:-1.2.1}
-
-set -e
-. $(dirname $0)/reflectwarn.sh
-cd honeynode/$ORDMVERSION
-mvn clean install -DskipTests -Dcheckstyle.skip -Dmaven.javadoc.skip=true -s ../fd_io_honeycomb_settings.xml -q -V
-chmod +x ./honeynode-distribution/target/honeynode-distribution-1.19.04-hc/honeynode-distribution-1.19.04/honeycomb-tpce
-exit $?
diff --git a/tests/honeynode/1.2.1/.gitkeep b/tests/honeynode/1.2.1/.gitkeep
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/honeynode/1.2.1/README b/tests/honeynode/1.2.1/README
deleted file mode 100644 (file)
index 90241eb..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-= This is a Honeycomb distribution
-
-Built from: io.fd.honeycomb.transportpce/honeynode-distribution
-Version: 1.19.04
-
-https://wiki.fd.io/view/Honeycomb
-
-== Structure
-(under folder honeynode-distribution/target/honeynode-distribution-1.19.04-hc/honeynode-distribution-1.19.04)
-
-Structure of the distribution:
-
-=== Config
-Folder config contains any configuration that's exposed by Honeycomb and its plugins
-
-=== Cert
-Keystore/Truststore for Restconf's HTTPS endpoint
-
-=== Modules
-Folder modules contains text files with list of modules to be installed into Honeycomb.
-Those modules bring up Honeycomb's infrastructure as well as modules.
-
-=== Shell scripts
-honeycomb - Start Honeycomb
-honeycomb-debug - Start Honeycomb with JVM remote debug capabilities
-honeycomb-start - Start Honeycomb in background
-honeycomb-kill - Kill all running Honeycomb instances
-honeycomb-tpce - Start Honeycomb with port and initial config files options
-Eg : honeycomb-tpce 17830 sample-config-ROADM.xml
-
diff --git a/tests/honeynode/1.2.1/honeynode-common/asciidoc/Readme.adoc b/tests/honeynode/1.2.1/honeynode-common/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index f8b7862..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-= honeynode-common
-
-Overview of honeynode-common
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-common/pom.xml b/tests/honeynode/1.2.1/honeynode-common/pom.xml
deleted file mode 100644 (file)
index d783af8..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (c) 2018 Orange and others. Licensed under the Apache License,
-    Version 2.0 (the "License"); You may not use this file except in compliance
-    with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
-    OR CONDITIONS OF ANY KIND, either express or implied. See the License for
-    the specific language governing permissions and limitations under the License. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>io.fd.honeycomb.common</groupId>
-        <artifactId>impl-parent</artifactId>
-        <version>1.19.04</version>
-    </parent>
-    <groupId>io.fd.honeycomb.transportpce</groupId>
-    <artifactId>honeynode-common</artifactId>
-    <packaging>bundle</packaging>
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <java.version>11</java.version>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-    </properties>
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.opendaylight.mdsal</groupId>
-                <artifactId>mdsal-artifacts</artifactId>
-                <version>3.0.6</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yangtools-artifacts</artifactId>
-                <version>2.0.13</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-    <dependencies>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-broker-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-data-codec-xml</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-data-codec-gson</artifactId>
-        </dependency>
-    </dependencies>
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.8.0</version>
-                    <configuration>
-                        <source>${java.version}</source>
-                        <target>${java.version}</target>
-                    </configuration>
-                </plugin>
-                <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.apache.maven.plugins
-                                        </groupId>
-                                        <artifactId>
-                                            maven-checkstyle-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [3.0.0,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.codehaus.gmavenplus
-                                        </groupId>
-                                        <artifactId>
-                                            gmavenplus-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [1.6.2,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.apache.maven.plugins
-                                        </groupId>
-                                        <artifactId>
-                                            maven-dependency-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [2.10,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>
-                                                copy-dependencies
-                                            </goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
diff --git a/tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/AbstractDataObjectConverter.java b/tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/AbstractDataObjectConverter.java
deleted file mode 100644 (file)
index 4591141..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2018 AT&T and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.binding.converter;
-
-import com.google.common.base.Preconditions;
-import io.fd.honeycomb.transportpce.binding.converter.api.DataObjectConverter;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Optional;
-import javax.annotation.Nonnull;
-import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
-import org.opendaylight.yangtools.yang.binding.DataContainer;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.Notification;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Converts XML and {@link DataObject} vice versa.
- *
- */
-public abstract class AbstractDataObjectConverter implements DataObjectConverter {
-
-    private static final Logger LOG = LoggerFactory.getLogger(AbstractDataObjectConverter.class);
-
-    private final SchemaContext schemaContext;
-    private final BindingNormalizedNodeSerializer codecRegistry;
-
-    /**
-     * This is the default constructor, which should be used.
-     *
-     * @param schemaContext schema context for converter
-     * @param codecRegistry codec registry used for converting
-     *
-     */
-    protected AbstractDataObjectConverter(SchemaContext schemaContext, BindingNormalizedNodeSerializer codecRegistry) {
-        this.schemaContext = schemaContext;
-        this.codecRegistry = codecRegistry;
-    }
-
-    public SchemaContext getSchemaContext() {
-        return schemaContext;
-    }
-
-    public BindingNormalizedNodeSerializer getCodecRegistry() {
-        return codecRegistry;
-    }
-
-    /**
-     * Transforms the given input {@link NormalizedNode} into the given
-     * {@link DataObject}.
-     *
-     * @param normalizedNode normalized node you want to convert
-     * @param rootNode {@link QName} of converted normalized node root
-     *
-     * <p>
-     * The input object should be {@link ContainerNode}
-     * </p>
-     */
-    @Override
-    @SuppressWarnings("unchecked")
-    public <T extends DataObject> Optional<T> getDataObject(
-            @Nonnull NormalizedNode<?, ?> normalizedNode,
-            @Nonnull QName rootNode) {
-        Preconditions.checkNotNull(normalizedNode);
-        if (normalizedNode instanceof ContainerNode) {
-            YangInstanceIdentifier.PathArgument directChildIdentifier =
-                    YangInstanceIdentifier.of(rootNode).getLastPathArgument();
-            Optional<NormalizedNode<?, ?>> directChild =
-                    NormalizedNodes.getDirectChild(normalizedNode, directChildIdentifier);
-            if (!directChild.isPresent()) {
-                throw new IllegalStateException(String.format("Could not get the direct child of %s", rootNode));
-            }
-            normalizedNode = directChild.get();
-        }
-        YangInstanceIdentifier rootNodeYangInstanceIdentifier = YangInstanceIdentifier.of(rootNode);
-
-        Map.Entry<?, ?> bindingNodeEntry =
-                codecRegistry.fromNormalizedNode(rootNodeYangInstanceIdentifier, normalizedNode);
-        if (bindingNodeEntry == null) {
-            return Optional.empty();
-        }
-        return Optional.ofNullable((T) bindingNodeEntry.getValue());
-    }
-
-    @Override
-    @SuppressWarnings("unchecked")
-    public <T extends DataObject> Optional<T> getDataObjectFromRpc(
-            @Nonnull NormalizedNode<?, ?> normalizedNode,
-            @Nonnull SchemaPath rpcSchemaPath) {
-
-        if (! (normalizedNode instanceof ContainerNode)) {
-            LOG.error("converting normalized node is not ContainerNode. It's actual type is {}",
-                    normalizedNode.getClass().getSimpleName());
-            return Optional.empty();
-        }
-        T rpcDataObject = (T) codecRegistry.fromNormalizedNodeRpcData(rpcSchemaPath, (ContainerNode) normalizedNode);
-        return Optional.ofNullable(rpcDataObject);
-    }
-
-    @Override
-    public <T extends DataObject> Optional<NormalizedNode<?, ?>> toNormalizedNodes(@Nonnull T object,
-            Class<T> dataObjectClass) {
-        Entry<YangInstanceIdentifier, NormalizedNode<?, ?>> normalizedNode =
-                codecRegistry.toNormalizedNode(InstanceIdentifier.create(dataObjectClass), object);
-        return Optional.ofNullable(normalizedNode.getValue());
-    }
-
-    @Override
-    public <T extends DataObject> ConvertType<T> dataContainer() {
-        return (object, objectClass) -> {
-            NormalizedNode<?, ?> value =
-                    getCodecRegistry().toNormalizedNode(InstanceIdentifier.create(objectClass), object).getValue();
-            return Optional.ofNullable(value);
-        };
-    }
-
-    @Override
-    public <T extends DataContainer> ConvertType<T> rpcData() {
-        return (object, objectClass) -> {
-            ContainerNode normalizedNodeRpcData = getCodecRegistry().toNormalizedNodeRpcData(object);
-            return Optional.ofNullable(normalizedNodeRpcData);
-        };
-    }
-
-    @Override
-    public <T extends Notification> ConvertType<T> notification() {
-        return (object, objectClass) -> {
-            ContainerNode normalizedNodeNotification = getCodecRegistry().toNormalizedNodeNotification(object);
-            return Optional.ofNullable(normalizedNodeNotification);
-        };
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/JSONDataObjectConverter.java b/tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/JSONDataObjectConverter.java
deleted file mode 100644 (file)
index 9444613..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 2018 AT&T and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.binding.converter;
-
-import com.google.gson.stream.JsonReader;
-import com.google.gson.stream.JsonWriter;
-
-import io.fd.honeycomb.transportpce.binding.converter.api.DataObjectConverter;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.Optional;
-
-import javax.annotation.Nonnull;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
-import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactory;
-import org.opendaylight.yangtools.yang.data.codec.gson.JSONNormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class JSONDataObjectConverter extends AbstractDataObjectConverter {
-
-    private static final Logger LOG = LoggerFactory.getLogger(JSONDataObjectConverter.class);
-
-    private JSONDataObjectConverter(SchemaContext schemaContext, BindingNormalizedNodeCodecRegistry codecRegistry) {
-        super(schemaContext, codecRegistry);
-    }
-
-    /**
-     * extracts codec and schema context (?).
-     *
-     * @param dataStoreContextUtil datastore context util used to extract codec and schema context
-     * @return {@link AbstractDataObjectConverter}
-     */
-    public static DataObjectConverter createWithDataStoreUtil(@Nonnull DataStoreContext dataStoreContextUtil) {
-        return new JSONDataObjectConverter(dataStoreContextUtil.getSchemaContext(),
-                dataStoreContextUtil.getBindingToNormalizedNodeCodec());
-    }
-
-    /**
-     * extracts codec and schema context (?).
-     *
-     * @param schemaContext schema context for converter
-     * @param codecRegistry codec registry used for converting
-     * @return converter
-     */
-    public static DataObjectConverter createWithSchemaContext(@Nonnull SchemaContext schemaContext,
-            @Nonnull BindingNormalizedNodeCodecRegistry codecRegistry) {
-        return new JSONDataObjectConverter(schemaContext, codecRegistry);
-    }
-
-    /**
-     * Transforms the JSON input stream into normalized nodes.
-     *
-     * @param inputStream of the given JSON
-     * @return {@link Optional} instance of {@link NormalizedNode}.
-     */
-    @Override
-    public Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull InputStream inputStream) {
-        try {
-            JsonReader reader = new JsonReader(new InputStreamReader(inputStream, "UTF-8"));
-            return parseInputJSON(reader);
-        } catch (IOException e) {
-            LOG.warn(e.getMessage(), e);
-            return Optional.empty();
-        }
-    }
-
-    @Override
-    public Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull Reader inputReader, SchemaNode parentSchema) {
-        throw new UnsupportedOperationException("Not Implemented yet");
-    }
-
-    @Override
-    public Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull Reader inputReader) {
-        JsonReader reader = new JsonReader(inputReader);
-        return parseInputJSON(reader);
-    }
-
-    @Override
-    public <T extends DataObject> Writer writerFromDataObject(@Nonnull DataObject object, Class<T> dataObjectClass,
-            ConvertType<T> convertType) {
-        Writer writer = new StringWriter();
-        JsonWriter jsonWriter = new JsonWriter(writer);
-        JSONCodecFactory jsonCodecFactory = JSONCodecFactory.createLazy(getSchemaContext());
-        NormalizedNodeStreamWriter create =
-                JSONNormalizedNodeStreamWriter.createExclusiveWriter(jsonCodecFactory, null, null, jsonWriter);
-
-        try (NormalizedNodeWriter normalizedNodeWriter = NormalizedNodeWriter.forStreamWriter(create);) {
-            normalizedNodeWriter
-                    .write(convertType.toNormalizedNodes(dataObjectClass.cast(object), dataObjectClass).get());
-        } catch (IOException ioe) {
-            throw new IllegalStateException(ioe);
-        }
-        return writer;
-    }
-
-    @Override
-    public <T extends DataObject> Writer writerFromRpcDataObject(@Nonnull DataObject object, Class<T> dataObjectClass,
-            ConvertType<T> convertType, QName rpcOutputQName, String rpcName) {
-        return null;
-    }
-
-    /**
-     * Parses the input json with concrete implementation of {@link JsonParserStream}.
-     *
-     * @param reader of the given JSON
-     *
-     */
-    private Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> parseInputJSON(
-            JsonReader reader) {
-        NormalizedNodeResult result = new NormalizedNodeResult();
-        try (NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
-            JsonParserStream jsonParser = JsonParserStream.create(streamWriter, getSchemaContext(),
-                getSchemaContext())) {
-            jsonParser.parse(reader);
-        } catch (IOException e) {
-            LOG.warn("An error {} occured during parsing Json input stream", e.getMessage(), e);
-            return Optional.empty();
-        }
-        return Optional.ofNullable(result.getResult());
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/XMLDataObjectConverter.java b/tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/XMLDataObjectConverter.java
deleted file mode 100644 (file)
index d298d39..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * Copyright (c) 2018 AT&T and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.binding.converter;
-
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.net.URISyntaxException;
-import java.util.Optional;
-
-import javax.annotation.Nonnull;
-import javax.xml.XMLConstants;
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLOutputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
-import org.opendaylight.yangtools.yang.data.codec.xml.XMLStreamNormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.xml.sax.SAXException;
-
-public final class XMLDataObjectConverter extends AbstractDataObjectConverter {
-
-    private static final Logger LOG = LoggerFactory.getLogger(XMLDataObjectConverter.class);
-
-    private final XMLInputFactory xmlInputFactory;
-
-    /**
-     * This is the default constructor, which should be used.
-     *
-     * @param schemaContext schema context for converter
-     * @param codecRegistry codec registry used for converting
-     *
-     */
-    private XMLDataObjectConverter(SchemaContext schemaContext, BindingNormalizedNodeSerializer codecRegistry) {
-        super(schemaContext, codecRegistry);
-        this.xmlInputFactory = XMLInputFactory.newInstance();
-    }
-
-    /**
-     * Extract codec and schema context (?).
-     *
-     * @param dataStoreContextUtil datastore context util used to extract codec and schema context
-     * @return {@link AbstractDataObjectConverter}
-     */
-    public static XMLDataObjectConverter createWithDataStoreUtil(@Nonnull DataStoreContext dataStoreContextUtil) {
-        BindingNormalizedNodeSerializer bindingToNormalizedNodeCodec =
-                dataStoreContextUtil.getBindingToNormalizedNodeCodec();
-        return new XMLDataObjectConverter(dataStoreContextUtil.getSchemaContext(), bindingToNormalizedNodeCodec);
-    }
-
-    /**
-     * Extract codec and schema context (?).
-     *
-     * @param schemaContext schema context for converter
-     * @param codecRegistry codec registry used for converting
-     * @return new {@link XMLDataObjectConverter}
-     */
-    public static XMLDataObjectConverter createWithSchemaContext(@Nonnull SchemaContext schemaContext,
-            @Nonnull BindingNormalizedNodeSerializer codecRegistry) {
-        return new XMLDataObjectConverter(schemaContext, codecRegistry);
-    }
-
-    /**
-     * Transforms the XML input stream into normalized nodes.
-     *
-     * @param inputStream of the given XML
-     * @return {@link Optional} instance of {@link NormalizedNode}.
-     */
-    @Override
-    public Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull InputStream inputStream) {
-        try {
-            XMLStreamReader reader = this.xmlInputFactory.createXMLStreamReader(inputStream);
-            return parseInputXML(reader);
-        } catch (XMLStreamException e) {
-            LOG.warn(e.getMessage(), e);
-            return Optional.empty();
-        }
-    }
-
-    @Override
-    public Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull Reader inputReader, SchemaNode parentSchema) {
-        try {
-            XMLStreamReader reader = this.xmlInputFactory.createXMLStreamReader(inputReader);
-            return parseInputXML(reader, parentSchema);
-        } catch (XMLStreamException e) {
-            LOG.warn(e.getMessage(), e);
-            return Optional.empty();
-        }
-    }
-
-    /**
-     * Transforms the XML input stream into normalized nodes.
-     *
-     * @param inputReader of the given XML
-     * @return {@link Optional} instance of {@link NormalizedNode}.
-     */
-    @Override
-    public Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull Reader inputReader) {
-        try {
-            XMLStreamReader reader = this.xmlInputFactory.createXMLStreamReader(inputReader);
-            return parseInputXML(reader);
-        } catch (XMLStreamException e) {
-            LOG.warn(e.getMessage(), e);
-            return Optional.empty();
-        }
-    }
-
-    @Override
-    public <T extends DataObject> Writer writerFromRpcDataObject(@Nonnull DataObject object, Class<T> dataObjectClass,
-            ConvertType<T> convertType, QName rpcOutputQName, String rpcName) {
-        Writer writer = new StringWriter();
-        XMLStreamWriter xmlStreamWriter = createXmlStreamWriter(writer);
-        SchemaPath rpcOutputSchemaPath = SchemaPath.create(true, QName.create(rpcOutputQName.getModule(), rpcName),
-                rpcOutputQName);
-        try (NormalizedNodeWriter normalizedNodeWriter = createWriterBackedNormalizedNodeWriter(xmlStreamWriter,
-                rpcOutputSchemaPath)) {
-            xmlStreamWriter.writeStartElement(XMLConstants.DEFAULT_NS_PREFIX,
-                    rpcOutputQName.getLocalName(), rpcOutputQName.getNamespace().toString());
-            xmlStreamWriter.writeDefaultNamespace(rpcOutputQName.getNamespace().toString());
-            NormalizedNode<?, ?> rpcOutputNormalizedNode = convertType.toNormalizedNodes(dataObjectClass.cast(object),
-                    dataObjectClass).get();
-            for (final NormalizedNode<?, ?> child : ((ContainerNode)rpcOutputNormalizedNode).getValue()) {
-                normalizedNodeWriter.write(child);
-            }
-            normalizedNodeWriter.flush();
-            xmlStreamWriter.writeEndElement();
-            xmlStreamWriter.flush();
-        } catch (IOException | XMLStreamException ioe) {
-            throw new IllegalStateException(ioe);
-        }
-        return writer;
-    }
-
-    /**
-     * Returns a {@link Writer}.
-     *
-     * @param convertType converter used of converting into normalized node
-     * @param dataObjectClass class of converting object
-     * @param object object you want to convert
-     *
-     */
-    @Override
-    public <T extends DataObject> Writer writerFromDataObject(@Nonnull DataObject object, Class<T> dataObjectClass,
-            ConvertType<T> convertType) {
-        Writer writer = new StringWriter();
-
-        try (NormalizedNodeWriter normalizedNodeWriter = createWriterBackedNormalizedNodeWriter(writer, null)) {
-            normalizedNodeWriter
-                    .write(convertType.toNormalizedNodes(dataObjectClass.cast(object), dataObjectClass).get());
-            normalizedNodeWriter.flush();
-        } catch (IOException ioe) {
-            throw new IllegalStateException(ioe);
-        }
-        return writer;
-    }
-
-    private Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> parseInputXML(
-            XMLStreamReader reader) {
-        return parseInputXML(reader, getSchemaContext());
-    }
-
-    private Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> parseInputXML(
-            XMLStreamReader reader, SchemaNode parentSchemaNode) {
-        NormalizedNodeResult result = new NormalizedNodeResult();
-        try (NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
-             XmlParserStream xmlParser = XmlParserStream.create(streamWriter, getSchemaContext(), parentSchemaNode)) {
-            xmlParser.parse(reader);
-        } catch (XMLStreamException | URISyntaxException | IOException | ParserConfigurationException
-                | SAXException e) {
-            LOG.warn("An error {} occured during parsing XML input stream", e.getMessage(), e);
-            return Optional.empty();
-        }
-        return Optional.ofNullable(result.getResult());
-    }
-
-    private NormalizedNodeWriter createWriterBackedNormalizedNodeWriter(Writer backingWriter, SchemaPath pathToParent) {
-        XMLStreamWriter createXMLStreamWriter = createXmlStreamWriter(backingWriter);
-        NormalizedNodeStreamWriter streamWriter;
-        if (pathToParent == null) {
-            streamWriter = XMLStreamNormalizedNodeStreamWriter.create(createXMLStreamWriter,
-                    getSchemaContext());
-        } else {
-            streamWriter = XMLStreamNormalizedNodeStreamWriter.create(createXMLStreamWriter,
-                    getSchemaContext(), pathToParent);
-        }
-        return NormalizedNodeWriter.forStreamWriter(streamWriter);
-    }
-
-    private NormalizedNodeWriter createWriterBackedNormalizedNodeWriter(XMLStreamWriter backingWriter,
-            SchemaPath pathToParent) {
-        NormalizedNodeStreamWriter streamWriter;
-        if (pathToParent == null) {
-            streamWriter = XMLStreamNormalizedNodeStreamWriter.create(backingWriter,
-                    getSchemaContext());
-        } else {
-            streamWriter = XMLStreamNormalizedNodeStreamWriter.create(backingWriter,
-                    getSchemaContext(), pathToParent);
-        }
-        return NormalizedNodeWriter.forStreamWriter(streamWriter);
-    }
-
-    private static XMLStreamWriter createXmlStreamWriter(Writer backingWriter) {
-        XMLStreamWriter xmlStreamWriter;
-        try {
-            XMLOutputFactory factory = XMLOutputFactory.newFactory();
-            factory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, true);
-            xmlStreamWriter = factory.createXMLStreamWriter(backingWriter);
-        } catch (XMLStreamException | FactoryConfigurationError e) {
-            LOG.error("Error [{}] while creating XML writer", e.getMessage(), e);
-            throw new IllegalStateException(e);
-        }
-        return xmlStreamWriter;
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/api/DataObjectConverter.java b/tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/api/DataObjectConverter.java
deleted file mode 100644 (file)
index bad24d5..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2018 AT&T and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.binding.converter.api;
-
-import java.io.InputStream;
-import java.io.Reader;
-import java.io.Writer;
-import java.util.Optional;
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.binding.DataContainer;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Notification;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-
-public interface DataObjectConverter {
-
-    <T extends DataObject> Optional<T> getDataObject(
-            @Nonnull NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?> normalizedNode,
-            @Nonnull QName rootNode);
-
-    <T extends DataObject> Optional<T> getDataObjectFromRpc(
-            @Nonnull NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?> normalizedNode,
-            @Nonnull SchemaPath rpcSchemaPath);
-
-    Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull InputStream inputStream);
-
-    Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull Reader inputReader, SchemaNode parentSchema);
-
-    Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull Reader inputReader);
-
-    <T extends DataObject> Writer writerFromDataObject(@Nonnull DataObject object, Class<T> dataObjectClass,
-            ConvertType<T> convertType);
-
-    <T extends DataObject> Writer writerFromRpcDataObject(@Nonnull DataObject object, Class<T> dataObjectClass,
-            ConvertType<T> convertType, QName rpcOutputQName, String rpcName);
-
-    <T extends DataObject> Optional<NormalizedNode<?, ?>> toNormalizedNodes(@Nonnull T object,
-            Class<T> dataObjectClass);
-
-    public interface ConvertType<T> {
-        Optional<NormalizedNode<?, ?>> toNormalizedNodes(T object, Class<T> clazz);
-    }
-
-    /**
-     * Returns a converter for {@link DataObject} container type.
-     * @param <T> T extends DataObject
-     *
-     * @return {@link ConvertType} converter for {@link DataContainer}
-     */
-    <T extends DataObject> ConvertType<T> dataContainer();
-
-    /**
-     * Returns converter for {@link DataContainer} rpc type.
-     * @param <T> T extends DataContainer
-     *
-     * @return {@link ConvertType} converter for {@link DataContainer}
-     * representing rpc data
-     */
-    <T extends DataContainer> ConvertType<T> rpcData();
-
-    /**
-     * Return converter for {@link Notification}.
-     * @param <T> T extends Notification
-     *
-     * @return {@link ConvertType} converter for {@link Notification}
-     */
-    <T extends Notification> ConvertType<T> notification();
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/test/common/DataStoreContext.java b/tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/test/common/DataStoreContext.java
deleted file mode 100644 (file)
index 3ba7964..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2018 AT&T and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.test.common;
-
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-
-public interface DataStoreContext {
-
-//    DataBroker getDataBroker();
-//
-//    DOMDataBroker getDOMDataBroker();
-//
-//    NotificationService createNotificationService();
-//
-//    NotificationPublishService createNotificationPublishService();
-
-    SchemaContext getSchemaContext();
-
-    BindingNormalizedNodeCodecRegistry getBindingToNormalizedNodeCodec();
-
-//    NotificationService getNotificationService();
-//
-//    NotificationPublishService getNotificationPublishService();
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/test/common/DataStoreContextImpl.java b/tests/honeynode/1.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/test/common/DataStoreContextImpl.java
deleted file mode 100644 (file)
index f8bd363..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * Copyright (c) 2018 AT&T and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.test.common;
-
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Optional;
-import java.util.ServiceLoader;
-
-import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.binding.dom.codec.gen.impl.StreamWriterGenerator;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.mdsal.binding.generator.impl.GeneratedClassLoadingStrategy;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext;
-import org.opendaylight.mdsal.binding.generator.util.JavassistUtils;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.mdsal.dom.api.DOMSchemaServiceExtension;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.util.ListenerRegistry;
-import org.opendaylight.yangtools.yang.binding.YangModelBindingProvider;
-import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
-import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.ClassToInstanceMap;
-
-import javassist.ClassPool;
-
-public class DataStoreContextImpl implements DataStoreContext {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DataStoreContextImpl.class);
-
-//    private final Map<LogicalDatastoreType, DOMStore> datastores;
-    private final SchemaContextHolder mockedSchemaContext;
-//    private final DOMNotificationRouter domNotificationRouter;
-//    private final DOMDataBroker domDataBroker;
-//    private final DataBroker dataBroker;
-//    private final NotificationService notificationService;
-//    private final NotificationPublishService notificationPublishService;
-
-    public DataStoreContextImpl() {
-        this(false);
-    }
-
-    public DataStoreContextImpl(boolean fromClasspath) {
-        this.mockedSchemaContext = new SchemaContextHolder(fromClasspath);
-//        this.datastores = createDatastores();
-//        this.domNotificationRouter = DOMNotificationRouter.create(16);
-//        this.domDataBroker = createDOMDataBroker();
-//        this.dataBroker = createDataBroker();
-//        this.notificationService = createNotificationService();
-//        this.notificationPublishService = createNotificationPublishService();
-//        for (ListenerRegistration<SchemaContextListener> listener : this.mockedSchemaContext.listeners) {
-//            listener.getInstance().onGlobalContextUpdated(this.mockedSchemaContext.schemaContext);
-//        }
-    }
-
-//    @Override
-//    public DataBroker getDataBroker() {
-//        return this.dataBroker;
-//    }
-//
-//    @Override
-//    public DOMDataBroker getDOMDataBroker() {
-//        return this.domDataBroker;
-//    }
-//
-//    @Override
-//    public NotificationService createNotificationService() {
-//        return new BindingDOMNotificationServiceAdapter(this.mockedSchemaContext.bindingStreamCodecs,
-//                this.domNotificationRouter);
-//    }
-//
-//    @Override
-//    public NotificationPublishService createNotificationPublishService() {
-//        return new BindingDOMNotificationPublishServiceAdapter(this.mockedSchemaContext.bindingToNormalized,
-//                this.domNotificationRouter);
-//    }
-
-    @Override
-    public SchemaContext getSchemaContext() {
-        return this.mockedSchemaContext.schemaContext;
-    }
-
-    @Override
-    public BindingNormalizedNodeCodecRegistry getBindingToNormalizedNodeCodec() {
-        return this.mockedSchemaContext.bindingStreamCodecs;
-    }
-
-//    @Override
-//    public NotificationService getNotificationService() {
-//        return this.notificationService;
-//    }
-//
-//    @Override
-//    public NotificationPublishService getNotificationPublishService() {
-//        return this.notificationPublishService;
-//    }
-//
-//    private DOMDataBroker createDOMDataBroker() {
-//        return new SerializedDOMDataBroker(this.datastores,
-//                MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor()));
-//    }
-//
-//    private ListeningExecutorService getDataTreeChangeListenerExecutor() {
-//        return MoreExecutors.newDirectExecutorService();
-//    }
-//
-//    private DataBroker createDataBroker() {
-//        return new BindingDOMDataBrokerAdapter(getDOMDataBroker(), this.mockedSchemaContext.bindingToNormalized);
-//    }
-//
-//    private Map<LogicalDatastoreType, DOMStore> createDatastores() {
-//        return ImmutableMap.<LogicalDatastoreType, DOMStore>builder()
-//                .put(LogicalDatastoreType.OPERATIONAL, createOperationalDatastore())
-//                .put(LogicalDatastoreType.CONFIGURATION, createConfigurationDatastore()).build();
-//    }
-//
-//    private DOMStore createConfigurationDatastore() {
-//        final InMemoryDOMDataStore store = new InMemoryDOMDataStore("CFG", getDataTreeChangeListenerExecutor());
-//        this.mockedSchemaContext.registerSchemaContextListener(store);
-//        return store;
-//    }
-//
-//    private DOMStore createOperationalDatastore() {
-//        final InMemoryDOMDataStore store = new InMemoryDOMDataStore("OPER", getDataTreeChangeListenerExecutor());
-//        this.mockedSchemaContext.registerSchemaContextListener(store);
-//        return store;
-//    }
-
-    private final class SchemaContextHolder implements DOMSchemaService, SchemaContextProvider {
-
-        private final SchemaContext schemaContext;
-        private final ListenerRegistry<SchemaContextListener> listeners;
-        private final BindingNormalizedNodeCodecRegistry bindingStreamCodecs;
-        private final BindingToNormalizedNodeCodec bindingToNormalized;
-        private final ModuleInfoBackedContext moduleInfoBackedCntxt;
-
-        private SchemaContextHolder(boolean fromClasspath) {
-            List<YangModuleInfo> moduleInfos = loadModuleInfos();
-            this.moduleInfoBackedCntxt = ModuleInfoBackedContext.create();
-            this.schemaContext = getSchemaContext(moduleInfos);
-            this.listeners = ListenerRegistry.create();
-            this.bindingStreamCodecs = createBindingRegistry();
-            GeneratedClassLoadingStrategy loading = GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy();
-            this.bindingToNormalized = new BindingToNormalizedNodeCodec(loading, this.bindingStreamCodecs);
-            registerSchemaContextListener(this.bindingToNormalized);
-        }
-
-        @Override
-        public SchemaContext getSchemaContext() {
-            return this.schemaContext;
-        }
-
-        /**
-         * Get the schemacontext from loaded modules on classpath.
-         *
-         * @param moduleInfos a list of Yang module Infos
-         * @return SchemaContext a schema context
-         */
-        private SchemaContext getSchemaContext(List<YangModuleInfo> moduleInfos) {
-            this.moduleInfoBackedCntxt.addModuleInfos(moduleInfos);
-            Optional<SchemaContext> tryToCreateSchemaContext = this.moduleInfoBackedCntxt.tryToCreateSchemaContext();
-            if (!tryToCreateSchemaContext.isPresent()) {
-                LOG.error("Could not create the initial schema context. Schema context is empty");
-                throw new IllegalStateException();
-            }
-            return tryToCreateSchemaContext.get();
-        }
-
-        @Override
-        public SchemaContext getGlobalContext() {
-            return this.schemaContext;
-        }
-
-        @Override
-        public SchemaContext getSessionContext() {
-            return this.schemaContext;
-        }
-
-        @Override
-        public ListenerRegistration<SchemaContextListener> registerSchemaContextListener(
-                SchemaContextListener listener) {
-            return this.listeners.register(listener);
-        }
-
-        /**
-         * Loads all {@link YangModelBindingProvider} on the classpath.
-         *
-         * @return list of known {@link YangModuleInfo}
-         */
-        private List<YangModuleInfo> loadModuleInfos() {
-            List<YangModuleInfo> moduleInfos = new LinkedList<>();
-            ServiceLoader<YangModelBindingProvider> yangProviderLoader = ServiceLoader
-                    .load(YangModelBindingProvider.class);
-            for (YangModelBindingProvider yangModelBindingProvider : yangProviderLoader) {
-                moduleInfos.add(yangModelBindingProvider.getModuleInfo());
-                LOG.debug("Adding [{}] module into known modules", yangModelBindingProvider.getModuleInfo());
-            }
-            return moduleInfos;
-        }
-
-        /**
-         * Creates binding registry.
-         *
-         * @return BindingNormalizedNodeCodecRegistry the resulting binding registry
-         */
-        private BindingNormalizedNodeCodecRegistry createBindingRegistry() {
-            BindingRuntimeContext bindingContext = BindingRuntimeContext.create(this.moduleInfoBackedCntxt,
-                    this.schemaContext);
-            BindingNormalizedNodeCodecRegistry bindingNormalizedNodeCodecRegistry = new BindingNormalizedNodeCodecRegistry(
-                    StreamWriterGenerator.create(JavassistUtils.forClassPool(ClassPool.getDefault())));
-            bindingNormalizedNodeCodecRegistry.onBindingRuntimeContextUpdated(bindingContext);
-            return bindingNormalizedNodeCodecRegistry;
-        }
-
-        /*
-         * (non-Javadoc)
-         *
-         * @see org.opendaylight.mdsal.dom.api.DOMExtensibleService#getExtensions()
-         */
-        @Override
-        public ClassToInstanceMap<DOMSchemaServiceExtension> getExtensions() {
-            // TODO Auto-generated method stub
-            return null;
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-distribution/asciidoc/Readme.adoc b/tests/honeynode/1.2.1/honeynode-distribution/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index 608fb53..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-= honeynode-distribution
-
-Overview of honeynode-distribution
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-distribution/pom.xml b/tests/honeynode/1.2.1/honeynode-distribution/pom.xml
deleted file mode 100644 (file)
index 8aefd51..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <parent>
-    <groupId>io.fd.honeycomb.common</groupId>
-    <artifactId>minimal-distribution-parent</artifactId>
-    <version>1.19.04</version>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>io.fd.honeycomb.transportpce</groupId>
-  <artifactId>honeynode-distribution</artifactId>
-  <properties>
-    <exec.parameters>-Xms128m -Xmx128m</exec.parameters>
-    <main.class>io.fd.honeycomb.infra.distro.Main</main.class>
-    <interfaces.mapping.version>1.19.04</interfaces.mapping.version>
-    <honeycomb.min.distro.version>1.19.04</honeycomb.min.distro.version>
-    <guice.version>4.2.2</guice.version>
-    <guice.config.version>1.4.1</guice.config.version>
-    <!--
-       Defines list of specific modules provided by the distribution
-       (adds them to base modules like NetconfModule and RestconfModule).
-       Module configuration is placed in 'modules' subdir of the target distro folder.
-       Modules can be disabled by commenting them out in the pom.xml
-       or modules configuration file.
-     -->
-    <distribution.modules>
-        io.fd.honeycomb.transportpce.device.DeviceModule,
-        io.fd.honeycomb.transportpce.device.DeviceWriterModule,
-        io.fd.honeycomb.transportpce.device.DeviceReaderModule,
-        io.fd.honeycomb.transportpce.device.DeviceRpcModule,
-        io.fd.honeycomb.transportpce.device.DeviceNotificationModule,
-    </distribution.modules>
-    <checkstyle.skip>true</checkstyle.skip>
-  </properties>
-  <build>
-    <plugins>
-      <plugin>
-        <artifactId>maven-compiler-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.gmaven</groupId>
-        <artifactId>groovy-maven-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <configuration>
-            <!-- MacOS X and posix compatibility, fix error "group id is too big" -->
-            <tarLongFileMode>posix</tarLongFileMode>
-        </configuration>
-      </plugin>
-    </plugins>
-    <pluginManagement>
-        <plugins>
-            <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
-            <plugin>
-                <groupId>org.eclipse.m2e</groupId>
-                <artifactId>lifecycle-mapping</artifactId>
-                <version>1.0.0</version>
-                <configuration>
-                    <lifecycleMappingMetadata>
-                        <pluginExecutions>
-                            <pluginExecution>
-                                <pluginExecutionFilter>
-                                    <groupId>
-                                        org.apache.maven.plugins
-                                    </groupId>
-                                    <artifactId>
-                                        maven-checkstyle-plugin
-                                    </artifactId>
-                                    <versionRange>
-                                        [3.0.0,)
-                                    </versionRange>
-                                    <goals>
-                                        <goal>check</goal>
-                                    </goals>
-                                </pluginExecutionFilter>
-                                <action>
-                                    <ignore></ignore>
-                                </action>
-                            </pluginExecution>
-                        </pluginExecutions>
-                    </lifecycleMappingMetadata>
-                </configuration>
-            </plugin>
-        </plugins>
-    </pluginManagement>
-  </build>
-  <dependencies>
-    <!-- Dependency on honeynode plugin -->
-    <dependency>
-      <groupId>io.fd.honeycomb.transportpce</groupId>
-      <artifactId>honeynode-plugin-impl</artifactId>
-      <version>${interfaces.mapping.version}</version>
-    </dependency>
-    <!-- Dependency on TPCE distribution base -->
-    <dependency>
-      <groupId>io.fd.honeycomb.transportpce</groupId>
-      <artifactId>minimal-distribution</artifactId>
-      <version>${honeycomb.min.distro.version}</version>
-    </dependency>
-  </dependencies>
-</project>
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/asciidoc/Readme.adoc b/tests/honeynode/1.2.1/honeynode-plugin-api/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index ebe40ce..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-= honeynode-plugin-api
-
-Overview of honeynode-plugin-api
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/pom.xml b/tests/honeynode/1.2.1/honeynode-plugin-api/pom.xml
deleted file mode 100644 (file)
index ff19b38..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (c) 2015 Cisco and/or its affiliates. Licensed under the Apache
-    License, Version 2.0 (the "License"); you may not use this file except in
-    compliance with the License. You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
-    OR CONDITIONS OF ANY KIND, either express or implied. See the License for
-    the specific language governing permissions and limitations under the License. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>io.fd.honeycomb.common</groupId>
-        <artifactId>api-parent</artifactId>
-        <version>1.19.04</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>io.fd.honeycomb.transportpce</groupId>
-    <artifactId>honeynode-plugin-api</artifactId>
-    <name>honeynode-plugin-api</name>
-    <packaging>bundle</packaging>
-    <properties>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-    </properties>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <version>1.1</version>
-                <executions>
-                    <execution>
-                        <id>add-source</id>
-                        <phase>generate-sources</phase>
-                        <goals>
-                            <goal>add-source</goal>
-                        </goals>
-                        <configuration>
-                            <sources>
-                                <source>target/generated-sources/mdsal-binding</source>
-                            </sources>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-        <pluginManagement>
-            <plugins>
-                <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.apache.maven.plugins
-                                        </groupId>
-                                        <artifactId>
-                                            maven-checkstyle-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [3.0.0,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                   <pluginExecutionFilter>
-                                      <groupId>
-                                         org.codehaus.mojo
-                                      </groupId>
-                                      <artifactId>
-                                         build-helper-maven-plugin
-                                      </artifactId>
-                                      <versionRange>
-                                         [1.1,)
-                                      </versionRange>
-                                      <goals>
-                                         <goal>add-source</goal>
-                                      </goals>
-                                   </pluginExecutionFilter>
-                                   <action>
-                                      <ignore></ignore>
-                                   </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/alarms/rev180116/AlarmStateTypeIdBuilder.java b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/alarms/rev180116/AlarmStateTypeIdBuilder.java
deleted file mode 100644 (file)
index c454cbb..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.http.openconfig.net.yang.alarms.rev180116;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class AlarmStateTypeIdBuilder {
-    private AlarmStateTypeIdBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static AlarmState.TypeId getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/platform/rev180130/PlatformComponentPropertiesConfigValueBuilder.java b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/platform/rev180130/PlatformComponentPropertiesConfigValueBuilder.java
deleted file mode 100644 (file)
index 86d521e..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class PlatformComponentPropertiesConfigValueBuilder {
-    private PlatformComponentPropertiesConfigValueBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static PlatformComponentPropertiesConfig.Value getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/platform/rev180130/PlatformComponentStateTypeBuilder.java b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/platform/rev180130/PlatformComponentStateTypeBuilder.java
deleted file mode 100644 (file)
index f15fc07..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class PlatformComponentStateTypeBuilder {
-    private PlatformComponentStateTypeBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static PlatformComponentState.Type getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev161014/PmDataTypeBuilder.java b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev161014/PmDataTypeBuilder.java
deleted file mode 100644 (file)
index 1e8746a..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class PmDataTypeBuilder {
-    private PmDataTypeBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static PmDataType getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/HostBuilder.java b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/HostBuilder.java
deleted file mode 100644 (file)
index af87f64..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class HostBuilder {
-    private HostBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static Host getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressBuilder.java b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressBuilder.java
deleted file mode 100644 (file)
index bbd6352..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * * The purpose of generated class in src/main/java for Union types is to
- * create * new instances of unions from a string representation. In some cases
- * it is * very difficult to automate it since there can be unions such as
- * (uint32 - * uint16), or (string - uint32). * * The reason behind putting it
- * under src/main/java is: This class is generated * in form of a stub and needs
- * to be finished by the user. This class is * generated only once to prevent
- * loss of user code. *
- */
-public class IpAddressBuilder {
-    private static final Pattern IPV4_PATTERN = Pattern.compile(
-            "(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(%[\\p{N}\\p{L}]+)?");
-    private static final Pattern IPV6_PATTERN1 = Pattern.compile(
-            "((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(%[\\p{N}\\p{L}]+)?");
-    private static final Pattern IPV6_PATTERN2 = Pattern
-            .compile("(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?");
-
-    private IpAddressBuilder() {
-    }
-
-    /*
-     * * public static IpAddress getDefaultInstance(java.lang.String defaultValue) {
-     * * throw new java.lang.UnsupportedOperationException("Not yet implemented"); }
-     */ public static IpAddress getDefaultInstance(String defaultValue) {
-        final Matcher ipv4Matcher = IPV4_PATTERN.matcher(defaultValue);
-        if (ipv4Matcher.matches()) {
-            if (IPV6_PATTERN1.matcher(defaultValue).matches() && IPV6_PATTERN2.matcher(defaultValue).matches()) {
-                throw new IllegalArgumentException(
-                        String.format("Cannot create IpAddress from \"%s\", matches both %s and %s", defaultValue,
-                                Ipv4Address.class.getSimpleName(), Ipv6Address.class.getSimpleName()));
-            }
-            return new IpAddress(new Ipv4Address(defaultValue));
-        } else if (IPV6_PATTERN1.matcher(defaultValue).matches() && IPV6_PATTERN2.matcher(defaultValue).matches()) {
-            return new IpAddress(new Ipv6Address(defaultValue));
-        } else {
-            throw new IllegalArgumentException("Cannot create IpAddress from " + defaultValue);
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressNoZoneBuilder.java b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressNoZoneBuilder.java
deleted file mode 100644 (file)
index e571960..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class IpAddressNoZoneBuilder {
-    private IpAddressNoZoneBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static IpAddressNoZone getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpPrefixBuilder.java b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpPrefixBuilder.java
deleted file mode 100644 (file)
index 814182a..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class IpPrefixBuilder {
-    private IpPrefixBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static IpPrefix getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/netconf/monitoring/rev101004/netconf/state/schemas/SchemaLocationBuilder.java b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/netconf/monitoring/rev101004/netconf/state/schemas/SchemaLocationBuilder.java
deleted file mode 100644 (file)
index 23a3236..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class SchemaLocationBuilder {
-    private SchemaLocationBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static Schema.Location getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/iana-afn-safi@2013-07-04.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/iana-afn-safi@2013-07-04.yang
deleted file mode 100644 (file)
index c076260..0000000
+++ /dev/null
@@ -1,526 +0,0 @@
-module iana-afn-safi {
-  namespace "urn:ietf:params:xml:ns:yang:iana-afn-safi";
-  prefix "ianaaf";
-
-  organization
-    "IANA";
-  contact
-    "        Internet Assigned Numbers Authority
-
-     Postal: ICANN
-             4676 Admiralty Way, Suite 330
-             Marina del Rey, CA 90292
-
-     Tel:    +1 310 823 9358
-     E-Mail: iana&iana.org";
-  description
-    "This YANG module provides two typedefs containing YANG
-     definitions for the following IANA-registered enumerations:
-
-     - Address Family Numbers (AFN)
-
-     - Subsequent Address Family Identifiers (SAFI)
-
-     The latest revision of this YANG module can be obtained from the
-     IANA web site.
-
-     Copyright (c) 2012 IETF Trust and the persons identified as
-     authors of the code. All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject to
-     the license terms contained in, the Simplified BSD License set
-     forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC XXXX; see the
-     RFC itself for full legal notices.";
-  // RFC Ed.: replace XXXX with actual RFC number and remove this
-  // note.
-
-  // RFC Ed.: update the date below with the date of RFC publication
-  // and remove this note.
-  revision 2013-07-04 {
-    description
-      "Initial revision.";
-    reference
-      "RFC XXXX: IANA Address Family Numbers and
-                 Subsequent Address Family Identifiers YANG Module";
-  }
-
-  typedef address-family {
-    type enumeration {
-      // value 0 is reserved by IANA
-      enum ipV4 {
-        value "1";
-        description
-          "IP version 4";
-      }
-      enum ipV6 {
-        value "2";
-        description
-          "IP version 6";
-      }
-      enum nsap {
-        value "3";
-        description
-          "NSAP";
-      }
-      enum hdlc {
-        value "4";
-        description
-          "HDLC (8-bit multidrop)";
-      }
-      enum bbn1822 {
-        value "5";
-        description
-          "BBN 1822";
-      }
-      enum all802 {
-        value "6";
-        description
-          "802 (includes all 802 media plus Ethernet 'canonical
-           format')";
-      }
-      enum e163 {
-        value "7";
-        description
-          "E.163";
-      }
-      enum e164 {
-        value "8";
-        description
-          "E.164 (SMDS, FrameRelay, ATM)";
-      }
-      enum f69 {
-        value "9";
-        description
-          "F.69 (Telex)";
-      }
-      enum x121 {
-        value "10";
-        description
-          "X.121 (X.25, Frame Relay)";
-      }
-      enum ipx {
-        value "11";
-        description
-          "IPX (Internetwork Packet Exchange)";
-      }
-      enum appletalk {
-        value "12";
-        description
-          "Appletalk";
-      }
-      enum decnetIV {
-        value "13";
-        description
-          "DECnet IV";
-      }
-      enum banyanVines {
-        value "14";
-        description
-          "Banyan Vines";
-      }
-      enum e164withNsap {
-        value "15";
-        description
-          "E.164 with NSAP format subaddress";
-        reference
-          "ATM Forum UNI 3.1";
-      }
-      enum dns {
-        value "16";
-        description
-          "DNS (Domain Name System)";
-      }
-      enum distinguishedName {
-        value "17";
-        description
-          "Distinguished Name (per X.500)";
-      }
-      enum asNumber {
-        value "18";
-        description
-          "Autonomous System Number";
-      }
-      enum xtpOverIpv4 {
-        value "19";
-        description
-          "XTP over IP version 4";
-      }
-      enum xtpOverIpv6 {
-        value "20";
-        description
-          "XTP over IP version 6";
-      }
-      enum xtpNativeModeXTP {
-        value "21";
-        description
-          "XTP native mode XTP";
-      }
-      enum fibreChannelWWPN {
-        value "22";
-        description
-          "Fibre Channel World-Wide Port Name";
-      }
-      enum fibreChannelWWNN {
-        value "23";
-        description
-          "Fibre Channel World-Wide Node Name";
-      }
-      enum gwid {
-        value "24";
-        description
-          "Gateway Identifier";
-      }
-      // FIXME: This one is actually called "afi" in the MIB, but
-      // that must be a mistake.
-      enum l2vpn {
-        value "25";
-        description
-          "AFI for L2VPN information";
-        reference
-          "RFC 4761: Virtual Private LAN Service (VPLS): Using BGP
-           for Auto-Discovery and Signaling
-
-           RFC 6074: Provisioning, Auto-Discovery, and Signaling in
-           Layer 2 Virtual Private Networks (L2VPNs)";
-      }
-      enum mplsTpSectionEndpointIdentifier {
-        value "26";
-        description
-          "MPLS-TP Section Endpoint Identifier";
-        reference
-          "draft-ietf-mpls-gach-adv";
-      }
-      enum mplsTpLspEndpointIdentifier {
-        value "27";
-        description
-          "MPLS-TP LSP Endpoint Identifier";
-        reference
-          "draft-ietf-mpls-gach-adv";
-      }
-      enum mplsTpPseudowireEndpointIdentifier {
-        value "28";
-        description
-          "MPLS-TP Pseudowire Endpoint Identifier";
-        reference
-          "draft-ietf-mpls-gach-adv";
-      }
-      enum eigrpCommonServiceFamily {
-        value "16384";
-        description
-          "EIGRP Common Service Family";
-      }
-      enum eigrpIpv4ServiceFamily {
-        value "16385";
-        description
-          "EIGRP IPv4 Service Family";
-      }
-      enum eigrpIpv6ServiceFamily {
-        value "16386";
-        description
-          "EIGRP IPv6 Service Family";
-      }
-      enum lispCanonicalAddressFormat {
-        value "16387";
-        description
-          "LISP Canonical Address Format (LCAF)";
-      }
-      enum bgpLs {
-        value "16388";
-        description
-          "BGP-LS";
-        reference
-          "draft-ietf-idr-ls-distribution";
-      }
-      enum 48BitMac {
-        value "16389";
-        description
-          "48-bit MAC";
-        reference
-          "draft-eastlake-rfc5342bis";
-      }
-      enum 64BitMac {
-        value "16390";
-        description
-          "64-bit MAC";
-        reference
-          "draft-eastlake-rfc5342bis";
-      }
-      // value 65535 is reserved by IANA
-    }
-    description
-      "This typedef is a YANG enumeration of IANA-registered address
-       family numbers (AFN).";
-    reference
-      "IANA Address Family Numbers registry.
-       <http://www.iana.org/assignments/address-family-numbers>";
-  }
-
-  typedef subsequent-address-family {
-    type enumeration {
-      // value 0 is reserved by IANA
-      enum nlriUnicast {
-        value "1";
-        description
-          "Network Layer Reachability Information used for unicast
-           forwarding";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum nlriMulticast {
-        value "2";
-        description
-          "Network Layer Reachability Information used for multicast
-           forwarding";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      // value 3 is reserved by IANA
-      enum nlriMpls {
-        value "4";
-        description
-          "Network Layer Reachability Information (NLRI) with MPLS
-           Labels";
-        reference
-          "RFC 3107: Carrying Label Information in BGP-4";
-      }
-      enum mcastVpn {
-        value "5";
-        description
-          "MCAST-VPN";
-        reference
-          "RFC 6514: BGP Encodings and Procedures for Multicast in
-           MPLS/BGP IP VPNs";
-      }
-      enum nlriDynamicMsPw {
-        value "6";
-        status "obsolete";
-        description
-          "Network Layer Reachability Information used for Dynamic
-           Placement of Multi-Segment Pseudowires (TEMPORARY -
-           Expires 2008-08-23)";
-        reference
-          "draft-ietf-pwe3-dynamic-ms-pw: Dynamic Placement of Multi
-           Segment Pseudowires";
-      }
-      enum encapsulation {
-        value "7";
-        description
-          "Encapsulation SAFI";
-        reference
-          "RFC 5512: The BGP Encapsulation Subsequent Address Family
-           Identifier (SAFI) and the BGP Tunnel Encapsulation
-           Attribute";
-      }
-      enum tunnel {
-        value "64";
-        status "obsolete";
-        description
-          "Tunnel SAFI";
-        reference
-          "draft-nalawade-kapoor-tunnel-safi: BGP Tunnel SAFI";
-      }
-      enum vpls {
-        value "65";
-        description
-          "Virtual Private LAN Service (VPLS)";
-        reference
-          "RFC 4761: Virtual Private LAN Service (VPLS): Using BGP
-           for Auto-Discovery and Signaling
-
-           RFC 6074: Provisioning, Auto-Discovery, and Signaling in
-           Layer 2 Virtual Private Networks (L2VPNs)";
-      }
-      enum bgpMdt {
-        value "66";
-        description
-          "BGP MDT SAFI";
-        reference
-          "RFC 6037: Cisco Systems' Solution for Multicast in
-           BGP/MPLS IP VPNs";
-      }
-      enum bgp4over6 {
-        value "67";
-        description
-          "BGP 4over6 SAFI";
-        reference
-          "RFC 5747: 4over6 Transit Solution Using IP Encapsulation
-           and MP-BGP Extensions";
-      }
-      enum bgp6over4 {
-        value "68";
-        description
-          "BGP 6over4 SAFI";
-      }
-      enum l1VpnAutoDiscovery {
-        value "69";
-        description
-          "Layer-1 VPN auto-discovery information";
-        reference
-          "RFC 5195: BGP-Based Auto-Discovery for Layer-1 VPNs";
-      }
-      enum mplsVpn {
-        value "128";
-        description
-          "MPLS-labeled VPN address";
-        reference
-          "RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs)";
-      }
-      enum multicastBgpMplsVpn {
-        value "129";
-        description
-          "Multicast for BGP/MPLS IP Virtual Private Networks
-           (VPNs)";
-        reference
-          "RFC 6513: Multicast in MPLS/BGP IP VPNs
-
-           RFC 6514: BGP Encodings and Procedures for Multicast in
-           MPLS/BGP IP VPNs";
-      }
-      // values 130-131 are reserved by IANA
-      enum routeTargetConstraints {
-        value "132";
-        description
-          "Route Target constraints";
-        reference
-          "RFC 4684: Constrained Route Distribution for Border
-           Gateway Protocol/MultiProtocol Label Switching (BGP/MPLS)
-           Internet Protocol (IP) Virtual Private Networks (VPNs)";
-      }
-      enum ipv4DissFlow {
-        value "133";
-        description
-          "IPv4 dissemination of flow specification rules";
-        reference
-          "RFC 5575: Dissemination of Flow Specification Rules";
-      }
-      enum vpnv4DissFlow {
-        value "134";
-        description
-          "VPNv4 dissemination of flow specification rules";
-        reference
-          "RFC 5575: Dissemination of Flow Specification Rules";
-      }
-      // values 135-139 are reserved by IANA
-      enum vpnAutoDiscovery {
-        value "140";
-        status "obsolete";
-        description
-          "VPN auto-discovery";
-        reference
-          "draft-ietf-l3vpn-bgpvpn-auto: Using BGP as an
-           Auto-Discovery Mechanism for VR-based Layer-3 VPNs";
-      }
-      // values 141-240 are reserved by IANA
-      enum private241 {
-        value "241";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private242 {
-        value "242";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private243 {
-        value "243";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private244 {
-        value "244";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private245 {
-        value "245";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private246 {
-        value "246";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private247 {
-        value "247";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private248 {
-        value "248";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private249 {
-        value "249";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private250 {
-        value "250";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private251 {
-        value "251";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private252 {
-        value "252";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private253 {
-        value "253";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private254 {
-        value "254";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      // value 255 is reserved by IANA
-    }
-    description
-      "This typedef is a YANG enumeration of IANA-registered
-       subsequent address family identifiers (SAFI).";
-    reference
-      "IANA SAFI Values registry.
-       <http://www.iana.org/assignments/safi-namespace>";
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/iana-if-type@2017-01-19.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/iana-if-type@2017-01-19.yang
deleted file mode 100644 (file)
index 4a684aa..0000000
+++ /dev/null
@@ -1,1620 +0,0 @@
-module iana-if-type {
-  namespace "urn:ietf:params:xml:ns:yang:iana-if-type";
-  prefix ianaift;
-
-  import ietf-interfaces {
-    prefix if;
-  }
-
-  organization "IANA";
-  contact
-    "        Internet Assigned Numbers Authority
-
-     Postal: ICANN
-             12025 Waterfront Drive, Suite 300
-             Los Angeles, CA 90094-2536
-             United States
-
-     Tel:    +1 310 301 5800
-     <mailto:iana&iana.org>";
-  description
-    "This YANG module defines YANG identities for IANA-registered
-     interface types.
-
-     This YANG module is maintained by IANA and reflects the
-     'ifType definitions' registry.
-
-     The latest revision of this YANG module can be obtained from
-     the IANA web site.
-
-     Requests for new values should be made to IANA via
-     email (iana&iana.org).
-
-     Copyright (c) 2014 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     The initial version of this YANG module is part of RFC 7224;
-     see the RFC itself for full legal notices.";
-  reference
-    "IANA 'ifType definitions' registry.
-     <http://www.iana.org/assignments/smi-numbers>";
-
-  revision 2017-01-19 {
-    description
-      "Registered ifType 289.";
-  }
-
-  revision 2016-11-23 {
-    description
-      "Registered ifTypes 283-288.";
-  }
-
-  revision 2016-06-09 {
-    description
-      "Registered ifType 282.";
-  }
-  revision 2016-05-03 {
-    description
-      "Registered ifType 281.";
-  }
-  revision 2015-06-12 {
-    description
-      "Corrected formatting issue.";
-  }
-  revision 2014-09-24 {
-    description
-      "Registered ifType 280.";
-  }
-  revision 2014-09-19 {
-    description
-      "Registered ifType 279.";
-  }
-  revision 2014-07-03 {
-    description
-      "Registered ifTypes 277-278.";
-  }
-  revision 2014-05-19 {
-    description
-      "Updated the contact address.";
-  }
-  revision 2014-05-08 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 7224: IANA Interface Type YANG Module";
-  }
-
-  identity iana-interface-type {
-    base if:interface-type;
-    description
-      "This identity is used as a base for all interface types
-       defined in the 'ifType definitions' registry.";
-  }
-
-  identity other {
-    base iana-interface-type;
-  }
-  identity regular1822 {
-    base iana-interface-type;
-  }
-  identity hdh1822 {
-    base iana-interface-type;
-  }
-  identity ddnX25 {
-    base iana-interface-type;
-  }
-  identity rfc877x25 {
-    base iana-interface-type;
-    reference
-      "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer";
-  }
-  identity ethernetCsmacd {
-    base iana-interface-type;
-    description
-      "For all Ethernet-like interfaces, regardless of speed,
-       as per RFC 3635.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity iso88023Csmacd {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Deprecated via RFC 3635.
-       Use ethernetCsmacd(6) instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity iso88024TokenBus {
-    base iana-interface-type;
-  }
-  identity iso88025TokenRing {
-    base iana-interface-type;
-  }
-  identity iso88026Man {
-    base iana-interface-type;
-  }
-  identity starLan {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Deprecated via RFC 3635.
-       Use ethernetCsmacd(6) instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity proteon10Mbit {
-    base iana-interface-type;
-  }
-  identity proteon80Mbit {
-    base iana-interface-type;
-  }
-  identity hyperchannel {
-    base iana-interface-type;
-  }
-  identity fddi {
-    base iana-interface-type;
-    reference
-      "RFC 1512 - FDDI Management Information Base";
-  }
-  identity lapb {
-    base iana-interface-type;
-    reference
-      "RFC 1381 - SNMP MIB Extension for X.25 LAPB";
-  }
-  identity sdlc {
-    base iana-interface-type;
-  }
-  identity ds1 {
-    base iana-interface-type;
-    description
-      "DS1-MIB.";
-    reference
-      "RFC 4805 - Definitions of Managed Objects for the
-                  DS1, J1, E1, DS2, and E2 Interface Types";
-  }
-  identity e1 {
-    base iana-interface-type;
-    status obsolete;
-    description
-      "Obsolete; see DS1-MIB.";
-    reference
-      "RFC 4805 - Definitions of Managed Objects for the
-                  DS1, J1, E1, DS2, and E2 Interface Types";
-  }
-  identity basicISDN {
-    base iana-interface-type;
-    description
-      "No longer used.  See also RFC 2127.";
-  }
-  identity primaryISDN {
-    base iana-interface-type;
-    description
-      "No longer used.  See also RFC 2127.";
-  }
-  identity propPointToPointSerial {
-    base iana-interface-type;
-    description
-      "Proprietary serial.";
-  }
-  identity ppp {
-    base iana-interface-type;
-  }
-  identity softwareLoopback {
-    base iana-interface-type;
-  }
-  identity eon {
-    base iana-interface-type;
-    description
-      "CLNP over IP.";
-  }
-  identity ethernet3Mbit {
-    base iana-interface-type;
-  }
-  identity nsip {
-    base iana-interface-type;
-    description
-      "XNS over IP.";
-  }
-  identity slip {
-    base iana-interface-type;
-    description
-      "Generic SLIP.";
-  }
-  identity ultra {
-    base iana-interface-type;
-    description
-      "Ultra Technologies.";
-  }
-  identity ds3 {
-    base iana-interface-type;
-    description
-      "DS3-MIB.";
-    reference
-      "RFC 3896 - Definitions of Managed Objects for the
-                  DS3/E3 Interface Type";
-  }
-  identity sip {
-    base iana-interface-type;
-    description
-      "SMDS, coffee.";
-    reference
-      "RFC 1694 - Definitions of Managed Objects for SMDS
-                  Interfaces using SMIv2";
-  }
-  identity frameRelay {
-    base iana-interface-type;
-    description
-      "DTE only.";
-    reference
-      "RFC 2115 - Management Information Base for Frame Relay
-                  DTEs Using SMIv2";
-  }
-  identity rs232 {
-    base iana-interface-type;
-    reference
-      "RFC 1659 - Definitions of Managed Objects for RS-232-like
-                  Hardware Devices using SMIv2";
-  }
-  identity para {
-    base iana-interface-type;
-    description
-      "Parallel-port.";
-    reference
-      "RFC 1660 - Definitions of Managed Objects for
-                  Parallel-printer-like Hardware Devices using
-                  SMIv2";
-  }
-  identity arcnet {
-    base iana-interface-type;
-    description
-      "ARCnet.";
-  }
-  identity arcnetPlus {
-    base iana-interface-type;
-    description
-      "ARCnet Plus.";
-  }
-  identity atm {
-    base iana-interface-type;
-    description
-      "ATM cells.";
-  }
-  identity miox25 {
-    base iana-interface-type;
-    reference
-      "RFC 1461 - SNMP MIB extension for Multiprotocol
-                  Interconnect over X.25";
-  }
-  identity sonet {
-    base iana-interface-type;
-    description
-      "SONET or SDH.";
-  }
-  identity x25ple {
-    base iana-interface-type;
-    reference
-      "RFC 2127 - ISDN Management Information Base using SMIv2";
-  }
-  identity iso88022llc {
-    base iana-interface-type;
-  }
-  identity localTalk {
-    base iana-interface-type;
-  }
-  identity smdsDxi {
-    base iana-interface-type;
-  }
-  identity frameRelayService {
-    base iana-interface-type;
-    description
-      "FRNETSERV-MIB.";
-    reference
-      "RFC 2954 - Definitions of Managed Objects for Frame
-                  Relay Service";
-  }
-  identity v35 {
-    base iana-interface-type;
-  }
-  identity hssi {
-    base iana-interface-type;
-  }
-  identity hippi {
-    base iana-interface-type;
-  }
-  identity modem {
-    base iana-interface-type;
-    description
-      "Generic modem.";
-  }
-  identity aal5 {
-    base iana-interface-type;
-    description
-      "AAL5 over ATM.";
-  }
-  identity sonetPath {
-    base iana-interface-type;
-  }
-  identity sonetVT {
-    base iana-interface-type;
-  }
-  identity smdsIcip {
-    base iana-interface-type;
-    description
-      "SMDS InterCarrier Interface.";
-  }
-  identity propVirtual {
-    base iana-interface-type;
-    description
-      "Proprietary virtual/internal.";
-    reference
-      "RFC 2863 - The Interfaces Group MIB";
-  }
-  identity propMultiplexor {
-    base iana-interface-type;
-    description
-      "Proprietary multiplexing.";
-    reference
-      "RFC 2863 - The Interfaces Group MIB";
-  }
-  identity ieee80212 {
-    base iana-interface-type;
-    description
-      "100BaseVG.";
-  }
-  identity fibreChannel {
-    base iana-interface-type;
-    description
-      "Fibre Channel.";
-  }
-  identity hippiInterface {
-    base iana-interface-type;
-    description
-      "HIPPI interfaces.";
-  }
-  identity frameRelayInterconnect {
-    base iana-interface-type;
-    status obsolete;
-    description
-      "Obsolete; use either
-       frameRelay(32) or frameRelayService(44).";
-  }
-  identity aflane8023 {
-    base iana-interface-type;
-    description
-      "ATM Emulated LAN for 802.3.";
-  }
-  identity aflane8025 {
-    base iana-interface-type;
-    description
-      "ATM Emulated LAN for 802.5.";
-  }
-  identity cctEmul {
-    base iana-interface-type;
-    description
-      "ATM Emulated circuit.";
-  }
-  identity fastEther {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Obsoleted via RFC 3635.
-       ethernetCsmacd(6) should be used instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity isdn {
-    base iana-interface-type;
-    description
-      "ISDN and X.25.";
-    reference
-      "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN
-                  in the Packet Mode";
-  }
-  identity v11 {
-    base iana-interface-type;
-    description
-      "CCITT V.11/X.21.";
-  }
-  identity v36 {
-    base iana-interface-type;
-    description
-      "CCITT V.36.";
-  }
-  identity g703at64k {
-    base iana-interface-type;
-    description
-      "CCITT G703 at 64Kbps.";
-  }
-  identity g703at2mb {
-    base iana-interface-type;
-    status obsolete;
-    description
-      "Obsolete; see DS1-MIB.";
-  }
-  identity qllc {
-    base iana-interface-type;
-    description
-      "SNA QLLC.";
-  }
-  identity fastEtherFX {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Obsoleted via RFC 3635.
-       ethernetCsmacd(6) should be used instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity channel {
-    base iana-interface-type;
-    description
-      "Channel.";
-  }
-  identity ieee80211 {
-    base iana-interface-type;
-    description
-      "Radio spread spectrum.";
-  }
-  identity ibm370parChan {
-    base iana-interface-type;
-    description
-      "IBM System 360/370 OEMI Channel.";
-  }
-  identity escon {
-    base iana-interface-type;
-    description
-      "IBM Enterprise Systems Connection.";
-  }
-  identity dlsw {
-    base iana-interface-type;
-    description
-      "Data Link Switching.";
-  }
-  identity isdns {
-    base iana-interface-type;
-    description
-      "ISDN S/T interface.";
-  }
-  identity isdnu {
-    base iana-interface-type;
-    description
-      "ISDN U interface.";
-  }
-  identity lapd {
-    base iana-interface-type;
-    description
-      "Link Access Protocol D.";
-  }
-  identity ipSwitch {
-    base iana-interface-type;
-    description
-      "IP Switching Objects.";
-  }
-  identity rsrb {
-    base iana-interface-type;
-    description
-      "Remote Source Route Bridging.";
-  }
-  identity atmLogical {
-    base iana-interface-type;
-    description
-      "ATM Logical Port.";
-    reference
-      "RFC 3606 - Definitions of Supplemental Managed Objects
-                  for ATM Interface";
-  }
-  identity ds0 {
-    base iana-interface-type;
-    description
-      "Digital Signal Level 0.";
-    reference
-      "RFC 2494 - Definitions of Managed Objects for the DS0
-                  and DS0 Bundle Interface Type";
-  }
-  identity ds0Bundle {
-    base iana-interface-type;
-    description
-      "Group of ds0s on the same ds1.";
-    reference
-      "RFC 2494 - Definitions of Managed Objects for the DS0
-                  and DS0 Bundle Interface Type";
-  }
-  identity bsc {
-    base iana-interface-type;
-    description
-      "Bisynchronous Protocol.";
-  }
-  identity async {
-    base iana-interface-type;
-    description
-      "Asynchronous Protocol.";
-  }
-  identity cnr {
-    base iana-interface-type;
-    description
-      "Combat Net Radio.";
-  }
-  identity iso88025Dtr {
-    base iana-interface-type;
-    description
-      "ISO 802.5r DTR.";
-  }
-  identity eplrs {
-    base iana-interface-type;
-    description
-      "Ext Pos Loc Report Sys.";
-  }
-  identity arap {
-    base iana-interface-type;
-    description
-      "Appletalk Remote Access Protocol.";
-  }
-  identity propCnls {
-    base iana-interface-type;
-    description
-      "Proprietary Connectionless Protocol.";
-  }
-  identity hostPad {
-    base iana-interface-type;
-    description
-      "CCITT-ITU X.29 PAD Protocol.";
-  }
-  identity termPad {
-    base iana-interface-type;
-    description
-      "CCITT-ITU X.3 PAD Facility.";
-  }
-  identity frameRelayMPI {
-    base iana-interface-type;
-    description
-      "Multiproto Interconnect over FR.";
-  }
-  identity x213 {
-    base iana-interface-type;
-    description
-      "CCITT-ITU X213.";
-  }
-  identity adsl {
-    base iana-interface-type;
-    description
-      "Asymmetric Digital Subscriber Loop.";
-  }
-  identity radsl {
-    base iana-interface-type;
-    description
-      "Rate-Adapt. Digital Subscriber Loop.";
-  }
-  identity sdsl {
-    base iana-interface-type;
-    description
-      "Symmetric Digital Subscriber Loop.";
-  }
-  identity vdsl {
-    base iana-interface-type;
-    description
-      "Very H-Speed Digital Subscrib. Loop.";
-  }
-  identity iso88025CRFPInt {
-    base iana-interface-type;
-    description
-      "ISO 802.5 CRFP.";
-  }
-  identity myrinet {
-    base iana-interface-type;
-    description
-      "Myricom Myrinet.";
-  }
-  identity voiceEM {
-    base iana-interface-type;
-    description
-      "Voice recEive and transMit.";
-  }
-  identity voiceFXO {
-    base iana-interface-type;
-    description
-      "Voice Foreign Exchange Office.";
-  }
-  identity voiceFXS {
-    base iana-interface-type;
-    description
-      "Voice Foreign Exchange Station.";
-  }
-  identity voiceEncap {
-    base iana-interface-type;
-    description
-      "Voice encapsulation.";
-  }
-  identity voiceOverIp {
-    base iana-interface-type;
-    description
-      "Voice over IP encapsulation.";
-  }
-  identity atmDxi {
-    base iana-interface-type;
-    description
-      "ATM DXI.";
-  }
-  identity atmFuni {
-    base iana-interface-type;
-    description
-      "ATM FUNI.";
-  }
-  identity atmIma {
-    base iana-interface-type;
-    description
-      "ATM IMA.";
-  }
-  identity pppMultilinkBundle {
-    base iana-interface-type;
-    description
-      "PPP Multilink Bundle.";
-  }
-  identity ipOverCdlc {
-    base iana-interface-type;
-    description
-      "IBM ipOverCdlc.";
-  }
-  identity ipOverClaw {
-    base iana-interface-type;
-    description
-      "IBM Common Link Access to Workstn.";
-  }
-  identity stackToStack {
-    base iana-interface-type;
-    description
-      "IBM stackToStack.";
-  }
-  identity virtualIpAddress {
-    base iana-interface-type;
-    description
-      "IBM VIPA.";
-  }
-  identity mpc {
-    base iana-interface-type;
-    description
-      "IBM multi-protocol channel support.";
-  }
-  identity ipOverAtm {
-    base iana-interface-type;
-    description
-      "IBM ipOverAtm.";
-    reference
-      "RFC 2320 - Definitions of Managed Objects for Classical IP
-                  and ARP Over ATM Using SMIv2 (IPOA-MIB)";
-  }
-  identity iso88025Fiber {
-    base iana-interface-type;
-    description
-      "ISO 802.5j Fiber Token Ring.";
-  }
-  identity tdlc {
-    base iana-interface-type;
-    description
-      "IBM twinaxial data link control.";
-  }
-  identity gigabitEthernet {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Obsoleted via RFC 3635.
-       ethernetCsmacd(6) should be used instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity hdlc {
-    base iana-interface-type;
-    description
-      "HDLC.";
-  }
-  identity lapf {
-    base iana-interface-type;
-    description
-      "LAP F.";
-  }
-  identity v37 {
-    base iana-interface-type;
-    description
-      "V.37.";
-  }
-  identity x25mlp {
-    base iana-interface-type;
-    description
-      "Multi-Link Protocol.";
-  }
-  identity x25huntGroup {
-    base iana-interface-type;
-    description
-      "X25 Hunt Group.";
-  }
-  identity transpHdlc {
-    base iana-interface-type;
-    description
-      "Transp HDLC.";
-  }
-  identity interleave {
-    base iana-interface-type;
-    description
-      "Interleave channel.";
-  }
-  identity fast {
-    base iana-interface-type;
-    description
-      "Fast channel.";
-  }
-  identity ip {
-    base iana-interface-type;
-    description
-      "IP (for APPN HPR in IP networks).";
-  }
-  identity docsCableMaclayer {
-    base iana-interface-type;
-    description
-      "CATV Mac Layer.";
-  }
-  identity docsCableDownstream {
-    base iana-interface-type;
-    description
-      "CATV Downstream interface.";
-  }
-  identity docsCableUpstream {
-    base iana-interface-type;
-    description
-      "CATV Upstream interface.";
-  }
-  identity a12MppSwitch {
-    base iana-interface-type;
-    description
-      "Avalon Parallel Processor.";
-  }
-  identity tunnel {
-    base iana-interface-type;
-    description
-      "Encapsulation interface.";
-  }
-  identity coffee {
-    base iana-interface-type;
-    description
-      "Coffee pot.";
-    reference
-      "RFC 2325 - Coffee MIB";
-  }
-  identity ces {
-    base iana-interface-type;
-    description
-      "Circuit Emulation Service.";
-  }
-  identity atmSubInterface {
-    base iana-interface-type;
-    description
-      "ATM Sub Interface.";
-  }
-  identity l2vlan {
-    base iana-interface-type;
-    description
-      "Layer 2 Virtual LAN using 802.1Q.";
-  }
-  identity l3ipvlan {
-    base iana-interface-type;
-    description
-      "Layer 3 Virtual LAN using IP.";
-  }
-  identity l3ipxvlan {
-    base iana-interface-type;
-    description
-      "Layer 3 Virtual LAN using IPX.";
-  }
-  identity digitalPowerline {
-    base iana-interface-type;
-    description
-      "IP over Power Lines.";
-  }
-  identity mediaMailOverIp {
-    base iana-interface-type;
-    description
-      "Multimedia Mail over IP.";
-  }
-  identity dtm {
-    base iana-interface-type;
-    description
-      "Dynamic synchronous Transfer Mode.";
-  }
-  identity dcn {
-    base iana-interface-type;
-    description
-      "Data Communications Network.";
-  }
-  identity ipForward {
-    base iana-interface-type;
-    description
-      "IP Forwarding Interface.";
-  }
-  identity msdsl {
-    base iana-interface-type;
-    description
-      "Multi-rate Symmetric DSL.";
-  }
-  identity ieee1394 {
-    base iana-interface-type;
-
-    description
-      "IEEE1394 High Performance Serial Bus.";
-  }
-  identity if-gsn {
-    base iana-interface-type;
-    description
-      "HIPPI-6400.";
-  }
-  identity dvbRccMacLayer {
-    base iana-interface-type;
-    description
-      "DVB-RCC MAC Layer.";
-  }
-  identity dvbRccDownstream {
-    base iana-interface-type;
-    description
-      "DVB-RCC Downstream Channel.";
-  }
-  identity dvbRccUpstream {
-    base iana-interface-type;
-    description
-      "DVB-RCC Upstream Channel.";
-  }
-  identity atmVirtual {
-    base iana-interface-type;
-    description
-      "ATM Virtual Interface.";
-  }
-  identity mplsTunnel {
-    base iana-interface-type;
-    description
-      "MPLS Tunnel Virtual Interface.";
-  }
-  identity srp {
-    base iana-interface-type;
-    description
-      "Spatial Reuse Protocol.";
-  }
-  identity voiceOverAtm {
-    base iana-interface-type;
-    description
-      "Voice over ATM.";
-  }
-  identity voiceOverFrameRelay {
-    base iana-interface-type;
-    description
-      "Voice Over Frame Relay.";
-  }
-  identity idsl {
-    base iana-interface-type;
-    description
-      "Digital Subscriber Loop over ISDN.";
-  }
-  identity compositeLink {
-    base iana-interface-type;
-    description
-      "Avici Composite Link Interface.";
-  }
-  identity ss7SigLink {
-    base iana-interface-type;
-    description
-      "SS7 Signaling Link.";
-  }
-  identity propWirelessP2P {
-    base iana-interface-type;
-    description
-      "Prop. P2P wireless interface.";
-  }
-  identity frForward {
-    base iana-interface-type;
-    description
-      "Frame Forward Interface.";
-  }
-  identity rfc1483 {
-    base iana-interface-type;
-    description
-      "Multiprotocol over ATM AAL5.";
-    reference
-      "RFC 1483 - Multiprotocol Encapsulation over ATM
-                  Adaptation Layer 5";
-  }
-  identity usb {
-    base iana-interface-type;
-    description
-      "USB Interface.";
-  }
-  identity ieee8023adLag {
-    base iana-interface-type;
-    description
-      "IEEE 802.3ad Link Aggregate.";
-  }
-  identity bgppolicyaccounting {
-    base iana-interface-type;
-    description
-      "BGP Policy Accounting.";
-  }
-  identity frf16MfrBundle {
-    base iana-interface-type;
-    description
-      "FRF.16 Multilink Frame Relay.";
-  }
-  identity h323Gatekeeper {
-    base iana-interface-type;
-    description
-      "H323 Gatekeeper.";
-  }
-  identity h323Proxy {
-    base iana-interface-type;
-    description
-      "H323 Voice and Video Proxy.";
-  }
-  identity mpls {
-    base iana-interface-type;
-    description
-      "MPLS.";
-  }
-  identity mfSigLink {
-    base iana-interface-type;
-    description
-      "Multi-frequency signaling link.";
-  }
-  identity hdsl2 {
-    base iana-interface-type;
-    description
-      "High Bit-Rate DSL - 2nd generation.";
-  }
-  identity shdsl {
-    base iana-interface-type;
-    description
-      "Multirate HDSL2.";
-  }
-  identity ds1FDL {
-    base iana-interface-type;
-    description
-      "Facility Data Link (4Kbps) on a DS1.";
-  }
-  identity pos {
-    base iana-interface-type;
-    description
-      "Packet over SONET/SDH Interface.";
-  }
-  identity dvbAsiIn {
-    base iana-interface-type;
-    description
-      "DVB-ASI Input.";
-  }
-  identity dvbAsiOut {
-    base iana-interface-type;
-    description
-      "DVB-ASI Output.";
-  }
-  identity plc {
-    base iana-interface-type;
-    description
-      "Power Line Communications.";
-  }
-  identity nfas {
-    base iana-interface-type;
-    description
-      "Non-Facility Associated Signaling.";
-  }
-  identity tr008 {
-    base iana-interface-type;
-    description
-      "TR008.";
-  }
-  identity gr303RDT {
-    base iana-interface-type;
-    description
-      "Remote Digital Terminal.";
-  }
-  identity gr303IDT {
-    base iana-interface-type;
-    description
-      "Integrated Digital Terminal.";
-  }
-  identity isup {
-    base iana-interface-type;
-    description
-      "ISUP.";
-  }
-  identity propDocsWirelessMaclayer {
-    base iana-interface-type;
-    description
-      "Cisco proprietary Maclayer.";
-  }
-  identity propDocsWirelessDownstream {
-    base iana-interface-type;
-    description
-      "Cisco proprietary Downstream.";
-  }
-  identity propDocsWirelessUpstream {
-    base iana-interface-type;
-    description
-      "Cisco proprietary Upstream.";
-  }
-  identity hiperlan2 {
-    base iana-interface-type;
-    description
-      "HIPERLAN Type 2 Radio Interface.";
-  }
-  identity propBWAp2Mp {
-    base iana-interface-type;
-    description
-      "PropBroadbandWirelessAccesspt2Multipt (use of this value
-       for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f
-       is deprecated, and ieee80216WMAN(237) should be used
-       instead).";
-  }
-  identity sonetOverheadChannel {
-    base iana-interface-type;
-    description
-      "SONET Overhead Channel.";
-  }
-  identity digitalWrapperOverheadChannel {
-    base iana-interface-type;
-    description
-      "Digital Wrapper.";
-  }
-  identity aal2 {
-    base iana-interface-type;
-    description
-      "ATM adaptation layer 2.";
-  }
-  identity radioMAC {
-    base iana-interface-type;
-    description
-      "MAC layer over radio links.";
-  }
-  identity atmRadio {
-    base iana-interface-type;
-    description
-      "ATM over radio links.";
-  }
-  identity imt {
-    base iana-interface-type;
-    description
-      "Inter-Machine Trunks.";
-  }
-  identity mvl {
-    base iana-interface-type;
-    description
-      "Multiple Virtual Lines DSL.";
-  }
-  identity reachDSL {
-    base iana-interface-type;
-    description
-      "Long Reach DSL.";
-  }
-  identity frDlciEndPt {
-    base iana-interface-type;
-    description
-      "Frame Relay DLCI End Point.";
-  }
-  identity atmVciEndPt {
-    base iana-interface-type;
-    description
-      "ATM VCI End Point.";
-  }
-  identity opticalChannel {
-    base iana-interface-type;
-    description
-      "Optical Channel.";
-  }
-  identity opticalTransport {
-    base iana-interface-type;
-    description
-      "Optical Transport.";
-  }
-  identity propAtm {
-    base iana-interface-type;
-    description
-      "Proprietary ATM.";
-  }
-  identity voiceOverCable {
-    base iana-interface-type;
-    description
-      "Voice Over Cable Interface.";
-  }
-  identity infiniband {
-    base iana-interface-type;
-    description
-      "Infiniband.";
-  }
-  identity teLink {
-    base iana-interface-type;
-    description
-      "TE Link.";
-  }
-  identity q2931 {
-    base iana-interface-type;
-    description
-      "Q.2931.";
-  }
-  identity virtualTg {
-    base iana-interface-type;
-    description
-      "Virtual Trunk Group.";
-  }
-  identity sipTg {
-    base iana-interface-type;
-    description
-      "SIP Trunk Group.";
-  }
-  identity sipSig {
-    base iana-interface-type;
-    description
-      "SIP Signaling.";
-  }
-  identity docsCableUpstreamChannel {
-    base iana-interface-type;
-    description
-      "CATV Upstream Channel.";
-  }
-  identity econet {
-    base iana-interface-type;
-    description
-      "Acorn Econet.";
-  }
-  identity pon155 {
-    base iana-interface-type;
-    description
-      "FSAN 155Mb Symetrical PON interface.";
-  }
-  identity pon622 {
-    base iana-interface-type;
-    description
-      "FSAN 622Mb Symetrical PON interface.";
-  }
-  identity bridge {
-    base iana-interface-type;
-    description
-      "Transparent bridge interface.";
-  }
-  identity linegroup {
-    base iana-interface-type;
-    description
-      "Interface common to multiple lines.";
-  }
-  identity voiceEMFGD {
-    base iana-interface-type;
-    description
-      "Voice E&M Feature Group D.";
-  }
-  identity voiceFGDEANA {
-    base iana-interface-type;
-    description
-      "Voice FGD Exchange Access North American.";
-  }
-  identity voiceDID {
-    base iana-interface-type;
-    description
-      "Voice Direct Inward Dialing.";
-  }
-  identity mpegTransport {
-    base iana-interface-type;
-    description
-      "MPEG transport interface.";
-  }
-  identity sixToFour {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "6to4 interface (DEPRECATED).";
-    reference
-      "RFC 4087 - IP Tunnel MIB";
-  }
-  identity gtp {
-    base iana-interface-type;
-    description
-      "GTP (GPRS Tunneling Protocol).";
-  }
-  identity pdnEtherLoop1 {
-    base iana-interface-type;
-    description
-      "Paradyne EtherLoop 1.";
-  }
-  identity pdnEtherLoop2 {
-    base iana-interface-type;
-    description
-      "Paradyne EtherLoop 2.";
-  }
-  identity opticalChannelGroup {
-    base iana-interface-type;
-    description
-      "Optical Channel Group.";
-  }
-  identity homepna {
-    base iana-interface-type;
-    description
-      "HomePNA ITU-T G.989.";
-  }
-  identity gfp {
-    base iana-interface-type;
-    description
-      "Generic Framing Procedure (GFP).";
-  }
-  identity ciscoISLvlan {
-    base iana-interface-type;
-    description
-      "Layer 2 Virtual LAN using Cisco ISL.";
-  }
-  identity actelisMetaLOOP {
-    base iana-interface-type;
-    description
-      "Acteleis proprietary MetaLOOP High Speed Link.";
-  }
-  identity fcipLink {
-    base iana-interface-type;
-    description
-      "FCIP Link.";
-  }
-  identity rpr {
-    base iana-interface-type;
-    description
-      "Resilient Packet Ring Interface Type.";
-  }
-  identity qam {
-    base iana-interface-type;
-    description
-      "RF Qam Interface.";
-  }
-  identity lmp {
-    base iana-interface-type;
-    description
-      "Link Management Protocol.";
-    reference
-      "RFC 4327 - Link Management Protocol (LMP) Management
-                  Information Base (MIB)";
-  }
-  identity cblVectaStar {
-    base iana-interface-type;
-    description
-      "Cambridge Broadband Networks Limited VectaStar.";
-  }
-  identity docsCableMCmtsDownstream {
-    base iana-interface-type;
-    description
-      "CATV Modular CMTS Downstream Interface.";
-  }
-  identity adsl2 {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Asymmetric Digital Subscriber Loop Version 2
-       (DEPRECATED/OBSOLETED - please use adsl2plus(238)
-       instead).";
-    reference
-      "RFC 4706 - Definitions of Managed Objects for Asymmetric
-                  Digital Subscriber Line 2 (ADSL2)";
-  }
-  identity macSecControlledIF {
-    base iana-interface-type;
-    description
-      "MACSecControlled.";
-  }
-  identity macSecUncontrolledIF {
-    base iana-interface-type;
-    description
-      "MACSecUncontrolled.";
-  }
-  identity aviciOpticalEther {
-    base iana-interface-type;
-    description
-      "Avici Optical Ethernet Aggregate.";
-  }
-  identity atmbond {
-    base iana-interface-type;
-    description
-      "atmbond.";
-  }
-  identity voiceFGDOS {
-    base iana-interface-type;
-    description
-      "Voice FGD Operator Services.";
-  }
-  identity mocaVersion1 {
-    base iana-interface-type;
-    description
-      "MultiMedia over Coax Alliance (MoCA) Interface
-       as documented in information provided privately to IANA.";
-  }
-  identity ieee80216WMAN {
-    base iana-interface-type;
-    description
-      "IEEE 802.16 WMAN interface.";
-  }
-  identity adsl2plus {
-    base iana-interface-type;
-    description
-      "Asymmetric Digital Subscriber Loop Version 2 -
-       Version 2 Plus and all variants.";
-  }
-  identity dvbRcsMacLayer {
-    base iana-interface-type;
-    description
-      "DVB-RCS MAC Layer.";
-    reference
-      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-  }
-  identity dvbTdm {
-    base iana-interface-type;
-    description
-      "DVB Satellite TDM.";
-    reference
-      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-  }
-  identity dvbRcsTdma {
-    base iana-interface-type;
-    description
-      "DVB-RCS TDMA.";
-    reference
-      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-  }
-  identity x86Laps {
-    base iana-interface-type;
-    description
-      "LAPS based on ITU-T X.86/Y.1323.";
-  }
-  identity wwanPP {
-    base iana-interface-type;
-    description
-      "3GPP WWAN.";
-  }
-  identity wwanPP2 {
-    base iana-interface-type;
-    description
-      "3GPP2 WWAN.";
-  }
-  identity voiceEBS {
-    base iana-interface-type;
-    description
-      "Voice P-phone EBS physical interface.";
-  }
-  identity ifPwType {
-    base iana-interface-type;
-    description
-      "Pseudowire interface type.";
-    reference
-      "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)";
-  }
-  identity ilan {
-    base iana-interface-type;
-    description
-      "Internal LAN on a bridge per IEEE 802.1ap.";
-  }
-  identity pip {
-    base iana-interface-type;
-    description
-      "Provider Instance Port on a bridge per IEEE 802.1ah PBB.";
-  }
-  identity aluELP {
-    base iana-interface-type;
-    description
-      "Alcatel-Lucent Ethernet Link Protection.";
-  }
-  identity gpon {
-    base iana-interface-type;
-    description
-      "Gigabit-capable passive optical networks (G-PON) as per
-       ITU-T G.948.";
-  }
-  identity vdsl2 {
-    base iana-interface-type;
-    description
-      "Very high speed digital subscriber line Version 2
-       (as per ITU-T Recommendation G.993.2).";
-    reference
-      "RFC 5650 - Definitions of Managed Objects for Very High
-                  Speed Digital Subscriber Line 2 (VDSL2)";
-  }
-  identity capwapDot11Profile {
-    base iana-interface-type;
-    description
-      "WLAN Profile Interface.";
-    reference
-      "RFC 5834 - Control and Provisioning of Wireless Access
-                  Points (CAPWAP) Protocol Binding MIB for
-                  IEEE 802.11";
-  }
-  identity capwapDot11Bss {
-    base iana-interface-type;
-    description
-      "WLAN BSS Interface.";
-    reference
-      "RFC 5834 - Control and Provisioning of Wireless Access
-                  Points (CAPWAP) Protocol Binding MIB for
-                  IEEE 802.11";
-  }
-  identity capwapWtpVirtualRadio {
-    base iana-interface-type;
-    description
-      "WTP Virtual Radio Interface.";
-    reference
-      "RFC 5833 - Control and Provisioning of Wireless Access
-                  Points (CAPWAP) Protocol Base MIB";
-  }
-  identity bits {
-    base iana-interface-type;
-    description
-      "bitsport.";
-  }
-  identity docsCableUpstreamRfPort {
-    base iana-interface-type;
-    description
-      "DOCSIS CATV Upstream RF Port.";
-  }
-  identity cableDownstreamRfPort {
-    base iana-interface-type;
-    description
-      "CATV downstream RF Port.";
-  }
-  identity vmwareVirtualNic {
-    base iana-interface-type;
-    description
-      "VMware Virtual Network Interface.";
-  }
-  identity ieee802154 {
-    base iana-interface-type;
-    description
-      "IEEE 802.15.4 WPAN interface.";
-    reference
-      "IEEE 802.15.4-2006";
-  }
-  identity otnOdu {
-    base iana-interface-type;
-    description
-      "OTN Optical Data Unit.";
-  }
-  identity otnOtu {
-    base iana-interface-type;
-    description
-      "OTN Optical channel Transport Unit.";
-  }
-  identity ifVfiType {
-    base iana-interface-type;
-    description
-      "VPLS Forwarding Instance Interface Type.";
-  }
-  identity g9981 {
-    base iana-interface-type;
-    description
-      "G.998.1 bonded interface.";
-  }
-  identity g9982 {
-    base iana-interface-type;
-    description
-      "G.998.2 bonded interface.";
-  }
-  identity g9983 {
-    base iana-interface-type;
-    description
-      "G.998.3 bonded interface.";
-  }
-
-  identity aluEpon {
-    base iana-interface-type;
-    description
-      "Ethernet Passive Optical Networks (E-PON).";
-  }
-  identity aluEponOnu {
-    base iana-interface-type;
-    description
-      "EPON Optical Network Unit.";
-  }
-  identity aluEponPhysicalUni {
-    base iana-interface-type;
-    description
-      "EPON physical User to Network interface.";
-  }
-  identity aluEponLogicalLink {
-    base iana-interface-type;
-    description
-      "The emulation of a point-to-point link over the EPON
-       layer.";
-  }
-  identity aluGponOnu {
-    base iana-interface-type;
-    description
-      "GPON Optical Network Unit.";
-    reference
-      "ITU-T G.984.2";
-  }
-  identity aluGponPhysicalUni {
-    base iana-interface-type;
-    description
-      "GPON physical User to Network interface.";
-    reference
-      "ITU-T G.984.2";
-  }
-  identity vmwareNicTeam {
-    base iana-interface-type;
-    description
-      "VMware NIC Team.";
-  }
-  identity docsOfdmDownstream {
-    base iana-interface-type;
-    description
-      "CATV Downstream OFDM interface.";
-  }
-  identity docsOfdmaUpstream {
-    base iana-interface-type;
-    description
-      "CATV Upstream OFDMA interface.";
-  }
-  identity gfast {
-    base iana-interface-type;
-    description
-      "G.fast port.";
-    reference
-      "ITU-T G.9701";
-  }
-  identity sdci {
-    base iana-interface-type;
-    description
-      "SDCI (IO-Link).";
-    reference
-      "IEC 61131-9 Edition 1.0 2013-09";
-  }
-  identity xboxWireless {
-    base iana-interface-type;
-    description
-      "Xbox wireless.";
-  }
-  identity fastdsl {
-    base iana-interface-type;
-    description
-      "FastDSL.";
-    reference
-      "BBF TR-355";
-  }
-  identity docsCableScte55d1FwdOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-1 OOB Forward Channel.";
-  }
-  identity docsCableScte55d1RetOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-1 OOB Return Channel.";
-  }
-  identity docsCableScte55d2DsOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-2 OOB Downstream Channel.";
-  }
-  identity docsCableScte55d2UsOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-2 OOB Upstream Channel.";
-  }
-  identity docsCableNdf {
-    base iana-interface-type;
-    description
-      "Cable Narrowband Digital Forward.";
-  }
-  identity docsCableNdr {
-    base iana-interface-type;
-    description
-      "Cable Narrowband Digital Return.";
-  }
-  identity ptm {
-    base iana-interface-type;
-    description
-      "Packet Transfer Mode.";
-  }
-}
-
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-inet-types@2013-07-15.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-inet-types@2013-07-15.yang
deleted file mode 100644 (file)
index 5c6f139..0000000
+++ /dev/null
@@ -1,457 +0,0 @@
-module ietf-inet-types {
-
-  namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types";
-  prefix "inet";
-
-  organization
-   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-
-  contact
-   "WG Web:   <http://tools.ietf.org/wg/netmod/>
-    WG List:  <mailto:netmod@ietf.org>
-
-    WG Chair: David Kessens
-              <mailto:david.kessens@nsn.com>
-
-    WG Chair: Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>
-
-    Editor:   Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>";
-
-  description
-   "This module contains a collection of generally useful derived
-    YANG data types for Internet addresses and related things.
-
-    Copyright (c) 2013 IETF Trust and the persons identified as
-    authors of the code.  All rights reserved.
-
-    Redistribution and use in source and binary forms, with or
-    without modification, is permitted pursuant to, and subject
-    to the license terms contained in, the Simplified BSD License
-    set forth in Section 4.c of the IETF Trust's Legal Provisions
-    Relating to IETF Documents
-    (http://trustee.ietf.org/license-info).
-
-    This version of this YANG module is part of RFC 6991; see
-    the RFC itself for full legal notices.";
-
-  revision 2013-07-15 {
-    description
-     "This revision adds the following new data types:
-      - ip-address-no-zone
-      - ipv4-address-no-zone
-      - ipv6-address-no-zone";
-    reference
-     "RFC 6991: Common YANG Data Types";
-  }
-
-  revision 2010-09-24 {
-    description
-     "Initial revision.";
-    reference
-     "RFC 6021: Common YANG Data Types";
-  }
-
-  /*** collection of types related to protocol fields ***/
-
-  typedef ip-version {
-    type enumeration {
-      enum unknown {
-        value "0";
-        description
-         "An unknown or unspecified version of the Internet
-          protocol.";
-      }
-      enum ipv4 {
-        value "1";
-        description
-         "The IPv4 protocol as defined in RFC 791.";
-      }
-      enum ipv6 {
-        value "2";
-        description
-         "The IPv6 protocol as defined in RFC 2460.";
-      }
-    }
-    description
-     "This value represents the version of the IP protocol.
-
-      In the value set and its semantics, this type is equivalent
-      to the InetVersion textual convention of the SMIv2.";
-    reference
-     "RFC  791: Internet Protocol
-      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
-      RFC 4001: Textual Conventions for Internet Network Addresses";
-  }
-
-  typedef dscp {
-    type uint8 {
-      range "0..63";
-    }
-    description
-     "The dscp type represents a Differentiated Services Code Point
-      that may be used for marking packets in a traffic stream.
-      In the value set and its semantics, this type is equivalent
-      to the Dscp textual convention of the SMIv2.";
-    reference
-     "RFC 3289: Management Information Base for the Differentiated
-                Services Architecture
-      RFC 2474: Definition of the Differentiated Services Field
-                (DS Field) in the IPv4 and IPv6 Headers
-      RFC 2780: IANA Allocation Guidelines For Values In
-                the Internet Protocol and Related Headers";
-  }
-
-  typedef ipv6-flow-label {
-    type uint32 {
-      range "0..1048575";
-    }
-    description
-     "The ipv6-flow-label type represents the flow identifier or Flow
-      Label in an IPv6 packet header that may be used to
-      discriminate traffic flows.
-
-      In the value set and its semantics, this type is equivalent
-      to the IPv6FlowLabel textual convention of the SMIv2.";
-    reference
-     "RFC 3595: Textual Conventions for IPv6 Flow Label
-      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification";
-  }
-
-  typedef port-number {
-    type uint16 {
-      range "0..65535";
-    }
-    description
-     "The port-number type represents a 16-bit port number of an
-      Internet transport-layer protocol such as UDP, TCP, DCCP, or
-      SCTP.  Port numbers are assigned by IANA.  A current list of
-      all assignments is available from <http://www.iana.org/>.
-
-      Note that the port number value zero is reserved by IANA.  In
-      situations where the value zero does not make sense, it can
-      be excluded by subtyping the port-number type.
-      In the value set and its semantics, this type is equivalent
-      to the InetPortNumber textual convention of the SMIv2.";
-    reference
-     "RFC  768: User Datagram Protocol
-      RFC  793: Transmission Control Protocol
-      RFC 4960: Stream Control Transmission Protocol
-      RFC 4340: Datagram Congestion Control Protocol (DCCP)
-      RFC 4001: Textual Conventions for Internet Network Addresses";
-  }
-
-  /*** collection of types related to autonomous systems ***/
-
-  typedef as-number {
-    type uint32;
-    description
-     "The as-number type represents autonomous system numbers
-      which identify an Autonomous System (AS).  An AS is a set
-      of routers under a single technical administration, using
-      an interior gateway protocol and common metrics to route
-      packets within the AS, and using an exterior gateway
-      protocol to route packets to other ASes.  IANA maintains
-      the AS number space and has delegated large parts to the
-      regional registries.
-
-      Autonomous system numbers were originally limited to 16
-      bits.  BGP extensions have enlarged the autonomous system
-      number space to 32 bits.  This type therefore uses an uint32
-      base type without a range restriction in order to support
-      a larger autonomous system number space.
-
-      In the value set and its semantics, this type is equivalent
-      to the InetAutonomousSystemNumber textual convention of
-      the SMIv2.";
-    reference
-     "RFC 1930: Guidelines for creation, selection, and registration
-                of an Autonomous System (AS)
-      RFC 4271: A Border Gateway Protocol 4 (BGP-4)
-      RFC 4001: Textual Conventions for Internet Network Addresses
-      RFC 6793: BGP Support for Four-Octet Autonomous System (AS)
-                Number Space";
-  }
-
-  /*** collection of types related to IP addresses and hostnames ***/
-
-  typedef ip-address {
-    type union {
-      type inet:ipv4-address;
-      type inet:ipv6-address;
-    }
-    description
-     "The ip-address type represents an IP address and is IP
-      version neutral.  The format of the textual representation
-      implies the IP version.  This type supports scoped addresses
-      by allowing zone identifiers in the address format.";
-    reference
-     "RFC 4007: IPv6 Scoped Address Architecture";
-  }
-
-  typedef ipv4-address {
-    type string {
-      pattern
-        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-      +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-      + '(%[\p{N}\p{L}]+)?';
-    }
-    description
-      "The ipv4-address type represents an IPv4 address in
-       dotted-quad notation.  The IPv4 address may include a zone
-       index, separated by a % sign.
-
-       The zone index is used to disambiguate identical address
-       values.  For link-local addresses, the zone index will
-       typically be the interface index number or the name of an
-       interface.  If the zone index is not present, the default
-       zone of the device will be used.
-
-       The canonical format for the zone index is the numerical
-       format";
-  }
-
-  typedef ipv6-address {
-    type string {
-      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
-            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
-            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
-            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
-            + '(%[\p{N}\p{L}]+)?';
-      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
-            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
-            + '(%.+)?';
-    }
-    description
-     "The ipv6-address type represents an IPv6 address in full,
-      mixed, shortened, and shortened-mixed notation.  The IPv6
-      address may include a zone index, separated by a % sign.
-
-      The zone index is used to disambiguate identical address
-      values.  For link-local addresses, the zone index will
-      typically be the interface index number or the name of an
-      interface.  If the zone index is not present, the default
-      zone of the device will be used.
-
-      The canonical format of IPv6 addresses uses the textual
-      representation defined in Section 4 of RFC 5952.  The
-      canonical format for the zone index is the numerical
-      format as described in Section 11.2 of RFC 4007.";
-    reference
-     "RFC 4291: IP Version 6 Addressing Architecture
-      RFC 4007: IPv6 Scoped Address Architecture
-      RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  typedef ip-address-no-zone {
-    type union {
-      type inet:ipv4-address-no-zone;
-      type inet:ipv6-address-no-zone;
-    }
-    description
-     "The ip-address-no-zone type represents an IP address and is
-      IP version neutral.  The format of the textual representation
-      implies the IP version.  This type does not support scoped
-      addresses since it does not allow zone identifiers in the
-      address format.";
-    reference
-     "RFC 4007: IPv6 Scoped Address Architecture";
-  }
-
-  typedef ipv4-address-no-zone {
-    type inet:ipv4-address {
-      pattern '[0-9\.]*';
-    }
-    description
-      "An IPv4 address without a zone index.  This type, derived from
-       ipv4-address, may be used in situations where the zone is
-       known from the context and hence no zone index is needed.";
-  }
-
-  typedef ipv6-address-no-zone {
-    type inet:ipv6-address {
-      pattern '[0-9a-fA-F:\.]*';
-    }
-    description
-      "An IPv6 address without a zone index.  This type, derived from
-       ipv6-address, may be used in situations where the zone is
-       known from the context and hence no zone index is needed.";
-    reference
-     "RFC 4291: IP Version 6 Addressing Architecture
-      RFC 4007: IPv6 Scoped Address Architecture
-      RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  typedef ip-prefix {
-    type union {
-      type inet:ipv4-prefix;
-      type inet:ipv6-prefix;
-    }
-    description
-     "The ip-prefix type represents an IP prefix and is IP
-      version neutral.  The format of the textual representations
-      implies the IP version.";
-  }
-
-  typedef ipv4-prefix {
-    type string {
-      pattern
-         '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-       +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-       + '/(([0-9])|([1-2][0-9])|(3[0-2]))';
-    }
-    description
-     "The ipv4-prefix type represents an IPv4 address prefix.
-      The prefix length is given by the number following the
-      slash character and must be less than or equal to 32.
-
-      A prefix length value of n corresponds to an IP address
-      mask that has n contiguous 1-bits from the most
-      significant bit (MSB) and all other bits set to 0.
-
-      The canonical format of an IPv4 prefix has all bits of
-      the IPv4 address set to zero that are not part of the
-      IPv4 prefix.";
-  }
-
-  typedef ipv6-prefix {
-    type string {
-      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
-            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
-            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
-            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
-            + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))';
-      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
-            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
-            + '(/.+)';
-    }
-    description
-     "The ipv6-prefix type represents an IPv6 address prefix.
-      The prefix length is given by the number following the
-      slash character and must be less than or equal to 128.
-
-      A prefix length value of n corresponds to an IP address
-      mask that has n contiguous 1-bits from the most
-      significant bit (MSB) and all other bits set to 0.
-
-      The IPv6 address should have all bits that do not belong
-      to the prefix set to zero.
-
-      The canonical format of an IPv6 prefix has all bits of
-      the IPv6 address set to zero that are not part of the
-      IPv6 prefix.  Furthermore, the IPv6 address is represented
-      as defined in Section 4 of RFC 5952.";
-    reference
-     "RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  /*** collection of domain name and URI types ***/
-
-  typedef domain-name {
-    type string {
-      pattern
-        '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
-      + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
-      + '|\.';
-      length "1..253";
-    }
-    description
-     "The domain-name type represents a DNS domain name.  The
-      name SHOULD be fully qualified whenever possible.
-
-      Internet domain names are only loosely specified.  Section
-      3.5 of RFC 1034 recommends a syntax (modified in Section
-      2.1 of RFC 1123).  The pattern above is intended to allow
-      for current practice in domain name use, and some possible
-      future expansion.  It is designed to hold various types of
-      domain names, including names used for A or AAAA records
-      (host names) and other records, such as SRV records.  Note
-      that Internet host names have a stricter syntax (described
-      in RFC 952) than the DNS recommendations in RFCs 1034 and
-      1123, and that systems that want to store host names in
-      schema nodes using the domain-name type are recommended to
-      adhere to this stricter standard to ensure interoperability.
-
-      The encoding of DNS names in the DNS protocol is limited
-      to 255 characters.  Since the encoding consists of labels
-      prefixed by a length bytes and there is a trailing NULL
-      byte, only 253 characters can appear in the textual dotted
-      notation.
-
-      The description clause of schema nodes using the domain-name
-      type MUST describe when and how these names are resolved to
-      IP addresses.  Note that the resolution of a domain-name value
-      may require to query multiple DNS records (e.g., A for IPv4
-      and AAAA for IPv6).  The order of the resolution process and
-      which DNS record takes precedence can either be defined
-      explicitly or may depend on the configuration of the
-      resolver.
-
-      Domain-name values use the US-ASCII encoding.  Their canonical
-      format uses lowercase US-ASCII characters.  Internationalized
-      domain names MUST be A-labels as per RFC 5890.";
-    reference
-     "RFC  952: DoD Internet Host Table Specification
-      RFC 1034: Domain Names - Concepts and Facilities
-      RFC 1123: Requirements for Internet Hosts -- Application
-                and Support
-      RFC 2782: A DNS RR for specifying the location of services
-                (DNS SRV)
-      RFC 5890: Internationalized Domain Names in Applications
-                (IDNA): Definitions and Document Framework";
-  }
-
-  typedef host {
-    type union {
-      type inet:ip-address;
-      type inet:domain-name;
-    }
-    description
-     "The host type represents either an IP address or a DNS
-      domain name.";
-  }
-
-  typedef uri {
-    type string;
-    description
-     "The uri type represents a Uniform Resource Identifier
-      (URI) as defined by STD 66.
-
-      Objects using the uri type MUST be in US-ASCII encoding,
-      and MUST be normalized as described by RFC 3986 Sections
-      6.2.1, 6.2.2.1, and 6.2.2.2.  All unnecessary
-      percent-encoding is removed, and all case-insensitive
-      characters are set to lowercase except for hexadecimal
-      digits, which are normalized to uppercase as described in
-      Section 6.2.2.1.
-
-      The purpose of this normalization is to help provide
-      unique URIs.  Note that this normalization is not
-      sufficient to provide uniqueness.  Two URIs that are
-      textually distinct after this normalization may still be
-      equivalent.
-
-      Objects using the uri type may restrict the schemes that
-      they permit.  For example, 'data:' and 'urn:' schemes
-      might not be appropriate.
-
-      A zero-length URI is not a valid URI.  This can be used to
-      express 'URI absent' where required.
-
-      In the value set and its semantics, this type is equivalent
-      to the Uri SMIv2 textual convention defined in RFC 5017.";
-    reference
-     "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
-      RFC 3305: Report from the Joint W3C/IETF URI Planning Interest
-                Group: Uniform Resource Identifiers (URIs), URLs,
-                and Uniform Resource Names (URNs): Clarifications
-                and Recommendations
-      RFC 5017: MIB Textual Conventions for Uniform Resource
-                Identifiers (URIs)";
-  }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-interfaces@2014-05-08.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-interfaces@2014-05-08.yang
deleted file mode 100644 (file)
index 5f42b15..0000000
+++ /dev/null
@@ -1,603 +0,0 @@
-module ietf-interfaces {
-  namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces";
-  prefix if;
-  import ietf-yang-types {
-    prefix yang;
-  }
-  organization
-    "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-  contact
-    "WG Web:   <http://tools.ietf.org/wg/netmod/>
-     WG List:  <mailto:netmod@ietf.org>
-     WG Chair: Thomas Nadeau
-               <mailto:tnadeau@lucidvision.com>
-     WG Chair: Juergen Schoenwaelder
-               <mailto:j.schoenwaelder@jacobs-university.de>
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>";
-  description
-    "This module contains a collection of YANG definitions for
-     managing network interfaces.
-     Copyright (c) 2014 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-     This version of this YANG module is part of RFC 7223; see
-     the RFC itself for full legal notices.";
-  revision 2014-05-08 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 7223: A YANG Data Model for Interface Management";
-  }
-  /*
-   * Typedefs
-   */
-  typedef interface-ref {
-    type leafref {
-      path "/if:interfaces/if:interface/if:name";
-    }
-    description
-      "This type is used by data models that need to reference
-       configured interfaces.";
-  }
-  typedef interface-state-ref {
-    type leafref {
-      path "/if:interfaces-state/if:interface/if:name";
-    }
-    description
-      "This type is used by data models that need to reference
-       the operationally present interfaces.";
-  }
-  /*
-   * Identities
-   */
-  identity interface-type {
-    description
-      "Base identity from which specific interface types are
-       derived.";
-  }
-  /*
-   * Features
-   */
-  feature arbitrary-names {
-    description
-      "This feature indicates that the device allows user-controlled
-       interfaces to be named arbitrarily.";
-  }
-  feature pre-provisioning {
-    description
-      "This feature indicates that the device supports
-       pre-provisioning of interface configuration, i.e., it is
-       possible to configure an interface whose physical interface
-       hardware is not present on the device.";
-  }
-  feature if-mib {
-    description
-      "This feature indicates that the device implements
-       the IF-MIB.";
-    reference
-      "RFC 2863: The Interfaces Group MIB";
-  }
-  /*
-   * Configuration data nodes
-   */
-  container interfaces {
-    description
-      "Interface configuration parameters.";
-    list interface {
-      key "name";
-      description
-        "The list of configured interfaces on the device.
-         The operational state of an interface is available in the
-         /interfaces-state/interface list.  If the configuration of a
-         system-controlled interface cannot be used by the system
-         (e.g., the interface hardware present does not match the
-         interface type), then the configuration is not applied to
-         the system-controlled interface shown in the
-         /interfaces-state/interface list.  If the configuration
-         of a user-controlled interface cannot be used by the system,
-         the configured interface is not instantiated in the
-         /interfaces-state/interface list.";
-     leaf name {
-        type string;
-        description
-          "The name of the interface.
-           A device MAY restrict the allowed values for this leaf,
-           possibly depending on the type of the interface.
-           For system-controlled interfaces, this leaf is the
-           device-specific name of the interface.  The 'config false'
-           list /interfaces-state/interface contains the currently
-           existing interfaces on the device.
-           If a client tries to create configuration for a
-           system-controlled interface that is not present in the
-           /interfaces-state/interface list, the server MAY reject
-           the request if the implementation does not support
-           pre-provisioning of interfaces or if the name refers to
-           an interface that can never exist in the system.  A
-           NETCONF server MUST reply with an rpc-error with the
-           error-tag 'invalid-value' in this case.
-           If the device supports pre-provisioning of interface
-           configuration, the 'pre-provisioning' feature is
-           advertised.
-           If the device allows arbitrarily named user-controlled
-           interfaces, the 'arbitrary-names' feature is advertised.
-           When a configured user-controlled interface is created by
-           the system, it is instantiated with the same name in the
-           /interface-state/interface list.";
-      }
-      leaf description {
-        type string;
-        description
-          "A textual description of the interface.
-           A server implementation MAY map this leaf to the ifAlias
-           MIB object.  Such an implementation needs to use some
-           mechanism to handle the differences in size and characters
-           allowed between this leaf and ifAlias.  The definition of
-           such a mechanism is outside the scope of this document.
-           Since ifAlias is defined to be stored in non-volatile
-           storage, the MIB implementation MUST map ifAlias to the
-           value of 'description' in the persistently stored
-           datastore.
-           Specifically, if the device supports ':startup', when
-           ifAlias is read the device MUST return the value of
-           'description' in the 'startup' datastore, and when it is
-           written, it MUST be written to the 'running' and 'startup'
-           datastores.  Note that it is up to the implementation to
-           decide whether to modify this single leaf in 'startup' or
-           perform an implicit copy-config from 'running' to
-           'startup'.
-           If the device does not support ':startup', ifAlias MUST
-           be mapped to the 'description' leaf in the 'running'
-           datastore.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAlias";
-      }
-      leaf type {
-        type identityref {
-          base interface-type;
-        }
-        mandatory true;
-        description
-          "The type of the interface.
-           When an interface entry is created, a server MAY
-           initialize the type leaf with a valid value, e.g., if it
-           is possible to derive the type from the name of the
-           interface.
-           If a client tries to set the type of an interface to a
-           value that can never be used by the system, e.g., if the
-           type is not supported or if the type does not match the
-           name of the interface, the server MUST reject the request.
-           A NETCONF server MUST reply with an rpc-error with the
-           error-tag 'invalid-value' in this case.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifType";
-      }
-      leaf enabled {
-        type boolean;
-        default "true";
-        description
-          "This leaf contains the configured, desired state of the
-           interface.
-           Systems that implement the IF-MIB use the value of this
-           leaf in the 'running' datastore to set
-           IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
-           has been initialized, as described in RFC 2863.
-           Changes in this leaf in the 'running' datastore are
-           reflected in ifAdminStatus, but if ifAdminStatus is
-           changed over SNMP, this leaf is not affected.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-      }
-      leaf link-up-down-trap-enable {
-        //if-feature if-mib;
-        type enumeration {
-          enum enabled {
-            value 1;
-          }
-          enum disabled {
-            value 2;
-          }
-        }
-        description
-          "Controls whether linkUp/linkDown SNMP notifications
-           should be generated for this interface.
-           If this node is not configured, the value 'enabled' is
-           operationally used by the server for interfaces that do
-           not operate on top of any other interface (i.e., there are
-           no 'lower-layer-if' entries), and 'disabled' otherwise.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifLinkUpDownTrapEnable";
-      }
-    }
-  }
-  /*
-   * Operational state data nodes
-   */
-  container interfaces-state {
-    config false;
-    description
-      "Data nodes for the operational state of interfaces.";
-    list interface {
-      key "name";
-      description
-        "The list of interfaces on the device.
-         System-controlled interfaces created by the system are
-         always present in this list, whether they are configured or
-         not.";
-      leaf name {
-        type string;
-        description
-          "The name of the interface.
-           A server implementation MAY map this leaf to the ifName
-           MIB object.  Such an implementation needs to use some
-           mechanism to handle the differences in size and characters
-           allowed between this leaf and ifName.  The definition of
-           such a mechanism is outside the scope of this document.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifName";
-      }
-      leaf type {
-        type identityref {
-          base interface-type;
-        }
-        mandatory true;
-        description
-          "The type of the interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifType";
-      }
-      leaf admin-status {
-        //if-feature if-mib;
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-            description
-              "Not ready to pass packets and not in some test mode.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.";
-          }
-        }
-        mandatory true;
-        description
-          "The desired state of the interface.
-           This leaf has the same read semantics as ifAdminStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-      }
-      leaf oper-status {
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-            description
-              "The interface does not pass any packets.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.  No operational packets can
-               be passed.";
-          }
-          enum unknown {
-            value 4;
-            description
-              "Status cannot be determined for some reason.";
-          }
-          enum dormant {
-            value 5;
-            description
-              "Waiting for some external event.";
-          }
-          enum not-present {
-            value 6;
-            description
-              "Some component (typically hardware) is missing.";
-          }
-          enum lower-layer-down {
-            value 7;
-            description
-              "Down due to state of lower-layer interface(s).";
-          }
-        }
-        mandatory true;
-        description
-          "The current operational state of the interface.
-           This leaf has the same semantics as ifOperStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOperStatus";
-      }
-      leaf last-change {
-        type yang:date-and-time;
-        description
-          "The time the interface entered its current operational
-           state.  If the current state was entered prior to the
-           last re-initialization of the local network management
-           subsystem, then this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifLastChange";
-      }
-      leaf if-index {
-        //if-feature if-mib;
-        type int32 {
-          range "1..2147483647";
-        }
-        mandatory true;
-        description
-          "The ifIndex value for the ifEntry represented by this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifIndex";
-      }
-      leaf phys-address {
-        type yang:phys-address;
-        description
-          "The interface's address at its protocol sub-layer.  For
-           example, for an 802.x interface, this object normally
-           contains a Media Access Control (MAC) address.  The
-           interface's media-specific modules must define the bit
-           and byte ordering and the format of the value of this
-           object.  For interfaces that do not have such an address
-           (e.g., a serial line), this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
-      }
-      leaf-list higher-layer-if {
-        type interface-state-ref;
-        description
-          "A list of references to interfaces layered on top of this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-      leaf-list lower-layer-if {
-        type interface-state-ref;
-        description
-          "A list of references to interfaces layered underneath this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-      leaf speed {
-        type yang:gauge64;
-        units "bits/second";
-        description
-            "An estimate of the interface's current bandwidth in bits
-             per second.  For interfaces that do not vary in
-             bandwidth or for those where no accurate estimation can
-             be made, this node should contain the nominal bandwidth.
-             For interfaces that have no concept of bandwidth, this
-             node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifSpeed, ifHighSpeed";
-      }
-      container statistics {
-        description
-          "A collection of interface-related statistics objects.";
-        leaf discontinuity-time {
-          type yang:date-and-time;
-          mandatory true;
-          description
-            "The time on the most recent occasion at which any one or
-             more of this interface's counters suffered a
-             discontinuity.  If no such discontinuities have occurred
-             since the last re-initialization of the local management
-             subsystem, then this node contains the time the local
-             management subsystem re-initialized itself.";
-        }
-        leaf in-octets {
-          type yang:counter64;
-          description
-            "The total number of octets received on the interface,
-             including framing characters.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
-        }
-        leaf in-unicast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were not addressed to a
-             multicast or broadcast address at this sub-layer.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
-        }
-        leaf in-broadcast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a broadcast
-             address at this sub-layer.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInBroadcastPkts";
-        }
-        leaf in-multicast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a multicast
-             address at this sub-layer.  For a MAC-layer protocol,
-             this includes both Group and Functional addresses.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInMulticastPkts";
-        }
-        leaf in-discards {
-          type yang:counter32;
-          description
-            "The number of inbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being deliverable to a higher-layer
-             protocol.  One possible reason for discarding such a
-             packet could be to free up buffer space.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInDiscards";
-        }
-        leaf in-errors {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of inbound
-             packets that contained errors preventing them from being
-             deliverable to a higher-layer protocol.  For character-
-             oriented or fixed-length interfaces, the number of
-             inbound transmission units that contained errors
-             preventing them from being deliverable to a higher-layer
-             protocol.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInErrors";
-        }
-        leaf in-unknown-protos {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of packets
-             received via the interface that were discarded because
-             of an unknown or unsupported protocol.  For
-             character-oriented or fixed-length interfaces that
-             support protocol multiplexing, the number of
-             transmission units received via the interface that were
-             discarded because of an unknown or unsupported protocol.
-             For any interface that does not support protocol
-             multiplexing, this counter is not present.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
-        }
-        leaf out-octets {
-          type yang:counter64;
-          description
-            "The total number of octets transmitted out of the
-             interface, including framing characters.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
-        }
-        leaf out-unicast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted, and that were not addressed
-             to a multicast or broadcast address at this sub-layer,
-             including those that were discarded or not sent.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
-        }
-        leaf out-broadcast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted, and that were addressed to a
-             broadcast address at this sub-layer, including those
-             that were discarded or not sent.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutBroadcastPkts";
-        }
-        leaf out-multicast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted, and that were addressed to a
-             multicast address at this sub-layer, including those
-             that were discarded or not sent.  For a MAC-layer
-             protocol, this includes both Group and Functional
-             addresses.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutMulticastPkts";
-        }
-        leaf out-discards {
-          type yang:counter32;
-          description
-            "The number of outbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being transmitted.  One possible reason
-             for discarding such a packet could be to free up buffer
-             space.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
-        }
-        leaf out-errors {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of outbound
-             packets that could not be transmitted because of errors.
-             For character-oriented or fixed-length interfaces, the
-             number of outbound transmission units that could not be
-             transmitted because of errors.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutErrors";
-        }
-      }
-    }
-  }
-}
-
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-monitoring-extension@2013-12-10.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-monitoring-extension@2013-12-10.yang
deleted file mode 100644 (file)
index e8f2ec3..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-module ietf-netconf-monitoring-extension {
-
-    yang-version 1;
-
-    namespace
-      "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring-extension";
-
-    prefix ncme;
-
-    import ietf-netconf-monitoring {
-      prefix ncm;
-    }
-
-    revision "2013-12-10" {
-      description "Initial revision.";
-
-    }
-
-    identity netconf-tcp {
-      base ncm:transport;
-      description
-        "NETCONF over TCP.";
-    }
-
-    augment "/ncm:netconf-state/ncm:sessions/ncm:session" {
-      leaf session-identifier {
-        type string;
-      }
-    }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-monitoring@2010-10-04.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-monitoring@2010-10-04.yang
deleted file mode 100644 (file)
index 730a416..0000000
+++ /dev/null
@@ -1,596 +0,0 @@
-module ietf-netconf-monitoring {
-
-    yang-version 1;
-
-    namespace
-      "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring";
-
-    prefix ncm;
-
-    import ietf-yang-types {
-      prefix yang;
-      revision-date "2013-07-15";
-    }
-
-    import ietf-inet-types {
-      prefix inet;
-      revision-date "2013-07-15";
-    }
-
-    organization
-      "IETF NETCONF (Network Configuration) Working Group";
-
-    contact
-      "WG Web:   <http://tools.ietf.org/wg/netconf/>
-     WG List:  <mailto:netconf@ietf.org>
-
-     WG Chair: Mehmet Ersue
-               <mailto:mehmet.ersue@nsn.com>
-
-     WG Chair: Bert Wijnen
-               <mailto:bertietf@bwijnen.net>
-
-     Editor:   Mark Scott
-               <mailto:mark.scott@ericsson.com>
-
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>";
-
-    description
-      "NETCONF Monitoring Module.
-     All elements in this module are read-only.
-
-     Copyright (c) 2010 IETF Trust and the persons identified as
-     authors of the code. All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD
-     License set forth in Section 4.c of the IETF Trust's
-     Legal Provisions Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC 6022; see
-     the RFC itself for full legal notices.";
-
-    revision "2010-10-04" {
-      description "Initial revision.";
-      reference
-        "RFC 6022: YANG Module for NETCONF Monitoring";
-
-    }
-
-
-    typedef netconf-datastore-type {
-      type enumeration {
-        enum "running" {
-          value 0;
-        }
-        enum "candidate" {
-          value 1;
-        }
-        enum "startup" {
-          value 2;
-        }
-      }
-      description
-        "Enumeration of possible NETCONF datastore types.";
-      reference
-        "RFC 4741: NETCONF Configuration Protocol";
-
-    }
-
-    identity transport {
-      description
-        "Base identity for NETCONF transport types.";
-    }
-
-    identity netconf-ssh {
-      base transport;
-      description
-        "NETCONF over Secure Shell (SSH).";
-      reference
-        "RFC 4742: Using the NETCONF Configuration Protocol
-              over Secure SHell (SSH)";
-
-    }
-
-    identity netconf-soap-over-beep {
-      base transport;
-      description
-        "NETCONF over Simple Object Access Protocol (SOAP) over
-       Blocks Extensible Exchange Protocol (BEEP).";
-      reference
-        "RFC 4743: Using NETCONF over the Simple Object
-              Access Protocol (SOAP)";
-
-    }
-
-    identity netconf-soap-over-https {
-      base transport;
-      description
-        "NETCONF over Simple Object Access Protocol (SOAP)
-      over Hypertext Transfer Protocol Secure (HTTPS).";
-      reference
-        "RFC 4743: Using NETCONF over the Simple Object
-              Access Protocol (SOAP)";
-
-    }
-
-    identity netconf-beep {
-      base transport;
-      description
-        "NETCONF over Blocks Extensible Exchange Protocol (BEEP).";
-      reference
-        "RFC 4744: Using the NETCONF Protocol over the
-              Blocks Extensible Exchange Protocol (BEEP)";
-
-    }
-
-    identity netconf-tls {
-      base transport;
-      description
-        "NETCONF over Transport Layer Security (TLS).";
-      reference
-        "RFC 5539: NETCONF over Transport Layer Security (TLS)";
-
-    }
-
-    identity schema-format {
-      description
-        "Base identity for data model schema languages.";
-    }
-
-    identity xsd {
-      base schema-format;
-      description
-        "W3C XML Schema Definition.";
-      reference
-        "W3C REC REC-xmlschema-1-20041028:
-          XML Schema Part 1: Structures";
-
-    }
-
-    identity yang {
-      base schema-format;
-      description
-        "The YANG data modeling language for NETCONF.";
-      reference
-        "RFC 6020:  YANG - A Data Modeling Language for the
-               Network Configuration Protocol (NETCONF)";
-
-    }
-
-    identity yin {
-      base schema-format;
-      description "The YIN syntax for YANG.";
-      reference
-        "RFC 6020:  YANG - A Data Modeling Language for the
-               Network Configuration Protocol (NETCONF)";
-
-    }
-
-    identity rng {
-      base schema-format;
-      description
-        "Regular Language for XML Next Generation (RELAX NG).";
-      reference
-        "ISO/IEC 19757-2:2008: RELAX NG";
-
-    }
-
-    identity rnc {
-      base schema-format;
-      description "Relax NG Compact Syntax";
-      reference
-        "ISO/IEC 19757-2:2008: RELAX NG";
-
-    }
-
-    grouping common-counters {
-      description
-        "Counters that exist both per session, and also globally,
-       accumulated from all sessions.";
-      leaf in-rpcs {
-        type yang:zero-based-counter32;
-        description
-          "Number of correct <rpc> messages received.";
-      }
-
-      leaf in-bad-rpcs {
-        type yang:zero-based-counter32;
-        description
-          "Number of messages received when an <rpc> message was expected,
-         that were not correct <rpc> messages.  This includes XML parse
-         errors and errors on the rpc layer.";
-      }
-
-      leaf out-rpc-errors {
-        type yang:zero-based-counter32;
-        description
-          "Number of <rpc-reply> messages sent that contained an
-         <rpc-error> element.";
-      }
-
-      leaf out-notifications {
-        type yang:zero-based-counter32;
-        description
-          "Number of <notification> messages sent.";
-      }
-    }  // grouping common-counters
-
-    container netconf-state {
-      config false;
-      description
-        "The netconf-state container is the root of the monitoring
-       data model.";
-      container capabilities {
-        description
-          "Contains the list of NETCONF capabilities supported by the
-         server.";
-        leaf-list capability {
-          type inet:uri;
-          description
-            "List of NETCONF capabilities supported by the server.";
-        }
-      }  // container capabilities
-
-      container datastores {
-        description
-          "Contains the list of NETCONF configuration datastores.";
-        list datastore {
-          key "name";
-          description
-            "List of NETCONF configuration datastores supported by
-           the NETCONF server and related information.";
-          leaf name {
-            type netconf-datastore-type;
-            description
-              "Name of the datastore associated with this list entry.";
-          }
-
-          container locks {
-            presence
-              "This container is present only if the datastore
-             is locked.";
-            description
-              "The NETCONF <lock> and <partial-lock> operations allow
-             a client to lock specific resources in a datastore.  The
-             NETCONF server will prevent changes to the locked
-             resources by all sessions except the one that acquired
-             the lock(s).
-
-             Monitoring information is provided for each datastore
-             entry including details such as the session that acquired
-             the lock, the type of lock (global or partial) and the
-             list of locked resources.  Multiple locks per datastore
-             are supported.";
-            grouping lock-info {
-              description
-                "Lock related parameters, common to both global and
-               partial locks.";
-              leaf locked-by-session {
-                type uint32;
-                mandatory true;
-                description
-                  "The session ID of the session that has locked
-                 this resource.  Both a global lock and a partial
-                 lock MUST contain the NETCONF session-id.
-
-                 If the lock is held by a session that is not managed
-                 by the NETCONF server (e.g., a CLI session), a session
-                 id of 0 (zero) is reported.";
-                reference
-                  "RFC 4741: NETCONF Configuration Protocol";
-
-              }
-
-              leaf locked-time {
-                type yang:date-and-time;
-                mandatory true;
-                description
-                  "The date and time of when the resource was
-                 locked.";
-              }
-            }  // grouping lock-info
-            choice lock-type {
-              description
-                "Indicates if a global lock or a set of partial locks
-               are set.";
-              container global-lock {
-                description
-                  "Present if the global lock is set.";
-                uses lock-info;
-              }  // container global-lock
-              list partial-lock {
-                key "lock-id";
-                description
-                  "List of partial locks.";
-                reference
-                  "RFC 5717: Partial Lock Remote Procedure Call (RPC) for
-                      NETCONF";
-
-                leaf lock-id {
-                  type uint32;
-                  description
-                    "This is the lock id returned in the <partial-lock>
-                   response.";
-                }
-
-                uses lock-info;
-
-                leaf-list select {
-                  type yang:xpath1.0;
-                  min-elements 1;
-                  description
-                    "The xpath expression that was used to request
-                   the lock.  The select expression indicates the
-                   original intended scope of the lock.";
-                }
-
-                leaf-list locked-node {
-                  type instance-identifier;
-                  description
-                    "The list of instance-identifiers (i.e., the
-                   locked nodes).
-
-                   The scope of the partial lock is defined by the list
-                   of locked nodes.";
-                }
-              }  // list partial-lock
-            }  // choice lock-type
-          }  // container locks
-        }  // list datastore
-      }  // container datastores
-
-      container schemas {
-        description
-          "Contains the list of data model schemas supported by the
-         server.";
-        list schema {
-          key "identifier version format";
-          description
-            "List of data model schemas supported by the server.";
-          leaf identifier {
-            type string;
-            description
-              "Identifier to uniquely reference the schema.  The
-             identifier is used in the <get-schema> operation and may
-             be used for other purposes such as file retrieval.
-
-             For modeling languages that support or require a data
-             model name (e.g., YANG module name) the identifier MUST
-             match that name.  For YANG data models, the identifier is
-             the name of the module or submodule.  In other cases, an
-             identifier such as a filename MAY be used instead.";
-          }
-
-          leaf version {
-            type string;
-            description
-              "Version of the schema supported.  Multiple versions MAY be
-             supported simultaneously by a NETCONF server.  Each
-             version MUST be reported individually in the schema list,
-             i.e., with same identifier, possibly different location,
-             but different version.
-
-             For YANG data models, version is the value of the most
-             recent YANG 'revision' statement in the module or
-             submodule, or the empty string if no 'revision' statement
-             is present.";
-          }
-
-          leaf format {
-            type identityref {
-              base schema-format;
-            }
-            description
-              "The data modeling language the schema is written
-             in (currently xsd, yang, yin, rng, or rnc).
-             For YANG data models, 'yang' format MUST be supported and
-             'yin' format MAY also be provided.";
-          }
-
-          leaf namespace {
-            type inet:uri;
-            mandatory true;
-            description
-              "The XML namespace defined by the data model.
-
-             For YANG data models, this is the module's namespace.
-             If the list entry describes a submodule, this field
-             contains the namespace of the module to which the
-             submodule belongs.";
-          }
-
-          leaf-list location {
-            type union {
-              type enumeration {
-                enum "NETCONF" {
-                  value 0;
-                }
-              }
-              type inet:uri;
-            }
-            description
-              "One or more locations from which the schema can be
-             retrieved.  This list SHOULD contain at least one
-             entry per schema.
-
-             A schema entry may be located on a remote file system
-             (e.g., reference to file system for ftp retrieval) or
-             retrieved directly from a server supporting the
-             <get-schema> operation (denoted by the value 'NETCONF').";
-          }
-        }  // list schema
-      }  // container schemas
-
-      container sessions {
-        description
-          "The sessions container includes session-specific data for
-         NETCONF management sessions.  The session list MUST include
-         all currently active NETCONF sessions.";
-        list session {
-          key "session-id";
-          description
-            "All NETCONF sessions managed by the NETCONF server
-           MUST be reported in this list.";
-          leaf session-id {
-            type uint32 {
-              range "1..max";
-            }
-            description
-              "Unique identifier for the session.  This value is the
-             NETCONF session identifier, as defined in RFC 4741.";
-            reference
-              "RFC 4741: NETCONF Configuration Protocol";
-
-          }
-
-          leaf transport {
-            type identityref {
-              base transport;
-            }
-            mandatory true;
-            description
-              "Identifies the transport for each session, e.g.,
-            'netconf-ssh', 'netconf-soap', etc.";
-          }
-
-          leaf username {
-            type string;
-            mandatory true;
-            description
-              "The username is the client identity that was authenticated
-            by the NETCONF transport protocol.  The algorithm used to
-            derive the username is NETCONF transport protocol specific
-            and in addition specific to the authentication mechanism
-            used by the NETCONF transport protocol.";
-          }
-
-          leaf source-host {
-            type inet:host;
-            description
-              "Host identifier of the NETCONF client.  The value
-             returned is implementation specific (e.g., hostname,
-             IPv4 address, IPv6 address)";
-          }
-
-          leaf login-time {
-            type yang:date-and-time;
-            mandatory true;
-            description
-              "Time at the server at which the session was established.";
-          }
-
-          uses common-counters {
-            description
-              "Per-session counters.  Zero based with following reset
-             behaviour:
-               - at start of a session
-               - when max value is reached";
-          }
-        }  // list session
-      }  // container sessions
-
-      container statistics {
-        description
-          "Statistical data pertaining to the NETCONF server.";
-        leaf netconf-start-time {
-          type yang:date-and-time;
-          description
-            "Date and time at which the management subsystem was
-           started.";
-        }
-
-        leaf in-bad-hellos {
-          type yang:zero-based-counter32;
-          description
-            "Number of sessions silently dropped because an
-          invalid <hello> message was received.  This includes <hello>
-          messages with a 'session-id' attribute, bad namespace, and
-          bad capability declarations.";
-        }
-
-        leaf in-sessions {
-          type yang:zero-based-counter32;
-          description
-            "Number of sessions started.  This counter is incremented
-           when a <hello> message with a <session-id> is sent.
-
-          'in-sessions' - 'in-bad-hellos' =
-              'number of correctly started netconf sessions'";
-        }
-
-        leaf dropped-sessions {
-          type yang:zero-based-counter32;
-          description
-            "Number of sessions that were abnormally terminated, e.g.,
-           due to idle timeout or transport close.  This counter is not
-           incremented when a session is properly closed by a
-           <close-session> operation, or killed by a <kill-session>
-           operation.";
-        }
-
-        uses common-counters {
-          description
-            "Global counters, accumulated from all sessions.
-           Zero based with following reset behaviour:
-             - re-initialization of NETCONF server
-             - when max value is reached";
-        }
-      }  // container statistics
-    }  // container netconf-state
-
-    rpc get-schema {
-      description
-        "This operation is used to retrieve a schema from the
-       NETCONF server.
-
-       Positive Response:
-         The NETCONF server returns the requested schema.
-
-       Negative Response:
-         If requested schema does not exist, the <error-tag> is
-         'invalid-value'.
-
-         If more than one schema matches the requested parameters, the
-         <error-tag> is 'operation-failed', and <error-app-tag> is
-         'data-not-unique'.";
-      input {
-        leaf identifier {
-          type string;
-          mandatory true;
-          description
-            "Identifier for the schema list entry.";
-        }
-
-        leaf version {
-          type string;
-          description
-            "Version of the schema requested.  If this parameter is not
-           present, and more than one version of the schema exists on
-           the server, a 'data-not-unique' error is returned, as
-           described above.";
-        }
-
-        leaf format {
-          type identityref {
-            base schema-format;
-          }
-          description
-            "The data modeling language of the schema.  If this
-            parameter is not present, and more than one formats of
-            the schema exists on the server, a 'data-not-unique' error
-            is returned, as described above.";
-        }
-      }
-
-      output {
-        anyxml data {
-          description
-            "Contains the schema content.";
-        }
-      }
-    }  // rpc get-schema
-} // module
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-notifications@2012-02-06.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-notifications@2012-02-06.yang
deleted file mode 100644 (file)
index 31352a1..0000000
+++ /dev/null
@@ -1,363 +0,0 @@
-module ietf-netconf-notifications {
-
-   namespace
-     "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications";
-
-   prefix ncn;
-
-   import ietf-inet-types { prefix inet; revision-date "2013-07-15";}
-   import ietf-netconf { prefix nc; revision-date "2011-06-01";}
-
-   organization
-     "IETF NETCONF (Network Configuration Protocol) Working Group";
-
-   contact
-     "WG Web:   <http://tools.ietf.org/wg/netconf/>
-      WG List:  <mailto:netconf@ietf.org>
-
-      WG Chair: Bert Wijnen
-                <mailto:bertietf@bwijnen.net>
-
-      WG Chair: Mehmet Ersue
-                <mailto:mehmet.ersue@nsn.com>
-
-      Editor:   Andy Bierman
-                <mailto:andy@netconfcentral.org>";
-
-   description
-     "This module defines a YANG data model for use with the
-      NETCONF protocol that allows the NETCONF client to
-      receive common NETCONF base event notifications.
-
-      Copyright (c) 2012 IETF Trust and the persons identified as
-      the document authors.  All rights reserved.
-
-      Redistribution and use in source and binary forms, with or
-      without modification, is permitted pursuant to, and subject
-      to the license terms contained in, the Simplified BSD License
-
-
-
-      set forth in Section 4.c of the IETF Trust's Legal Provisions
-      Relating to IETF Documents
-      (http://trustee.ietf.org/license-info).
-
-      This version of this YANG module is part of RFC 6470; see
-      the RFC itself for full legal notices.";
-
-   revision "2012-02-06" {
-     description
-       "Initial version. Errata 3957 added.";
-     reference
-       "RFC 6470: NETCONF Base Notifications";
-   }
-
-  grouping common-session-parms {
-    description
-      "Common session parameters to identify a
-       management session.";
-
-    leaf username {
-      type string;
-      mandatory true;
-      description
-        "Name of the user for the session.";
-    }
-
-    leaf session-id {
-      type nc:session-id-or-zero-type;
-      mandatory true;
-      description
-        "Identifier of the session.
-         A NETCONF session MUST be identified by a non-zero value.
-         A non-NETCONF session MAY be identified by the value zero.";
-    }
-
-    leaf source-host {
-      type inet:ip-address;
-      description
-        "Address of the remote host for the session.";
-    }
-  }
-
-
-
-
-
-
-
-
-   grouping changed-by-parms {
-    description
-      "Common parameters to identify the source
-       of a change event, such as a configuration
-       or capability change.";
-
-    container changed-by {
-      description
-        "Indicates the source of the change.
-         If caused by internal action, then the
-         empty leaf 'server' will be present.
-         If caused by a management session, then
-         the name, remote host address, and session ID
-         of the session that made the change will be reported.";
-      choice server-or-user {
-        mandatory true;
-        leaf server {
-          type empty;
-          description
-            "If present, the change was caused
-             by the server.";
-        }
-
-        case by-user {
-          uses common-session-parms;
-        }
-      } // choice server-or-user
-    } // container changed-by-parms
-  }
-
-
-  notification netconf-config-change {
-    description
-      "Generated when the NETCONF server detects that the
-       <running> or <startup> configuration datastore
-       has been changed by a management session.
-       The notification summarizes the edits that
-       have been detected.
-
-       The server MAY choose to also generate this
-       notification while loading a datastore during the
-       boot process for the device.";
-
-    uses changed-by-parms;
-
-
-
-
-
-    leaf datastore {
-      type enumeration {
-        enum running {
-          description "The <running> datastore has changed.";
-        }
-        enum startup {
-          description "The <startup> datastore has changed";
-        }
-      }
-      default "running";
-      description
-        "Indicates which configuration datastore has changed.";
-    }
-
-    list edit {
-      description
-        "An edit record SHOULD be present for each distinct
-         edit operation that the server has detected on
-         the target datastore.  This list MAY be omitted
-         if the detailed edit operations are not known.
-         The server MAY report entries in this list for
-         changes not made by a NETCONF session (e.g., CLI).";
-
-      leaf target {
-        type instance-identifier;
-        description
-          "Topmost node associated with the configuration change.
-           A server SHOULD set this object to the node within
-           the datastore that is being altered.  A server MAY
-           set this object to one of the ancestors of the actual
-           node that was changed, or omit this object, if the
-           exact node is not known.";
-      }
-
-      leaf operation {
-        type nc:edit-operation-type;
-        description
-          "Type of edit operation performed.
-           A server MUST set this object to the NETCONF edit
-           operation performed on the target datastore.";
-      }
-    } // list edit
-  } // notification netconf-config-change
-
-
-
-
-
-
-  notification netconf-capability-change {
-    description
-      "Generated when the NETCONF server detects that
-       the server capabilities have changed.
-       Indicates which capabilities have been added, deleted,
-       and/or modified.  The manner in which a server
-       capability is changed is outside the scope of this
-       document.";
-
-    uses changed-by-parms;
-
-    leaf-list added-capability {
-      type inet:uri;
-      description
-        "List of capabilities that have just been added.";
-    }
-
-    leaf-list deleted-capability {
-      type inet:uri;
-      description
-        "List of capabilities that have just been deleted.";
-    }
-
-    leaf-list modified-capability {
-      type inet:uri;
-      description
-        "List of capabilities that have just been modified.
-         A capability is considered to be modified if the
-         base URI for the capability has not changed, but
-         one or more of the parameters encoded at the end of
-         the capability URI have changed.
-         The new modified value of the complete URI is returned.";
-    }
-  } // notification netconf-capability-change
-
-
-  notification netconf-session-start {
-    description
-      "Generated when a NETCONF server detects that a
-       NETCONF session has started.  A server MAY generate
-       this event for non-NETCONF management sessions.
-       Indicates the identity of the user that started
-       the session.";
-    uses common-session-parms;
-  } // notification netconf-session-start
-
-
-
-
-  notification netconf-session-end {
-    description
-      "Generated when a NETCONF server detects that a
-       NETCONF session has terminated.
-       A server MAY optionally generate this event for
-       non-NETCONF management sessions.  Indicates the
-       identity of the user that owned the session,
-       and why the session was terminated.";
-
-    uses common-session-parms;
-
-    leaf killed-by {
-      when "../termination-reason = 'killed'";
-      type nc:session-id-type;
-      description
-        "The ID of the session that directly caused this session
-         to be abnormally terminated.  If this session was abnormally
-         terminated by a non-NETCONF session unknown to the server,
-         then this leaf will not be present.";
-    }
-
-    leaf termination-reason {
-      type enumeration {
-        enum "closed" {
-          description
-            "The session was terminated by the client in normal
-             fashion, e.g., by the NETCONF <close-session>
-             protocol operation.";
-        }
-        enum "killed" {
-          description
-            "The session was terminated in abnormal
-             fashion, e.g., by the NETCONF <kill-session>
-             protocol operation.";
-        }
-        enum "dropped" {
-          description
-            "The session was terminated because the transport layer
-             connection was unexpectedly closed.";
-        }
-        enum "timeout" {
-          description
-            "The session was terminated because of inactivity,
-             e.g., waiting for the <hello> message or <rpc>
-             messages.";
-        }
-
-
-
-        enum "bad-hello" {
-          description
-            "The client's <hello> message was invalid.";
-        }
-        enum "other" {
-          description
-            "The session was terminated for some other reason.";
-        }
-      }
-      mandatory true;
-      description
-        "Reason the session was terminated.";
-    }
-  } // notification netconf-session-end
-
-
-  notification netconf-confirmed-commit {
-    description
-      "Generated when a NETCONF server detects that a
-       confirmed-commit event has occurred.  Indicates the event
-       and the current state of the confirmed-commit procedure
-       in progress.";
-    reference
-      "RFC 6241, Section 8.4";
-
-    uses common-session-parms {
-      when "confirm-event != 'timeout'";
-    }
-
-    leaf confirm-event {
-      type enumeration {
-        enum "start" {
-          description
-            "The confirmed-commit procedure has started.";
-        }
-        enum "cancel" {
-          description
-            "The confirmed-commit procedure has been canceled,
-             e.g., due to the session being terminated, or an
-             explicit <cancel-commit> operation.";
-        }
-        enum "timeout" {
-          description
-            "The confirmed-commit procedure has been canceled
-             due to the confirm-timeout interval expiring.
-             The common session parameters will not be present
-             in this sub-mode.";
-        }
-
-        enum "extend" {
-          description
-            "The confirmed-commit timeout has been extended,
-             e.g., by a new <confirmed-commit> operation.";
-        }
-        enum "complete" {
-          description
-            "The confirmed-commit procedure has been completed.";
-        }
-      }
-      mandatory true;
-      description
-        "Indicates the event that caused the notification.";
-    }
-
-    leaf timeout {
-      when
-        "../confirm-event = 'start' or ../confirm-event = 'extend'";
-      type uint32;
-      units "seconds";
-      description
-        "The configured timeout value if the event type
-         is 'start' or 'extend'.  This value represents
-         the approximate number of seconds from the event
-         time when the 'timeout' event might occur.";
-    }
-  } // notification netconf-confirmed-commit
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf@2011-06-01.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf@2011-06-01.yang
deleted file mode 100644 (file)
index 4bbb1c2..0000000
+++ /dev/null
@@ -1,928 +0,0 @@
-module ietf-netconf {
-
-  // the namespace for NETCONF XML definitions is unchanged
-  // from RFC 4741, which this document replaces
-  namespace "urn:ietf:params:xml:ns:netconf:base:1.0";
-
-  prefix nc;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-
-  organization
-    "IETF NETCONF (Network Configuration) Working Group";
-
-  contact
-    "WG Web:   <http://tools.ietf.org/wg/netconf/>
-     WG List:  <netconf@ietf.org>
-
-     WG Chair: Bert Wijnen
-               <bertietf@bwijnen.net>
-
-     WG Chair: Mehmet Ersue
-               <mehmet.ersue@nsn.com>
-
-     Editor:   Martin Bjorklund
-               <mbj@tail-f.com>
-
-     Editor:   Juergen Schoenwaelder
-               <j.schoenwaelder@jacobs-university.de>
-
-     Editor:   Andy Bierman
-               <andy.bierman@brocade.com>";
-  description
-    "NETCONF Protocol Data Types and Protocol Operations.
-
-     Copyright (c) 2011 IETF Trust and the persons identified as
-     the document authors.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC 6241; see
-     the RFC itself for full legal notices.";
-
-  revision 2011-06-01 {
-    description
-      "Initial revision;";
-    reference
-      "RFC 6241: Network Configuration Protocol";
-  }
-
-  extension get-filter-element-attributes {
-    description
-      "If this extension is present within an 'anyxml'
-       statement named 'filter', which must be conceptually
-       defined within the RPC input section for the <get>
-       and <get-config> protocol operations, then the
-       following unqualified XML attribute is supported
-       within the <filter> element, within a <get> or
-       <get-config> protocol operation:
-
-         type : optional attribute with allowed
-                value strings 'subtree' and 'xpath'.
-                If missing, the default value is 'subtree'.
-
-       If the 'xpath' feature is supported, then the
-       following unqualified XML attribute is
-       also supported:
-
-         select: optional attribute containing a
-                 string representing an XPath expression.
-                 The 'type' attribute must be equal to 'xpath'
-                 if this attribute is present.";
-  }
-
-  // NETCONF capabilities defined as features
-  feature writable-running {
-    description
-      "NETCONF :writable-running capability;
-       If the server advertises the :writable-running
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.2";
-  }
-
-  feature candidate {
-    description
-      "NETCONF :candidate capability;
-       If the server advertises the :candidate
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.3";
-  }
-
-  feature confirmed-commit {
-    if-feature candidate;
-    description
-      "NETCONF :confirmed-commit:1.1 capability;
-       If the server advertises the :confirmed-commit:1.1
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-
-    reference "RFC 6241, Section 8.4";
-  }
-
-  feature rollback-on-error {
-    description
-      "NETCONF :rollback-on-error capability;
-       If the server advertises the :rollback-on-error
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.5";
-  }
-
-  feature validate {
-    description
-      "NETCONF :validate:1.1 capability;
-       If the server advertises the :validate:1.1
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.6";
-  }
-
-  feature startup {
-    description
-      "NETCONF :startup capability;
-       If the server advertises the :startup
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.7";
-  }
-
-  feature url {
-    description
-      "NETCONF :url capability;
-       If the server advertises the :url
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.8";
-  }
-
-  feature xpath {
-    description
-      "NETCONF :xpath capability;
-       If the server advertises the :xpath
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.9";
-  }
-
-  // NETCONF Simple Types
-
-  typedef session-id-type {
-    type uint32 {
-      range "1..max";
-    }
-    description
-      "NETCONF Session Id";
-  }
-
-  typedef session-id-or-zero-type {
-    type uint32;
-    description
-      "NETCONF Session Id or Zero to indicate none";
-  }
-  typedef error-tag-type {
-    type enumeration {
-       enum in-use {
-         description
-           "The request requires a resource that
-            already is in use.";
-       }
-       enum invalid-value {
-         description
-           "The request specifies an unacceptable value for one
-            or more parameters.";
-       }
-       enum too-big {
-         description
-           "The request or response (that would be generated) is
-            too large for the implementation to handle.";
-       }
-       enum missing-attribute {
-         description
-           "An expected attribute is missing.";
-       }
-       enum bad-attribute {
-         description
-           "An attribute value is not correct; e.g., wrong type,
-            out of range, pattern mismatch.";
-       }
-       enum unknown-attribute {
-         description
-           "An unexpected attribute is present.";
-       }
-       enum missing-element {
-         description
-           "An expected element is missing.";
-       }
-       enum bad-element {
-         description
-           "An element value is not correct; e.g., wrong type,
-            out of range, pattern mismatch.";
-       }
-       enum unknown-element {
-         description
-           "An unexpected element is present.";
-       }
-       enum unknown-namespace {
-         description
-           "An unexpected namespace is present.";
-       }
-       enum access-denied {
-         description
-           "Access to the requested protocol operation or
-            data model is denied because authorization failed.";
-       }
-       enum lock-denied {
-         description
-           "Access to the requested lock is denied because the
-            lock is currently held by another entity.";
-       }
-       enum resource-denied {
-         description
-           "Request could not be completed because of
-            insufficient resources.";
-       }
-       enum rollback-failed {
-         description
-           "Request to roll back some configuration change (via
-            rollback-on-error or <discard-changes> operations)
-            was not completed for some reason.";
-
-       }
-       enum data-exists {
-         description
-           "Request could not be completed because the relevant
-            data model content already exists.  For example,
-            a 'create' operation was attempted on data that
-            already exists.";
-       }
-       enum data-missing {
-         description
-           "Request could not be completed because the relevant
-            data model content does not exist.  For example,
-            a 'delete' operation was attempted on
-            data that does not exist.";
-       }
-       enum operation-not-supported {
-         description
-           "Request could not be completed because the requested
-            operation is not supported by this implementation.";
-       }
-       enum operation-failed {
-         description
-           "Request could not be completed because the requested
-            operation failed for some reason not covered by
-            any other error condition.";
-       }
-       enum partial-operation {
-         description
-           "This error-tag is obsolete, and SHOULD NOT be sent
-            by servers conforming to this document.";
-       }
-       enum malformed-message {
-         description
-           "A message could not be handled because it failed to
-            be parsed correctly.  For example, the message is not
-            well-formed XML or it uses an invalid character set.";
-       }
-     }
-     description "NETCONF Error Tag";
-     reference "RFC 6241, Appendix A";
-  }
-
-  typedef error-severity-type {
-    type enumeration {
-      enum error {
-        description "Error severity";
-      }
-      enum warning {
-        description "Warning severity";
-      }
-    }
-    description "NETCONF Error Severity";
-    reference "RFC 6241, Section 4.3";
-  }
-
-  typedef edit-operation-type {
-    type enumeration {
-      enum merge {
-        description
-          "The configuration data identified by the
-           element containing this attribute is merged
-           with the configuration at the corresponding
-           level in the configuration datastore identified
-           by the target parameter.";
-      }
-      enum replace {
-        description
-          "The configuration data identified by the element
-           containing this attribute replaces any related
-           configuration in the configuration datastore
-           identified by the target parameter.  If no such
-           configuration data exists in the configuration
-           datastore, it is created.  Unlike a
-           <copy-config> operation, which replaces the
-           entire target configuration, only the configuration
-           actually present in the config parameter is affected.";
-      }
-      enum create {
-        description
-          "The configuration data identified by the element
-           containing this attribute is added to the
-           configuration if and only if the configuration
-           data does not already exist in the configuration
-           datastore.  If the configuration data exists, an
-           <rpc-error> element is returned with an
-           <error-tag> value of 'data-exists'.";
-      }
-      enum delete {
-        description
-          "The configuration data identified by the element
-           containing this attribute is deleted from the
-           configuration if and only if the configuration
-           data currently exists in the configuration
-           datastore.  If the configuration data does not
-           exist, an <rpc-error> element is returned with
-           an <error-tag> value of 'data-missing'.";
-      }
-      enum remove {
-        description
-          "The configuration data identified by the element
-           containing this attribute is deleted from the
-           configuration if the configuration
-           data currently exists in the configuration
-           datastore.  If the configuration data does not
-           exist, the 'remove' operation is silently ignored
-           by the server.";
-      }
-    }
-    default "merge";
-    description "NETCONF 'operation' attribute values";
-    reference "RFC 6241, Section 7.2";
-  }
-
-  // NETCONF Standard Protocol Operations
-
-  rpc get-config {
-    description
-      "Retrieve all or part of a specified configuration.";
-
-    reference "RFC 6241, Section 7.1";
-
-    input {
-      container source {
-        description
-          "Particular configuration to retrieve.";
-
-        choice config-source {
-          mandatory true;
-          description
-            "The configuration to retrieve.";
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config source.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config source.
-               This is optional-to-implement on the server because
-               not all servers will support filtering for this
-               datastore.";
-          }
-        }
-      }
-
-      anyxml filter {
-        description
-          "Subtree or XPath filter to use.";
-        nc:get-filter-element-attributes;
-      }
-    }
-
-    output {
-      anyxml data {
-        description
-          "Copy of the source datastore subset that matched
-           the filter criteria (if any).  An empty data container
-           indicates that the request did not produce any results.";
-      }
-    }
-  }
-
-  rpc edit-config {
-    description
-      "The <edit-config> operation loads all or part of a specified
-       configuration to the specified target configuration.";
-
-    reference "RFC 6241, Section 7.2";
-
-    input {
-      container target {
-        description
-          "Particular configuration to edit.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            if-feature writable-running;
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-        }
-      }
-
-      leaf default-operation {
-        type enumeration {
-          enum merge {
-            description
-              "The default operation is merge.";
-          }
-          enum replace {
-            description
-              "The default operation is replace.";
-          }
-          enum none {
-            description
-              "There is no default operation.";
-          }
-        }
-        default "merge";
-        description
-          "The default operation to use.";
-      }
-
-      leaf test-option {
-        if-feature validate;
-        type enumeration {
-          enum test-then-set {
-            description
-              "The server will test and then set if no errors.";
-          }
-          enum set {
-            description
-              "The server will set without a test first.";
-          }
-
-          enum test-only {
-            description
-              "The server will only test and not set, even
-               if there are no errors.";
-          }
-        }
-        default "test-then-set";
-        description
-          "The test option to use.";
-      }
-
-      leaf error-option {
-        type enumeration {
-          enum stop-on-error {
-            description
-              "The server will stop on errors.";
-          }
-          enum continue-on-error {
-            description
-              "The server may continue on errors.";
-          }
-          enum rollback-on-error {
-            description
-              "The server will roll back on errors.
-               This value can only be used if the 'rollback-on-error'
-               feature is supported.";
-          }
-        }
-        default "stop-on-error";
-        description
-          "The error option to use.";
-      }
-
-      choice edit-content {
-        mandatory true;
-        description
-          "The content for the edit operation.";
-
-        anyxml config {
-          description
-            "Inline Config content.";
-        }
-        leaf url {
-          if-feature url;
-          type inet:uri;
-          description
-            "URL-based config content.";
-        }
-      }
-    }
-  }
-
-  rpc copy-config {
-    description
-      "Create or replace an entire configuration datastore with the
-       contents of another complete configuration datastore.";
-
-    reference "RFC 6241, Section 7.3";
-
-    input {
-      container target {
-        description
-          "Particular configuration to copy to.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target of the copy operation.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            if-feature writable-running;
-            type empty;
-            description
-              "The running configuration is the config target.
-               This is optional-to-implement on the server.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config target.";
-          }
-        }
-      }
-
-      container source {
-        description
-          "Particular configuration to copy from.";
-
-        choice config-source {
-          mandatory true;
-          description
-            "The configuration source for the copy operation.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config source.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config source.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config source.";
-          }
-          anyxml config {
-            description
-              "Inline Config content: <config> element.  Represents
-               an entire configuration datastore, not
-               a subset of the running datastore.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc delete-config {
-    description
-      "Delete a configuration datastore.";
-
-    reference "RFC 6241, Section 7.4";
-
-    input {
-      container target {
-        description
-          "Particular configuration to delete.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target to delete.";
-
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config target.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc lock {
-    description
-      "The lock operation allows the client to lock the configuration
-       system of a device.";
-
-    reference "RFC 6241, Section 7.5";
-
-    input {
-      container target {
-        description
-          "Particular configuration to lock.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target to lock.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config target.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc unlock {
-    description
-      "The unlock operation is used to release a configuration lock,
-       previously obtained with the 'lock' operation.";
-
-    reference "RFC 6241, Section 7.6";
-
-    input {
-      container target {
-        description
-          "Particular configuration to unlock.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target to unlock.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config target.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc get {
-    description
-      "Retrieve running configuration and device state information.";
-
-    reference "RFC 6241, Section 7.7";
-
-    input {
-      anyxml filter {
-        description
-          "This parameter specifies the portion of the system
-           configuration and state data to retrieve.";
-        nc:get-filter-element-attributes;
-      }
-    }
-
-    output {
-      anyxml data {
-        description
-          "Copy of the running datastore subset and/or state
-           data that matched the filter criteria (if any).
-           An empty data container indicates that the request did not
-           produce any results.";
-      }
-    }
-  }
-
-  rpc close-session {
-    description
-      "Request graceful termination of a NETCONF session.";
-
-    reference "RFC 6241, Section 7.8";
-  }
-
-  rpc kill-session {
-    description
-      "Force the termination of a NETCONF session.";
-
-    reference "RFC 6241, Section 7.9";
-
-    input {
-      leaf session-id {
-        type session-id-type;
-        mandatory true;
-        description
-          "Particular session to kill.";
-      }
-    }
-  }
-
-  rpc commit {
-    if-feature candidate;
-
-    description
-      "Commit the candidate configuration as the device's new
-       current configuration.";
-
-    reference "RFC 6241, Section 8.3.4.1";
-
-    input {
-      leaf confirmed {
-        if-feature confirmed-commit;
-        type empty;
-        description
-          "Requests a confirmed commit.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-      leaf confirm-timeout {
-        if-feature confirmed-commit;
-        type uint32 {
-          range "1..max";
-        }
-        units "seconds";
-        default "600";   // 10 minutes
-        description
-          "The timeout interval for a confirmed commit.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-      leaf persist {
-        if-feature confirmed-commit;
-        type string;
-        description
-          "This parameter is used to make a confirmed commit
-           persistent.  A persistent confirmed commit is not aborted
-           if the NETCONF session terminates.  The only way to abort
-           a persistent confirmed commit is to let the timer expire,
-           or to use the <cancel-commit> operation.
-
-           The value of this parameter is a token that must be given
-           in the 'persist-id' parameter of <commit> or
-           <cancel-commit> operations in order to confirm or cancel
-           the persistent confirmed commit.
-
-           The token should be a random string.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-      leaf persist-id {
-        if-feature confirmed-commit;
-        type string;
-        description
-          "This parameter is given in order to commit a persistent
-           confirmed commit.  The value must be equal to the value
-           given in the 'persist' parameter to the <commit> operation.
-           If it does not match, the operation fails with an
-          'invalid-value' error.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-    }
-  }
-
-  rpc discard-changes {
-    if-feature candidate;
-
-    description
-      "Revert the candidate configuration to the current
-       running configuration.";
-    reference "RFC 6241, Section 8.3.4.2";
-  }
-
-  rpc cancel-commit {
-    if-feature confirmed-commit;
-    description
-      "This operation is used to cancel an ongoing confirmed commit.
-       If the confirmed commit is persistent, the parameter
-       'persist-id' must be given, and it must match the value of the
-       'persist' parameter.";
-    reference "RFC 6241, Section 8.4.4.1";
-
-    input {
-      leaf persist-id {
-        type string;
-        description
-          "This parameter is given in order to cancel a persistent
-           confirmed commit.  The value must be equal to the value
-           given in the 'persist' parameter to the <commit> operation.
-           If it does not match, the operation fails with an
-          'invalid-value' error.";
-      }
-    }
-  }
-
-  rpc validate {
-    if-feature validate;
-
-    description
-      "Validates the contents of the specified configuration.";
-
-    reference "RFC 6241, Section 8.6.4.1";
-
-    input {
-      container source {
-        description
-          "Particular configuration to validate.";
-
-        choice config-source {
-          mandatory true;
-          description
-            "The configuration source to validate.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config source.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config source.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config source.";
-          }
-          anyxml config {
-            description
-              "Inline Config content: <config> element.  Represents
-               an entire configuration datastore, not
-               a subset of the running datastore.";
-          }
-        }
-      }
-    }
-  }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-network-topology@2015-06-08.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-network-topology@2015-06-08.yang
deleted file mode 100644 (file)
index 0aeb2e5..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-module ietf-network-topology {
-  yang-version 1;
-  namespace "urn:ietf:params:xml:ns:yang:ietf-network-topology";
-  prefix lnk;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-  import ietf-network {
-    prefix nd;
-  }
-
-  organization "TBD";
-  contact
-    "WILL-BE-DEFINED-LATER";
-  description
-    "This module defines a common base model for network topology,
-     augmenting the base network model with links to connect nodes,
-     as well as termination points to terminate links on nodes.";
-
-  revision 2015-06-08 {
-    description
-      "Initial revision.";
-    reference "draft-ietf-i2rs-yang-network-topo-01";
-  }
-
-  typedef link-id {
-    type inet:uri;
-    description
-      "An identifier for a link in a topology.
-       The identifier may be opaque.
-       The identifier SHOULD be chosen such that the same link in a
-       real network topology will always be identified through the
-       same identifier, even if the model is instantiated in
-       separate datastores. An implementation MAY choose to capture
-       semantics in the identifier, for example to indicate the type
-       of link and/or the type of topology that the link is a part
-       of.";
-  }
-
-  typedef tp-id {
-    type inet:uri;
-    description
-      "An identifier for termination points on a node.
-       The identifier may be opaque.
-       The identifier SHOULD be chosen such that the same TP in a
-       real network topology will always be identified through the
-       same identifier, even if the model is instantiated in
-       separate datastores. An implementation MAY choose to capture
-       semantics in the identifier, for example to indicate the type
-       of TP and/or the type of node and topology that the TP is a
-       part of.";
-  }
-
-  grouping link-ref {
-    description
-      "References a link in a specific network.";
-    leaf link-ref {
-      type leafref {
-        path "/nd:network[nd:network-id=current()/../"+
-          "nd:network-ref]/link/link-id";
-      }
-      description
-        "A type for an absolute reference a link instance.
-         (This type should not be used for relative references.
-         In such a case, a relative path should be used instead.)";
-    }
-    uses nd:network-ref;
-  }
-
-  grouping tp-ref {
-    description
-      "References a termination point in a specific node.";
-    leaf tp-ref {
-      type leafref {
-        path "/nd:network[nd:network-id=current()/../"+
-          "nd:network-ref]/nd:node[nd:node-id=current()/../"+
-          "nd:node-ref]/termination-point/tp-id";
-      }
-      description
-        "A type for an absolute reference to a termination point.
-         (This type should not be used for relative references.
-         In such a case, a relative path should be used instead.)";
-    }
-    uses nd:node-ref;
-  }
-
-  augment "/nd:network" {
-    description
-      "Add links to the network model.";
-    list link {
-      key "link-id";
-      description
-        "A Network Link connects a by Local (Source) node and
-         a Remote (Destination) Network Nodes via a set of the
-         nodes' termination points.
-         As it is possible to have several links between the same
-         source and destination nodes, and as a link could
-         potentially be re-homed between termination points, to
-         ensure that we would always know to distinguish between
-         links, every link is identified by a dedicated link
-         identifier.
-         Note that a link models a point-to-point link, not a
-         multipoint link.
-         Layering dependencies on links in underlay topologies are
-         not represented as the layering information of nodes and of
-         termination points is sufficient.";
-      container source {
-        description
-          "This container holds the logical source of a particular
-           link.";
-        leaf source-node {
-          type leafref {
-            path "../../../nd:node/nd:node-id";
-          }
-          mandatory true;
-          description
-            "Source node identifier, must be in same topology.";
-        }
-        leaf source-tp {
-          type leafref {
-            path "../../../nd:node[nd:node-id=current()/../"+
-              "source-node]/termination-point/tp-id";
-          }
-          description
-            "Termination point within source node that terminates
-             the link.";
-        }
-      }
-      container destination {
-        description
-          "This container holds the logical destination of a
-           particular link.";
-        leaf dest-node {
-          type leafref {
-            path "../../../nd:node/nd:node-id";
-          }
-          mandatory true;
-          description
-            "Destination node identifier, must be in the same
-             network.";
-        }
-        leaf dest-tp {
-          type leafref {
-            path "../../../nd:node[nd:node-id=current()/../"+
-              "dest-node]/termination-point/tp-id";
-          }
-          description
-            "Termination point within destination node that
-             terminates the link.";
-        }
-      }
-      leaf link-id {
-        type link-id;
-        description
-          "The identifier of a link in the topology.
-           A link is specific to a topology to which it belongs.";
-      }
-      list supporting-link {
-        key "network-ref link-ref";
-        description
-          "Identifies the link, or links, that this link
-           is dependent on.";
-        leaf network-ref {
-          type leafref {
-            path "../../../nd:supporting-network/nd:network-ref";
-          }
-          description
-            "This leaf identifies in which underlay topology
-             supporting link is present.";
-        }
-        leaf link-ref {
-          type leafref {
-            path "/nd:network[nd:network-id=current()/.."+
-              "/network-ref]/link/link-id";
-          }
-          description
-            "This leaf identifies a link which is a part
-             of this link's underlay. Reference loops, in which
-             a link identifies itself as its underlay, either
-             directly or transitively, are not allowed.";
-        }
-      }
-    }
-  }
-  augment "/nd:network/nd:node" {
-    description
-      "Augment termination points which terminate links.
-       Termination points can ultimately be mapped to interfaces.";
-    list termination-point {
-      key "tp-id";
-      description
-        "A termination point can terminate a link.
-         Depending on the type of topology, a termination point
-         could, for example, refer to a port or an interface.";
-      leaf tp-id {
-        type tp-id;
-        description
-          "Termination point identifier.";
-      }
-      list supporting-termination-point {
-        key "network-ref node-ref tp-ref";
-        description
-          "The leaf list identifies any termination points that
-           the termination point is dependent on, or maps onto.
-           Those termination points will themselves be contained
-           in a supporting node.
-           This dependency information can be inferred from
-           the dependencies between links.  For this reason,
-           this item is not separately configurable.  Hence no
-           corresponding constraint needs to be articulated.
-           The corresponding information is simply provided by the
-           implementing system.";
-        leaf network-ref {
-          type leafref {
-            path "../../../nd:supporting-node/nd:network-ref";
-          }
-          description
-            "This leaf identifies in which topology the
-             supporting termination point is present.";
-        }
-        leaf node-ref {
-          type leafref {
-            path "../../../nd:supporting-node/nd:node-ref";
-          }
-          description
-            "This leaf identifies in which node the supporting
-             termination point is present.";
-        }
-        leaf tp-ref {
-          type leafref {
-            path "/nd:network[nd:network-id=current()/../"+
-              "network-ref]/nd:node[nd:node-id=current()/../"+
-              "node-ref]/termination-point/tp-id";
-          }
-          description
-            "Reference to the underlay node, must be in a
-             different topology";
-        }
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-network@2015-06-08.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-network@2015-06-08.yang
deleted file mode 100644 (file)
index 9e2dadf..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-module ietf-network {
-  yang-version 1;
-  namespace "urn:ietf:params:xml:ns:yang:ietf-network";
-  prefix nd;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-
-  organization "TBD";
-  contact
-    "WILL-BE-DEFINED-LATER";
-  description
-    "This module defines a common base model for a collection
-     of nodes in a network. Node definitions s are further used
-     in network topologies and inventories.";
-
-  revision 2015-06-08 {
-    description
-      "Initial revision.";
-    reference "draft-ietf-i2rs-yang-network-topo-01";
-  }
-
-  typedef node-id {
-    type inet:uri;
-    description
-      "Identifier for a node.";
-  }
-
-  typedef network-id {
-    type inet:uri;
-    description
-      "Identifier for a network.";
-  }
-
-  grouping network-ref {
-    description
-      "Contains the information necessary to reference a network,
-       for example an underlay network.";
-    leaf network-ref {
-      type leafref {
-        path "/network/network-id";
-      }
-      description
-        "Used to reference a network, for example an underlay
-         network.";
-    }
-  }
-
-  grouping node-ref {
-    description
-      "Contains the information necessary to reference a node.";
-    leaf node-ref {
-      type leafref {
-        path "/network[network-id=current()/../network-ref]"+
-          "/node/node-id";
-      }
-      description
-        "Used to reference a node.
-         Nodes are identified relative to the network they are
-         contained in.";
-    }
-    uses network-ref;
-  }
-
-  list network {
-    key "network-id";
-    description
-      "Describes a network.
-       A network typically contains an inventory of nodes,
-       topological information (augmented through
-       network-topology model), as well as layering
-       information.";
-    container network-types {
-      description
-        "Serves as an augmentation target.
-         The network type is indicated through corresponding
-         presence containers augmented into this container.";
-    }
-    leaf network-id {
-      type network-id;
-      description
-        "Identifies a network.";
-    }
-    leaf server-provided {
-      type boolean;
-      config false;
-      description
-        "Indicates whether the information concerning this
-         particular network is populated by the server
-         (server-provided true, the general case for network
-         information discovered from the server),
-         or whether it is configured by a client
-         (server-provided true, possible e.g. for
-         service overlays managed through a controller).";
-    }
-    list supporting-network {
-      key "network-ref";
-      description
-        "An underlay network, used to represent layered network
-         topologies.";
-      leaf network-ref {
-        type leafref {
-          path "/network/network-id";
-        }
-        description
-          "References the underlay network.";
-      }
-    }
-    list node {
-      key "node-id";
-      description
-        "The inventory of nodes of this network.";
-      leaf node-id {
-        type node-id;
-        description
-          "Identifies a node uniquely within the containing
-           network.";
-      }
-      list supporting-node {
-        key "network-ref node-ref";
-        description
-          "Represents another node, in an underlay network, that
-           this node is supported by.  Used to represent layering
-           structure.";
-        leaf network-ref {
-          type leafref {
-            path "../../../supporting-network/network-ref";
-          }
-          description
-            "References the underlay network that the
-             underlay node is part of.";
-        }
-        leaf node-ref {
-          type leafref {
-            path "/network/node/node-id";
-          }
-          description
-            "References the underlay node itself.";
-        }
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-yang-types@2013-07-15.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/ietf-yang-types@2013-07-15.yang
deleted file mode 100644 (file)
index bdff18c..0000000
+++ /dev/null
@@ -1,467 +0,0 @@
-module ietf-yang-types {
-
-     namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types";
-     prefix "yang";
-
-     organization
-      "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-
-     contact
-      "WG Web:   <http://tools.ietf.org/wg/netmod/>
-       WG List:  <mailto:netmod@ietf.org>
-       WG Chair: David Kessens
-                 <mailto:david.kessens@nsn.com>
-
-       WG Chair: Juergen Schoenwaelder
-                 <mailto:j.schoenwaelder@jacobs-university.de>
-
-       Editor:   Juergen Schoenwaelder
-                 <mailto:j.schoenwaelder@jacobs-university.de>";
-
-     description
-      "This module contains a collection of generally useful derived
-       YANG data types.
-
-       Copyright (c) 2013 IETF Trust and the persons identified as
-       authors of the code.  All rights reserved.
-
-       Redistribution and use in source and binary forms, with or
-       without modification, is permitted pursuant to, and subject
-       to the license terms contained in, the Simplified BSD License
-       set forth in Section 4.c of the IETF Trust's Legal Provisions
-       Relating to IETF Documents
-       (http://trustee.ietf.org/license-info).
-
-       This version of this YANG module is part of RFC 6991; see
-       the RFC itself for full legal notices.";
-
-     revision 2013-07-15 {
-       description
-        "This revision adds the following new data types:
-         - yang-identifier
-         - hex-string
-         - uuid
-         - dotted-quad";
-       reference
-        "RFC 6991: Common YANG Data Types";
-     }
-
-     revision 2010-09-24 {
-       description
-        "Initial revision.";
-       reference
-        "RFC 6021: Common YANG Data Types";
-     }
-
-     /*** collection of counter and gauge types ***/
-
-     typedef counter32 {
-       type uint32;
-       description
-        "The counter32 type represents a non-negative integer
-         that monotonically increases until it reaches a
-         maximum value of 2^32-1 (4294967295 decimal), when it
-         wraps around and starts increasing again from zero.
-
-         Counters have no defined 'initial' value, and thus, a
-         single value of a counter has (in general) no information
-         content.  Discontinuities in the monotonically increasing
-         value normally occur at re-initialization of the
-         management system, and at other times as specified in the
-         description of a schema node using this type.  If such
-         other times can occur, for example, the creation of
-         a schema node of type counter32 at times other than
-         re-initialization, then a corresponding schema node
-         should be defined, with an appropriate type, to indicate
-         the last discontinuity.
-
-         The counter32 type should not be used for configuration
-         schema nodes.  A default statement SHOULD NOT be used in
-         combination with the type counter32.
-
-         In the value set and its semantics, this type is equivalent
-         to the Counter32 type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef zero-based-counter32 {
-       type yang:counter32;
-       default "0";
-       description
-        "The zero-based-counter32 type represents a counter32
-         that has the defined 'initial' value zero.
-
-         A schema node of this type will be set to zero (0) on creation
-         and will thereafter increase monotonically until it reaches
-         a maximum value of 2^32-1 (4294967295 decimal), when it
-         wraps around and starts increasing again from zero.
-
-         Provided that an application discovers a new schema node
-         of this type within the minimum time to wrap, it can use the
-         'initial' value as a delta.  It is important for a management
-         station to be aware of this minimum time and the actual time
-         between polls, and to discard data if the actual time is too
-         long or there is no defined minimum time.
-        In the value set and its semantics, this type is equivalent
-         to the ZeroBasedCounter32 textual convention of the SMIv2.";
-       reference
-         "RFC 4502: Remote Network Monitoring Management Information
-                    Base Version 2";
-     }
-
-     typedef counter64 {
-       type uint64;
-       description
-        "The counter64 type represents a non-negative integer
-         that monotonically increases until it reaches a
-         maximum value of 2^64-1 (18446744073709551615 decimal),
-         when it wraps around and starts increasing again from zero.
-
-         Counters have no defined 'initial' value, and thus, a
-         single value of a counter has (in general) no information
-         content.  Discontinuities in the monotonically increasing
-         value normally occur at re-initialization of the
-         management system, and at other times as specified in the
-         description of a schema node using this type.  If such
-         other times can occur, for example, the creation of
-         a schema node of type counter64 at times other than
-         re-initialization, then a corresponding schema node
-         should be defined, with an appropriate type, to indicate
-         the last discontinuity.
-
-         The counter64 type should not be used for configuration
-         schema nodes.  A default statement SHOULD NOT be used in
-         combination with the type counter64.
-
-         In the value set and its semantics, this type is equivalent
-         to the Counter64 type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef zero-based-counter64 {
-       type yang:counter64;
-       default "0";
-       description
-        "The zero-based-counter64 type represents a counter64 that
-         has the defined 'initial' value zero.
-         A schema node of this type will be set to zero (0) on creation
-         and will thereafter increase monotonically until it reaches
-         a maximum value of 2^64-1 (18446744073709551615 decimal),
-         when it wraps around and starts increasing again from zero.
-
-         Provided that an application discovers a new schema node
-         of this type within the minimum time to wrap, it can use the
-         'initial' value as a delta.  It is important for a management
-         station to be aware of this minimum time and the actual time
-         between polls, and to discard data if the actual time is too
-         long or there is no defined minimum time.
-
-         In the value set and its semantics, this type is equivalent
-         to the ZeroBasedCounter64 textual convention of the SMIv2.";
-       reference
-        "RFC 2856: Textual Conventions for Additional High Capacity
-                   Data Types";
-     }
-
-     typedef gauge32 {
-       type uint32;
-       description
-        "The gauge32 type represents a non-negative integer, which
-         may increase or decrease, but shall never exceed a maximum
-         value, nor fall below a minimum value.  The maximum value
-         cannot be greater than 2^32-1 (4294967295 decimal), and
-         the minimum value cannot be smaller than 0.  The value of
-         a gauge32 has its maximum value whenever the information
-         being modeled is greater than or equal to its maximum
-         value, and has its minimum value whenever the information
-         being modeled is smaller than or equal to its minimum value.
-         If the information being modeled subsequently decreases
-         below (increases above) the maximum (minimum) value, the
-         gauge32 also decreases (increases).
-
-         In the value set and its semantics, this type is equivalent
-         to the Gauge32 type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef gauge64 {
-       type uint64;
-       description
-        "The gauge64 type represents a non-negative integer, which
-         may increase or decrease, but shall never exceed a maximum
-         value, nor fall below a minimum value.  The maximum value
-         cannot be greater than 2^64-1 (18446744073709551615), and
-         the minimum value cannot be smaller than 0.  The value of
-         a gauge64 has its maximum value whenever the information
-         being modeled is greater than or equal to its maximum
-         value, and has its minimum value whenever the information
-         being modeled is smaller than or equal to its minimum value.
-         If the information being modeled subsequently decreases
-         below (increases above) the maximum (minimum) value, the
-         gauge64 also decreases (increases).
-
-         In the value set and its semantics, this type is equivalent
-         to the CounterBasedGauge64 SMIv2 textual convention defined
-         in RFC 2856";
-       reference
-        "RFC 2856: Textual Conventions for Additional High Capacity
-                   Data Types";
-     }
-
-     /*** collection of identifier-related types ***/
-
-     typedef object-identifier {
-       type string {
-         pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))'
-               + '(\.(0|([1-9]\d*)))*';
-       }
-       description
-        "The object-identifier type represents administratively
-         assigned names in a registration-hierarchical-name tree.
-
-         Values of this type are denoted as a sequence of numerical
-         non-negative sub-identifier values.  Each sub-identifier
-         value MUST NOT exceed 2^32-1 (4294967295).  Sub-identifiers
-         are separated by single dots and without any intermediate
-         whitespace.
-
-         The ASN.1 standard restricts the value space of the first
-         sub-identifier to 0, 1, or 2.  Furthermore, the value space
-         of the second sub-identifier is restricted to the range
-         0 to 39 if the first sub-identifier is 0 or 1.  Finally,
-         the ASN.1 standard requires that an object identifier
-         has always at least two sub-identifiers.  The pattern
-         captures these restrictions.
-
-         Although the number of sub-identifiers is not limited,
-         module designers should realize that there may be
-         implementations that stick with the SMIv2 limit of 128
-         sub-identifiers.
-         This type is a superset of the SMIv2 OBJECT IDENTIFIER type
-         since it is not restricted to 128 sub-identifiers.  Hence,
-         this type SHOULD NOT be used to represent the SMIv2 OBJECT
-         IDENTIFIER type; the object-identifier-128 type SHOULD be
-         used instead.";
-       reference
-        "ISO9834-1: Information technology -- Open Systems
-         Interconnection -- Procedures for the operation of OSI
-         Registration Authorities: General procedures and top
-         arcs of the ASN.1 Object Identifier tree";
-     }
-
-     typedef object-identifier-128 {
-       type object-identifier {
-         pattern '\d*(\.\d*){1,127}';
-       }
-       description
-        "This type represents object-identifiers restricted to 128
-         sub-identifiers.
-
-         In the value set and its semantics, this type is equivalent
-         to the OBJECT IDENTIFIER type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef yang-identifier {
-       type string {
-         length "1..max";
-         pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*';
-         pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*';
-       }
-       description
-         "A YANG identifier string as defined by the 'identifier'
-          rule in Section 12 of RFC 6020.  An identifier must
-          start with an alphabetic character or an underscore
-          followed by an arbitrary sequence of alphabetic or
-          numeric characters, underscores, hyphens, or dots.
-
-          A YANG identifier MUST NOT start with any possible
-          combination of the lowercase or uppercase character
-          sequence 'xml'.";
-       reference
-         "RFC 6020: YANG - A Data Modeling Language for the Network
-                    Configuration Protocol (NETCONF)";
-     }
-     /*** collection of types related to date and time***/
-
-     typedef date-and-time {
-       type string {
-         pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?'
-               + '(Z|[\+\-]\d{2}:\d{2})';
-       }
-       description
-        "The date-and-time type is a profile of the ISO 8601
-         standard for representation of dates and times using the
-         Gregorian calendar.  The profile is defined by the
-         date-time production in Section 5.6 of RFC 3339.
-
-         The date-and-time type is compatible with the dateTime XML
-         schema type with the following notable exceptions:
-
-         (a) The date-and-time type does not allow negative years.
-
-         (b) The date-and-time time-offset -00:00 indicates an unknown
-             time zone (see RFC 3339) while -00:00 and +00:00 and Z
-             all represent the same time zone in dateTime.
-
-         (c) The canonical format (see below) of data-and-time values
-             differs from the canonical format used by the dateTime XML
-             schema type, which requires all times to be in UTC using
-             the time-offset 'Z'.
-
-         This type is not equivalent to the DateAndTime textual
-         convention of the SMIv2 since RFC 3339 uses a different
-         separator between full-date and full-time and provides
-         higher resolution of time-secfrac.
-
-         The canonical format for date-and-time values with a known time
-         zone uses a numeric time zone offset that is calculated using
-         the device's configured known offset to UTC time.  A change of
-         the device's offset to UTC time will cause date-and-time values
-         to change accordingly.  Such changes might happen periodically
-         in case a server follows automatically daylight saving time
-         (DST) time zone offset changes.  The canonical format for
-         date-and-time values with an unknown time zone (usually
-         referring to the notion of local time) uses the time-offset
-         -00:00.";
-       reference
-        "RFC 3339: Date and Time on the Internet: Timestamps
-         RFC 2579: Textual Conventions for SMIv2
-         XSD-TYPES: XML Schema Part 2: Datatypes Second Edition";
-     }
-     typedef timeticks {
-       type uint32;
-       description
-        "The timeticks type represents a non-negative integer that
-         represents the time, modulo 2^32 (4294967296 decimal), in
-         hundredths of a second between two epochs.  When a schema
-         node is defined that uses this type, the description of
-         the schema node identifies both of the reference epochs.
-
-         In the value set and its semantics, this type is equivalent
-         to the TimeTicks type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef timestamp {
-       type yang:timeticks;
-       description
-        "The timestamp type represents the value of an associated
-         timeticks schema node at which a specific occurrence
-         happened.  The specific occurrence must be defined in the
-         description of any schema node defined using this type.  When
-         the specific occurrence occurred prior to the last time the
-         associated timeticks attribute was zero, then the timestamp
-         value is zero.  Note that this requires all timestamp values
-         to be reset to zero when the value of the associated timeticks
-         attribute reaches 497+ days and wraps around to zero.
-
-         The associated timeticks schema node must be specified
-         in the description of any schema node using this type.
-
-         In the value set and its semantics, this type is equivalent
-         to the TimeStamp textual convention of the SMIv2.";
-       reference
-        "RFC 2579: Textual Conventions for SMIv2";
-     }
-
-     /*** collection of generic address types ***/
-
-     typedef phys-address {
-       type string {
-         pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
-       }
-       description
-        "Represents media- or physical-level addresses represented
-         as a sequence octets, each octet represented by two hexadecimal
-         numbers.  Octets are separated by colons.  The canonical
-         representation uses lowercase characters.
-
-         In the value set and its semantics, this type is equivalent
-         to the PhysAddress textual convention of the SMIv2.";
-       reference
-        "RFC 2579: Textual Conventions for SMIv2";
-     }
-
-     typedef mac-address {
-       type string {
-         pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}';
-       }
-       description
-        "The mac-address type represents an IEEE 802 MAC address.
-         The canonical representation uses lowercase characters.
-
-         In the value set and its semantics, this type is equivalent
-         to the MacAddress textual convention of the SMIv2.";
-       reference
-        "IEEE 802: IEEE Standard for Local and Metropolitan Area
-                   Networks: Overview and Architecture
-         RFC 2579: Textual Conventions for SMIv2";
-     }
-
-     /*** collection of XML-specific types ***/
-
-     typedef xpath1.0 {
-       type string;
-       description
-        "This type represents an XPATH 1.0 expression.
-
-         When a schema node is defined that uses this type, the
-         description of the schema node MUST specify the XPath
-         context in which the XPath expression is evaluated.";
-       reference
-        "XPATH: XML Path Language (XPath) Version 1.0";
-     }
-
-     /*** collection of string types ***/
-
-     typedef hex-string {
-       type string {
-         pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
-       }
-       description
-        "A hexadecimal string with octets represented as hex digits
-         separated by colons.  The canonical representation uses
-         lowercase characters.";
-     }
-
-     typedef uuid {
-       type string {
-         pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'
-               + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}';
-       }
-       description
-        "A Universally Unique IDentifier in the string representation
-         defined in RFC 4122.  The canonical representation uses
-         lowercase characters.
-
-         The following is an example of a UUID in string representation:
-         f81d4fae-7dec-11d0-a765-00a0c91e6bf6
-         ";
-       reference
-        "RFC 4122: A Universally Unique IDentifier (UUID) URN
-                   Namespace";
-     }
-
-     typedef dotted-quad {
-       type string {
-         pattern
-           '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-         + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
-       }
-       description
-         "An unsigned 32-bit number expressed in the dotted-quad
-          notation, i.e., four octets written as decimal numbers
-          and separated with the '.' (full stop) character.";
-     }
-   }
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/notifications@2008-07-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/notifications@2008-07-14.yang
deleted file mode 100644 (file)
index 77fbe98..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-module notifications {
-
-    namespace "urn:ietf:params:xml:ns:netconf:notification:1.0";
-    prefix "ncEvent";
-
-    import ietf-yang-types { prefix yang; revision-date "2013-07-15";}
-
-    organization
-      "IETF NETCONF WG";
-
-    contact
-      "netconf@ops.ietf.org";
-
-    description
-      "Conversion of the 'ncEvent' XSD in the
-       NETCONF Notifications RFC.";
-
-    reference
-      "RFC 5277.";
-
-    revision 2008-07-14 {
-      description "RFC 5277 version.";
-    }
-
-    typedef streamNameType {
-      description
-        "The name of an event stream.";
-      type string;
-    }
-
-    rpc create-subscription {
-      description
-        "The command to create a notification subscription. It
-         takes as argument the name of the notification stream
-         and filter. Both of those options limit the content of
-         the subscription. In addition, there are two time-related
-         parameters, startTime and stopTime, which can be used to
-         select the time interval of interest to the notification
-         replay feature.";
-
-      input {
-        leaf stream {
-          description
-            "An optional parameter that indicates which stream of events
-             is of interest. If not present, then events in the default
-             NETCONF stream will be sent.";
-          type streamNameType;
-          default "NETCONF";
-        }
-
-        anyxml filter {
-          description
-            "An optional parameter that indicates which subset of all
-             possible events is of interest. The format of this
-             parameter is the same as that of the filter parameter
-             in the NETCONF protocol operations. If not present,
-             all events not precluded by other parameters will
-             be sent.";
-        }
-
-        leaf startTime {
-          description
-            "A parameter used to trigger the replay feature and
-             indicates that the replay should start at the time
-             specified. If start time is not present, this is not a
-             replay subscription.";
-          type yang:date-and-time;
-        }
-
-        leaf stopTime {
-          // must ". >= ../startTime";
-          description
-            "An optional parameter used with the optional replay
-             feature to indicate the newest notifications of
-             interest. If stop time is not present, the notifications
-             will continue until the subscription is terminated.
-             Must be used with startTime.";
-          type yang:date-and-time;
-        }
-      }
-    }
-}
-
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-common-types@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-common-types@2016-10-14.yang
deleted file mode 100644 (file)
index e52b12b..0000000
+++ /dev/null
@@ -1,282 +0,0 @@
-module org-openroadm-common-types {
-  namespace "http://org/openroadm/common-types";
-  prefix org-openroadm-common-types;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of common types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping physical-location {
-    leaf rack {
-      type string;
-      mandatory false;
-    }
-    leaf shelf {
-      type string;
-      mandatory false;
-    }
-    leaf slot {
-      type string;
-      mandatory false;
-    }
-    leaf subSlot {
-      type string;
-      mandatory false;
-    }
-  }
-
-  typedef node-types {
-    type enumeration {
-      enum "rdm" {
-        value 1;
-      }
-      enum "xpdr" {
-        value 2;
-      }
-    }
-    description
-      "3 digit identifier for node type
-       1. rdm for ROADM
-       2. xpdr for Transponder, Regen";
-  }
-
-  typedef power-dBm {
-    description
-      "Power value in dBm.";
-    type decimal64 {
-      fraction-digits 2;
-    }
-    units "dBm";
-  }
-
-  typedef ratio-dB {
-    description
-      "Power ratio in dB.";
-    type decimal64 {
-      fraction-digits 3;
-    }
-    units "dB";
-  }
-
-  typedef severity {
-    description
-      "Severity, based on X.733 perceived severity";
-    type enumeration {
-      enum "critical" {
-        value 1;
-      }
-      enum "major" {
-        value 2;
-      }
-      enum "minor" {
-        value 3;
-      }
-      enum "warning" {
-        value 4;
-      }
-      enum "clear" {
-        value 5;
-      }
-      enum "indeterminate" {
-        value 6;
-      }
-    }
-  }
-
-  typedef rpc-status {
-    description
-      "status of RPC ";
-    type enumeration {
-      enum "Successful" {
-        value 1;
-      }
-      enum "Failed" {
-        value 2;
-      }
-    }
-  }
-
-  grouping rpc-response-status {
-    leaf status {
-      type rpc-status;
-      mandatory true;
-      description
-        "Successful or Failed";
-    }
-    leaf status-message {
-      type string;
-      description
-        "Gives a more detailed reason for failure";
-    }
-  }
-
-  typedef lifecycle-state {
-    description
-      "Lifecycle state.";
-    type enumeration {
-      enum "deployed" {
-        value 1;
-      }
-      enum "planned" {
-        value 2;
-      }
-      enum "maintenance" {
-        value 3;
-      }
-      enum "deploying" {
-        value 4;
-      }
-      enum "undeploying" {
-        value 5;
-      }
-    }
-  }
-
-  typedef state {
-    description
-      "State that indicates whether the resource is able to provide fullfill its role - carry traffic, etc.";
-    type enumeration {
-      enum "inService" {
-        value 1;
-      }
-      enum "outOfService" {
-        value 2;
-      }
-      enum "degraded" {
-        value 3;
-      }
-    }
-  }
-
-  typedef optic-types {
-    type enumeration {
-      enum "gray" {
-        value 1;
-      }
-      enum "dwdm" {
-        value 2;
-      }
-    }
-  }
-  grouping equipment-type {
-    leaf type {
-      type equipment-type-enum;
-      mandatory true;
-      config false;
-    }
-    leaf extension {
-      description
-        "Populated with equipment type when enum value is set to vendorExtension";
-      type string;
-      mandatory false;
-      config false;
-    }
-  }
-
-  typedef equipment-type-enum {
-    type enumeration {
-      enum "other" {
-        value 1;
-      }
-      enum "powerSupply" {
-        value 2;
-      }
-      enum "shelfProcessor" {
-        value 3;
-      }
-      enum "crossConnect" {
-        value 4;
-      }
-      enum "fan" {
-        value 5;
-      }
-      enum "accessPanel" {
-        value 6;
-      }
-      enum "circuitPack" {
-        value 7;
-      }
-    }
-  }
-
-  typedef optical-control-mode {
-    description
-      "Optical Control Mode: identifies specific algorithm related to power management and general optical control.";
-    type enumeration {
-      enum "power" {
-        value 1;
-      }
-      enum "gainLoss" {
-        value 2;
-      }
-      enum "off" {
-        value 3;
-      }
-    }
-    reference "openroadm.org: Open ROADM MSA Specification.";
-  }
-
-  typedef direction {
-    type enumeration {
-      enum "tx" {
-        value 1;
-      }
-      enum "rx" {
-        value 2;
-      }
-      enum "bidirectional" {
-        value 3;
-      }
-    }
-  }
-
-  typedef pm-direction {
-    type enumeration {
-      enum "tx" {
-        value 1;
-      }
-      enum "rx" {
-        value 2;
-      }
-      enum "bidirectional" {
-        value 3;
-      }
-      enum "notApplicable" {
-        value 4;
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-common-types@2017-09-29.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-common-types@2017-09-29.yang
deleted file mode 100644 (file)
index 5957348..0000000
+++ /dev/null
@@ -1,629 +0,0 @@
-module org-openroadm-common-types {
-  namespace "http://org/openroadm/common-types";
-  prefix org-openroadm-common-types;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of common types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping physical-location {
-    leaf rack {
-      type string;
-      mandatory false;
-    }
-    leaf shelf {
-      type string;
-      mandatory false;
-    }
-    leaf slot {
-      type string;
-      mandatory false;
-    }
-    leaf subSlot {
-      type string;
-      mandatory false;
-    }
-  }
-
-  typedef node-types {
-    type enumeration {
-      enum "rdm" {
-        value 1;
-      }
-      enum "xpdr" {
-        value 2;
-      }
-      enum "ila" {
-        value 3;
-      }
-      enum "extplug" {
-        value 4;
-      }
-    }
-    description
-      "Identifier for node type
-       1. rdm for ROADM
-       2. xpdr for Transponder, Regen
-       3. ila for in-line amplifier
-       4. extplug for external plugable";
-  }
-
-  typedef node-id-type {
-    type string {
-      length "7..63";
-      pattern "([a-zA-Z][a-zA-Z0-9-]{5,18}[a-zA-Z0-9])" {
-        error-message
-          "A node-id must be 7 to 63 characters in length.
-           A node-id can contain letters, numbers, and hyphens.
-           The first character must be a letter.
-           The last character must be a letter or number.";
-       }
-    }
-    description
-      "Globally unique identifer for a device.";
-  }
-
-  typedef xpdr-node-types {
-    type enumeration {
-      enum "tpdr" {
-        value 1;
-      }
-      enum "mpdr" {
-        value 2;
-      }
-      enum "switch" {
-        value 3;
-      }
-      enum "regen" {
-        value 4;
-      }
-      enum "regen-uni" {
-        value 5;
-      }
-    }
-    description
-      "Identifier for Xponder node type
-       1. Transponder
-       2. Muxponder
-       3. OTN switchponder
-       4. Regenerator
-       5. Regenerator based on unidirectional model";
-  }
-
-  typedef frequency-THz {
-    description
-      "Frequency value in THz.";
-    type decimal64 {
-      fraction-digits 8;
-    }
-    units "THz";
-  }
-
-  typedef frequency-GHz {
-    description
-      "Frequency value in GHz.";
-    type decimal64 {
-      fraction-digits 5;
-    }
-    units "GHz";
-  }
-
-  typedef power-dBm {
-    description
-      "Power value in dBm.";
-    type decimal64 {
-      fraction-digits 2;
-    }
-    units "dBm";
-  }
-
-  typedef ratio-dB {
-    description
-      "Power ratio in dB.";
-    type decimal64 {
-      fraction-digits 3;
-    }
-    units "dB";
-  }
-
-  typedef fiber-pmd {
-    description
-      "Polarization Mode Dispersion expressed in ps/km(1/2).";
-    type decimal64 {
-      fraction-digits 2;
-    }
-    units "ps/(km[1/2])";
-  }
-
-  typedef amplifier-types {
-    type enumeration {
-      enum "standard" {
-        value 1;
-      }
-    }
-    description
-      "identifier for amplifier type
-       1. standard for amplifier as defined initially in the ROADM MSA specifications
-       To be completed if/when additional amplifier types are required ";
-  }
-
-  typedef line-amplifier-control-mode {
-    description
-      "Identifies the line amplifier control mode, either off or gain.";
-    type enumeration {
-      enum "gainLoss" {
-        value 2;
-      }
-      enum "off" {
-        value 3;
-      }
-    }
-  }
-
-  typedef amplifier-gain-range {
-    description
-      "Operational mode for the amplifier:
-       this parameter allows modeling different operational modes (gain ranges) ,notably for switched-gain amplifiers.
-       It indicates which performance model shall be used by the path feasibility engine.
-       For standard amplifier, or when performance evaluation is based on incremental noise, use gain-range-1.
-       When performance evaluation is based on advanced parameters, specify used gain-range (1 to 4).
-       Up to release 2.1, only gain-range-1 is to be used (default value) ";
-    type enumeration {
-      enum "gain-range-1" {
-        value 1;
-      }
-      enum "gain-range-2" {
-        value 2;
-      }
-      enum "gain-range-3" {
-        value 3;
-      }
-      enum "gain-range-4" {
-        value 4;
-      }
-    }
-  }
-
-  typedef severity {
-    description
-      "Severity, based on X.733 perceived severity";
-    type enumeration {
-      enum "critical" {
-        value 1;
-      }
-      enum "major" {
-        value 2;
-      }
-      enum "minor" {
-        value 3;
-      }
-      enum "warning" {
-        value 4;
-      }
-      enum "clear" {
-        value 5;
-      }
-      enum "indeterminate" {
-        value 6;
-      }
-    }
-  }
-
-  typedef activate-notification-type {
-    description
-      "Type of notification on software or database activation events";
-    type enumeration {
-      enum "activate" {
-        value 1;
-        description
-          "software or database activation";
-      }
-      enum "commit" {
-        value 2;
-        description
-          "commit the software or database.
-           For software activate, this event can happen in the following scenarios:
-             1) immediately when user issue db-activate command without rollBackTimer
-                or if the rollBackTimer is specified as 00-00-00;
-             2) when user issue cancel-rollback-timer before it expires and with accept=true.
-           For database activate, this event can occur in the following scenarios:
-             1) immediately when user issue db-activate command without rollBackTimer
-                or if the rollBackTimer is specified as 00-00-00;
-             2) when user issue cancel-rollback-timer before it expires and with accept=true.";
-      }
-      enum "cancel" {
-        value 3;
-        description
-          "cancel the database or software activation operation.
-           For software activate, this event can happen in the following cases:
-             1) when the rollBackTimer expires;
-             2) when the user issues cancel-rollback-timer with accept=false.
-           For database activate, this event can happen in the following cases:
-             1) when the rollBackTimer expires;
-             2) when the user issues cancel-rollback-timer with accept=false.";
-      }
-    }
-  }
-
-  typedef rpc-status {
-    description
-      "status of RPC ";
-    type enumeration {
-      enum "Successful" {
-        value 1;
-      }
-      enum "Failed" {
-        value 2;
-      }
-    }
-  }
-
-  grouping rpc-response-status {
-    leaf status {
-      type rpc-status;
-      mandatory true;
-      description
-        "Successful or Failed";
-    }
-    leaf status-message {
-      type string;
-      description
-        "Gives a more detailed status";
-    }
-  }
-
-  typedef extended-rpc-status {
-    description
-      "status of RPC ";
-    type enumeration {
-      enum "Successful" {
-        value 1;
-      }
-      enum "Failed" {
-        value 2;
-      }
-      enum "In-progress" {
-        value 3;
-      }
-    }
-  }
-
-  grouping extended-rpc-response-status {
-    leaf status {
-      type extended-rpc-status;
-      mandatory true;
-      description
-        "Successful, Failed or In-progress";
-    }
-    leaf status-message {
-      type string;
-      description
-        "Gives a more detailed status.";
-    }
-  }
-
-  typedef lifecycle-state {
-    description
-      "Lifecycle state.";
-    type enumeration {
-      enum "deployed" {
-        value 1;
-      }
-      enum "planned" {
-        value 2;
-      }
-      enum "maintenance" {
-        value 3;
-      }
-      enum "deploying" {
-        value 4;
-      }
-      enum "undeploying" {
-        value 5;
-      }
-      enum "undeployed" {
-        value 6;
-      }
-      enum "proposed" {
-        value 7;
-      }
-      enum "draft" {
-        value 8;
-      }
-    }
-  }
-
-  typedef state {
-    description
-      "State that indicates whether the resource is able to provide fullfill its role - carry traffic, etc.";
-    type enumeration {
-      enum "inService" {
-        value 1;
-      }
-      enum "outOfService" {
-        value 2;
-      }
-      enum "degraded" {
-        value 3;
-      }
-    }
-  }
-
-  typedef optic-types {
-    type enumeration {
-      enum "gray" {
-        value 1;
-      }
-      enum "dwdm" {
-        value 2;
-      }
-    }
-  }
-
-  grouping equipment-type {
-    leaf type {
-      type equipment-type-enum;
-      mandatory true;
-      config false;
-    }
-    leaf extension {
-      description
-        "Populated with equipment type when enum value is set to vendorExtension";
-      type string;
-      mandatory false;
-      config false;
-    }
-  }
-
-  typedef equipment-type-enum {
-    type enumeration {
-      enum "other" {
-        value 1;
-      }
-      enum "powerSupply" {
-        value 2;
-      }
-      enum "shelfProcessor" {
-        value 3;
-      }
-      enum "crossConnect" {
-        value 4;
-      }
-      enum "fan" {
-        value 5;
-      }
-      enum "accessPanel" {
-        value 6;
-      }
-      enum "circuitPack" {
-        value 7;
-      }
-    }
-  }
-
-  typedef optical-control-mode {
-    description
-      "Optical Control Mode: identifies specific algorithm related to power management and general optical control.";
-    type enumeration {
-      enum "power" {
-        value 1;
-      }
-      enum "gainLoss" {
-        value 2;
-      }
-      enum "off" {
-        value 3;
-      }
-    }
-    reference "openroadm.org: Open ROADM MSA Specification.";
-  }
-
-  typedef direction {
-    type enumeration {
-      enum "tx" {
-        value 1;
-      }
-      enum "rx" {
-        value 2;
-      }
-      enum "bidirectional" {
-        value 3;
-      }
-      enum "notApplicable" {
-        value 4;
-      }
-    }
-  }
-
-  typedef location {
-    type enumeration {
-      enum "notApplicable" {
-        value 1;
-      }
-      enum "nearEnd" {
-        value 2;
-      }
-      enum "farEnd" {
-        value 3;
-      }
-    }
-  }
-
-  typedef wavelength-duplication-type {
-    description
-      "One per srg is applied to C/D add/drop group
-       one per degree is applied to C/D/C add drop group";
-    type enumeration {
-      enum "one-per-srg" {
-        description
-          "The SRG cannot handle wavelength duplication. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will result in failure.";
-        value 1;
-      }
-      enum "one-per-degree" {
-        description
-          "The SRG can handle wavelength duplication, but only one per degree. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will succeed, so long as the connections are not using the same degree.";
-        value 2;
-      }
-    }
-  }
-
-  typedef port-qual {
-    type enumeration {
-      enum "roadm-internal" {
-        value 1;
-      }
-      enum "roadm-external" {
-        value 2;
-      }
-      enum "xpdr-network" {
-        value 3;
-      }
-      enum "xpdr-client" {
-        value 4;
-      }
-      enum "otdr" {
-        value 5;
-      }
-      enum "switch-network" {
-        value 6;
-      }
-      enum "switch-client" {
-        value 7;
-      }
-      enum "ila-external" {
-        value 8;
-      }
-      enum "ila-internal" {
-        value 9;
-      }
-    }
-  }
-
-  identity och-rate-identity {
-    description
-      "A unique och rate identification";
-  }
-
-  identity R200G {
-    base och-rate-identity;
-    description
-      "Identity for 200G Rate";
-  }
-
-  identity R100G {
-    base och-rate-identity;
-    description
-      "Identity for 100G Rate";
-  }
-
-  identity R10.7G {
-    base och-rate-identity;
-    description
-      "Identity for 10.7G Rate";
-  }
-
-  identity R11.1G {
-    base och-rate-identity;
-    description
-      "Identity for 11.1G Rate";
-  }
-
-  typedef modulation-format {
-    type enumeration {
-      enum "bpsk" {
-        value 0;
-        description
-          "binary phase-shift keying";
-      }
-      enum "dc-dp-bpsk" {
-        value 1;
-        description
-          "DC dual-polarization binary phase-shift keying";
-      }
-      enum "qpsk" {
-        value 2;
-        description
-          "quadrature phase-shift keying";
-      }
-      enum "dp-qpsk" {
-        value 3;
-        description
-          "dual-polarization binary phase-shift keying";
-      }
-      enum "qam16" {
-        value 4;
-        description
-          "quadrature amplitude modulation 16";
-      }
-      enum "dp-qam16" {
-        value 5;
-        description
-          "dual-polarization quadrature amplitude modulation 16";
-      }
-      enum "dc-dp-qam16" {
-        value 6;
-        description
-          "DC dual-polarization quadrature amplitude modulation 16";
-      }
-      enum "qam8" {
-        value 7;
-        description
-          "quadrature amplitude modulation 8";
-      }
-      enum "dp-qam8" {
-        value 8;
-        description
-          "dual-polarization quadrature amplitude modulation 8";
-      }
-      enum "dc-dp-qam8" {
-        value 9;
-        description
-          "DC dual-polarization quadrature amplitude modulation 8";
-      }
-    }
-    description
-      "Modulation format";
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-device@2017-02-06.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-device@2017-02-06.yang
deleted file mode 100644 (file)
index 522cfea..0000000
+++ /dev/null
@@ -1,1215 +0,0 @@
-module org-openroadm-device {
-  namespace "http://org/openroadm/device";
-  prefix org-openroadm-device;
-
-  import ietf-yang-types {
-    prefix ietf-yang-types;
-  }
-  import ietf-inet-types {
-    prefix ietf-inet-types;
-  }
-  import ietf-netconf {
-    prefix ietf-nc;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2016-10-14;
-  }
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-  }
-  import org-openroadm-wavelength-map {
-      prefix org-openroadm-wavelength-map;
-      revision-date 2016-10-14;
-  }
-  import org-openroadm-physical-types {
-    prefix org-openroadm-physical-types;
-  }
-  import org-openroadm-user-mgmt {
-    prefix org-openroadm-user-mgmt;
-  }
-  import org-openroadm-port-types {
-    prefix org-openroadm-port-types;
-  }
-  import org-openroadm-interfaces {
-    prefix org-openroadm-interfaces;
-  }
-  import org-openroadm-swdl {
-    prefix org-openroadm-swdl;
-  }
-  import org-openroadm-equipment-states-types {
-    prefix org-openroadm-equipment-states-types;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of ROADM device
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF netconf.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2017-02-06 {
-    description
-      "Version 1.2.1 - removed pattern for current-datetime in info tree and rpc";
-  }
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  rpc get-connection-port-trail {
-    input {
-      leaf connection-number {
-        type string;
-        mandatory true;
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-      list ports {
-        uses org-openroadm-common-types:physical-location;
-        uses port-name {
-          refine "circuit-pack-name" {
-            mandatory true;
-          }
-          refine "port-name" {
-            mandatory true;
-          }
-        }
-      }
-    }
-  }
-  rpc disable-automatic-shutoff {
-    input {
-      leaf amp {
-        type leafref {
-          path "/org-openroadm-device/shelves/shelf-name";
-        }
-        mandatory true;
-        description
-          "The shelf where amp is located";
-      }
-      leaf degree-number {
-        type uint16;
-        mandatory true;
-      }
-      leaf support-timer {
-        type uint16 {
-          range "1..600";
-        }
-        default "20";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc start-scan {
-    input {
-      leaf degree-number {
-        type uint16;
-        mandatory true;
-      }
-      leaf port-direction {
-        type org-openroadm-common-types:direction;
-      }
-      leaf distance {
-        type uint32;
-      }
-      leaf resolution {
-        type uint32;
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-
-  notification otdr-scan-result {
-    leaf status {
-      type enumeration {
-        enum "Completed" {
-          value 1;
-        }
-        enum "Failed" {
-          value 2;
-        }
-      }
-      mandatory true;
-      description
-        "Completed or Failed for the scan's final status";
-    }
-    leaf result-file {
-      type string;
-    }
-  }
-
-  rpc set-current-datetime {
-    description
-      "Set the info/current-datetime leaf to the specified value.";
-    input {
-     leaf current-datetime {
-        type ietf-yang-types:date-and-time;
-        mandatory true;
-        description
-          "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS";
-      }
-    }
-
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-
-  grouping device-common {
-    leaf node-id {
-      type string;
-      description
-        "Globally unique identifer for a device.";
-      default "openroadm";
-    }
-    leaf node-number {
-      type uint32;
-      description
-        "Number assigned to a ROADM node at a
-         given office";
-    }
-    leaf node-type {
-      type org-openroadm-common-types:node-types;
-      description
-        "Identifier for node-type e.g Roadm, xponder";
-      config false;
-      mandatory true;
-    }
-    leaf clli {
-      type string;
-      description
-        "Common Language Location Identifier.";
-    }
-    uses org-openroadm-physical-types:node-info;
-    leaf ipAddress {
-      type ietf-inet-types:ip-address;
-      description
-        "IP Address of device";
-    }
-    leaf prefix-length {
-      type uint8 {
-        range "0..128";
-      }
-      description
-        "The length of the subnet prefix";
-    }
-    leaf defaultGateway {
-      type ietf-inet-types:ip-address;
-      description
-        "Default Gateway";
-    }
-    leaf source {
-      type enumeration {
-        enum "static" {
-          value 1;
-        }
-        enum "dhcp" {
-          value 2;
-        }
-      }
-      config false;
-    }
-    leaf current-ipAddress {
-      type ietf-inet-types:ip-address;
-      config false;
-      description
-        "Current IP Address of device";
-    }
-    leaf current-prefix-length {
-      type uint8 {
-        range "0..128";
-      }
-      config false;
-      description
-        "The current length of the subnet prefix";
-    }
-    leaf current-defaultGateway {
-      type ietf-inet-types:ip-address;
-      config false;
-      description
-        "Current Default Gateway";
-    }
-    leaf macAddress {
-      type ietf-yang-types:mac-address;
-      description
-        "MAC Address of device";
-      config false;
-    }
-    leaf softwareVersion {
-      type string;
-      config false;
-      description
-        "Software version";
-    }
-    leaf template {
-      type string;
-      description
-        "Template information used in the deployment.";
-    }
-    leaf current-datetime {
-      type ietf-yang-types:date-and-time;
-      config false;
-      description
-        "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS.mm+ ";
-    }
-    container geoLocation {
-      description
-        "GPS location";
-      leaf latitude {
-        type decimal64 {
-          fraction-digits 16;
-          range "-90 .. 90";
-        }
-        description
-          "[From wikipedia] Latitude is an angle (defined below)
-           which ranges from 0° at the Equator to 90° (North or
-           South) at the poles";
-      }
-      leaf longitude {
-        type decimal64 {
-          fraction-digits 16;
-          range "-180 .. 180";
-        }
-        description
-          "[From wikipedia] The longitude is measured as the
-           angle east or west from the Prime Meridian, ranging
-           from 0° at the Prime Meridian to +180° eastward and
-           âˆ’180° westward.";
-      }
-    }
-  }
-
-  grouping slot-info {
-    description
-      "slots information. To be populated by NE during retrieval.";
-    leaf slot-name {
-      type string;
-      description
-        "The name of this slot.";
-    }
-    leaf label {
-      type string;
-      description
-        "Faceplate label";
-    }
-    leaf provisioned-circuit-pack {
-      type leafref {
-        path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-      }
-      description
-        "The supported circuit-pack. It will be empty if no provision on this slot.";
-    }
-  }
-  grouping shelves {
-    list shelves {
-      key "shelf-name";
-      uses shelf;
-    }
-  }
-  grouping shelf {
-    leaf shelf-name {
-      description
-        "Unique identifier for this shelf within a device";
-      type string;
-    }
-    leaf shelf-type {
-      description
-        "The shelf type: describe the shelf with a unique string.";
-      type string;
-      mandatory true;
-    }
-    leaf rack {
-      description
-        "Reflect the shelf physical location data including floor, aisle, bay values.";
-      type string;
-    }
-    leaf shelf-position {
-      description
-        "Reflect the shelf vertical position within an equipment bay.";
-      type string;
-    }
-    leaf administrative-state {
-      description
-        "Admin State of the shelf";
-      type org-openroadm-equipment-states-types:admin-states;
-    }
-    uses org-openroadm-physical-types:common-info;
-    leaf equipment-state {
-      type org-openroadm-equipment-states-types:states;
-      description
-        "equipment state for the shelf, used to track the lifecycle state.";
-    }
-    leaf due-date {
-      type ietf-yang-types:date-and-time;
-      description
-        "due date for the shelf.";
-    }
-    list slots {
-      description
-          "List of slots on this shelf. To be populated by NE during retrieval.";
-      key "slot-name";
-      config false;
-      uses slot-info;
-    }
-  }
-
-  grouping circuit-packs {
-    list circuit-packs {
-      description
-        "List of circuit packs. This includes common equipment, like fans, power supplies, etc.";
-      key "circuit-pack-name";
-      leaf circuit-pack-type {
-        description
-          "Type of circuit-pack";
-        type string;
-        mandatory true;
-      }
-      leaf circuit-pack-product-code {
-        description
-          "Product Code for the circuit-pack";
-        type string;
-      }
-      uses circuit-pack;
-    }
-  }
-
-  grouping circuit-pack {
-    leaf circuit-pack-name {
-      description
-        "Unique identifier for this circuit-pack within a device";
-      type string;
-    }
-    leaf administrative-state {
-      description
-        "Administrative state of circuit-pack";
-      type org-openroadm-equipment-states-types:admin-states;
-    }
-    uses org-openroadm-physical-types:common-info;
-    container circuit-pack-category {
-      description
-        "General type of circuit-pack";
-      uses org-openroadm-common-types:equipment-type;
-      config false;
-    }
-    leaf equipment-state {
-      description
-        "Equipment state, which complements operational state.";
-      type org-openroadm-equipment-states-types:states;
-    }
-    leaf circuit-pack-mode {
-      description
-        "Circuit-pack mode allowed. e.g. NORMAL or REGEN";
-      type string;
-      default "NORMAL";
-    }
-    leaf shelf {
-      type leafref {
-        path "/org-openroadm-device/shelves/shelf-name";
-      }
-      mandatory true;
-    }
-    leaf slot {
-      type string;
-      mandatory true;
-    }
-    leaf subSlot {
-      type string;
-      mandatory false;
-    }
-    leaf due-date {
-      type ietf-yang-types:date-and-time;
-      description
-        "due date for this circuit-pack.";
-    }
-    container parent-circuit-pack {
-      description
-        "In the case of circuit packs that contain other equipment (modules or pluggables), this captures the hierarchy of that equipment.  It is a vendor specific design decision if the ports for single-port pluggables are modeled as children of the parent circuit-pack, or as children of the pluggable circuit-pack contained in the parent circuit-pack.  For modules with multiple ports, it is recommended that ports be children of the module and not the carrier, to help in fault correlation and isolation in the case of a module failure.";
-      uses circuit-pack-name;
-      leaf cp-slot-name {
-        type string;
-        description
-          "Slot name on parent-circuit-pack.";
-      }
-    }
-    list cp-slots {
-      description
-          "List of circuit-pack slots on this circuit-pack. To be populated by NE during retrieval.";
-      key "slot-name";
-      config false;
-      uses slot-info;
-    }
-    list ports {
-      key "port-name";
-      description
-        "List of ports on this circuit-pack.  For single port pluggables, the port may be modeled against the pluggable itself, or against the parent-circuit-pack.  For mulit-port pluggables, it is recommended that ports be modeled against the module itself.  Modeling ports as close to the equipment hierarchy as possible will help in fault correlation and isolation since common failures associated with supporting equipment can be used to help identify symptomatic failures on the contained ports.";
-      uses port;
-      container roadm-port {
-        when "../port-qual='roadm-external'";
-        uses org-openroadm-port-types:roadm-port;
-      }
-      container transponder-port {
-        when "../port-qual='xpdr-network' or ../port-qual='xpdr-client'";
-        uses org-openroadm-port-types:common-port;
-      }
-      container otdr-port {
-        when "../port-qual='otdr'";
-        description
-          "Settings for otdr port.";
-        leaf launch-cable-length {
-          type uint32;
-          default "30";
-          units "m";
-        }
-        leaf port-direction {
-          type org-openroadm-common-types:direction;
-        }
-      }
-    }
-  }
-
-  grouping connection {
-    description
-      "Grouping used to define connections.";
-    leaf connection-number {
-      type string;
-    }
-    leaf wavelength-number {
-      type uint32;
-      mandatory true;
-      description
-        "wavelength-number, can be used to access wavelength-map
-         to get wavelength value in nm.";
-    }
-    leaf opticalControlMode {
-      description
-        "Whether connection is currently in power or gain/loss mode";
-      type org-openroadm-common-types:optical-control-mode;
-      reference "openroadm.org: Open ROADM MSA Specification.";
-      default "off";
-    }
-    leaf target-output-power {
-      type org-openroadm-common-types:power-dBm;
-      description
-        "The output target power for this connection. When set, the ROADM will work to ensure that current-output-power reaches this level.";
-    }
-    container source {
-      leaf src-if {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-        mandatory true;
-      }
-    }
-    container destination {
-      leaf dst-if {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-        mandatory true;
-      }
-    }
-  }
-
-  grouping degree {
-    leaf degree-number {
-      type uint16;
-      must "not( current() > /org-openroadm-device/info/max-degrees) and current() > 0" {
-        error-message "Degree not supported by device ";
-        description
-          "Validating if the degree is supported by device";
-      }
-    }
-    leaf max-wavelengths {
-      type uint16;
-      description
-        "maximum number of wavelengths";
-      config false;
-      mandatory true;
-    }
-    list circuit-packs {
-      key "index";
-      description
-        "list for Cards associated with a degree";
-      leaf index {
-        type uint32;
-      }
-      uses circuit-pack-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-      }
-    }
-    list connection-ports {
-      description
-        "Port associated with degree: One if bi-directional; two if uni-directional";
-      key "index";
-      leaf index {
-        type uint32;
-      }
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container otdr-port {
-      description
-        "otdr port associated with degree.";
-      uses port-name;
-    }
-  }
-
-  grouping external-links {
-    description
-      "YANG definitions for external links..
-       - physical links between ROADMs and between the ROADMs and XPonders, which can be added and removed maually.";
-    list external-link {
-      key "external-link-name";
-      uses external-link;
-    }
-  }
-
-  grouping external-link {
-    leaf external-link-name {
-      type string;
-    }
-    container source {
-      uses org-openroadm-resource-types:device-id {
-        refine "node-id" {
-          mandatory true;
-        }
-      }
-      uses org-openroadm-resource-types:port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container destination {
-      uses org-openroadm-resource-types:device-id {
-        refine "node-id" {
-          mandatory true;
-        }
-      }
-      uses org-openroadm-resource-types:port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-  }
-
-  grouping internal-links {
-    list internal-link {
-      key "internal-link-name";
-      config false;
-      uses internal-link;
-    }
-  }
-
-  grouping internal-link {
-    leaf internal-link-name {
-      type string;
-    }
-    container source {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container destination {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-  }
-
-  grouping physical-links {
-    description
-      "YANG definitions for physical links.
-       - phyical links between cards within a ROADM, which are populated by the ROADM and cannot be added or removed manually. ";
-    list physical-link {
-      key "physical-link-name";
-      uses physical-link;
-    }
-  }
-
-  grouping physical-link {
-    leaf physical-link-name {
-      type string;
-    }
-    container source {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container destination {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-  }
-
-  grouping srg {
-    leaf max-add-drop-ports {
-      type uint16;
-      config false;
-      mandatory true;
-    }
-    leaf srg-number {
-      type uint16;
-      must "not(current()>/org-openroadm-device/info/max-srgs) and current()>0" {
-        error-message "invalid SRG";
-        description
-          "Validating if the srg is supported by add/drop group";
-      }
-    }
-    leaf wavelengthDuplication {
-      description
-        "Whether the SRG can handle duplicate wavelengths and if so to what extent.";
-      config false;
-      mandatory true;
-      type enumeration {
-        enum "onePerSRG" {
-          description
-            "The SRG cannot handle wavelength duplication. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will result in failure.";
-          value 1;
-        }
-        enum "onePerDegree" {
-          description
-            "The SRG can handle wavelength duplication, but only one per degree. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will succeed, so long as the connections are not using the same degree.";
-          value 2;
-        }
-      }
-    }
-    list circuit-packs {
-      key "index";
-      description
-        "list for Cards associated with an add/drop group and srg";
-      leaf index {
-        type uint32;
-      }
-      uses circuit-pack-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-      }
-    }
-  }
-
-  grouping degree-number {
-    leaf degree-number {
-      description
-        "Degree identifier. Unique within the context of a device.";
-      type leafref {
-        path "/org-openroadm-device/degree/degree-number";
-      }
-    }
-  }
-
-  grouping circuit-pack-name {
-    leaf circuit-pack-name {
-      description
-        "Circuit-Pack identifier. Unique within the context of a device.";
-      type leafref {
-        path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-      }
-    }
-  }
-
-  grouping port-name {
-    uses circuit-pack-name;
-    leaf port-name {
-      description
-        "Port identifier. Unique within the context of a circuit-pack.";
-      type leafref {
-        path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
-      }
-    }
-  }
-
-  grouping srg-number {
-    leaf srg-number {
-      description
-        "Shared Risk Group identifier. Unique within the context of a device.";
-      type leafref {
-        path "/org-openroadm-device/shared-risk-group/srg-number";
-      }
-    }
-  }
-
-  grouping supporting-port-name {
-    leaf supporting-circuit-pack-name {
-      description
-        "Identifier of the supporting circuit-pack.";
-      type leafref {
-        path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-      }
-      mandatory true;
-    }
-    leaf supporting-port {
-      description
-        "Identifier of the supporting port.";
-      mandatory true;
-      type leafref {
-        path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../supporting-circuit-pack-name]/ports/port-name";
-      }
-    }
-  }
-
-  grouping interface-name {
-    leaf interface-name {
-      description
-        "Name of an interface. Unique within the context of a device.";
-      type leafref {
-        path "/org-openroadm-device/interface/name";
-      }
-      config false;
-    }
-  }
-
-  grouping interfaces-grp {
-    description
-      "OpenROADM Interface configuration parameters.";
-    list interface {
-      key "name";
-      description
-        "The list of configured interfaces on the device.";
-      leaf name {
-        type string;
-        description
-          "The name of the interface.";
-      }
-      leaf description {
-        type string;
-        description
-          "A textual description of the interface.";
-      }
-      leaf type {
-        type identityref {
-          base org-openroadm-interfaces:interface-type;
-        }
-        mandatory true;
-        description
-          "The type of the interface.";
-      }
-      leaf administrative-state {
-        type org-openroadm-equipment-states-types:admin-states;
-      }
-      leaf operational-state {
-        type org-openroadm-common-types:state;
-        config false;
-      }
-      leaf circuit-id {
-        type string {
-          length "0..45";
-        }
-        description
-          "circuit identifier/user label,
-           can be used in alarm correlation and/or connection management ";
-      }
-      leaf supporting-interface {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-      }
-      uses supporting-port-name;
-    }
-  }
-
-  grouping port {
-    description
-      "Grouping of attributes related to a port object.";
-    leaf port-name {
-      type string;
-      mandatory true;
-      description
-        "Identifier for a port, unique within a circuit pack";
-    }
-    leaf port-type {
-      type string;
-      description
-        "Type of the pluggable or fixed port.";
-    }
-    leaf port-qual {
-      type enumeration {
-        enum "roadm-internal" {
-          value 1;
-        }
-        enum "roadm-external" {
-          value 2;
-        }
-        enum "xpdr-network" {
-          value 3;
-        }
-        enum "xpdr-client" {
-          value 4;
-        }
-        enum "otdr" {
-          value 5;
-        }
-      }
-    }
-    leaf port-wavelength-type {
-      type org-openroadm-port-types:port-wavelength-types;
-      config false;
-      description
-        "Type of port - single, multiple-wavelength, etc.";
-    }
-    leaf port-direction {
-      type org-openroadm-common-types:direction;
-      config false;
-      mandatory true;
-      description
-        "Whether port is uni (tx/rx) or bi-directional and";
-    }
-    leaf label {
-      type string;
-      config false;
-      description
-        "Faceplate label";
-    }
-    leaf circuit-id{
-      type string{
-        length "0..45";
-      }
-      description
-          "circuit identifier/user label,
-           can be used in alarm correlation and/or connection management ";
-
-    }
-    leaf administrative-state {
-      type org-openroadm-equipment-states-types:admin-states;
-      description
-        "Administrative state of port. The value of this field independant of the state of its contained and containing resources.  Setting this a port to administratively down will impact both its operational state, as well the operational state of its contained resources.  If this port is an endpoint to a connection, internal-link, physical-link, etc, then administratevely disabling this port will impact the operational state of those items unless they are using some form of port-protection schema.";
-      default "outOfService";
-    }
-    leaf operational-state {
-      type org-openroadm-common-types:state;
-      config false;
-      mandatory true;
-      description
-        "Operational state of a port";
-    }
-    leaf-list supported-interface-capability {
-      description
-        "Interface types supported on this port";
-      config false;
-      type identityref {
-        base org-openroadm-port-types:supported-if-capability;
-      }
-    }
-    leaf logical-connection-point {
-      type string;
-      description
-        "delete or replace with list logical-ports or connections?";
-    }
-    container partner-port {
-      config false;
-      description
-        "For ports which are not identified as having a direction of bidirectional, this field is used to identify the port which corresponds to the reverse direction. A port pair should include a port for each direction (tx, rx) and report their mate as partner-port.";
-      uses port-name;
-    }
-    container parent-port {
-      config false;
-      description
-        "In the case of port hierarchy, this is the parent port, which is also modeled as port within this circuit-pack. This is used in the case of a port that supports a parallel connector that contains subports.  The parent-port of the subport will be the port that contains this subport.  This can be used to help isolate faults when a single fault on a parallel connector introduces symptomatic failures on the contained subports.";
-      uses port-name;
-    }
-    list interfaces {
-      config false;
-      description
-        "List of the interfaces this port supports.  This is a list of names of instances in the flat instance list";
-      uses interface-name;
-    }
-  }
-
-  uses org-openroadm-device-container;
-
-  grouping org-openroadm-device-container {
-    container org-openroadm-device {
-      container info {
-        uses device-common;
-        leaf max-degrees {
-          type uint16;
-          description
-            "Max. number of degrees supported by device";
-          config false;
-        }
-        leaf max-srgs {
-          type uint16;
-          description
-            "Max. number of SRGs in an add/drop group";
-          config false;
-        }
-      }
-      container users {
-        description
-          "Stores a list of users";
-        uses org-openroadm-user-mgmt:user-profile;
-      }
-      container pending-sw {
-        config false;
-        uses org-openroadm-swdl:sw-bank;
-      }
-      uses shelves;
-      uses circuit-packs;
-      uses interfaces-grp;
-      container protocols {
-        description
-          "Contains the supported protocols";
-      }
-      container wavelength-map {
-        description
-          "The wavelength-number and center frequency, wavelength mapping";
-        config false;
-        uses org-openroadm-wavelength-map:wavelength-map-g;
-      }
-      uses internal-links;
-      uses physical-links;
-      uses external-links;
-      list degree {
-        when "/org-openroadm-device/info/node-type='rdm'";
-        key "degree-number";
-        uses degree;
-      }
-      list shared-risk-group {
-        when "/org-openroadm-device/info/node-type='rdm'";
-        key "srg-number";
-        uses srg;
-      }
-      list roadm-connections {
-        when "/org-openroadm-device/info/node-type='rdm'";
-        key "connection-number";
-        uses connection;
-      }
-      list connection-map {
-        key "connection-map-number";
-        config false;
-        leaf connection-map-number {
-          description
-            "Unique identifier for this connection-map entry";
-          type uint32;
-        }
-        container source {
-          leaf circuit-pack-name {
-            type leafref {
-              path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-            }
-            mandatory true;
-          }
-          leaf port-name {
-            description
-              "Port identifier. Unique within the context of a circuit-pack.";
-            type leafref {
-              path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
-            }
-            mandatory true;
-          }
-        }
-        list destination {
-          key "circuit-pack-name port-name";
-          min-elements 1;
-          leaf circuit-pack-name {
-            type leafref {
-              path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-            }
-            mandatory true;
-          }
-          leaf port-name {
-            description
-              "Port identifier. Unique within the context of a circuit-pack.";
-            type leafref {
-              path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
-            }
-            mandatory true;
-          }
-        }
-      }
-    }
-  }
-
-  grouping common-session-parms {
-    description
-      "Common session parameters to identify a
-       management session.";
-
-    leaf username {
-      type string;
-      mandatory true;
-      description
-        "Name of the user for the session.";
-    }
-
-    leaf session-id {
-      type ietf-nc:session-id-or-zero-type;
-      mandatory true;
-      description
-        "Identifier of the session.
-         A NETCONF session MUST be identified by a non-zero value.
-         A non-NETCONF session MAY be identified by the value zero.";
-    }
-
-    leaf source-host {
-      type ietf-inet-types:ip-address;
-      description
-        "Address of the remote host for the session.";
-    }
-  }
-  grouping changed-by-parms {
-    description
-      "Common parameters to identify the source
-       of a change event, such as a configuration
-       or capability change.";
-
-     container changed-by {
-       description
-         "Indicates the source of the change.
-          If caused by internal action, then the
-          empty leaf 'server' will be present.
-          If caused by a management session, then
-          the name, remote host address, and session ID
-          of the session that made the change will be reported.";
-       choice server-or-user {
-         leaf server {
-           type empty;
-           description
-             "If present, the change was caused
-              by the server.";
-         }
-
-         case by-user {
-           uses common-session-parms;
-         }
-       } // choice server-or-user
-     } // container changed-by-parms
-  }
-  notification change-notification {
-    description
-      "The Notification that a resource has been added, modified or removed.
-       This notification can be triggered by changes in configuration and operational data.
-       It shall contain the changed field pointed by the xpath.
-       Typically it is not intended for frequently changing volatile data e.g. PM, power levels";
-
-    leaf change-time {
-      description "The time the change occurs.";
-      type ietf-yang-types:date-and-time;
-    }
-    uses changed-by-parms;
-
-    leaf datastore {
-      type enumeration {
-        enum running {
-          description "The <running> datastore has changed.";
-        }
-        enum startup {
-          description "The <startup> datastore has changed";
-        }
-      }
-      default "running";
-      description
-        "Indicates which configuration datastore has changed.";
-    }
-    list edit {
-      description
-        "An edit (change) record SHOULD be present for each distinct
-         edit operation that the server has detected on
-         the target datastore.  This list MAY be omitted
-         if the detailed edit operations are not known.
-         The server MAY report entries in this list for
-         changes not made by a NETCONF session.";
-
-      leaf target {
-        type instance-identifier;
-        description
-            "Topmost node associated with the configuration or operationa change.
-             A server SHOULD set this object to the node within
-             the datastore that is being altered.  A server MAY
-             set this object to one of the ancestors of the actual
-             node that was changed, or omit this object, if the
-             exact node is not known.";
-      }
-      leaf operation {
-        type ietf-nc:edit-operation-type;
-        description
-          "Type of edit operation performed.
-         A server MUST set this object to the NETCONF edit
-         operation performed on the target datastore.";
-      }
-    } // list edit
-  } // notification change-notification
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-equipment-states-types@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-equipment-states-types@2016-10-14.yang
deleted file mode 100644 (file)
index 11ce8f5..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-module org-openroadm-equipment-states-types {
-  namespace "http://org/openroadm/equipment/states/types";
-  prefix org-openroadm-equipment-states-types;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for types of states of equipment (slot/subslot).
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef admin-states {
-    type enumeration {
-      enum "inService" {
-        value 1;
-      }
-      enum "outOfService" {
-        value 2;
-      }
-      enum "maintenance" {
-        value 3;
-      }
-    }
-  }
-
-  typedef states {
-    type enumeration {
-      enum "reserved-for-facility-planned" {
-        value 1;
-        description
-          "equipment is planned for use by a service";
-      }
-      enum "not-reserved-planned" {
-        value 2;
-        description
-          "equipment is planned by not reserved for any purpose";
-      }
-      enum "reserved-for-maintenance-planned" {
-        value 3;
-        description
-          "equipment is planned for use as a maintenance spare";
-      }
-      enum "reserved-for-facility-unvalidated" {
-        value 4;
-        description
-          "equipment is reserved for use by a service but not
-           validated against planned equipment";
-      }
-      enum "not-reserved-unvalidated" {
-        value 5;
-        description
-          "equipment is not reserved for any purpose and
-           not validated against planned equipment";
-      }
-      enum "unknown-unvalidated" {
-        value 6;
-        description
-          "unknown equipment not validated against planned equipment";
-      }
-      enum "reserved-for-maintenance-unvalidated" {
-        value 7;
-        description
-          "equipment is to be used for use as a maintenance spare
-           but not validated against planned equipment";
-      }
-      enum "reserved-for-facility-available" {
-        value 8;
-        description
-          "reserved for use by a service and available";
-      }
-      enum "not-reserved-available" {
-        value 9;
-        description
-          "not reserved for use by a service and available";
-      }
-      enum "reserved-for-maintenance-available" {
-        value 10;
-        description
-          "reserved as a maintenance spare and available";
-      }
-      enum "reserved-for-reversion-inuse" {
-        value 11;
-        description
-          "equipiment that is reserved as part of a home path
-           for a service that has been temporarily re-routed";
-      }
-      enum "not-reserved-inuse" {
-        value 12;
-        description
-          "equipment in use for a service";
-      }
-      enum "reserved-for-maintenance-inuse" {
-        value 13;
-        description
-          "maintenance spare equipment that is in use as a
-           maintenance spare";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-ethernet-interfaces@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-ethernet-interfaces@2016-10-14.yang
deleted file mode 100644 (file)
index 869a2c9..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-module org-openroadm-ethernet-interfaces {
-  namespace "http://org/openroadm/ethernet-interfaces";
-  prefix org-openroadm-eth-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility ethernet interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping eth-attributes {
-    leaf speed {
-      type uint32;
-      description
-        "Set speed of the interface, unit mbps.
-         This is for ETH facility. ";
-    }
-    leaf fec {
-      type enumeration {
-        enum off;
-        enum rsfec;
-      }
-      description "Forward Error Correction Choices. ";
-    }
-    leaf duplex {
-      type enumeration {
-        enum "half" {
-          value 0;
-          description
-            "half duplex";
-        }
-        enum "full" {
-          value 1;
-          description
-            "full duplex";
-        }
-      }
-      default "full";
-      description
-        "Set duplex selections.";
-    }
-    leaf mtu {
-      type uint32 {
-        range "1518..9000";
-      }
-      default "1522";
-      description
-        "Set Maximum Frame Size.";
-    }
-    leaf auto-negotiation {
-      type enumeration {
-        enum "enabled" {
-          value 1;
-          description
-            "Auto Negotiation enabled";
-        }
-        enum "disabled" {
-          value 0;
-          description
-            "Auto Negotiation disabled";
-        }
-      }
-      default "enabled";
-      description
-        "Set Auto Negotiation: Enabled/Disabled.";
-    }
-    leaf curr-speed {
-      config false;
-      type string;
-      description
-        "speed (UNKNOWN/AUTO/10/100/1000/10000) corresponding to the interface";
-    }
-    leaf curr-duplex {
-      config false;
-      type string;
-      description
-        "duplex (HALF/FULL) corresponding to the interface";
-    }
-  }
-
-  grouping ethernet-container {
-    container ethernet {
-      description
-        "Ethernet Interfaces";
-      uses eth-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:ethernetCsmacd'";
-    uses ethernet-container;
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-interfaces@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-interfaces@2016-10-14.yang
deleted file mode 100644 (file)
index acd74fe..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-module org-openroadm-interfaces {
-  namespace "http://org/openroadm/interfaces";
-  prefix openROADM-if;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility interfaces.
-     Reused ietf-interfaces and some interface-type defined in iana-if-type.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity interface-type {
-    description
-      "Base identity from which specific interface types are
-       derived.";
-  }
-
-  identity ethernetCsmacd {
-    base interface-type;
-    description
-      "For all Ethernet-like interfaces, regardless of speed,
-       as per RFC 3635.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-
-  identity ip {
-    base interface-type;
-    description
-      "IP (for APPN HPR in IP networks).";
-  }
-
-  identity opticalChannel {
-    base interface-type;
-    description
-      "Optical Channel.";
-  }
-
-  identity opticalTransport {
-    base interface-type;
-    description
-      "Optical Transport.";
-  }
-
-  identity otnOdu {
-    base interface-type;
-    description
-      "OTN Optical Data Unit.";
-  }
-
-  identity otnOtu {
-    base interface-type;
-    description
-      "OTN Optical channel Transport Unit.";
-  }
-
-  identity openROADMOpticalMultiplex {
-    base interface-type;
-    description
-      "Optical Transport Multiplex type for openROADM";
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-layerRate@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-layerRate@2016-10-14.yang
deleted file mode 100644 (file)
index e9c7eb0..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-module org-openroadm-layerRate {
-  namespace "http://org/openroadm/layerRate";
-  prefix org-openroadm-layerRate;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of layer rates.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping layer-rate {
-    description
-      "Set list of layer rates, plus the ability to report layer rates not yet in set list.";
-    leaf type {
-      type layer-rate-enum;
-      mandatory true;
-    }
-    leaf extension {
-      type string;
-      mandatory false;
-    }
-  }
-
-  typedef layer-rate-enum {
-    type enumeration {
-      enum "vendorExtension" {
-        value 1;
-        description
-          "vendor extension";
-      }
-      enum "layer2" {
-        value 2;
-        description
-          "2";
-      }
-      enum "layer3" {
-        value 3;
-        description
-          "3";
-      }
-      enum "layer4" {
-        value 4;
-        description
-          "4";
-      }
-      enum "layer5" {
-        value 5;
-        description
-          "5";
-      }
-      enum "layer6" {
-        value 6;
-        description
-          "6";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-lldp@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-lldp@2016-10-14.yang
deleted file mode 100644 (file)
index d781330..0000000
+++ /dev/null
@@ -1,302 +0,0 @@
-module org-openroadm-lldp {
-  namespace "http://org/openroadm/lldp";
-  prefix org-openroadm-lldp;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-  }
-  import iana-afn-safi {
-    prefix ianaaf;
-  }
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-  }
-  import ietf-yang-types {
-    prefix yang;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for lldp protocol.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-  grouping nbr-info-grp {
-    description
-      "Display LLDP Neighbour ";
-
-    leaf remoteSysName {
-      type string;
-      description
-        "remote neighbour system name";
-    }
-    leaf remoteMgmtAddressSubType {
-      type ianaaf:address-family;
-      description
-        "remote neighbour Management Address Subtype Enumeration";
-    }
-    leaf remoteMgmtAddress {
-      type inet:ip-address;
-      description
-        "remote neighbour management address";
-    }
-    leaf remotePortIdSubType {
-      type enumeration {
-        enum "other" {
-          value 0;
-          description
-            "reserved";
-        }
-        enum "ifalias" {
-          value 1;
-          description
-            "Interface Alias (IfAlias - IETF RFC 2863) ";
-        }
-        enum "portcomponent" {
-          value 2;
-          description
-            "Port component (EntPhysicalAlias IETF RFC 4133)";
-        }
-        enum "macaddress" {
-          value 3;
-          description
-            "MAC address (IEEE Std 802) ";
-        }
-        enum "networkaddress" {
-          value 4;
-          description
-            "Network Address";
-        }
-        enum "ifname" {
-          value 5;
-          description
-            "Interface Name (ifName - IETF RFC 2863)";
-        }
-        enum "agentcircuitid" {
-          value 6;
-          description
-            "Agent Circuit Id (IETF RFC 3046)";
-        }
-        enum "local" {
-          value 7;
-          description
-            "Locally assigned";
-        }
-      }
-      description
-        "remote neighbour Port ID Subtype Enumeration";
-    }
-    leaf remotePortId {
-      type string;
-      description
-        "remote neighbour port Id";
-    }
-    leaf remoteChassisIdSubType {
-      type enumeration {
-        enum "reserved" {
-          value 0;
-          description
-            "reserved";
-        }
-        enum "chassiscomponent" {
-          value 1;
-          description
-            "Chassis component (EntPhysicalAlias IETF RFC 4133)";
-        }
-        enum "ifalias" {
-          value 2;
-          description
-            "Interface Alias (IfAlias - IETF RFC 2863) ";
-        }
-        enum "portcomponent" {
-          value 3;
-          description
-            "Port component (EntPhysicalAlias IETF RFC 4133)";
-        }
-        enum "macaddress" {
-          value 4;
-          description
-            "MAC address (IEEE Std 802) ";
-        }
-        enum "networkaddress" {
-          value 5;
-          description
-            "Network Address";
-        }
-        enum "ifname" {
-          value 6;
-          description
-            "Interface Name (ifName - IETF RFC 2863)";
-        }
-        enum "local" {
-          value 7;
-          description
-            "Locally assigned";
-        }
-      }
-      description
-        "Chassis ID Subtype Enumeration";
-    }
-    leaf remoteChassisId {
-      type string;
-      description
-        "remote neighbour Chassis Id";
-    }
-  }
-
-  grouping lldp-container {
-    container lldp {
-      description
-        "LLDP configurable and retrievable";
-      container global-config {
-        description
-          "LLDP global configurations";
-        leaf adminStatus {
-          type enumeration {
-            enum "disable" {
-              value 0;
-              description
-                "Disable the LLDP feature per NE";
-            }
-            enum "enable" {
-              value 1;
-              description
-                "Enable the LLDP feature per NE";
-            }
-          }
-          description
-            "LLDP feature Enable/Disable per NE";
-          default "enable";
-        }
-        leaf msgTxInterval {
-          type uint16 {
-            range "5..32768";
-          }
-          description
-            "LLDP frame Retransmit Interval in seconds";
-          default "30";
-        }
-        leaf msgTxHoldMultiplier {
-          type uint8 {
-            range "2..10";
-          }
-          description
-            "TTL value for the TLVs transmitter over wire in seconds";
-          default "4";
-        }
-      }
-      list port-config {
-        description
-          "LLDP port configurations";
-        key "ifName";
-        leaf ifName {
-          type leafref {
-            path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
-          }
-          description
-            "Ethernet interface name where LLDP runs";
-        }
-        leaf adminStatus {
-          type enumeration {
-            enum "disable" {
-              value 0;
-              description
-                "Disables the LLDP frames transmit and receive on specific interface";
-            }
-            enum "txandrx" {
-              value 1;
-              description
-                "Enable Transmit and Receive LLDP frames on specific interface";
-            }
-          }
-          description
-            "LLDP enable per port basis";
-          default "txandrx";
-        }
-      }
-      container nbr-list {
-        description
-          "LLDP Oper data - Neighbour List information";
-        config false;
-        list if-name {
-          key "ifName";
-          leaf ifName {
-            type string;
-            description
-              "Ethernet interface name where LLDP runs";
-          }
-          uses nbr-info-grp;
-        }
-      }
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:protocols" {
-    when "/org-openroadm-device:org-openroadm-device/org-openroadm-device:info/org-openroadm-device:node-type='rdm'";
-    uses lldp-container;
-  }
-
-  notification lldp-nbr-info-change {
-    description "LLDP: Neighbor Information Changed
-            remoteSysName
-            remoteSysMgmtAddressSubType
-            remoteSysMgmtAddress
-            remotePortIdSubType
-            remotePortId
-            remoteChassisIdSubType
-            remoteChassisId
-            All of the above attributes are sent in event";
-    leaf notification-type {
-      type org-openroadm-resource-types:resource-notification-type;
-    }
-    leaf resource-type {
-      type org-openroadm-resource-types:resource-type-enum;
-      description
-        "resource-type for this notification is interface";
-    }
-    leaf resource {
-      type string;
-      description
-        "resource interface-name";
-    }
-    container nbr-info {
-      uses nbr-info-grp;
-    }
-    leaf event-time {
-      type yang:date-and-time;
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-maintenance-loopback@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-maintenance-loopback@2016-10-14.yang
deleted file mode 100644 (file)
index 4f50786..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-module org-openroadm-maintenance-loopback {
-  namespace "http://org/openroadm/maintenance-loopback";
-  prefix org-openroadm-maint-loopback;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for maintenance loopback.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping maint-loopback {
-    container maint-loopback {
-      leaf enabled {
-        type boolean;
-        default "false";
-        description
-          "loopback operation enable flag";
-      }
-      leaf type {
-        when "../enabled = 'true'";
-        type enumeration {
-          enum "fac" {
-            value 0;
-            description
-              "pre-FEC Loopback in the facility direction";
-          }
-          enum "term" {
-            value 1;
-            description
-              "Loopback in the terminal direction";
-          }
-          enum "fac2" {
-            value 2;
-            description
-              "post-FEC Loopback in the facility direction";
-          }
-        }
-        default "fac";
-        description
-          "Set Loopback type (or direction).";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-maintenance-testsignal@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-maintenance-testsignal@2016-10-14.yang
deleted file mode 100644 (file)
index 67d980b..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-module org-openroadm-maintenance-testsignal {
-  namespace "http://org/openroadm/maintenance-testsignal";
-  prefix org-openroadm-maint-testsignal;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for maintenance testsignal.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping maint-testsignal {
-    container maint-testsignal {
-      leaf enabled {
-        type boolean;
-        default "false";
-        description
-          "testsignal enabled flag";
-      }
-      leaf testPattern {
-        when "../enabled = 'true'";
-        type enumeration {
-          enum "PRBS" {
-            value 0;
-            description
-              "Unframed, inverted PN-31 pattern or PRBS31 pattern per IEEE 802.3 clause 50.3.8.2 (inverted PN-31at line rate)";
-          }
-          enum "PRBS31" {
-            value 1;
-            description
-              "PRBS31 with standard mapping per G.709";
-          }
-          enum "PRBS23" {
-            value 2;
-            description
-              "SONET/SDH Framed,inverted PN-23 pattern.";
-          }
-          enum "PRZEROS" {
-            value 3;
-            description
-              "pseudo-random with zeros data pattern per IEEE 802.3 clause 49.2.8";
-          }
-          enum "IDLE" {
-            value 4;
-            description
-              "Scrambled IDLE test-pattern per IEEE 802.3ba";
-          }
-        }
-        description
-          "Set test signal pattern";
-      }
-      leaf type {
-        when "../enabled = 'true'";
-        type enumeration {
-          enum "fac" {
-            value 0;
-            description
-              "test signal in the facility direction";
-          }
-          enum "term" {
-            value 1;
-            description
-              "test signal in the terminal direction";
-          }
-        }
-        default "fac";
-        description
-          "Set test signal type (or direction).";
-      }
-      leaf bitErrors {
-        when "../enabled = 'true' and ../type = 'fac'";
-        type uint32 {
-          range "0..4294967295";
-        }
-        config false;
-        description
-          "bit errors for test signal in facility direction.";
-      }
-      leaf bitErrorsTerminal {
-        when "../enabled = 'true' and ../type = 'term'";
-        type uint32 {
-          range "0..4294967295";
-        }
-        config false;
-        description
-          "bit errors for test signal in terminal direction.";
-      }
-      leaf syncSeconds {
-        when "../enabled = 'true' and ../type = 'fac'";
-        type string;
-        config false;
-        description
-          "number of seconds the received facility test signal is in sync.";
-      }
-      leaf syncSecondsTerminal {
-        when "../enabled = 'true' and ../type = 'term'";
-        type string;
-        config false;
-        description
-          "number of seconds the received terminal test signal is in sync.";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-maintenance@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-maintenance@2016-10-14.yang
deleted file mode 100644 (file)
index 5c6e1ff..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-module org-openroadm-maintenance {
-  namespace "http://org/openroadm/maintenance";
-  prefix org-openroadm-mainteance;
-
-  import org-openroadm-resource {
-    prefix org-openroadm-resource;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of maintenace operations.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping maintenance {
-    leaf id {
-      description
-        "Uniquely identify maintenance activity";
-      type string;
-      mandatory true;
-    }
-    container resource {
-      description
-        "Resource under maintenance";
-      uses org-openroadm-resource:resource;
-    }
-    leaf operation {
-      type maintenance-operation;
-    }
-  }
-
-  container maintenance-list {
-    description
-      "A list of active maintenance operations. Adding an entry to this list creates an active maintenance operation.  Removing an entry from this terminates a maintenance activity";
-    list maintenance {
-      key "id";
-      uses maintenance;
-    }
-  }
-
-  typedef maintenance-operation {
-    description
-      "Maintenance Operation.";
-    type enumeration {
-      enum "terminalLoopback" {
-        value 1;
-      }
-      enum "facilityLoopback" {
-        value 2;
-      }
-      enum "testSignal" {
-        value 3;
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-optical-channel-interfaces@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-optical-channel-interfaces@2016-10-14.yang
deleted file mode 100644 (file)
index 563596b..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-module org-openroadm-optical-channel-interfaces {
-  namespace "http://org/openroadm/optical-channel-interfaces";
-  prefix org-openroadm-optical-channel-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility och interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity rate-identity {
-    description
-      "A unique rate identification";
-  }
-
-  identity R200G {
-    base rate-identity;
-    description
-      "Identity for 200G Rate";
-  }
-
-  identity R100G {
-    base rate-identity;
-    description
-      "Identity for 100G Rate";
-  }
-
-  identity R10.7G {
-    base rate-identity;
-    description
-      "Identity for 10.7G Rate";
-  }
-
-  identity R11.1G {
-    base rate-identity;
-    description
-      "Identity for 11.1G Rate";
-  }
-
-  grouping och-attributes {
-    description
-      "Optical Channel attributes";
-    leaf rate {
-      type identityref {
-        base rate-identity;
-      }
-      description
-        "rate";
-    }
-    leaf wavelength-number {
-      type uint32;
-    }
-    leaf modulation-format {
-      type enumeration {
-        enum "bpsk" {
-          value 0;
-          description
-            "binary phase-shift keying";
-        }
-        enum "dc-dp-bpsk" {
-          value 1;
-          description
-            "DC dual-polarization binary phase-shift keying";
-        }
-        enum "qpsk" {
-          value 2;
-          description
-            "quadrature phase-shift keying";
-        }
-        enum "dp-qpsk" {
-          value 3;
-          description
-            "dual-polarization binary phase-shift keying";
-        }
-        enum "qam16" {
-          value 4;
-          description
-            "quadrature amplitude modulation 16";
-        }
-        enum "dp-qam16" {
-          value 5;
-          description
-            "dual-polarization quadrature amplitude modulation 16";
-        }
-        enum "dc-dp-qam16" {
-          value 6;
-          description
-            "DC dual-polarization quadrature amplitude modulation 16";
-        }
-        enum "qam8" {
-          value 7;
-          description
-            "quadrature amplitude modulation 8";
-        }
-        enum "dp-qam8" {
-          value 8;
-          description
-            "dual-polarization quadrature amplitude modulation 8";
-        }
-        enum "dc-dp-qam8" {
-          value 9;
-          description
-            "DC dual-polarization quadrature amplitude modulation 8";
-        }
-      }
-      description
-        "modulation format";
-    }
-    leaf transmit-power {
-      type org-openroadm-common-types:power-dBm;
-      description
-        "The target transmit power for this channel. When set, the xponder will work to ensure that port-current-power reaches this level. Applicable only to channel on top of xpdr-network port";
-    }
-  }
-
-  grouping och-container {
-    container och {
-      description
-        "Optical Channel (OCh):
-         Models the optical channel interfaces for an Optical White Box.";
-      uses och-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:opticalChannel'";
-    uses och-container;
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-optical-multiplex-interfaces@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-optical-multiplex-interfaces@2016-10-14.yang
deleted file mode 100644 (file)
index 5503241..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-module org-openroadm-optical-multiplex-interfaces {
-  namespace "http://org/openroadm/optical-multiplex-interfaces";
-  prefix org-openroadm-optical-multiplex-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "This module contains YANG definitions
-     for the Optical multiplex Interfaces (OMS).
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    description
-      "Optical Multiplex Section (OMS)
-       allow setting of OMS in the openROADM interfaces tree.";
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-optical-transport-interfaces@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-optical-transport-interfaces@2016-10-14.yang
deleted file mode 100644 (file)
index 060e4d7..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-module org-openroadm-optical-transport-interfaces {
-  namespace "http://org/openroadm/optical-transport-interfaces";
-  prefix org-openroadm-optical-transport-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "This module contains YANG definitions
-     for the Optical Transport Interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping ots-attributes {
-    description
-      "Optical Transport Section (OTS) attributes";
-    leaf fiber-type {
-      type enumeration {
-        enum "smf" {
-          value 0;
-          description
-            "Single Mode Fiber";
-        }
-        enum "eleaf" {
-          value 1;
-          description
-            "ELEAF";
-        }
-        enum "oleaf" {
-          value 2;
-          description
-            "OLEAF";
-        }
-        enum "dsf" {
-          value 3;
-          description
-            "DSF";
-        }
-        enum "truewave" {
-          value 4;
-          description
-            "TRUEWAVE Reduced Slope";
-        }
-        enum "truewavec" {
-          value 5;
-          description
-            "TRUEWAVE Classic";
-        }
-        enum "nz-dsf" {
-          value 6;
-          description
-            "NZ-DSF";
-        }
-        enum "ull" {
-          value 7;
-          description
-            "Ultra Low Loss (ULL)";
-        }
-      }
-      default "smf";
-      description
-        "fiber type
-         Default    : SMF ";
-    }
-    leaf span-loss-receive {
-      description
-        "Span loss on the receiver side. Set by the controller and used by device to set AMP gain.";
-      type org-openroadm-common-types:ratio-dB;
-    }
-    leaf span-loss-transmit {
-      description
-        "Span loss on the transmitter side. Set by the controller and used by device to configure MSA compliant channel launch power";
-      type org-openroadm-common-types:ratio-dB;
-    }
-  }
-
-  grouping ots-container {
-    container ots {
-      description
-        "Optical Transport Section (OTS):
-          Models the optical interfaces for an Optical White Box.
-          The network side is represented by the OTS/OMS.";
-      uses ots-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:opticalTransport'";
-    uses ots-container;
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-otn-odu-interfaces@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-otn-odu-interfaces@2016-10-14.yang
deleted file mode 100644 (file)
index 3b49eff..0000000
+++ /dev/null
@@ -1,387 +0,0 @@
-module org-openroadm-otn-odu-interfaces {
-  namespace "http://org/openroadm/otn-odu-interfaces";
-  prefix org-openroadm-otn-odu-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-  }
-  import org-openroadm-maintenance-testsignal {
-    prefix org-openroadm-maint-testsignal;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility otnodu interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity odu-rate-identity {
-    description
-      "A unique rate identification of the ODUk.";
-  }
-
-  identity ODU4 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU4";
-  }
-
-  identity ODU3 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU3";
-  }
-
-  identity ODU2 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU2";
-  }
-
-  identity ODU2e {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU2e";
-  }
-
-  identity ODU1 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU1";
-  }
-
-  identity ODU0 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU0";
-  }
-
-  identity ODUflex {
-    base odu-rate-identity;
-    description
-      "Identity for an ODUflex";
-  }
-
-  identity odtu-type-identity {
-    description
-      "A unique identification for the MSI odtu type.";
-  }
-
-  identity ODTU4.ts-Allocated {
-    base odtu-type-identity;
-    description
-      "OPU4 MSI - ODTU4.ts, TS is occupied/allocated";
-  }
-
-  identity ODTU4.1 {
-    base odtu-type-identity;
-    description
-      "ODTU4.1 MSI type";
-  }
-
-  identity ODTU4.2 {
-    base odtu-type-identity;
-    description
-      "ODTU4.2 MSI type";
-  }
-
-  identity ODTU4.8 {
-    base odtu-type-identity;
-    description
-      "ODTU4.8 MSI type";
-  }
-
-  identity ODTU4.31 {
-    base odtu-type-identity;
-    description
-      "ODTU4.31 MSI type";
-  }
-
-  identity ODTU01 {
-    base odtu-type-identity;
-    description
-      "ODTU01 MSI type";
-  }
-
-  identity ODTU12 {
-    base odtu-type-identity;
-    description
-      "ODTU12 MSI type";
-  }
-
-  identity ODTU13 {
-    base odtu-type-identity;
-    description
-      "ODTU13 MSI type";
-  }
-
-  identity ODTU23 {
-    base odtu-type-identity;
-    description
-      "ODTU23 MSI type";
-  }
-
-  identity ODTU2.ts {
-    base odtu-type-identity;
-    description
-      "ODTU2.ts MSI type";
-  }
-
-  identity ODTU3.ts {
-    base odtu-type-identity;
-    description
-      "ODTU3.ts MSI type";
-  }
-
-  identity unallocated {
-    base odtu-type-identity;
-    description
-      "Unallocated MSI type";
-  }
-
-  grouping msi-entry {
-    leaf trib-slot {
-      type uint16;
-      description
-        "tributary slot (TS)";
-    }
-    leaf odtu-type {
-      type identityref {
-        base odtu-type-identity;
-      }
-      description
-        "ODTU type, part of the MSI (Multiplex Structure Identifier)";
-    }
-    leaf trib-port {
-      type uint8;
-      description
-        "Tributray Port Number (0-based), part of the MSI";
-    }
-    leaf trib-port-payload {
-      type string;
-      description
-        "interface name being mapped to trib-port";
-    }
-  }
-
-  grouping odu-attributes {
-    description
-      "ODU attributes";
-    leaf rate {
-      type identityref {
-        base odu-rate-identity;
-      }
-      description
-        "rate identity of the ODU. 'identityref' is used
-         to allow to extend for future higher rates";
-    }
-    leaf monitoring-mode {
-      type enumeration {
-        enum "not-terminated" {
-          description
-            "Not Terminated: no detection or generation.
-             Overhead is passed through the interface transparently in receive direction";
-        }
-        enum "terminated" {
-          description
-            "Terminated: detection and generation enabled.
-             Overhead is erased (replaced with all zeros) in receive direction";
-        }
-        enum "monitored" {
-          description
-            "Monitored: detection enabled.
-             Overhead is passed through the interface transparently in receive direction";
-        }
-      }
-      description
-        "Monitoring mode of the ODU Overhead";
-    }
-    leaf proactive-delay-measurement-enabled {
-      type boolean;
-      description
-        "enable/disable proactive Delay Measurement";
-    }
-    list tcm {
-      key "layer";
-      uses tcm-attributes;
-      max-elements "6";
-      description
-        "Tandem Connection Management";
-    }
-    uses opu;
-  }
-
-  grouping opu {
-    container opu {
-      when "../monitoring-mode = 'terminated' or ../monitoring-mode = 'monitored'";
-      description
-        "Optical Channel Payload Unit (OPU)";
-      leaf payload-type {
-        type string {
-          length "2";
-          pattern "[0-9a-fA-F]*";
-        }
-        description
-          "Payload Type";
-      }
-      leaf rx-payload-type {
-        type string {
-          length "2";
-          pattern "[0-9a-fA-F]*";
-        }
-        description
-          "Received Payload Type";
-      }
-      leaf exp-payload-type {
-        type string {
-          length "2";
-          pattern "[0-9a-fA-F]*";
-        }
-        description
-          "Expected Payload Type";
-      }
-      leaf payload-interface {
-        type string;
-        description
-          "Expected Payload of OPU. It designates client interface name";
-      }
-      container msi {
-        when "../payload-type = '20' or ../payload-type = '21'";
-        list tx-msi {
-          key "trib-slot";
-          uses msi-entry;
-          description
-            "Transmit MSI";
-        }
-        list rx-msi {
-          key "trib-slot";
-          uses msi-entry;
-          description
-            "Receive MSI";
-        }
-        list exp-msi {
-          key "trib-slot";
-          uses msi-entry;
-          description
-            "Expected MSI";
-        }
-      }
-    }
-  }
-
-  grouping tcm-attributes {
-    description
-      "Tandem Connection Monitoring (TCM) attributes";
-    leaf layer {
-      type uint8 {
-        range "1..6";
-      }
-      description
-        "TCM layer";
-    }
-    leaf monitoring-mode {
-      type enumeration {
-        enum "not-terminated" {
-          description
-            "Not Terminated: no detection or generation.
-             Overhead is passed through the interface transparently in receive direction
-             unless extension is set for erase";
-        }
-        enum "terminated" {
-          description
-            "Terminated: detection and generation enabled.
-             Overhead is erased (replaced with all zeros) in receive direction, unless
-             extension is set to passthrough";
-        }
-        enum "monitored" {
-          description
-            "Monitored: detection enabled.
-             Overhead is passed through the interface transparently in receive direction
-             unless extension is set for erase";
-        }
-      }
-      description
-        "Monitoring mode of the TCM layer";
-    }
-    leaf ltc-act-enabled {
-      type boolean;
-      description
-        "enable/disable alarm transfer on detection of Loss of Tandem Connection (LTC)";
-    }
-    leaf proactive-delay-measurement-enabled {
-      type boolean;
-      description
-        "enable/disable proactive Delay Measurement";
-    }
-  }
-
-  grouping odu-container {
-    container odu {
-      presence "Attribute Nodes for Optical Data Unit (ODU)";
-      description
-        "Optical Channel Data Unit (ODU)";
-      uses odu-attributes {
-        refine "opu/rx-payload-type" {
-          config false;
-        }
-        refine "opu/msi" {
-          config false;
-        }
-      }
-      uses org-openroadm-maint-testsignal:maint-testsignal;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:otnOdu'";
-    uses odu-container;
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-otn-otu-interfaces@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-otn-otu-interfaces@2016-10-14.yang
deleted file mode 100644 (file)
index 4fe3bb3..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-module org-openroadm-otn-otu-interfaces {
-  namespace "http://org/openroadm/otn-otu-interfaces";
-  prefix org-openroadm-otn-otu-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-  }
-  import org-openroadm-maintenance-loopback {
-    prefix org-openroadm-maint-loopback;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility otnotu interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity otu-rate-identity {
-    description
-      "A unique rate identification of the OTU.";
-  }
-
-  identity OTU4 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU4";
-  }
-
-  identity OTU3 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU3";
-  }
-
-  identity OTU2 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU2";
-  }
-
-  identity OTU2e {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU2e";
-  }
-
-  identity OTU1 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU1";
-  }
-
-  identity OTU0 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU0";
-  }
-
-  identity OTUflex {
-    base otu-rate-identity;
-    description
-      "Identity for an OTUflex";
-  }
-
-  grouping otu-attributes {
-    description
-      "OTU attributes";
-    leaf rate {
-      type identityref {
-        base otu-rate-identity;
-      }
-      description
-        "rate identity of the OTU. 'identityref' is used
-         to allow to extend for future higher rates";
-    }
-    leaf fec {
-      type enumeration {
-        enum "off" {
-          value 0;
-          description
-            "fec off";
-        }
-        enum "rsfec" {
-          value 1;
-          description
-            "rsfec";
-        }
-        enum "sdfeca1" {
-          value 2;
-          description
-            "Clariphy SDFEC";
-        }
-        enum "efec" {
-          value 3;
-          description
-            "G.975.1 I.4";
-        }
-        enum "ufec" {
-          value 4;
-          description
-            "G.975.1 I.7";
-        }
-        enum "sdfec" {
-          value 5;
-          description
-            "Soft decision FEC";
-        }
-        enum "sdfecb1" {
-          value 6;
-          description
-            "SDFEC with SCFEC";
-        }
-        enum "scfec" {
-          value 7;
-          description
-            "Stair case FEC";
-        }
-      }
-      description
-        "Forward Error Correction";
-    }
-  }
-
-  grouping otu-container {
-    container otu {
-      description
-        "Optical Channel Transport Unit (OTU)";
-      uses otu-attributes;
-      uses org-openroadm-maint-loopback:maint-loopback;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:otnOtu'";
-    uses otu-container;
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-physical-types@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-physical-types@2016-10-14.yang
deleted file mode 100644 (file)
index 4251018..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-module org-openroadm-physical-types {
-  namespace "http://org/openroadm/physical/types";
-  prefix org-openroadm-physical-types;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-  }
-  import ietf-yang-types {
-    prefix yang;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of physical types.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping node-info {
-    description
-      "Physical inventory data used by the node";
-    leaf vendor {
-      description
-        "Vendor of the equipment";
-      type string;
-      config false;
-      mandatory true;
-    }
-    leaf model {
-      type string;
-      description
-        "Physical resource model information.";
-      config false;
-      mandatory true;
-    }
-    leaf serial-id {
-      description
-        "Product Code for this physical resource";
-      type string;
-      config false;
-      mandatory true;
-    }
-  }
-
-  grouping common-info {
-    description
-      "Physical inventory data used by all other entities";
-    uses node-info;
-    leaf type {
-      description
-        "The specific type of this physical resource - ie the type of
-         shelf, type of circuit-pack, etc.";
-      type string;
-      config false;
-    }
-    leaf product-code {
-      description
-        "Product Code for this physical resource";
-      type string;
-      config false;
-    }
-    leaf manufacture-date {
-      description
-        "Manufactor date of physical resource";
-      type yang:date-and-time;
-      config false;
-    }
-    leaf clei {
-      description
-        "CLEI for this physical resource";
-      type string;
-      config false;
-    }
-    leaf hardware-version {
-      description
-        "The version of the hardware.";
-      type string;
-      config false;
-    }
-    leaf operational-state {
-      description
-        "Operational state of the physical resource";
-      type org-openroadm-common-types:state;
-      config false;
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-pm-types@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-pm-types@2016-10-14.yang
deleted file mode 100644 (file)
index 3a70362..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-module org-openroadm-pm-types {
-  namespace "http://org/openroadm/pm-types";
-  prefix org-openroadm-pm-types;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-   revision-date 2016-10-14;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of performance management types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef pm-granularity {
-    description
-      "Granularity of PM bin";
-    type enumeration {
-      enum "notApplicable" {
-        description
-          "This is for total statistic counters on devices that support
-              them.";
-        value 1;
-      }
-      enum "15min" {
-        value 2;
-      }
-      enum "24Hour" {
-        value 3;
-      }
-    }
-  }
-
-  typedef pm-data-type {
-    type union {
-      type uint64;
-      type decimal64 {
-        fraction-digits 2;
-      }
-      type decimal64 {
-        fraction-digits 17;
-      }
-    }
-  }
-
-  grouping pm-measurement {
-    description
-      "Set of parameters related to a PM Measurement";
-    container pmParameterName {
-      uses pm-names;
-    }
-    leaf pmParameterValue {
-      type pm-data-type;
-      mandatory true;
-      config false;
-    }
-    leaf pmParameterUnit {
-      description
-        "Unit PM parameter has been measured - frames, packets, u, etc";
-      type string;
-      mandatory false;
-    }
-    leaf location {
-      description
-        "Location PM parameter measurement";
-      type enumeration {
-        enum "notApplicable" {
-          value 1;
-        }
-        enum "nearEnd" {
-          value 2;
-        }
-        enum "farEnd" {
-          value 3;
-        }
-      }
-      mandatory false;
-    }
-    leaf direction {
-      description
-        "Direction PM parameter measurement";
-      type org-openroadm-common-types:pm-direction;
-      mandatory false;
-    }
-    leaf validity {
-      description
-        "Validity of data";
-      type enumeration {
-        enum "complete" {
-          value 1;
-        }
-        enum "partial" {
-          value 2;
-        }
-        enum "suspect" {
-          value 3;
-        }
-      }
-      mandatory false;
-      config false;
-    }
-  }
-
-  grouping pm-names {
-    description
-      "Name of PM parameter. Consisists of a set list of parameters,
-       plus an extension field to support addition parameters.";
-    leaf type {
-      type pm-names-enum;
-      mandatory true;
-    }
-    leaf extension {
-      description
-        "name of parameter, when enum value set to vendorExtension because
-         name not found in pm-names-enum";
-      type string;
-      mandatory false;
-    }
-  }
-
-  typedef pm-names-enum {
-    type enumeration {
-      enum "vendorExtension" {
-        value 1;
-        description
-          "vendor extension";
-      }
-      enum "bitErrorRate" {
-        value 2;
-        description
-          "Bit error rate (BER)";
-      }
-      enum "opticalPowerOutput" {
-        value 3;
-        description
-          "Optical Power Output (OPOUT-OTS). Total optical power includes Variable Optical Attenuator (VOA) attenuation";
-      }
-      enum "opticalReturnLoss" {
-        value 4;
-        description
-          "Optical Return Loss (ORL-OTS) - at MW port(s) B";
-      }
-      enum "opticalPowerInput" {
-        value 5;
-        description
-          "Optical Power Input (OPIN-OTS). Total optical power";
-      }
-      enum "opticalPower" {
-        value 6;
-        description
-          "Optical Power Receive (OPR-OTS); Optical Power Transmit (OPT-OSC)";
-      }
-      enum "opticalChannelPowerTransmit" {
-        value 7;
-        description
-          "Optical Channel Power Transmit (OPT-OCH). Individual channel power includes Variable Optical Attenuator (VOA) attenuation";
-      }
-      enum "codeViolations" {
-        value 8;
-        description
-          "Code Violations (CV-PCS). 8B/10B errors";
-        reference "IEEE 802.3ah, Section 45.2.1.44";
-      }
-      enum "erroredSecondsSection" {
-        value 9;
-        description
-          "Errored Seconds Section (ES-PCS)";
-        reference "IEEE 802.3ah, Section 45.2.1.46";
-      }
-      enum "severlyErrorSeconds" {
-        value 10;
-        description
-          "Severely Errored Seconds (SES-PCS)";
-        reference "IEEE 802.3ah, Section 45.2.1.48";
-      }
-      enum "unavailableSecondsPCS" {
-        value 11;
-        description
-          "Unavailable Seconds PCS (UAS-PCS)";
-        reference "IEEE 802.3ah, Section 45.2.1.52";
-      }
-      enum "inFrames" {
-        value 12;
-        description
-          "In frames (INFRAMES-E)";
-      }
-      enum "inFramesErrored" {
-        value 13;
-        description
-          "In frames errored (INFRAMESERR-E)";
-      }
-      enum "outFrames" {
-        value 14;
-        description
-          "Out frames (OUTFRAMES-E)";
-      }
-      enum "erroredSecondsEthernet" {
-        value 15;
-        description
-          "Errored Seconds Ethernet (ES-E)";
-        reference "IEEE 802.3ah, Section 45.2.1.46";
-      }
-      enum "severelyErroredSecondsEthernet" {
-        value 16;
-        description
-          "Severly Errored Seconds, Ethernet (SES-E)";
-        reference "IEEE 802.3ah, Section 45.2.1.48";
-      }
-      enum "unavailableSecondsEthernet" {
-        value 17;
-        description
-          "Unavailable Seconds, Ethernet (UAS-E)";
-        reference "IEEE 802.3ah, Section 45.2.1.52";
-      }
-      enum "erroredBlockCount" {
-        value 18;
-        description
-          "Errored block count";
-        reference "G.798 : 6.5.1.1";
-      }
-      enum "delay" {
-        value 19;
-        description
-          "Number of frames between a DMValue toggle event and the received DMp signal value toggle event";
-        reference "G.798";
-      }
-      enum "defectSeconds" {
-        value 20;
-        description
-          "Defect Seconds (DS)";
-        reference "";
-      }
-      enum "backwardIncomingAlignmentError" {
-        value 21;
-        description
-          "Backward Incoming Alignment Error (BIAE)";
-        reference "Ref: G.798: 14.5.1.1.2";
-      }
-      enum "incomingAlignmentError" {
-        value 22;
-        description
-          "Incoming Alignment Error (IAE)";
-        reference "Ref: G.798: 14.5.1.1.2";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-pm@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-pm@2016-10-14.yang
deleted file mode 100644 (file)
index 8a75c58..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-module org-openroadm-pm {
-  namespace "http://org/openroadm/pm";
-  prefix org-openroadm-pm;
-
-  import ietf-yang-types {
-    prefix yang;
-  }
-  import org-openroadm-resource {
-    prefix org-openroadm-resource;
-  }
-  import org-openroadm-layerRate {
-    prefix org-openroadm-layerRate;
-  }
-  import org-openroadm-pm-types {
-    prefix org-openroadm-pm-types;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of performance management.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping current-pm {
-    description
-      "PM Data with current values - both realtime (granularity=notApplicable) and binned (granularity=15 minute, 24h))";
-    leaf id {
-      type string;
-      mandatory true;
-      config false;
-    }
-    container resource {
-      uses org-openroadm-resource:resource;
-    }
-    container layerRate {
-      uses org-openroadm-layerRate:layer-rate;
-    }
-    list measurements {
-      container measurement {
-        uses org-openroadm-pm-types:pm-measurement;
-      }
-    }
-    leaf retrievalTime {
-      type yang:date-and-time;
-      mandatory true;
-      config false;
-    }
-    leaf granularity {
-      type org-openroadm-pm-types:pm-granularity;
-    }
-  }
-
-  container currentPmlist {
-    description
-      "List of current PMs.";
-    list currentPm {
-      key "id";
-      uses current-pm;
-    }
-    config false;
-  }
-
-  grouping historical-pm {
-    description
-      "PM Data with historical values - binned (granularity=15 minute, 24h))";
-    leaf id {
-      type string;
-      mandatory true;
-      config false;
-    }
-    container resource {
-      uses org-openroadm-resource:resource;
-    }
-    container layerRate {
-      uses org-openroadm-layerRate:layer-rate;
-    }
-    list binned-pm {
-      key "bin-number";
-      uses bin-pm;
-    }
-    leaf granularity {
-      type org-openroadm-pm-types:pm-granularity;
-    }
-  }
-
-  grouping bin-pm {
-    description
-      "PM Data with historical values";
-    leaf bin-number {
-      type uint16 {
-        range "1..max";
-      }
-      mandatory true;
-      config false;
-    }
-    list measurements {
-      container measurement {
-        uses org-openroadm-pm-types:pm-measurement;
-      }
-    }
-    leaf completionTime {
-      type yang:date-and-time;
-      mandatory true;
-      config false;
-    }
-  }
-
-  container historicalPmlist {
-    description
-      "List of historical PM";
-    list historicalPm {
-      key "id";
-      uses historical-pm;
-    }
-    config false;
-  }
-  rpc clear-pm {
-    description "Command to initialize PM data";
-    input {
-      uses org-openroadm-resource:resource;
-      leaf pm-type {
-        default "current";
-        type enumeration {
-          enum "current" {
-            value 1;
-          }
-          enum "all" {
-            value 2;
-          }
-        }
-      }
-      leaf granularity {
-        default "15min";
-        type org-openroadm-pm-types:pm-granularity;
-      }
-    }
-    output {
-      leaf status {
-        type enumeration {
-          enum "Successful" {
-            value 1;
-          }
-          enum "Failed" {
-            value 2;
-          }
-        }
-        mandatory true;
-        description
-          "Successful or Failed";
-      }
-      leaf status-message {
-        type string;
-        description
-          "Gives a more detailed reason for success / failure";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-port-types@2017-09-29.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-port-types@2017-09-29.yang
deleted file mode 100644 (file)
index fdae1d8..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-module org-openroadm-port-types {
-  namespace "http://org/openroadm/port/types";
-  prefix org-openroadm-port-types;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2017-09-29;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for port types.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity supported-if-capability {
-    description
-      "Base identity from which specific supported interfaces are derived";
-  }
-
-  identity if-100GE {
-    base supported-if-capability;
-  }
-
-  identity if-OMS {
-    base supported-if-capability;
-  }
-
-  identity if-OTS {
-    base supported-if-capability;
-  }
-
-  identity if-OCH {
-    base supported-if-capability;
-  }
-
-  identity if-1GE {
-    base supported-if-capability;
-  }
-
-  identity if-10GE {
-    base supported-if-capability;
-  }
-
-  identity if-40GE {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU1-ODU1 {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU2-ODU2 {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU2E-ODU2E {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU3-ODU3 {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU4-ODU4 {
-    base supported-if-capability;
-  }
-
-  identity if-OTU4-ODU4 {
-    base supported-if-capability;
-  }
-
-  identity supported-xpdr-capability {
-    description
-      "Base identity from which specific supported xponder are derived";
-  }
-
-  identity Transponder {
-    base supported-xpdr-capability;
-  }
-
-  identity Regen {
-    base supported-xpdr-capability;
-  }
-
-  typedef port-wavelength-types {
-    type enumeration {
-      enum "wavelength" {
-        value 1;
-        description
-          "Port on a transponder or ROADM SRG add drop";
-      }
-      enum "multi-wavelength" {
-        value 2;
-        description
-          "External port connecting to other roadm.";
-      }
-    }
-    description
-      "Port types.";
-  }
-
-  grouping common-port {
-    leaf port-power-capability-min-rx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the minimum power in the system spec for this port to
-         provide optimum function in rx direction";
-    }
-    leaf port-power-capability-min-tx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the minimum power in the system spec for this port to
-         provide optimum function in tx direction.";
-    }
-    leaf port-power-capability-max-rx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the maximum power in the system spec for this port to
-         provide optimum function in rx direction.";
-    }
-    leaf port-power-capability-max-tx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the maximum power in the system spec for this port to
-         provide optimum function in tx direction.";
-    }
-  }
-
-  grouping roadm-port {
-    uses common-port;
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-resource-types@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-resource-types@2016-10-14.yang
deleted file mode 100644 (file)
index bb6a80a..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-module org-openroadm-resource-types {
-  namespace "http://org/openroadm/resource/types";
-  prefix org-openroadm-resource-types;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of common resource types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping resource-type {
-    leaf type {
-      type resource-type-enum;
-      mandatory true;
-    }
-    leaf extension {
-      type string;
-      mandatory false;
-    }
-  }
-
-  typedef resource-type-enum {
-    type enumeration {
-      enum "other" {
-        value 1;
-        description
-          "Resource of type not found in list.";
-      }
-      enum "device" {
-        value 2;
-        description
-          "device - ROAMD, Xponder, etc";
-      }
-      enum "degree" {
-        value 3;
-        description
-          "degree";
-      }
-      enum "shared-risk-group" {
-        value 4;
-        description
-          "shared-risk-group";
-      }
-      enum "connection" {
-        value 5;
-        description
-          "connection";
-      }
-      enum "connection-map" {
-        value 6;
-        description
-          "connection-map";
-      }
-      enum "port" {
-        value 7;
-        description
-          "port";
-      }
-      enum "circuit-pack" {
-        value 8;
-        description
-          "circuit pack";
-      }
-      enum "internal-link" {
-        value 9;
-        description
-          "internal-link";
-      }
-      enum "physical-link" {
-        value 10;
-        description
-          "physical-link";
-      }
-      enum "interface" {
-        value 11;
-        description
-          "interface";
-      }
-      enum "shelf" {
-        value 12;
-        description
-          "shelf";
-      }
-      enum "service" {
-        value 13;
-        description
-          "service";
-      }
-    }
-  }
-
-  grouping device-id {
-    description
-      "Device identifier. Unique within the Controller.";
-    leaf node-id {
-      description
-        "Node Id is a globally unique identifier for a device.
-         Same as leafref value in model, if applicable.";
-      type string;
-    }
-  }
-
-  grouping circuit-pack-name {
-    leaf circuit-pack-name {
-      description
-        "Circuit-Pack identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-      type string;
-      mandatory true;
-    }
-  }
-
-  grouping port-name {
-    uses circuit-pack-name;
-    leaf port-name {
-      description
-        "Port identifier. Unique within the context of a circuit-pack.
-         Same as leafref value in model, if applicable.";
-      type string;
-    }
-  }
-
-  grouping physical-link-name {
-    leaf physical-link-name {
-      description
-        "Physical Link identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-      type string;
-      mandatory true;
-    }
-  }
-
-  grouping internal-link-name {
-    leaf internal-link-name {
-      description
-        "Internal Link identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-      type string;
-      mandatory true;
-    }
-  }
-
-  grouping connection-number {
-    leaf connection-number {
-      description
-        "Connection identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-      type string;
-    }
-  }
-
-  grouping degree-number {
-    leaf degree-number {
-      description
-        "Degree identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-      type uint16;
-    }
-  }
-
-  grouping srg-number {
-    leaf srg-number {
-      description
-        "Shared Risk Group identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-      type uint16;
-    }
-  }
-
-  grouping shelf-name {
-    leaf shelf-name {
-      description
-        "Shelf-id identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-      type string;
-      mandatory true;
-    }
-  }
-
-  grouping service-name {
-    leaf service-name {
-      description
-        "Service identifier. Unique within the context of a network.
-         Same as leafref value in model, if applicable.";
-      type string;
-      mandatory true;
-    }
-  }
-
-  grouping interface-name {
-    leaf interface-name {
-      description
-        "Interface identifier.";
-      type string;
-      mandatory true;
-    }
-  }
-
-  typedef resource-notification-type {
-    description
-      "Type of notification about a resource";
-    type enumeration {
-      enum "resourceCreation" {
-        value 1;
-        description
-          "A new instance of a resource has been created.";
-      }
-      enum "resourceModification" {
-        value 2;
-        description
-          "An exhisting instance of a resource has been modified. This shall be triggered by changes in configuration, state, status etc.
-           It shall not be triggered by changes in performance measurements, power and temperature readings or any other data that is highlyvolatile. ";
-      }
-      enum "resourceDeletion" {
-        value 3;
-        description
-          "An exhisting instance of a resource has been removed.";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-resource@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-resource@2016-10-14.yang
deleted file mode 100644 (file)
index 25cb9f1..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-module org-openroadm-resource {
-  namespace "http://org/openroadm/resource";
-  prefix org-openroadm-resource;
-
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of resources.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping resource {
-    description
-      "This resource identifier is intended to provide a generic identifer
-       for any resource that can be used without specific knowledge of
-       the resource.";
-    container device {
-      description
-        "Device of the resource, used only when the system using this
-         model report on more than one device. ";
-      uses org-openroadm-resource-types:device-id;
-    }
-    container resource {
-      choice resource {
-        case circuit-pack {
-          uses org-openroadm-resource-types:circuit-pack-name;
-        }
-        case port {
-          container port {
-            uses org-openroadm-resource-types:port-name;
-          }
-        }
-        case connection {
-          uses org-openroadm-resource-types:connection-number {
-            refine connection-number {
-              mandatory true;
-            }
-          }
-        }
-        case physical-link {
-          uses org-openroadm-resource-types:physical-link-name;
-        }
-        case internal-link {
-          uses org-openroadm-resource-types:internal-link-name;
-        }
-        case shelf {
-          uses org-openroadm-resource-types:shelf-name;
-        }
-        case srg {
-          uses org-openroadm-resource-types:srg-number {
-            refine srg-number {
-              mandatory true;
-            }
-          }
-        }
-        case degree {
-          uses org-openroadm-resource-types:degree-number {
-            refine degree-number {
-              mandatory true;
-            }
-          }
-        }
-        case service {
-          uses org-openroadm-resource-types:service-name;
-        }
-        case interface {
-          uses org-openroadm-resource-types:interface-name;
-        }
-      }
-    }
-    container resourceType {
-      uses org-openroadm-resource-types:resource-type;
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-swdl@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-swdl@2016-10-14.yang
deleted file mode 100644 (file)
index 0fdcdb6..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-module org-openroadm-swdl {
-  namespace "http://org/openroadm/de/swdl";
-  prefix org-openroadm-swdl;
-
-  import ietf-yang-types {
-    prefix yang;
-  }
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "Yang definitions for System Management.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping sw-bank {
-    leaf sw-version {
-      type string;
-      description
-        "Gissue of the SW in this bank";
-    }
-    leaf sw-validation-timer {
-      type string {
-        pattern "(([0-1][0-9]|2[0-3])-([0-5][0-9])-([0-5][0-9]))";
-      }
-      description
-        "value of validation timer in hh-mm-ss";
-    }
-    leaf activation-date-time {
-      type yang:date-and-time;
-      description
-        "activation date and time: The date load was activated";
-    }
-  }
-
-  rpc sw-stage {
-    description
-      "SW stage - copies the SW from repo to staging bank";
-    input {
-      leaf filename {
-        type string {
-          length "10..255";
-        }
-        description
-          "file name which has the load";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc sw-activate {
-    description
-      "Activate new load";
-    input {
-      leaf version {
-        type string;
-        description
-          " software version of the new load which is being activated";
-      }
-      leaf validationTimer {
-        type string;
-        description
-          "validation timer hh-mm-ss";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc cancel-validation-timer {
-    description
-      "Cancel validation timer which user provisioned as part of activate command";
-    input {
-      leaf accept {
-        type boolean;
-        default "true";
-        description
-          " TRUE means  validation timer is cancelled and new load is accepted";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-user-mgmt@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-user-mgmt@2016-10-14.yang
deleted file mode 100644 (file)
index fb5fa6d..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-module org-openroadm-user-mgmt {
-  namespace "http://org/openroadm/user-mgmt";
-  prefix org-openroadm-user-mgmt;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of user managements.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping user-profile {
-    list user {
-      key "name";
-      description
-        "The list of local users configured on this device.";
-      leaf name {
-        type string;
-        description
-          "The user name string identifying this entry.";
-      }
-      leaf password {
-        type string;
-        description
-          "The password for this entry. This shouldn't be in clear text";
-      }
-      leaf group {
-        type enumeration {
-          enum "sudo";
-        }
-        description
-          "The group to which the user is associated to.";
-      }
-    }
-  }
-
-  rpc chg-password {
-    input {
-      leaf currentPassword {
-        type string;
-        description
-          "provide the current password";
-        mandatory true;
-      }
-      leaf newPassword {
-        type string;
-        description
-          "provide a new password";
-        mandatory true;
-      }
-      leaf newPasswordConfirm {
-        type string;
-        description
-          "re-enter the new password ";
-        mandatory true;
-      }
-    }
-    output {
-      leaf status {
-        type enumeration {
-          enum "Successful" {
-            value 1;
-          }
-          enum "Failed" {
-            value 2;
-          }
-        }
-        mandatory true;
-        description
-          "Successful or Failed";
-      }
-      leaf status-message {
-        type string;
-        description
-          "Gives a more detailed reason for success / failure";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-wavelength-map@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-wavelength-map@2016-10-14.yang
deleted file mode 100644 (file)
index 451cae6..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-module org-openroadm-wavelength-map {
-  namespace "http://org/openroadm/wavelength-map";
-  prefix org-openroadm-wavelength-map;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for mapping wavelength-number to center frequency and wavelength value.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping wavelength-map-g {
-    list wavelengths {
-      key "wavelength-number";
-      leaf wavelength-number {
-        type uint32;
-      }
-      config false;
-      leaf center-frequency {
-        type decimal64 {
-          fraction-digits 3;
-          range "191.350..196.100";
-        }
-        units "THz";
-        description
-          "Frequency of the transmit optical channel
-           Domain range:  191.350THz .. 196.100THz ";
-      }
-      leaf wavelength {
-        type decimal64 {
-          fraction-digits 2;
-          range "1528.77..1566.72";
-        }
-        units "nm";
-        description
-          "Lambda corresponding to transmit frequency
-           Domain range:  1528.72nm .. 1566.72nm ";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-alarm-types@2018-01-16.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-alarm-types@2018-01-16.yang
deleted file mode 100644 (file)
index 7ec8665..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-module openconfig-alarm-types {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/alarms/types";
-
-  prefix "oc-alarm-types";
-
-  // import some basic types
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines operational state data related to alarms
-    that the device is reporting.
-
-    This model reuses some data items defined in the draft IETF
-    YANG Alarm Module:
-    https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02
-
-    Portions of this code were derived from the draft IETF YANG Alarm
-    Module. Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "0.2.0";
-
-  revision "2018-01-16" {
-    description
-      "Moved alarm identities into separate types module";
-    reference "0.2.0";
-  }
-
-  // identity statements
-  identity OPENCONFIG_ALARM_TYPE_ID {
-    description
-      "Base identity for alarm type ID profiles";
-  }
-
-  identity AIS {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines an alarm indication signal type of alarm";
-  }
-
-  identity EQPT {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines an equipment related type of alarm that is specific
-       to the physical hardware";
-  }
-
-  identity LOS {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines a loss of signal type of alarm";
-  }
-
-  identity OTS {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines a optical transport signal type of alarm";
-  }
-
-  identity OPENCONFIG_ALARM_SEVERITY {
-    description
-      "Base identity for alarm severity profiles. Derived
-      identities are based on contents of the draft
-      IETF YANG Alarm Module";
-    reference
-      "IETF YANG Alarm Module: Draft - typedef severity
-      https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-
-  }
-
-  identity UNKNOWN {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates that the severity level could not be determined.
-      This level SHOULD be avoided.";
-  }
-
-  identity MINOR {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates the existence of a non-service affecting fault
-      condition and that corrective action should be taken in
-      order to prevent a more serious (for example, service
-      affecting) fault. Such a severity can be reported, for
-      example, when the detected alarm condition is not currently
-      degrading the capacity of the resource";
-  }
-
-  identity WARNING {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates the detection of a potential or impending service
-      affecting fault, before any significant effects have been felt.
-      Action should be taken to further diagnose (if necessary) and
-      correct the problem in order to prevent it from becoming a more
-      serious service affecting fault.";
-  }
-
-  identity MAJOR {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates that a service affecting condition has developed
-      and an urgent corrective action is required. Such a severity
-      can be reported, for example, when there is a severe
-      degradation in the capability of the resource and its full
-      capability must be restored.";
-  }
-
-  identity CRITICAL {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates that a service affecting condition has occurred
-      and an immediate corrective action is required. Such a
-      severity can be reported, for example, when a resource becomes
-      totally out of service and its capability must be restored.";
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-alarms@2018-01-16.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-alarms@2018-01-16.yang
deleted file mode 100644 (file)
index 4824e34..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-module openconfig-alarms {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/alarms";
-
-  prefix "oc-alarms";
-
-  // import some basic types
-  import openconfig-alarm-types { prefix oc-alarm-types; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-platform { prefix oc-platform; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines operational state data related to alarms
-    that the device is reporting.
-
-    This model reuses some data items defined in the draft IETF
-    YANG Alarm Module:
-    https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02
-
-    Portions of this code were derived from the draft IETF YANG Alarm
-    Module. Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "0.3.0";
-
-  revision "2018-01-16" {
-      description
-        "Moved alarm identities into separate types module";
-      reference "0.3.0";
-  }
-
-  revision "2018-01-10" {
-    description
-      "Make alarms list read only";
-    reference "0.2.0";
-  }
-
-  revision "2017-08-24" {
-    description
-      "Initial public release";
-    reference "0.1.0";
-  }
-
-
-  // grouping statements
-
-  grouping alarm-state {
-    description
-      "Operational state data for device alarms";
-
-    leaf id {
-      type string;
-      description
-        "Unique ID for the alarm -- this will not be a
-        configurable parameter on many implementations";
-    }
-
-    leaf resource {
-      type string;
-      description
-        "The item that is under alarm within the device. The
-        resource may be a reference to an item which is
-        defined elsewhere in the model. For example, it
-        may be a platform/component, interfaces/interface,
-        terminal-device/logical-channels/channel, etc. In this
-        case the system should match the name of the referenced
-        item exactly. The referenced item could alternatively be
-        the path of the item within the model.";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef resource
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-
-    leaf text {
-      type string;
-      description
-        "The string used to inform operators about the alarm. This
-         MUST contain enough information for an operator to be able
-         to understand the problem. If this string contains structure,
-         this format should be clearly documented for programs to be
-         able to parse that information";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef alarm-text
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-
-    leaf time-created {
-      type oc-types:timeticks64;
-      description
-        "The time at which the alarm was raised by the system.
-        This value is expressed as nanoseconds since the Unix Epoch";
-    }
-
-    leaf severity {
-      type identityref {
-        base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY;
-      }
-      description
-        "The severity level indicating the criticality and impact
-        of the alarm";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef severity
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-
-    leaf type-id {
-      type union {
-        type string;
-        type identityref {
-          base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID;
-        }
-      }
-      description
-        "The abbreviated name of the alarm, for example LOS,
-        EQPT, or OTS. Also referred to in different systems as
-        condition type, alarm identifier, or alarm mnemonic. It
-        is recommended to use the OPENCONFIG_ALARM_TYPE_ID
-        identities where possible and only use the string type
-        when the desired identityref is not yet defined";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef alarm-type-id
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-  }
-
-  grouping alarm-config {
-    description
-      "Configuration data for device alarms";
-  }
-
-  grouping alarms-top {
-    description
-      "Top-level grouping for device alarms";
-
-    container alarms {
-      description
-        "Top-level container for device alarms";
-
-      config false;
-
-      list alarm {
-        key "id";
-        description
-          "List of alarms, keyed by a unique id";
-
-        leaf id {
-          type leafref {
-            path "../state/id";
-          }
-
-          description
-            "References the unique alarm id";
-        }
-
-        container config {
-          description
-            "Configuration data for each alarm";
-
-          uses alarm-config;
-        }
-
-        container state {
-          config false;
-
-          description
-            "Operational state data for a device alarm";
-
-          uses alarm-config;
-          uses alarm-state;
-        }
-      }
-    }
-  }
-
-
-  // augments
-
-  augment "/oc-platform:components/oc-platform:component/oc-platform:state" {
-    description
-      "Adds specific alarms related to a component.";
-
-    leaf equipment-failure {
-      type boolean;
-      default "false";
-      description
-        "If true, the hardware indicates that the component's physical equipment
-        has failed";
-    }
-
-    leaf equipment-mismatch {
-      type boolean;
-      default "false";
-      description
-        "If true, the hardware indicates that the component inserted into the
-        affected component's physical location is of a different type than what
-        is configured";
-    }
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-extensions@2017-04-11.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-extensions@2017-04-11.yang
deleted file mode 100644 (file)
index f39ecf6..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-module openconfig-extensions {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/openconfig-ext";
-
-  prefix "oc-ext";
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module provides extensions to the YANG language to allow
-    OpenConfig specific functionality and meta-data to be defined.";
-
-  revision "2017-04-11" {
-    description
-      "rename password type to 'hashed' and clarify description";
-    reference "0.3.0";
-  }
-
-  revision "2017-01-29" {
-    description
-      "Added extension for annotating encrypted values.";
-    reference "0.2.0";
-  }
-
-  revision "2015-10-09" {
-    description
-      "Initial OpenConfig public release";
-    reference "0.1.0";
-  }
-
-
-  // extension statements
-  extension openconfig-version {
-    argument "semver" {
-      yin-element false;
-    }
-    description
-      "The OpenConfig version number for the module. This is
-      expressed as a semantic version number of the form:
-        x.y.z
-      where:
-        * x corresponds to the major version,
-        * y corresponds to a minor version,
-        * z corresponds to a patch version.
-      This version corresponds to the model file within which it is
-      defined, and does not cover the whole set of OpenConfig models.
-      Where several modules are used to build up a single block of
-      functionality, the same module version is specified across each
-      file that makes up the module.
-
-      A major version number of 0 indicates that this model is still
-      in development (whether within OpenConfig or with industry
-      partners), and is potentially subject to change.
-
-      Following a release of major version 1, all modules will
-      increment major revision number where backwards incompatible
-      changes to the model are made.
-
-      The minor version is changed when features are added to the
-      model that do not impact current clients use of the model.
-
-      The patch-level version is incremented when non-feature changes
-      (such as bugfixes or clarifications to human-readable
-      descriptions that do not impact model functionality) are made
-      that maintain backwards compatibility.
-
-      The version number is stored in the module meta-data.";
-  }
-
-  extension openconfig-hashed-value {
-    description
-      "This extension provides an annotation on schema nodes to
-      indicate that the corresponding value should be stored and
-      reported in hashed form.
-
-      Hash algorithms are by definition not reversible. Clients
-      reading the configuration or applied configuration for the node
-      should expect to receive only the hashed value. Values written
-      in cleartext will be hashed. This annotation may be used on
-      nodes such as secure passwords in which the device never reports
-      a cleartext value, even if the input is provided as cleartext.";
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-if-ethernet@2018-01-05.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-if-ethernet@2018-01-05.yang
deleted file mode 100644 (file)
index 354fb2d..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-module openconfig-if-ethernet {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/interfaces/ethernet";
-
-  prefix "oc-eth";
-
-  // import some basic types
-  import openconfig-interfaces { prefix oc-if; }
-  import iana-if-type { prefix ift; }
-  import openconfig-yang-types { prefix oc-yang; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "Model for managing Ethernet interfaces -- augments the OpenConfig
-    model for interface configuration and state.";
-
-  oc-ext:openconfig-version "2.3.0";
-
-  revision "2018-01-05" {
-    description
-      "Add logical loopback to interface.";
-    reference "2.3.0";
-  }
-
-  revision "2017-12-21" {
-    description
-      "Added IPv6 router advertisement configuration.";
-    reference "2.1.0";
-  }
-
-  revision "2017-07-14" {
-    description
-      "Added Ethernet/IP state data; Add dhcp-client;
-      migrate to OpenConfig types modules; Removed or
-      renamed opstate values";
-    reference "2.0.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes to Ethernet interfaces model";
-    reference "1.1.0";
-  }
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  identity ETHERNET_SPEED {
-    description "base type to specify available Ethernet link
-    speeds";
-  }
-
-  identity SPEED_10MB {
-    base ETHERNET_SPEED;
-    description "10 Mbps Ethernet";
-  }
-
-  identity SPEED_100MB {
-    base ETHERNET_SPEED;
-    description "100 Mbps Ethernet";
-  }
-
-  identity SPEED_1GB {
-    base ETHERNET_SPEED;
-    description "1 GBps Ethernet";
-  }
-
-  identity SPEED_10GB {
-    base ETHERNET_SPEED;
-    description "10 GBps Ethernet";
-  }
-
-  identity SPEED_25GB {
-    base ETHERNET_SPEED;
-    description "25 GBps Ethernet";
-  }
-
-  identity SPEED_40GB {
-    base ETHERNET_SPEED;
-    description "40 GBps Ethernet";
-  }
-
-  identity SPEED_50GB {
-    base ETHERNET_SPEED;
-    description "50 GBps Ethernet";
-  }
-
-  identity SPEED_100GB {
-    base ETHERNET_SPEED;
-    description "100 GBps Ethernet";
-  }
-
-  identity SPEED_UNKNOWN {
-    base ETHERNET_SPEED;
-    description
-      "Interface speed is unknown.  Systems may report
-      speed UNKNOWN when an interface is down or unpopuplated (e.g.,
-      pluggable not present).";
-  }
-
-  // typedef statements
-
-
-  // grouping statements
-
-  grouping ethernet-interface-config {
-    description "Configuration items for Ethernet interfaces";
-
-    leaf mac-address {
-      type oc-yang:mac-address;
-      description
-        "Assigns a MAC address to the Ethernet interface.  If not
-        specified, the corresponding operational state leaf is
-        expected to show the system-assigned MAC address.";
-    }
-
-    leaf auto-negotiate {
-      type boolean;
-      default true;
-      description
-        "Set to TRUE to request the interface to auto-negotiate
-        transmission parameters with its peer interface.  When
-        set to FALSE, the transmission parameters are specified
-        manually.";
-      reference
-        "IEEE 802.3-2012 auto-negotiation transmission parameters";
-    }
-
-    leaf duplex-mode {
-      type enumeration {
-        enum FULL {
-          description "Full duplex mode";
-        }
-        enum HALF {
-          description "Half duplex mode";
-        }
-      }
-      description
-        "When auto-negotiate is TRUE, this optionally sets the
-        duplex mode that will be advertised to the peer.  If
-        unspecified, the interface should negotiate the duplex mode
-        directly (typically full-duplex).  When auto-negotiate is
-        FALSE, this sets the duplex mode on the interface directly.";
-    }
-
-    leaf port-speed {
-      type identityref {
-        base ETHERNET_SPEED;
-      }
-      description
-        "When auto-negotiate is TRUE, this optionally sets the
-        port-speed mode that will be advertised to the peer for
-        negotiation.  If unspecified, it is expected that the
-        interface will select the highest speed available based on
-        negotiation.  When auto-negotiate is set to FALSE, sets the
-        link speed to a fixed value -- supported values are defined
-        by ETHERNET_SPEED identities";
-    }
-
-    leaf enable-flow-control {
-      type boolean;
-      default false;
-      description
-        "Enable or disable flow control for this interface.
-        Ethernet flow control is a mechanism by which a receiver
-        may send PAUSE frames to a sender to stop transmission for
-        a specified time.
-
-        This setting should override auto-negotiated flow control
-        settings.  If left unspecified, and auto-negotiate is TRUE,
-        flow control mode is negotiated with the peer interface.";
-      reference
-        "IEEE 802.3x";
-    }
-  }
-
-  grouping ethernet-interface-state-counters {
-    description
-      "Ethernet-specific counters and statistics";
-
-    // ingress counters
-
-    leaf in-mac-control-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer control frames received on the interface";
-    }
-
-    leaf in-mac-pause-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer PAUSE frames received on the interface";
-    }
-
-    leaf in-oversize-frames {
-      type oc-yang:counter64;
-      description
-        "Number of oversize frames received on the interface";
-    }
-
-    leaf in-jabber-frames {
-      type oc-yang:counter64;
-      description
-        "Number of jabber frames received on the
-        interface.  Jabber frames are typically defined as oversize
-        frames which also have a bad CRC.  Implementations may use
-        slightly different definitions of what constitutes a jabber
-        frame.  Often indicative of a NIC hardware problem.";
-    }
-
-    leaf in-fragment-frames {
-      type oc-yang:counter64;
-      description
-        "Number of fragment frames received on the interface.";
-    }
-
-    leaf in-8021q-frames {
-      type oc-yang:counter64;
-      description
-        "Number of 802.1q tagged frames received on the interface";
-    }
-
-    leaf in-crc-errors {
-      type oc-yang:counter64;
-      description
-        "Number of receive error events due to FCS/CRC check
-        failure";
-    }
-
-    // egress counters
-
-    leaf out-mac-control-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer control frames sent on the interface";
-    }
-
-    leaf out-mac-pause-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer PAUSE frames sent on the interface";
-    }
-
-    leaf out-8021q-frames {
-      type oc-yang:counter64;
-      description
-        "Number of 802.1q tagged frames sent on the interface";
-    }
-  }
-
-  grouping ethernet-interface-state {
-    description
-      "Grouping for defining Ethernet-specific operational state";
-
-    leaf hw-mac-address {
-      type oc-yang:mac-address;
-      description
-        "Represenets the 'burned-in',  or system-assigned, MAC
-        address for the Ethernet interface.";
-    }
-
-    leaf negotiated-duplex-mode {
-      type enumeration {
-        enum FULL {
-          description "Full duplex mode";
-        }
-        enum HALF {
-          description "Half duplex mode";
-        }
-      }
-      description
-        "When auto-negotiate is set to TRUE, and the interface has
-        completed auto-negotiation with the remote peer, this value
-        shows the duplex mode that has been negotiated.";
-    }
-
-    leaf negotiated-port-speed {
-      type identityref {
-        base ETHERNET_SPEED;
-      }
-      description
-        "When auto-negotiate is set to TRUE, and the interface has
-        completed auto-negotiation with the remote peer, this value
-        shows the interface speed that has been negotiated.";
-    }
-
-    container counters {
-      description "Ethernet interface counters";
-
-      uses ethernet-interface-state-counters;
-
-    }
-
-  }
-
-  // data definition statements
-
-  grouping ethernet-top {
-    description "top-level Ethernet config and state containers";
-
-    container ethernet {
-      description
-        "Top-level container for ethernet configuration
-        and state";
-
-      container config {
-        description "Configuration data for ethernet interfaces";
-
-        uses ethernet-interface-config;
-
-      }
-
-      container state {
-
-        config false;
-        description "State variables for Ethernet interfaces";
-
-        uses ethernet-interface-config;
-        uses ethernet-interface-state;
-
-      }
-
-    }
-  }
-
-  // augment statements
-
-  augment "/oc-if:interfaces/oc-if:interface" {
-    description "Adds addtional Ethernet-specific configuration to
-    interfaces model";
-
-    uses ethernet-top {
-      when "oc-if:state/oc-if:type = 'ift:ethernetCsmacd'" {
-      description "Additional interface configuration parameters when
-      the interface type is Ethernet";
-      }
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-interfaces@2018-01-05.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-interfaces@2018-01-05.yang
deleted file mode 100644 (file)
index 2c95ea4..0000000
+++ /dev/null
@@ -1,992 +0,0 @@
-module openconfig-interfaces {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/interfaces";
-
-  prefix "oc-if";
-
-  // import some basic types
-  import ietf-interfaces { prefix ietf-if; }
-  import openconfig-yang-types { prefix oc-yang; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "Model for managing network interfaces and subinterfaces.  This
-    module also defines convenience types / groupings for other
-    models to create references to interfaces:
-
-      base-interface-ref (type) -  reference to a base interface
-      interface-ref (grouping) -  container for reference to a
-        interface + subinterface
-      interface-ref-state (grouping) - container for read-only
-        (opstate) reference to interface + subinterface
-
-    This model reuses data items defined in the IETF YANG model for
-    interfaces described by RFC 7223 with an alternate structure
-    (particularly for operational state data) and with
-    additional configuration items.
-
-    Portions of this code were derived from IETF RFC 7223.
-    Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "2.3.0";
-
-  revision "2018-01-05" {
-    description
-      "Add logical loopback to interface.";
-    reference "2.3.0";
-  }
-
-  revision "2017-12-22" {
-    description
-      "Add IPv4 proxy ARP configuration.";
-    reference "2.2.0";
-  }
-
-  revision "2017-12-21" {
-    description
-      "Added IPv6 router advertisement configuration.";
-    reference "2.1.0";
-  }
-
-  revision "2017-07-14" {
-    description
-      "Added Ethernet/IP state data; Add dhcp-client;
-      migrate to OpenConfig types modules; Removed or
-      renamed opstate values";
-    reference "2.0.0";
-  }
-
-  revision "2017-04-03" {
-    description
-      "Update copyright notice.";
-    reference "1.1.1";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes to Ethernet interfaces model";
-    reference "1.1.0";
-  }
-
-
-  // typedef statements
-
-  typedef base-interface-ref {
-    type leafref {
-      path "/oc-if:interfaces/oc-if:interface/oc-if:name";
-    }
-    description
-      "Reusable type for by-name reference to a base interface.
-      This type may be used in cases where ability to reference
-      a subinterface is not required.";
-  }
-
-  typedef interface-id {
-    type string;
-    description
-      "User-defined identifier for an interface, generally used to
-      name a interface reference.  The id can be arbitrary but a
-      useful convention is to use a combination of base interface
-      name and subinterface index.";
-  }
-
-  // grouping statements
-
-  grouping interface-ref-common {
-    description
-      "Reference leafrefs to interface / subinterface";
-
-    leaf interface {
-      type leafref {
-        path "/oc-if:interfaces/oc-if:interface/oc-if:name";
-      }
-      description
-        "Reference to a base interface.  If a reference to a
-        subinterface is required, this leaf must be specified
-        to indicate the base interface.";
-    }
-
-    leaf subinterface {
-      type leafref {
-        path "/oc-if:interfaces/" +
-          "oc-if:interface[oc-if:name=current()/../interface]/" +
-          "oc-if:subinterfaces/oc-if:subinterface/oc-if:index";
-      }
-      description
-        "Reference to a subinterface -- this requires the base
-        interface to be specified using the interface leaf in
-        this container.  If only a reference to a base interface
-        is requuired, this leaf should not be set.";
-    }
-  }
-
-  grouping interface-ref-state-container {
-    description
-      "Reusable opstate w/container for a reference to an
-      interface or subinterface";
-
-    container state {
-      config false;
-      description
-        "Operational state for interface-ref";
-
-      uses interface-ref-common;
-    }
-  }
-
-  grouping interface-ref {
-    description
-      "Reusable definition for a reference to an interface or
-      subinterface";
-
-    container interface-ref {
-      description
-        "Reference to an interface or subinterface";
-
-      container config {
-        description
-          "Configured reference to interface / subinterface";
-
-        uses interface-ref-common;
-      }
-
-      uses interface-ref-state-container;
-    }
-  }
-
-  grouping interface-ref-state {
-    description
-      "Reusable opstate w/container for a reference to an
-      interface or subinterface";
-
-    container interface-ref {
-      description
-        "Reference to an interface or subinterface";
-
-      uses interface-ref-state-container;
-    }
-  }
-
-  grouping base-interface-ref-state {
-    description
-      "Reusable opstate w/container for a reference to a
-      base interface (no subinterface).";
-
-      container state {
-        config false;
-        description
-          "Operational state for base interface reference";
-
-        leaf interface {
-          type base-interface-ref;
-          description
-            "Reference to a base interface.";
-        }
-      }
-  }
-
-
-  grouping interface-common-config {
-    description
-      "Configuration data data nodes common to physical interfaces
-      and subinterfaces";
-
-    leaf description {
-      type string;
-      description
-        "A textual description of the interface.
-
-        A server implementation MAY map this leaf to the ifAlias
-        MIB object.  Such an implementation needs to use some
-        mechanism to handle the differences in size and characters
-        allowed between this leaf and ifAlias.  The definition of
-        such a mechanism is outside the scope of this document.
-
-        Since ifAlias is defined to be stored in non-volatile
-        storage, the MIB implementation MUST map ifAlias to the
-        value of 'description' in the persistently stored
-        datastore.
-
-        Specifically, if the device supports ':startup', when
-        ifAlias is read the device MUST return the value of
-        'description' in the 'startup' datastore, and when it is
-        written, it MUST be written to the 'running' and 'startup'
-        datastores.  Note that it is up to the implementation to
-
-        decide whether to modify this single leaf in 'startup' or
-        perform an implicit copy-config from 'running' to
-        'startup'.
-
-        If the device does not support ':startup', ifAlias MUST
-        be mapped to the 'description' leaf in the 'running'
-        datastore.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAlias";
-    }
-
-    leaf enabled {
-      type boolean;
-      default "true";
-      description
-        "This leaf contains the configured, desired state of the
-        interface.
-
-        Systems that implement the IF-MIB use the value of this
-        leaf in the 'running' datastore to set
-        IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
-        has been initialized, as described in RFC 2863.
-
-        Changes in this leaf in the 'running' datastore are
-        reflected in ifAdminStatus, but if ifAdminStatus is
-        changed over SNMP, this leaf is not affected.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-    }
-
-  }
-
-  grouping interface-phys-config {
-    description
-      "Configuration data for physical interfaces";
-
-    leaf name {
-      type string;
-      description
-        "The name of the interface.
-
-        A device MAY restrict the allowed values for this leaf,
-        possibly depending on the type of the interface.
-        For system-controlled interfaces, this leaf is the
-        device-specific name of the interface.  The 'config false'
-        list interfaces/interface[name]/state contains the currently
-        existing interfaces on the device.
-
-        If a client tries to create configuration for a
-        system-controlled interface that is not present in the
-        corresponding state list, the server MAY reject
-        the request if the implementation does not support
-        pre-provisioning of interfaces or if the name refers to
-        an interface that can never exist in the system.  A
-        NETCONF server MUST reply with an rpc-error with the
-        error-tag 'invalid-value' in this case.
-
-        The IETF model in RFC 7223 provides YANG features for the
-        following (i.e., pre-provisioning and arbitrary-names),
-        however they are omitted here:
-
-          If the device supports pre-provisioning of interface
-          configuration, the 'pre-provisioning' feature is
-          advertised.
-
-          If the device allows arbitrarily named user-controlled
-          interfaces, the 'arbitrary-names' feature is advertised.
-
-        When a configured user-controlled interface is created by
-        the system, it is instantiated with the same name in the
-        /interfaces/interface[name]/state list.";
-    }
-
-    leaf type {
-      type identityref {
-        base ietf-if:interface-type;
-      }
-      mandatory true;
-      description
-        "The type of the interface.
-
-        When an interface entry is created, a server MAY
-        initialize the type leaf with a valid value, e.g., if it
-        is possible to derive the type from the name of the
-        interface.
-
-        If a client tries to set the type of an interface to a
-        value that can never be used by the system, e.g., if the
-        type is not supported or if the type does not match the
-        name of the interface, the server MUST reject the request.
-        A NETCONF server MUST reply with an rpc-error with the
-        error-tag 'invalid-value' in this case.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifType";
-    }
-
-    leaf mtu {
-      type uint16;
-      description
-        "Set the max transmission unit size in octets
-        for the physical interface.  If this is not set, the mtu is
-        set to the operational default -- e.g., 1514 bytes on an
-        Ethernet interface.";
-    }
-
-    leaf loopback-mode {
-      type boolean;
-      default false;
-      description
-        "When set to true, the interface is logically looped back,
-        such that packets that are forwarded via the interface
-        are received on the same interface.";
-    }
-
-    uses interface-common-config;
-  }
-
-  grouping interface-phys-holdtime-config {
-    description
-      "Configuration data for interface hold-time settings --
-      applies to physical interfaces.";
-
-    leaf up {
-      type uint32;
-      units milliseconds;
-      default 0;
-      description
-        "Dampens advertisement when the interface
-        transitions from down to up.  A zero value means dampening
-        is turned off, i.e., immediate notification.";
-    }
-
-    leaf down {
-      type uint32;
-      units milliseconds;
-      default 0;
-      description
-        "Dampens advertisement when the interface transitions from
-        up to down.  A zero value means dampening is turned off,
-        i.e., immediate notification.";
-    }
-  }
-
-  grouping interface-phys-holdtime-state {
-    description
-      "Operational state data for interface hold-time.";
-  }
-
-  grouping interface-phys-holdtime-top {
-    description
-      "Top-level grouping for setting link transition
-      dampening on physical and other types of interfaces.";
-
-    container hold-time {
-      description
-        "Top-level container for hold-time settings to enable
-        dampening advertisements of interface transitions.";
-
-      container config {
-        description
-          "Configuration data for interface hold-time settings.";
-
-        uses interface-phys-holdtime-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for interface hold-time.";
-
-        uses interface-phys-holdtime-config;
-        uses interface-phys-holdtime-state;
-      }
-    }
-  }
-
-  grouping interface-common-state {
-    description
-      "Operational state data (in addition to intended configuration)
-      at the global level for this interface";
-
-    leaf ifindex {
-      type uint32;
-      description
-        "System assigned number for each interface.  Corresponds to
-        ifIndex object in SNMP Interface MIB";
-      reference
-        "RFC 2863 - The Interfaces Group MIB";
-    }
-
-    leaf admin-status {
-      type enumeration {
-        enum UP {
-          description
-            "Ready to pass packets.";
-        }
-        enum DOWN {
-          description
-            "Not ready to pass packets and not in some test mode.";
-        }
-        enum TESTING {
-          //TODO: This is generally not supported as a configured
-          //admin state, though it's in the standard interfaces MIB.
-          //Consider removing it.
-          description
-            "In some test mode.";
-        }
-      }
-      //TODO:consider converting to an identity to have the
-      //flexibility to remove some values defined by RFC 7223 that
-      //are not used or not implemented consistently.
-      mandatory true;
-      description
-        "The desired state of the interface.  In RFC 7223 this leaf
-        has the same read semantics as ifAdminStatus.  Here, it
-        reflects the administrative state as set by enabling or
-        disabling the interface.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-    }
-
-    leaf oper-status {
-      type enumeration {
-        enum UP {
-          value 1;
-          description
-            "Ready to pass packets.";
-        }
-        enum DOWN {
-          value 2;
-          description
-            "The interface does not pass any packets.";
-        }
-        enum TESTING {
-          value 3;
-          description
-            "In some test mode.  No operational packets can
-             be passed.";
-        }
-        enum UNKNOWN {
-          value 4;
-          description
-            "Status cannot be determined for some reason.";
-        }
-        enum DORMANT {
-          value 5;
-          description
-            "Waiting for some external event.";
-        }
-        enum NOT_PRESENT {
-          value 6;
-          description
-            "Some component (typically hardware) is missing.";
-        }
-        enum LOWER_LAYER_DOWN {
-          value 7;
-          description
-            "Down due to state of lower-layer interface(s).";
-        }
-      }
-      //TODO:consider converting to an identity to have the
-      //flexibility to remove some values defined by RFC 7223 that
-      //are not used or not implemented consistently.
-      mandatory true;
-      description
-        "The current operational state of the interface.
-
-         This leaf has the same semantics as ifOperStatus.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifOperStatus";
-    }
-
-    leaf last-change {
-      type oc-types:timeticks64;
-      units nanoseconds;
-      description
-        "This timestamp indicates the time of the last state change
-        of the interface (e.g., up-to-down transition). This
-        corresponds to the ifLastChange object in the standard
-        interface MIB.
-
-        The value is the timestamp in nanoseconds relative to
-        the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifLastChange";
-    }
-
-  }
-
-
-  grouping interface-counters-state {
-    description
-      "Operational state representing interface counters
-      and statistics.";
-
-      //TODO: we may need to break this list of counters into those
-      //that would appear for physical vs. subinterface or logical
-      //interfaces.  For now, just replicating the full stats
-      //grouping to both interface and subinterface.
-
-    container counters {
-      description
-        "A collection of interface-related statistics objects.";
-
-      leaf in-octets {
-        type oc-yang:counter64;
-        description
-          "The total number of octets received on the interface,
-          including framing characters.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
-      }
-
-      leaf in-unicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The number of packets, delivered by this sub-layer to a
-          higher (sub-)layer, that were not addressed to a
-          multicast or broadcast address at this sub-layer.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
-      }
-
-      leaf in-broadcast-pkts {
-        type oc-yang:counter64;
-        description
-          "The number of packets, delivered by this sub-layer to a
-          higher (sub-)layer, that were addressed to a broadcast
-          address at this sub-layer.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCInBroadcastPkts";
-      }
-
-      leaf in-multicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The number of packets, delivered by this sub-layer to a
-          higher (sub-)layer, that were addressed to a multicast
-          address at this sub-layer.  For a MAC-layer protocol,
-          this includes both Group and Functional addresses.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCInMulticastPkts";
-      }
-
-      leaf in-discards {
-        type oc-yang:counter64;
-        description
-          "The number of inbound packets that were chosen to be
-          discarded even though no errors had been detected to
-          prevent their being deliverable to a higher-layer
-          protocol.  One possible reason for discarding such a
-          packet could be to free up buffer space.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-
-
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInDiscards";
-      }
-
-      leaf in-errors {
-        type oc-yang:counter64;
-        description
-          "For packet-oriented interfaces, the number of inbound
-          packets that contained errors preventing them from being
-          deliverable to a higher-layer protocol.  For character-
-          oriented or fixed-length interfaces, the number of
-          inbound transmission units that contained errors
-          preventing them from being deliverable to a higher-layer
-          protocol.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInErrors";
-      }
-
-      leaf in-unknown-protos {
-        type oc-yang:counter64;
-        description
-          "For packet-oriented interfaces, the number of packets
-          received via the interface that were discarded because
-          of an unknown or unsupported protocol.  For
-          character-oriented or fixed-length interfaces that
-          support protocol multiplexing, the number of
-          transmission units received via the interface that were
-          discarded because of an unknown or unsupported protocol.
-          For any interface that does not support protocol
-          multiplexing, this counter is not present.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
-      }
-
-      leaf in-fcs-errors {
-        type oc-yang:counter64;
-        description
-          "Number of received packets which had errors in the
-          frame check sequence (FCS), i.e., framing errors.
-
-          Discontinuities in the value of this counter can occur
-          when the device is re-initialization as indicated by the
-          value of 'last-clear'.";
-      }
-
-      leaf out-octets {
-        type oc-yang:counter64;
-        description
-          "The total number of octets transmitted out of the
-          interface, including framing characters.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
-      }
-
-      leaf out-unicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets that higher-level protocols
-          requested be transmitted, and that were not addressed
-          to a multicast or broadcast address at this sub-layer,
-          including those that were discarded or not sent.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
-      }
-
-      leaf out-broadcast-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets that higher-level protocols
-          requested be transmitted, and that were addressed to a
-          broadcast address at this sub-layer, including those
-          that were discarded or not sent.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCOutBroadcastPkts";
-      }
-
-
-      leaf out-multicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets that higher-level protocols
-          requested be transmitted, and that were addressed to a
-          multicast address at this sub-layer, including those
-          that were discarded or not sent.  For a MAC-layer
-          protocol, this includes both Group and Functional
-          addresses.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCOutMulticastPkts";
-      }
-
-      leaf out-discards {
-        type oc-yang:counter64;
-        description
-          "The number of outbound packets that were chosen to be
-          discarded even though no errors had been detected to
-          prevent their being transmitted.  One possible reason
-          for discarding such a packet could be to free up buffer
-          space.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
-      }
-
-      leaf out-errors {
-        type oc-yang:counter64;
-        description
-          "For packet-oriented interfaces, the number of outbound
-          packets that could not be transmitted because of errors.
-          For character-oriented or fixed-length interfaces, the
-          number of outbound transmission units that could not be
-          transmitted because of errors.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOutErrors";
-      }
-
-      leaf carrier-transitions {
-        type oc-yang:counter64;
-        description
-          "Number of times the interface state has transitioned
-          between up and down since the time the device restarted
-          or the last-clear time, whichever is most recent.";
-      }
-
-      leaf last-clear {
-        type oc-types:timeticks64;
-        units nanoseconds;
-        description
-          "Timestamp of the last time the interface counters were
-          cleared.
-
-          The value is the timestamp in nanoseconds relative to
-          the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-      }
-    }
-  }
-
-  // data definition statements
-
-  grouping sub-unnumbered-config {
-    description
-      "Configuration data for unnumbered subinterfaces";
-
-    leaf enabled {
-      type boolean;
-      default false;
-      description
-        "Indicates that the subinterface is unnumbered.  By default
-        the subinterface is numbered, i.e., expected to have an
-        IP address configuration.";
-    }
-  }
-
-  grouping sub-unnumbered-state {
-    description
-      "Operational state data unnumbered subinterfaces";
-  }
-
-  grouping sub-unnumbered-top {
-    description
-      "Top-level grouping unnumbered subinterfaces";
-
-    container unnumbered {
-      description
-        "Top-level container for setting unnumbered interfaces.
-        Includes reference the interface that provides the
-        address information";
-
-      container config {
-        description
-          "Configuration data for unnumbered interface";
-
-        uses sub-unnumbered-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for unnumbered interfaces";
-
-        uses sub-unnumbered-config;
-        uses sub-unnumbered-state;
-      }
-
-      uses oc-if:interface-ref;
-    }
-  }
-
-  grouping subinterfaces-config {
-    description
-      "Configuration data for subinterfaces";
-
-    leaf index {
-      type uint32;
-      default 0;
-      description
-        "The index of the subinterface, or logical interface number.
-        On systems with no support for subinterfaces, or not using
-        subinterfaces, this value should default to 0, i.e., the
-        default subinterface.";
-    }
-
-    uses interface-common-config;
-
-  }
-
-  grouping subinterfaces-state {
-    description
-      "Operational state data for subinterfaces";
-
-    leaf name {
-      type string;
-      description
-        "The system-assigned name for the sub-interface.  This MAY
-        be a combination of the base interface name and the
-        subinterface index, or some other convention used by the
-        system.";
-    }
-
-    uses interface-common-state;
-    uses interface-counters-state;
-  }
-
-  grouping subinterfaces-top {
-    description
-      "Subinterface data for logical interfaces associated with a
-      given interface";
-
-    container subinterfaces {
-      description
-        "Enclosing container for the list of subinterfaces associated
-        with a physical interface";
-
-      list subinterface {
-        key "index";
-
-        description
-          "The list of subinterfaces (logical interfaces) associated
-          with a physical interface";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "The index number of the subinterface -- used to address
-            the logical interface";
-        }
-
-        container config {
-          description
-            "Configurable items at the subinterface level";
-
-          uses subinterfaces-config;
-        }
-
-        container state {
-
-          config false;
-          description
-            "Operational state data for logical interfaces";
-
-          uses subinterfaces-config;
-          uses subinterfaces-state;
-        }
-      }
-    }
-  }
-
-  grouping interfaces-top {
-    description
-      "Top-level grouping for interface configuration and
-      operational state data";
-
-    container interfaces {
-      description
-        "Top level container for interfaces, including configuration
-        and state data.";
-
-
-      list interface {
-        key "name";
-
-        description
-          "The list of named interfaces on the device.";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "References the configured name of the interface";
-            //TODO: need to consider whether this should actually
-            //reference the name in the state subtree, which
-            //presumably would be the system-assigned name, or the
-            //configured name.  Points to the config/name now
-            //because of YANG 1.0 limitation that the list
-            //key must have the same "config" as the list, and
-            //also can't point to a non-config node.
-        }
-
-        container config {
-          description
-            "Configurable items at the global, physical interface
-            level";
-
-          uses interface-phys-config;
-        }
-
-        container state {
-
-          config false;
-          description
-            "Operational state data at the global interface level";
-
-          uses interface-phys-config;
-          uses interface-common-state;
-          uses interface-counters-state;
-        }
-
-        uses interface-phys-holdtime-top;
-        uses subinterfaces-top;
-      }
-    }
-  }
-
-  uses interfaces-top;
-
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-linecard@2017-08-03.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-linecard@2017-08-03.yang
deleted file mode 100644 (file)
index b041fb8..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-module openconfig-platform-linecard {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform/linecard";
-
-  prefix "oc-linecard";
-
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-platform-types { prefix oc-platform-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines data related to LINECARD components in the openconfig-platform model";
-
-  oc-ext:openconfig-version "0.1.0";
-
-  revision "2017-08-03" {
-    description
-      "Initial revision";
-    reference "0.1.0";
-  }
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  // typedef statements
-
-  // grouping statements
-
-  grouping linecard-config {
-    description
-      "Configuration data for linecard components";
-
-    leaf power-admin-state {
-      type oc-platform-types:component-power-type;
-      default POWER_ENABLED;
-      description
-        "Enable or disable power to the linecard";
-    }
-  }
-
-  grouping linecard-state {
-    description
-      "Operational state data for linecard components";
-
-    leaf slot-id {
-      type string;
-      description
-        "Identifier for the slot or chassis position in which the
-        linecard is installed";
-    }
-  }
-
-  grouping linecard-top {
-    description
-      "Top-level grouping for linecard data";
-
-    container linecard {
-      description
-        "Top-level container for linecard data";
-
-      container config {
-        description
-          "Configuration data for linecards";
-
-        uses linecard-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for linecards";
-
-        uses linecard-config;
-        uses linecard-state;
-      }
-    }
-  }
-
-  // data definition statements
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    description
-      "Adding linecard data to physical inventory";
-
-    uses linecard-top {
-      when "current()/oc-platform:state/" +
-        "oc-platform:type = 'LINECARD'" {
-        description
-          "Augment is active when component is of type LINECARD";
-      }
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
-
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-port@2018-01-20.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-port@2018-01-20.yang
deleted file mode 100644 (file)
index 2039a8e..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-module openconfig-platform-port {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform/port";
-
-  prefix "oc-port";
-
-  // import some basic types
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-interfaces { prefix oc-if; }
-  import openconfig-if-ethernet { prefix oc-eth; }
-  import openconfig-extensions { prefix oc-ext; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines data related to PORT components in the openconfig-platform model";
-
-  oc-ext:openconfig-version "0.3.0";
-
-  revision "2018-01-20" {
-    description
-      "Added augmentation for interface-to-port reference";
-    reference "0.3.0";
-  }
-
-  revision "2017-11-17" {
-    description
-      "Corrected augmentation path for port data";
-    reference "0.2.0";
-  }
-
-  revision "2016-10-24" {
-    description
-      "Initial revision";
-    reference "0.1.0";
-  }
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  // typedef statements
-
-  // grouping statements
-
-  grouping port-breakout-config {
-    description
-      "Configuration data for the port breakout mode";
-
-    leaf num-channels {
-      type uint8;
-      description
-        "Sets the number of channels to 'breakout' on a port
-        capable of channelization";
-    }
-
-    leaf channel-speed {
-      type identityref {
-        base oc-eth:ETHERNET_SPEED;
-      }
-      description
-        "Sets the channel speed on each channel -- the
-        supported values are defined by the
-        ETHERNET_SPEED identity";
-    }
-  }
-
-  grouping port-breakout-state {
-    description
-      "Operational state data for the port breakout mode ";
-  }
-
-  grouping port-breakout-top {
-    description
-      "Top-level grouping for port breakout data";
-
-    container breakout-mode {
-      description
-        "Top-level container for port breakout data";
-
-      container config {
-        description
-          "Configuration data for port breakout";
-
-        uses port-breakout-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for port breakout";
-
-        uses port-breakout-config;
-        uses port-breakout-state;
-      }
-    }
-  }
-
-  // data definition statements
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component/" +
-    "oc-platform:port" {
-    description
-      "Adding port breakout data to physical platform data";
-
-    uses port-breakout-top {
-      when "./state/type = 'PORT'" {
-        description
-          "This data is valid only for PORT components";
-      }
-    }
-  }
-
-  augment "/oc-if:interfaces/oc-if:interface/oc-if:state" {
-    description
-      "Adds a reference from the base interface to the corresponding
-      port component in the device inventory.";
-
-    leaf hardware-port {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-platform:name";
-      }
-      description
-        "For non-channelized interfaces, references the hardware port
-        corresponding to the base interface.";
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-transceiver@2018-01-22.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-transceiver@2018-01-22.yang
deleted file mode 100644 (file)
index 6bb9bd9..0000000
+++ /dev/null
@@ -1,497 +0,0 @@
-module openconfig-platform-transceiver {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform/transceiver";
-
-  prefix "oc-transceiver";
-
-  // import some basic types
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-platform-port { prefix oc-port; }
-  import openconfig-interfaces { prefix oc-if; }
-  import openconfig-transport-types { prefix oc-opt-types; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-yang-types { prefix oc-yang; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines configuration and operational state data
-    for transceivers (i.e., pluggable optics).  The module should be
-    used in conjunction with the platform model where other
-    physical entity data are represented.
-
-    In the platform model, a component of type=TRANSCEIVER is
-    expected to be a subcomponent of a PORT component.  This
-    module defines a concrete schema for the associated data for
-    components with type=TRANSCEIVER.";
-
-  oc-ext:openconfig-version "0.4.1";
-
-  revision "2018-01-22" {
-    description
-      "Fixed physical-channel path reference";
-    reference "0.4.1";
-  }
-
-  revision "2017-09-18" {
-    description
-      "Use openconfig-yang-types module";
-    reference "0.4.0";
-  }
-
-  revision "2017-07-08" {
-    description
-      "Adds clarification on aggregate power measurement data";
-    reference "0.3.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Adds preconfiguration data and clarified units";
-    reference "0.2.0";
-  }
-
-  // identity statements
-
-  // typedef statements
-
-  // grouping statements
-
-  grouping optical-power-state {
-    description
-      "Reusable leaves related to optical power state -- these
-      are read-only state values. If avg/min/max statistics are
-      not supported, the target is expected to just supply the
-      instant value";
-
-    container output-power {
-      description
-        "The output optical power of a physical channel in units
-        of 0.01dBm, which may be associated with individual
-        physical channels, or an aggregate of multiple physical
-        channels (i.e., for the overall transceiver). For an
-        aggregate, this may be a measurement from a photodetector
-        or a a calculation performed on the device by summing up
-        all of the related individual physical channels.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container input-power {
-      description
-        "The input optical power of a physical channel in units
-        of 0.01dBm, which may be associated with individual
-        physical channels, or an aggregate of multiple physical
-        channels (i.e., for the overall transceiver). For an
-        aggregate, this may be a measurement from a photodetector
-        or a a calculation performed on the device by summing up
-        all of the related individual physical channels.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container laser-bias-current {
-      description
-        "The current applied by the system to the transmit laser to
-        achieve the output power. The current is expressed in mA
-        with up to two decimal precision. Values include the
-        instantaneous, average, minimum, and maximum statistics.
-        If avg/min/max statistics are not supported, the target is
-        expected to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-mA;
-    }
-  }
-
-  grouping output-optical-frequency {
-    description
-      "Reusable leaves related to optical output power -- this is
-      typically configurable on line side and read-only on the
-      client-side";
-
-    leaf output-frequency {
-      type oc-opt-types:frequency-type;
-      description
-        "The frequency in MHz of the individual physical channel
-        (e.g. ITU C50 - 195.0THz and would be reported as
-        195,000,000 MHz in this model). This attribute is not
-        configurable on most client ports.";
-    }
-  }
-
-
-  grouping physical-channel-config {
-    description
-      "Configuration data for physical client channels";
-
-    leaf index {
-      type uint16 {
-        range 0..max;
-      }
-      description
-        "Index of the physical channnel or lane within a physical
-        client port";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Text description for the client physical channel";
-    }
-
-    leaf tx-laser {
-      type boolean;
-      description
-        "Enable (true) or disable (false) the transmit label for the
-        channel";
-    }
-
-    leaf target-output-power {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "Target output optical power level of the optical channel,
-        expressed in increments of 0.01 dBm (decibel-milliwats)";
-    }
-  }
-
-  grouping physical-channel-state {
-    description
-      "Operational state data for client channels.";
-
-    uses output-optical-frequency;
-    uses optical-power-state;
-  }
-
-  grouping physical-channel-top {
-    description
-      "Top-level grouping for physical client channels";
-
-    container physical-channels {
-      description
-        "Enclosing container for client channels";
-
-      list channel {
-        key "index";
-        description
-          "List of client channels, keyed by index within a physical
-          client port.  A physical port with a single channel would
-          have a single zero-indexed element";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index number of the channel";
-        }
-
-        container config {
-          description
-            "Configuration data for physical channels";
-
-          uses physical-channel-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for channels";
-
-          uses physical-channel-config;
-          uses physical-channel-state;
-        }
-      }
-    }
-  }
-
-
-  grouping port-transceiver-config {
-    description
-      "Configuration data for client port transceivers";
-
-    leaf enabled {
-      type boolean;
-      description
-        "Turns power on / off to the transceiver -- provides a means
-        to power on/off the transceiver (in the case of SFP, SFP+,
-        QSFP,...) or enable high-power mode (in the case of CFP,
-        CFP2, CFP4) and is optionally supported (device can choose to
-        always enable).  True = power on / high power, False =
-        powered off";
-    }
-
-    leaf form-factor-preconf {
-      type identityref {
-        base oc-opt-types:TRANSCEIVER_FORM_FACTOR_TYPE;
-      }
-      description
-        "Indicates the type of optical transceiver used on this
-        port.  If the client port is built into the device and not
-        pluggable, then non-pluggable is the corresponding state. If
-        a device port supports multiple form factors (e.g. QSFP28
-        and QSFP+, then the value of the transceiver installed shall
-        be reported. If no transceiver is present, then the value of
-        the highest rate form factor shall be reported
-        (QSFP28, for example).
-
-        The form factor is included in configuration data to allow
-        pre-configuring a device with the expected type of
-        transceiver ahead of deployment.  The corresponding state
-        leaf should reflect the actual transceiver type plugged into
-        the system.";
-    }
-
-    leaf ethernet-pmd-preconf {
-      type identityref {
-        base oc-opt-types:ETHERNET_PMD_TYPE;
-      }
-      description
-        "The Ethernet PMD is a property of the optical transceiver
-        used on the port, indicating the type of physical connection.
-        It is included in configuration data to allow pre-configuring
-        a port/transceiver with the expected PMD.  The actual PMD is
-        indicated by the ethernet-pmd state leaf.";
-    }
-  }
-
-  grouping port-transceiver-state {
-    description
-      "Operational state data for client port transceivers";
-
-    leaf present {
-      type enumeration {
-        enum PRESENT {
-          description
-            "Transceiver is present on the port";
-        }
-        enum NOT_PRESENT {
-          description
-            "Transceiver is not present on the port";
-        }
-      }
-      description
-        "Indicates whether a transceiver is present in
-        the specified client port.";
-    }
-
-    leaf form-factor {
-      type identityref {
-        base oc-opt-types:TRANSCEIVER_FORM_FACTOR_TYPE;
-      }
-      description
-        "Indicates the type of optical transceiver used on this
-        port.  If the client port is built into the device and not
-        pluggable, then non-pluggable is the corresponding state. If
-        a device port supports multiple form factors (e.g. QSFP28
-        and QSFP+, then the value of the transceiver installed shall
-        be reported. If no transceiver is present, then the value of
-        the highest rate form factor shall be reported
-        (QSFP28, for example).";
-    }
-
-    leaf connector-type {
-      type identityref {
-        base oc-opt-types:FIBER_CONNECTOR_TYPE;
-      }
-      description
-        "Connector type used on this port";
-    }
-
-    leaf internal-temp {
-    // TODO: this should probably be removed if we add temperature
-    // as a top-level component property, i.e., transceiver temp
-    // should be reported there.
-      type int16 {
-        range -40..125;
-      }
-      description
-        "Internally measured temperature in degrees Celsius. MSA
-        valid range is between -40 and +125C. Accuracy shall be
-        better than +/- 3 degC over the whole temperature range.";
-    }
-
-    leaf vendor {
-      type string {
-        length 1..16;
-      }
-      description
-        "Full name of transceiver vendor. 16-octet field that
-        contains ASCII characters, left-aligned and padded on the
-        right with ASCII spaces (20h)";
-    }
-
-    leaf vendor-part {
-      type string {
-        length 1..16;
-      }
-      description
-        "Transceiver vendor's part number. 16-octet field that
-        contains ASCII characters, left-aligned and padded on the
-        right with ASCII spaces (20h). If part number is undefined,
-        all 16 octets = 0h";
-    }
-
-    leaf vendor-rev {
-      type string {
-        length 1..2;
-      }
-      description
-        "Transceiver vendor's revision number. 2-octet field that
-        contains ASCII characters, left-aligned and padded on the
-        right with ASCII spaces (20h)";
-    }
-
-    //TODO: these compliance code leaves should be active based on
-    //the type of port
-    leaf ethernet-pmd {
-      type identityref {
-        base oc-opt-types:ETHERNET_PMD_TYPE;
-      }
-      description
-        "Ethernet PMD (physical medium dependent sublayer) that the
-        transceiver supports. The SFF/QSFP MSAs have registers for
-        this and CFP MSA has similar.";
-    }
-
-    leaf sonet-sdh-compliance-code {
-      type identityref {
-        base oc-opt-types:SONET_APPLICATION_CODE;
-      }
-      description
-        "SONET/SDH application code supported by the port";
-    }
-
-    leaf otn-compliance-code {
-      type identityref {
-        base oc-opt-types:OTN_APPLICATION_CODE;
-      }
-      description
-        "OTN application code supported by the port";
-    }
-
-    leaf serial-no {
-      type string {
-        length 1..16;
-      }
-      description
-        "Transceiver serial number. 16-octet field that contains
-        ASCII characters, left-aligned and padded on the right with
-        ASCII spaces (20h). If part serial number is undefined, all
-        16 octets = 0h";
-    }
-
-    leaf date-code {
-      type oc-yang:date-and-time;
-      description
-        "Representation of the transceiver date code, typically
-        stored as YYMMDD.  The time portion of the value is
-        undefined and not intended to be read.";
-    }
-
-    leaf fault-condition {
-      type boolean;
-      description
-        "Indicates if a fault condition exists in the transceiver";
-    }
-
-    uses optical-power-state;
-
-  }
-
-  grouping port-transceiver-top {
-    description
-      "Top-level grouping for client port transceiver data";
-
-    container transceiver {
-      description
-        "Top-level container for client port transceiver data";
-
-      container config {
-        description
-          "Configuration data for client port transceivers";
-
-        uses port-transceiver-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for client port transceivers";
-
-        uses port-transceiver-config;
-        uses port-transceiver-state;
-      }
-      // physical channels are associated with a transceiver
-      // component
-      uses physical-channel-top;
-    }
-  }
-
-  // data definition statements
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    description
-      "Adding transceiver data to physical inventory";
-
-    uses port-transceiver-top {
-      when "current()/oc-platform:state/" +
-        "oc-platform:type = 'TRANSCEIVER'" {
-        description
-          "Augment is active when component is of type TRANSCEIVER";
-      }
-    }
-  }
-
-  augment "/oc-if:interfaces/oc-if:interface/oc-if:state" {
-    //TODO: add 'when' or other condition to make sure this
-    //leafref points to a component of type TRANSCEIVER.
-    description
-      "Adds a reference from the base interface to its corresponding
-      physical channels.";
-
-    leaf-list physical-channel {
-      type leafref {
-        path "/oc-platform:components/" +
-          "oc-platform:component[oc-platform:name=current()/../oc-port:hardware-port]/" +
-          "oc-transceiver:transceiver/" +
-          "oc-transceiver:physical-channels/oc-transceiver:channel/" +
-          "oc-transceiver:index";
-      }
-      description
-        "For a channelized interface, list of references to the
-        physical channels (lanes) corresponding to the interface.";
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-types@2018-01-16.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-types@2018-01-16.yang
deleted file mode 100644 (file)
index 5ef3209..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-module openconfig-platform-types {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform-types";
-
-  prefix "oc-platform-types";
-
-  import openconfig-types { prefix oc-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines data types (e.g., YANG identities)
-    to support the OpenConfig component inventory model.";
-
-  oc-ext:openconfig-version "0.8.0";
-
-  revision "2018-01-16" {
-    description
-      "Added new per-component common data; add temp alarm";
-    reference "0.8.0";
-  }
-
-  revision "2017-12-14" {
-    description
-      "Added anchor containers for component data, added new
-      component types";
-    reference "0.7.0";
-  }
-
-  revision "2017-08-16" {
-    description
-      "Added power state enumerated type";
-    reference "0.6.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Added temperature state variable to component";
-    reference "0.5.0";
-  }
-
-  // grouping statements
-
-  grouping avg-min-max-instant-stats-precision1-celsius {
-    description
-      "Common grouping for recording temperature values in
-      Celsius with 1 decimal precision. Values include the
-      instantaneous, average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    leaf interval {
-      type oc-types:stat-interval;
-      description
-        "The time interval over which the min/max/average statistics
-        are computed by the system.";
-    }
-  }
-
-  // identity statements
-
-  identity OPENCONFIG_HARDWARE_COMPONENT {
-    description
-      "Base identity for hardware related components in a managed
-      device.  Derived identities are partially based on contents
-      of the IANA Entity MIB.";
-    reference
-      "IANA Entity MIB and RFC 6933";
-  }
-
-
-  identity OPENCONFIG_SOFTWARE_COMPONENT {
-    description
-      "Base identity for software-related components in a managed
-      device";
-  }
-
-  // hardware types
-
-  identity CHASSIS {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Chassis component, typically with multiple slots / shelves";
-  }
-
-  identity BACKPLANE {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Backplane component for aggregating traffic, typically
-      contained in a chassis component";
-  }
-
-  identity FABRIC {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Interconnect between ingress and egress ports on the
-      device (e.g., a crossbar switch).";
-  }
-
-  identity POWER_SUPPLY {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Component that is supplying power to the device";
-  }
-
-  identity FAN {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Cooling fan, or could be some other heat-reduction component";
-  }
-
-  identity SENSOR {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Physical sensor, e.g., a temperature sensor in a chassis";
-  }
-
-  identity FRU {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Replaceable hardware component that does not have a more
-      specific defined schema.";
-  }
-
-  identity LINECARD {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Linecard component, typically inserted into a chassis slot";
-  }
-
-  identity PORT {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Physical port, e.g., for attaching pluggables and networking
-      cables";
-  }
-
-  identity TRANSCEIVER {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Pluggable module present in a port";
-  }
-
-  identity CPU {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Processing unit, e.g., a management processor";
-  }
-
-  identity STORAGE {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "A storage subsystem on the device (disk, SSD, etc.)";
-  }
-
-  identity INTEGRATED_CIRCUIT {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "A special purpose processing unit, typically for traffic
-      switching/forwarding (e.g., switching ASIC, NPU, forwarding
-      chip, etc.)";
-  }
-
-  identity OPERATING_SYSTEM {
-    base OPENCONFIG_SOFTWARE_COMPONENT;
-    description
-      "Operating system running on a component";
-  }
-
-
-  identity COMPONENT_OPER_STATUS {
-    description
-      "Current operational status of a platform component";
-  }
-
-  identity ACTIVE {
-    base COMPONENT_OPER_STATUS;
-    description
-      "Component is enabled and active (i.e., up)";
-  }
-
-  identity INACTIVE {
-    base COMPONENT_OPER_STATUS;
-    description
-      "Component is enabled but inactive (i.e., down)";
-  }
-
-  identity DISABLED {
-    base COMPONENT_OPER_STATUS;
-    description
-      "Component is administratively disabled.";
-  }
-
-  // typedef statements
-
-  typedef component-power-type {
-    type enumeration {
-      enum POWER_ENABLED {
-        description
-          "Enable power on the component";
-      }
-      enum POWER_DISABLED {
-        description
-          "Disable power on the component";
-      }
-    }
-    description
-      "A generic type reflecting whether a hardware component
-      is powered on or off";
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform@2018-01-30.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform@2018-01-30.yang
deleted file mode 100644 (file)
index 5930278..0000000
+++ /dev/null
@@ -1,695 +0,0 @@
-module openconfig-platform {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform";
-
-  prefix "oc-platform";
-
-  import openconfig-platform-types { prefix oc-platform-types; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-alarm-types { prefix oc-alarm-types; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines a data model for representing a system
-    component inventory, which can include hardware or software
-    elements arranged in an arbitrary structure. The primary
-    relationship supported by the model is containment, e.g.,
-    components containing subcomponents.
-
-    It is expected that this model reflects every field replacable
-    unit on the device at a minimum (i.e., additional information
-    may be supplied about non-replacable components).
-
-    Every element in the inventory is termed a 'component' with each
-    component expected to have a unique name and type, and optionally
-    a unique system-assigned identifier and FRU number.  The
-    uniqueness is guaranteed by the system within the device.
-
-    Components may have properties defined by the system that are
-    modeled as a list of key-value pairs. These may or may not be
-    user-configurable.  The model provides a flag for the system
-    to optionally indicate which properties are user configurable.
-
-    Each component also has a list of 'subcomponents' which are
-    references to other components. Appearance in a list of
-    subcomponents indicates a containment relationship as described
-    above.  For example, a linecard component may have a list of
-    references to port components that reside on the linecard.
-
-    This schema is generic to allow devices to express their own
-    platform-specific structure.  It may be augmented by additional
-    component type-specific schemas that provide a common structure
-    for well-known component types.  In these cases, the system is
-    expected to populate the common component schema, and may
-    optionally also represent the component and its properties in the
-    generic structure.
-
-    The properties for each component may include dynamic values,
-    e.g., in the 'state' part of the schema.  For example, a CPU
-    component may report its utilization, temperature, or other
-    physical properties.  The intent is to capture all platform-
-    specific physical data in one location, including inventory
-    (presence or absence of a component) and state (physical
-    attributes or status).";
-
-  oc-ext:openconfig-version "0.9.0";
-
-  revision "2018-01-30" {
-    description
-      "Amended approach for modelling CPU - rather than having
-      a local CPU utilisation state variable, a component with
-      a CPU should create a subcomponent of type CPU to report
-      statistics.";
-    reference "0.9.0";
-  }
-
-  revision "2018-01-16" {
-    description
-      "Added new per-component common data; add temp alarm;
-      moved hardware-port reference to port model";
-    reference "0.8.0";
-  }
-
-  revision "2017-12-14" {
-    description
-      "Added anchor containers for component data, added new
-      component types";
-    reference "0.7.0";
-  }
-
-  revision "2017-08-16" {
-    description
-      "Added power state enumerated type";
-    reference "0.6.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Added temperature state variable to component";
-    reference "0.5.0";
-  }
-
-  // grouping statements
-
-
-  grouping platform-component-properties-config {
-    description
-      "System-defined configuration data for component properties";
-
-    leaf name {
-      type string;
-      description
-        "System-supplied name of the property -- this is typically
-        non-configurable";
-    }
-
-    leaf value {
-      type union {
-        type string;
-        // type boolean;
-        type int64;
-        type uint64;
-        type decimal64 {
-          fraction-digits 2;
-        }
-      }
-      description
-        "Property values can take on a variety of types.  Signed and
-        unsigned integer types may be provided in smaller sizes,
-        e.g., int8, uint16, etc.";
-    }
-  }
-
-  grouping platform-component-properties-state {
-    description
-      "Operational state data for component properties";
-
-    leaf configurable {
-      type boolean;
-      description
-        "Indication whether the property is user-configurable";
-    }
-  }
-
-  grouping platform-component-properties-top {
-    description
-      "Top-level grouping ";
-
-    container properties {
-      description
-        "Enclosing container ";
-
-      list property {
-        key "name";
-        description
-          "List of system properties for the component";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "Reference to the property name.";
-        }
-
-        container config {
-          description
-            "Configuration data for each property";
-
-          uses platform-component-properties-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for each property";
-
-          uses platform-component-properties-config;
-          uses platform-component-properties-state;
-        }
-      }
-    }
-  }
-
-  grouping platform-subcomponent-ref-config {
-    description
-      "Configuration data for subcomponent references";
-
-    leaf name {
-        type string;
-//      type leafref {
-//        path "../../config/name";
-//      }
-      description
-        "Reference to the name of the subcomponent";
-    }
-  }
-
-  grouping platform-subcomponent-ref-state {
-    description
-      "Operational state data for subcomponent references";
-
-  }
-
-  grouping platform-subcomponent-ref-top {
-    description
-      "Top-level grouping for list of subcomponent references";
-
-    container subcomponents {
-      description
-        "Enclosing container for subcomponent references";
-
-      list subcomponent {
-        key "name";
-        description
-          "List of subcomponent references";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "Reference to the name list key";
-        }
-
-        container config {
-          description
-            "Configuration data for the subcomponent";
-
-          uses platform-subcomponent-ref-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for the subcomponent";
-
-          uses platform-subcomponent-ref-config;
-          uses platform-subcomponent-ref-state;
-        }
-      }
-    }
-  }
-
-  grouping platform-component-config {
-    description
-      "Configuration data for components";
-
-    leaf name {
-      type string;
-      description
-        "Device name for the component -- this will not be a
-        configurable parameter on many implementations";
-    }
-  }
-
-  grouping platform-component-state {
-    description
-      "Operational state data for device components.";
-
-    leaf type {
-      type union {
-        type identityref {
-          base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT;
-        }
-        type identityref {
-          base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT;
-        }
-      }
-      description
-        "Type of component as identified by the system";
-    }
-
-    leaf id {
-      type string;
-      description
-        "Unique identifier assigned by the system for the
-        component";
-    }
-
-    leaf description {
-      type string;
-      description
-        "System-supplied description of the component";
-    }
-
-    leaf mfg-name {
-      type string;
-      description
-        "System-supplied identifier for the manufacturer of the
-        component.  This data is particularly useful when a
-        component manufacturer is different than the overall
-        device vendor.";
-    }
-
-    leaf hardware-version {
-      type string;
-      description
-        "For hardware components, this is the hardware revision of
-        the component.";
-    }
-
-    leaf firmware-version {
-      type string;
-      description
-        "For hardware components, this is the version of associated
-        firmware that is running on the component, if applicable.";
-    }
-
-    leaf software-version {
-      type string;
-      description
-        "For software components such as operating system or other
-        software module, this is the version of the currently
-        running software.";
-    }
-
-    leaf serial-no {
-      type string;
-      description
-        "System-assigned serial number of the component.";
-    }
-
-    leaf part-no {
-      type string;
-      description
-        "System-assigned part number for the component.  This should
-        be present in particular if the component is also an FRU
-        (field replacable unit)";
-    }
-
-    leaf oper-status {
-      type identityref {
-        base oc-platform-types:COMPONENT_OPER_STATUS;
-      }
-      description
-        "If applicable, this reports the current operational status
-        of the component.";
-    }
-  }
-
-  grouping platform-component-temp-alarm-state {
-    description
-      "Temperature alarm data for platform components";
-
-    // TODO(aashaikh): consider if these leaves could be in a
-    // reusable grouping (not temperature-specific); threshold
-    // may always need to be units specific.
-
-    leaf alarm-status {
-      type boolean;
-      description
-        "A value of true indicates the alarm has been raised or
-        asserted.  The value should be false when the alarm is
-        cleared.";
-    }
-
-    leaf alarm-threshold {
-      type uint32;
-      description
-        "The threshold value that was crossed for this alarm.";
-    }
-
-    leaf alarm-severity {
-      type identityref {
-        base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY;
-      }
-      description
-        "The severity of the current alarm.";
-    }
-  }
-
-  grouping platform-component-power-state {
-    description
-      "Power-related operational state for device components.";
-
-    leaf allocated-power {
-      type uint32;
-      units watts;
-      description
-        "Power allocated by the system for the component.";
-    }
-
-    leaf used-power {
-      type uint32;
-      units watts;
-      description
-        "Actual power used by the component.";
-    }
-  }
-
-  grouping platform-component-temp-state {
-    description
-      "Temperature state data for device components";
-
-    container temperature {
-      description
-        "Temperature in degrees Celsius of the component. Values include
-        the instantaneous, average, minimum, and maximum statistics. If
-        avg/min/max statistics are not supported, the target is expected
-        to just supply the instant value";
-
-      uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius;
-      uses platform-component-temp-alarm-state;
-    }
-  }
-
-  grouping platform-component-memory-state {
-    description
-      "Per-component memory statistics";
-
-    container memory {
-      description
-        "For components that have associated memory, these values
-        report information about available and utilized memory.";
-
-      leaf available {
-        type uint64;
-        units bytes;
-        description
-          "The available memory physically installed, or logically
-          allocated to the component.";
-      }
-
-      // TODO(aashaikh): consider if this needs to be a
-      // min/max/avg statistic
-      leaf utilized {
-        type uint64;
-        units bytes;
-        description
-          "The memory currently in use by processes running on
-          the component, not considering reserved memory that is
-          not available for use.";
-      }
-    }
-  }
-
-  grouping platform-anchors-top {
-    description
-      "This grouping is used to add containers for components that
-      are common across systems, but do not have a defined schema
-      within the openconfig-platform module.  Containers should be
-      added to this grouping for components that are expected to
-      exist in multiple systems, with corresponding modules
-      augmenting the config/state containers directly.";
-
-    container chassis {
-      description
-        "Data for chassis components";
-
-      container config {
-        description
-          "Configuration data for chassis components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for chassis components";
-      }
-    }
-
-// TODO(aashaikh): linecard container is already defined in
-// openconfig-platform-linecard; will move to this module
-// in future.
-  /*
-    container linecard {
-      description
-        "Data for linecard components";
-
-      container config {
-        description
-          "Configuration data for linecard components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for linecard components";
-      }
-    }
-  */
-
-    container port {
-      description
-        "Data for physical port components";
-
-      container config {
-        description
-          "Configuration data for physical port components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for physical port components";
-      }
-    }
-
-// TODO(aashaikh): transceiver container is already defined in
-// openconfig-platform-transceiver; will move to this module
-// in future.
-  /*
-    container transceiver {
-      description
-        "Data for transceiver components";
-
-      container config {
-        description
-          "Configuration data for transceiver components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for transceiver components";
-      }
-    }
-  */
-
-    container power-supply {
-      description
-        "Data for power supply components";
-
-      container config {
-        description
-          "Configuration data for power supply components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for power supply components";
-      }
-    }
-
-    container fan {
-      description
-        "Data for fan components";
-
-      container config {
-        description
-          "Configuration data for fan components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for fan components";
-      }
-    }
-
-    container fabric {
-      description
-        "Data for fabric components";
-
-      container config {
-        description
-          "Configuration data for fabric components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for fabric components";
-      }
-    }
-
-    container storage {
-      description
-        "Data for storage components";
-
-      container config {
-        description
-          "Configuration data for storage components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for storage components";
-      }
-    }
-
-    container cpu {
-      description
-        "Data for cpu components";
-
-      container config {
-        description
-          "Configuration data for cpu components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for cpu components";
-      }
-    }
-
-    container integrated-circuit {
-      description
-        "Data for chip components, such as ASIC, NPUs, etc.";
-
-      container config {
-        description
-          "Configuration data for chip components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for chip components";
-      }
-    }
-
-    container backplane {
-      description
-        "Data for backplane components";
-
-      container config {
-        description
-          "Configuration data for backplane components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for backplane components";
-      }
-    }
-  }
-
-  grouping platform-component-top {
-    description
-      "Top-level grouping for components in the device inventory";
-
-    container components {
-      description
-        "Enclosing container for the components in the system.";
-
-      list component {
-        key "name";
-        description
-          "List of components, keyed by component name.";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "References the component name";
-        }
-
-        container config {
-          description
-            "Configuration data for each component";
-
-          uses platform-component-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for each component";
-
-          uses platform-component-config;
-          uses platform-component-state;
-          uses platform-component-temp-state;
-          uses platform-component-memory-state;
-          uses platform-component-power-state;
-        }
-
-        uses platform-component-properties-top;
-        uses platform-subcomponent-ref-top;
-        uses platform-anchors-top;
-      }
-    }
-  }
-
-
-  // data definition statements
-
-  uses platform-component-top;
-
-
-  // augments
-
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-terminal-device@2017-07-08.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-terminal-device@2017-07-08.yang
deleted file mode 100644 (file)
index 0319a6c..0000000
+++ /dev/null
@@ -1,1141 +0,0 @@
-module openconfig-terminal-device {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/terminal-device";
-
-  prefix "oc-opt-term";
-
-  import openconfig-types { prefix oc-types; }
-  import openconfig-transport-types { prefix oc-opt-types; }
-  import openconfig-if-ethernet { prefix oc-eth; }
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-platform-transceiver { prefix oc-transceiver; }
-  import openconfig-extensions { prefix oc-ext; }
-  import ietf-yang-types { prefix yang; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module describes a terminal optics device model for
-    managing the terminal systems (client and line side) in a
-    DWDM transport network.
-
-    Elements of the model:
-
-    physical port: corresponds to a physical, pluggable client
-    port on the terminal device. Examples includes 10G, 40G, 100G
-    (e.g., 10x10G, 4x25G or 1x100G) and 400G/1T in the future.
-    Physical client ports will have associated operational state or
-    PMs.
-
-    physical channel: a physical lane or channel in the
-    physical client port.  Each physical client port has 1 or more
-    channels. An example is 100GBASE-LR4 client physical port having
-    4x25G channels. Channels have their own optical PMs and can be
-    monitored independently within a client physical port (e.g.,
-    channel power).  Physical client channels are defined in the
-    model as part of a physical client port, and are modeled
-    primarily for reading their PMs.
-
-    logical channel: a logical grouping of logical grooming elements
-    that may be assigned to subsequent grooming stages for
-    multiplexing / de-multiplexing, or to an optical channel for
-    line side transmission.  The logical channels can represent, for
-    example, an ODU/OTU logical packing of the client
-    data onto the line side.  Tributaries are similarly logical
-    groupings of demand that can be represented in this structure and
-    assigned to an optical channel.  Note that different types of
-    logical channels may be present, each with their corresponding
-    PMs.
-
-    optical channel:  corresponds to an optical carrier and is
-    assigned a wavelength/frequency.  Optical channels have PMs
-    such as power, BER, and operational mode.
-
-    Directionality:
-
-    To maintain simplicity in the model, the configuration is
-    described from client-to-line direction.  The assumption is that
-    equivalent reverse configuration is implicit, resulting in
-    the same line-to-client configuration.
-
-    Physical layout:
-
-    The model does not assume a particular physical layout of client
-    and line ports on the terminal device (e.g., such as number of
-    ports per linecard, separate linecards for client and line ports,
-    etc.).";
-
-  oc-ext:openconfig-version "1.0.0";
-
-  revision "2017-07-08" {
-    description
-      "Adds test-signal";
-    reference "1.0.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes and additions to terminal optics model";
-    reference "0.4.0";
-  }
-
-
-  grouping terminal-input-optical-power {
-    description
-      "Reusable leaves related to input optical power";
-
-    leaf input-power {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The input optical power of this port in units of 0.01dBm.
-        If the port is an aggregate of multiple physical channels,
-        this attribute is the total power or sum of all channels.";
-    }
-  }
-
-  grouping terminal-ethernet-protocol-config {
-    description
-      "Configuration data for logical channels with Ethernet
-      framing";
-
-    //TODO:currently a empty container
-  }
-
-  grouping terminal-ethernet-protocol-state {
-    description
-      "Ethernet-specific counters when logical channel
-      is using Ethernet protocol framing, e.g., 10GE, 100GE";
-
-      uses oc-eth:ethernet-interface-state-counters;
-  }
-
-  grouping terminal-ethernet-protocol-top {
-    description
-      "Top-level grouping for data related to Ethernet protocol
-      framing on logical channels";
-
-    container ethernet {
-      description
-        "Top level container for data related to Ethernet framing
-        for the logical channel";
-
-      container config {
-        description
-          "Configuration data for Ethernet protocol framing on
-          logical channels";
-
-        uses terminal-ethernet-protocol-config;
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for Ethernet protocol framing
-          on logical channels";
-
-        uses terminal-ethernet-protocol-state;
-      }
-    }
-  }
-
-  grouping terminal-otn-protocol-config {
-    description
-      "OTU configuration when logical channel
-      framing is using an OTU protocol, e.g., OTU1, OTU3, etc.";
-
-    leaf tti-msg-transmit {
-      type string;
-      description
-        "Trail trace identifier (TTI) message transmitted";
-    }
-
-    leaf tti-msg-expected {
-      type string;
-      description
-        "Trail trace identifier (TTI) message expected";
-    }
-
-    leaf tti-msg-auto {
-      type boolean;
-      description
-        "Trail trace identifier (TTI) transmit message automatically
-        created.  If true, then setting a custom transmit message
-        would be invalid.";
-    }
-  }
-
-  grouping terminal-otn-protocol-counter-stats {
-    description
-      "Counter based statistics containers for logical channels
-      using OTN framing";
-
-    leaf errored-seconds {
-      type yang:counter64;
-      description
-        "The number of seconds that at least one errored blocks
-        occurs, at least one code violation occurs, loss of sync is
-        detected or loss of signal is detected";
-    }
-
-    leaf severely-errored-seconds {
-      type yang:counter64;
-      description
-        "The number of seconds that loss of frame is detected OR
-        the number of errored blocks, code violations, loss of sync
-        or loss of signal is detected exceeds a predefined
-        threshold";
-    }
-
-    leaf unavailable-seconds {
-      type yang:counter64;
-      description
-        "The number of seconds during which the link is unavailable";
-    }
-
-    leaf code-violations {
-      type yang:counter64;
-      description
-        "For ethernet or fiberchannel links, the number of 8b/10b
-        coding violations. For SONET/SDH, the number of BIP (bit
-        interleaved parity) errors";
-    }
-
-    leaf fec-uncorrectable-words {
-      type yang:counter64;
-      description
-        "The number words that were uncorrectable by the FEC";
-    }
-
-    leaf fec-corrected-bytes {
-      type yang:counter64;
-      description
-        "The number of bytes that were corrected by the FEC";
-    }
-
-    leaf fec-corrected-bits {
-      type yang:counter64;
-      description
-        "The number of bits that were corrected by the FEC";
-    }
-
-    leaf background-block-errors {
-      type yang:counter64;
-      description
-        "The number of background block errors";
-    }
-  }
-
-  grouping terminal-otn-protocol-multi-stats {
-    description
-      "Multi-value statistics containers for logical channels using
-      OTN framing (e.g., max, min, avg, instant)";
-
-    container pre-fec-ber {
-      description
-        "Bit error rate before forward error correction -- computed
-        value with 18 decimal precision. Note that decimal64
-        supports values as small as i x 10^-18 where i is an
-        integer. Values smaller than this should be reported as 0
-        to inidicate error free or near error free performance.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision18-ber;
-    }
-
-    container post-fec-ber {
-      description
-        "Bit error rate after forward error correction -- computed
-        value with 18 decimal precision. Note that decimal64
-        supports values as small as i x 10^-18 where i is an
-        integer. Values smaller than this should be reported as 0
-        to inidicate error free or near error free performance.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision18-ber;
-    }
-
-    container q-value {
-      description
-        "Quality value (factor) in dB of a channel with two
-        decimal precision. Values include the instantaneous,
-        average, minimum, and maximum statistics. If avg/min/max
-        statistics are not supported, the target is expected
-        to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dB;
-    }
-
-    container esnr {
-      description
-        "Electrical signal to noise ratio. Baud rate
-        normalized signal to noise ratio based on
-        error vector magnitude in dB with two decimal
-        precision. Values include the instantaneous, average,
-        minimum, and maximum statistics. If avg/min/max
-        statistics are not supported, the target is expected
-        to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dB;
-    }
-  }
-
-  grouping terminal-otn-protocol-state {
-    description
-      "OTU operational state when logical channel
-      framing is using an OTU protocol, e.g., OTU1, OTU3, etc.";
-
-
-      leaf tti-msg-recv {
-        type string;
-        description
-          "Trail trace identifier (TTI) message received";
-      }
-
-      leaf rdi-msg {
-        type string;
-        description
-          "Remote defect indication (RDI) message received";
-      }
-      uses terminal-otn-protocol-counter-stats;
-      uses terminal-otn-protocol-multi-stats;
-  }
-
-  grouping terminal-otn-protocol-top {
-    description
-      "Top-level grouping for data related to OTN protocol framing";
-
-    container otn {
-      description
-        "Top level container for OTU configuration when logical
-        channel framing is using an OTU protocol, e.g., OTU1, OTU3,
-        etc.";
-
-      container config {
-        description
-          "Configuration data for OTN protocol framing";
-
-        uses terminal-otn-protocol-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for OTN protocol PMs, statistics,
-          etc.";
-
-        uses terminal-otn-protocol-config;
-        uses terminal-otn-protocol-state;
-      }
-    }
-  }
-
-  grouping terminal-client-port-assignment-config {
-    description
-      "Configuration data for assigning physical client ports to
-      logical channels";
-
-    leaf index {
-      type uint32;
-      description
-        "Index of the client port assignment";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Descriptive name for the client port-to-logical channel
-        mapping";
-    }
-
-    leaf logical-channel {
-      type leafref {
-        path "/oc-opt-term:terminal-device/oc-opt-term:logical-channels" +
-          "/oc-opt-term:channel/oc-opt-term:index";
-      }
-      description
-        "Reference to the logical channel for this
-        assignment";
-    }
-
-    leaf allocation {
-      type decimal64 {
-        fraction-digits 3;
-      }
-      units Gbps;
-      description
-        "Allocation of the client physical port to the assigned
-        logical channel expressed in Gbps.  In most cases,
-        the full client physical port rate is assigned to a single
-        logical channel.";
-    }
-
-  }
-
-  grouping terminal-client-port-assignment-state {
-    description
-      "Operational state data for assigning physical client ports
-      to logical channels";
-  }
-
-  grouping terminal-client-port-assignment-top {
-    description
-      "Top-level grouping for the assigment of client physical ports
-      to logical channels";
-    //TODO: this grouping could be removed, instead reusing a common
-    //grouping for logical client assignment pointers
-
-    container logical-channel-assignments {
-      description
-        "Enclosing container for client port to logical client
-        mappings";
-
-      list assignment {
-        key "index";
-        description
-          "List of assignments to logical clients";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index of this logical client
-            assignment";
-        }
-
-        container config {
-          description
-            "Configuration data for the logical client assignment";
-
-          uses terminal-client-port-assignment-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for the logical client
-            assignment";
-
-          uses terminal-client-port-assignment-config;
-          uses terminal-client-port-assignment-state;
-        }
-      }
-    }
-  }
-
-
-  grouping terminal-logical-chan-assignment-config {
-    description
-      "Configuration data for assigning client logical channels
-      to line-side tributaries";
-
-    leaf index {
-      type uint32;
-      description
-        "Index of the current logical client channel to tributary
-        mapping";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Name assigned to the logical client channel";
-    }
-
-    leaf assignment-type {
-      type enumeration {
-        enum LOGICAL_CHANNEL {
-          description
-            "Subsequent channel is a logical channel";
-        }
-        enum OPTICAL_CHANNEL {
-          description
-            "Subsequent channel is a optical channel / carrier";
-        }
-      }
-      description
-        "Each logical channel element may be assigned to subsequent
-        stages of logical elements to implement further grooming, or
-        can be assigned to a line-side optical channel for
-        transmission.  Each assignment also has an associated
-        bandwidth allocation.";
-    }
-
-    leaf logical-channel {
-      type leafref {
-        path "/oc-opt-term:terminal-device/" +
-          "oc-opt-term:logical-channels/oc-opt-term:channel/" +
-          "oc-opt-term:index";
-      }
-      must "../assignment-type = 'LOGICAL_CHANNEL'" {
-        description
-          "The assignment-type must be set to LOGICAL_CHANNEL for
-          this leaf to be valid";
-      }
-      description
-         "Reference to another stage of logical channel elements.";
-    }
-
-    leaf optical-channel {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-platform:name";
-      }
-      must "../assignment-type = 'OPTICAL_CHANNEL'" {
-        description
-          "The assignment-type must be set to OPTICAL_CHANNEL for
-          this leaf to be valid";
-      }
-      description
-        "Reference to the line-side optical channel that should
-        carry the current logical channel element.  Use this
-        reference to exit the logical element stage.";
-    }
-
-    leaf allocation {
-      type decimal64 {
-        fraction-digits 3;
-      }
-      units Gbps;
-      description
-        "Allocation of the logical client channel to the tributary
-        or sub-channel, expressed in Gbps";
-    }
-
-  }
-
-  grouping terminal-logical-chan-assignment-state {
-    description
-      "Operational state data for the assignment of logical client
-      channel to line-side tributary";
-  }
-
-  grouping terminal-logical-chan-assignment-top {
-    description
-      "Top-level grouping for the list of logical client channel-to-
-      tributary assignments";
-
-    container logical-channel-assignments {
-      //TODO: we need a commonly understood name for this logical
-      //channel structure
-      description
-        "Enclosing container for tributary assignments";
-
-      list assignment {
-        key "index";
-        description
-          "Logical channel elements may be assigned directly to
-          optical channels for line-side transmission, or can be
-          further groomed into additional stages of logical channel
-          elements.  The grooming can multiplex (i.e., split the
-          current element into multiple elements in the subsequent
-          stage) or de-multiplex (i.e., combine the current element
-          with other elements into the same element in the subsequent
-          stage) logical elements in each stage.
-
-          Note that to support the ability to groom the logical
-          elements, the list of logical channel elements should be
-          populated with an entry for the logical elements at
-          each stage, starting with the initial assignment from the
-          respective client physical port.
-
-          Each logical element assignment consists of a pointer to
-          an element in the next stage, or to an optical channel,
-          along with a bandwidth allocation for the corresponding
-          assignment (e.g., to split or combine signal).";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index for the current tributary
-            assignment";
-        }
-
-        container config {
-          description
-            "Configuration data for tributary assignments";
-
-          uses terminal-logical-chan-assignment-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for tributary assignments";
-
-          uses terminal-logical-chan-assignment-config;
-          uses terminal-logical-chan-assignment-state;
-        }
-      }
-    }
-  }
-
-  grouping terminal-logical-channel-ingress-config {
-    description
-      "Configuration data for ingress signal to logical channel";
-
-    leaf transceiver {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-        "oc-platform:name";
-      }
-      description
-        "Reference to the transceiver carrying the input signal
-        for the logical channel.  If specific physical channels
-        are mapped to the logical channel (as opposed to all
-        physical channels carried by the transceiver), they can be
-        specified in the list of physical channel references.";
-    }
-
-    leaf-list physical-channel {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-transceiver:transceiver/" +
-          "oc-transceiver:physical-channels/" +
-          "oc-transceiver:channel/oc-transceiver:index";
-      }
-      description
-        "This list should be populated with references
-        to the client physical channels that feed this logical
-        channel from the transceiver specified in the 'transceiver'
-        leaf, which must be specified.  If this leaf-list is empty,
-        all physical channels in the transceiver are assumed to be
-        mapped to the logical channel.";
-    }
-  }
-
-  grouping terminal-logical-channel-ingress-state {
-    description
-      "Operational state data for ingress signal to logical channel";
-  }
-
-  grouping terminal-logical-channel-ingress-top {
-    description
-      "Top-level grouping for ingress signal to logical channel";
-
-    container ingress {
-      description
-        "Top-level container for specifying references to the
-        source of signal for the logical channel, either a
-        transceiver or individual physical channels";
-
-      container config {
-        description
-          "Configuration data for the signal source for the
-          logical channel";
-
-        uses terminal-logical-channel-ingress-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for the signal source for the
-          logical channel";
-
-        uses terminal-logical-channel-ingress-config;
-        uses terminal-logical-channel-ingress-state;
-      }
-    }
-  }
-
-  grouping terminal-logical-channel-config {
-    description
-      "Configuration data for logical channels";
-
-    leaf index {
-      type uint32;
-      description
-        "Index of the current logical channel";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Description of the logical channel";
-    }
-
-    leaf admin-state {
-      type oc-opt-types:admin-state-type;
-      description
-          "Sets the admin state of the logical channel";
-    }
-
-    leaf rate-class {
-      type identityref {
-        base oc-opt-types:TRIBUTARY_RATE_CLASS_TYPE;
-      }
-      description
-        "Rounded bit rate of the tributary signal. Exact bit rate
-        will be refined by protocol selection.";
-    }
-
-    leaf trib-protocol {
-      type identityref {
-        base oc-opt-types:TRIBUTARY_PROTOCOL_TYPE;
-      }
-      description
-        "Protocol framing of the tributary signal. If this
-        LogicalChannel is directly connected to a Client-Port or
-        Optical-Channel, this is the protocol of the associated port.
-        If the LogicalChannel is connected to other LogicalChannels,
-        the TributaryProtocol of the LogicalChannels will define a
-        specific mapping/demapping or multiplexing/demultiplexing
-        function.
-
-        Not all protocols are valid, depending on the value
-        of trib-rate-class.  The expectation is that the NMS
-        will validate that a correct combination of rate class
-        and protocol are specfied.  Basic combinations are:
-
-        rate class: 1G
-        protocols: 1GE
-
-        rate class: 2.5G
-        protocols: OC48, STM16
-
-        rate class: 10G
-        protocols:  10GE LAN, 10GE WAN, OC192, STM64, OTU2, OTU2e,
-                    OTU1e, ODU2, ODU2e, ODU1e
-
-        rate class: 40G
-        protocols:  40GE, OC768, STM256, OTU3, ODU3
-
-        rate class: 100G
-        protocols:  100GE, 100G MLG, OTU4, OTUCn, ODU4";
-    }
-
-    leaf logical-channel-type {
-      type identityref {
-        base oc-opt-types:LOGICAL_ELEMENT_PROTOCOL_TYPE;
-      }
-      description
-        "The type / stage of the logical element determines the
-        configuration and operational state parameters (PMs)
-        available for the logical element";
-    }
-
-    leaf loopback-mode {
-      type oc-opt-types:loopback-mode-type;
-      description
-        "Sets the loopback type on the logical channel. Setting the
-        mode to something besides NONE activates the loopback in
-        the specified mode.";
-    }
-
-    leaf test-signal {
-      type boolean;
-      description
-        "When enabled the logical channel's DSP will generate a pseudo
-        randmon bit stream (PRBS) which can be used during testing.";
-    }
-  }
-
-
-  grouping terminal-logical-channel-state {
-    description
-      "Operational state data for logical client channels";
-
-    leaf link-state {
-      type enumeration {
-        enum UP {
-          description
-            "Logical channel is operationally up";
-        }
-        enum DOWN {
-          description
-            "Logical channel is operationally down";
-        }
-      }
-      description
-        "Link-state of the Ethernet protocol on the logical channel,
-        SONET / SDH framed signal, etc.";
-    }
-
-  }
-
-  grouping terminal-logical-channel-top {
-    description
-      "Top-level grouping for logical channels";
-
-    container logical-channels {
-      description
-        "Enclosing container the list of logical channels";
-
-      list channel {
-        key "index";
-        description
-          "List of logical channels";
-        //TODO: naming for this list of logical elements should be
-        //revisited.
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index of the logical channel";
-        }
-
-        container config {
-          description
-            "Configuration data for logical channels";
-
-          uses terminal-logical-channel-config;
-
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for logical channels";
-
-          uses terminal-logical-channel-config;
-          uses terminal-logical-channel-state;
-        }
-
-        uses terminal-otn-protocol-top {
-          when "config/logical-channel-type = 'PROT_OTN'" {
-            description
-              "Include the OTN protocol data only when the
-              channel is using OTN framing.";
-          }
-        }
-        uses terminal-ethernet-protocol-top {
-          when "config/logical-channel-type = 'PROT_ETHERNET'" {
-            description
-              "Include the Ethernet protocol statistics only when the
-              protocol used by the link is Ethernet.";
-          }
-        }
-        uses terminal-logical-channel-ingress-top;
-        uses terminal-logical-chan-assignment-top;
-      }
-    }
-  }
-
-
-  grouping terminal-optical-channel-config {
-    description
-      "Configuration data for describing optical channels";
-
-    leaf frequency {
-      type oc-opt-types:frequency-type;
-      description
-        "Frequency of the optical channel, expressed in MHz";
-    }
-
-    leaf target-output-power {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "Target output optical power level of the optical channel,
-        expressed in increments of 0.01 dBm (decibel-milliwats)";
-    }
-
-    leaf operational-mode {
-      type uint16;
-      description
-        "Vendor-specific mode identifier -- sets the operational
-        mode for the channel.  The specified operational mode must
-        exist in the list of supported operational modes supplied
-        by the device";
-      //
-      // Ideally, this leaf should be a leafref to the supported
-      // operational modes, but YANG 1.0 does not allow a r/w
-      // leaf to be a leafref to a r/o leaf.
-    }
-
-
-    leaf line-port {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-platform:name";
-      }
-      description
-        "Reference to the line-side physical port that carries
-        this optical channel.  The target port should be
-        a component in the physical inventory data model.";
-    }
-  }
-
-  grouping terminal-optical-channel-state {
-    description
-      "Operational state data for optical channels";
-
-    leaf group-id {
-      type uint32;
-      description
-        "If the device places constraints on which optical
-        channels must be managed together (e.g., transmitted on the
-        same line port), it can indicate that by setting the group-id
-        to the same value across related optical channels.";
-    }
-
-    uses oc-transceiver:optical-power-state;
-
-    container chromatic-dispersion {
-      description
-        "Chromatic Dispersion of an optical channel in
-        picoseconds / nanometer (ps/nm) as reported by receiver
-        with two decimal precision. Values include the instantaneous,
-        average, minimum, and maximum statistics. If avg/min/max
-        statistics are not supported, the target is expected to just
-        supply the instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision2-ps-nm;
-    }
-
-    container polarization-mode-dispersion {
-      description
-        "Polarization Mode Dispersion of an optical channel
-        in picosends (ps) as reported by receiver with two decimal
-        precision. Values include the instantaneous, average,
-        minimum, and maximum statistics. If avg/min/max statistics
-        are not supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision2-ps;
-    }
-
-    container second-order-polarization-mode-dispersion {
-      description
-        "Second Order Polarization Mode Dispersion of an optical
-        channel in picoseconds squared (ps^2) as reported by
-        receiver with two decimal precision. Values include the
-        instantaneous, average, minimum, and maximum statistics.
-        If avg/min/max statistics are not supported, the target
-        is expected to just supply the instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision2-ps2;
-    }
-
-    container polarization-dependent-loss {
-      description
-        "Polarization Dependent Loss of an optical channel
-        in dB as reported by receiver with two decimal precision.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dB;
-    }
-  }
-
-  grouping terminal-optical-channel-top {
-    description
-      "Top-level grouping for optical channel data";
-
-    container optical-channel {
-      description
-        "Enclosing container for the list of optical channels";
-
-      container config {
-        description
-          "Configuration data for optical channels";
-
-        uses terminal-optical-channel-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for optical channels";
-
-        uses terminal-optical-channel-config;
-        uses terminal-optical-channel-state;
-      }
-    }
-  }
-
-  grouping terminal-operational-mode-config {
-    description
-      "Configuration data for vendor-supported operational modes";
-  }
-
-  grouping terminal-operational-mode-state {
-    description
-      "Operational state data for vendor-supported operational
-      modes";
-
-      leaf mode-id {
-        type uint16;
-        description
-          "Two-octet encoding of the vendor-defined operational
-          mode";
-      }
-
-      leaf description {
-        type string;
-        description
-          "Vendor-supplied textual description of the characteristics
-          of this operational mode to enable operators to select the
-          appropriate mode for the application.";
-      }
-
-      //TODO: examples of the kind of info that would be useful to
-      //report in the operational mode:
-      //Symbol rate (32G, 40G, 43G, 64G, etc.)
-      //Modulation (QPSK, 8-QAM, 16-QAM, etc.)
-      //Differential encoding (on, off/pilot symbol, etc)
-      //State of polarization tracking mode (default, med.
-      //high-speed, etc.)
-      //Pulse shaping (RRC, RC, roll-off factor)
-      //FEC mode (SD, HD, % OH)
-
-      leaf vendor-id {
-        type string;
-        description
-          "Identifier to represent the vendor / supplier of the
-          platform and the associated operational mode information";
-      }
-  }
-
-  grouping terminal-operational-mode-top {
-    description
-      "Top-level grouping for vendor-supported operational modes";
-
-    container operational-modes {
-      description
-        "Enclosing container for list of operational modes";
-
-      list mode {
-        key "mode-id";
-        config false;
-        description
-          "List of operational modes supported by the platform.
-          The operational mode provides a platform-defined summary
-          of information such as symbol rate, modulation, pulse
-          shaping, etc.";
-
-        leaf mode-id {
-          type leafref {
-            path "../state/mode-id";
-          }
-          description
-            "Reference to mode-id";
-        }
-
-        container config {
-          description
-            "Configuration data for operational mode";
-
-          uses terminal-operational-mode-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for the platform-defined
-            operational mode";
-
-          uses terminal-operational-mode-config;
-          uses terminal-operational-mode-state;
-        }
-      }
-    }
-  }
-
-
-  grouping terminal-device-config {
-    description
-      "Configuration data for transport terminal devices at a
-      device-wide level";
-  }
-
-  grouping terminal-device-state {
-    description
-      "Operational state data for transport terminal devices at a
-      device-wide level";
-  }
-
-  grouping terminal-device-top {
-    description
-      "Top-level grouping for data for terminal devices";
-
-    container terminal-device {
-      description
-        "Top-level container for the terminal device";
-
-      container config {
-        description
-          "Configuration data for global terminal-device";
-
-        uses terminal-device-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for global terminal device";
-
-        uses terminal-device-config;
-        uses terminal-device-state;
-      }
-
-      uses terminal-logical-channel-top;
-      uses terminal-operational-mode-top;
-
-    }
-  }
-
-  // data definition statements
-
-  uses terminal-device-top;
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    when "/oc-platform:components/oc-platform:component/" +
-      "oc-platform:state/oc-platform:type = 'OPTICAL_CHANNEL'" {
-      description
-        "Augment is active when component is of type
-        OPTICAL_CHANNEL";
-    }
-    description
-      "Adding optical channel data to physical inventory";
-
-    uses terminal-optical-channel-top {
-    }
-  }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-transport-line-common@2017-09-08.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-transport-line-common@2017-09-08.yang
deleted file mode 100644 (file)
index 813ffa6..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-module openconfig-transport-line-common {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/transport-line-common";
-
-  prefix "oc-line-com";
-
-  // import some basic types
-  import iana-if-type { prefix ift; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-interfaces { prefix oc-if; }
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-transport-types { prefix oc-opt-types; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines common data elements for OpenConfig data
-    models for optical transport line system elements, such as
-    amplifiers and ROADMs (wavelength routers).";
-
-  oc-ext:openconfig-version "0.3.1";
-
-  revision "2017-09-08" {
-    description
-      "Correct bug with OSC interfaces";
-    reference "0.3.1";
-  }
-
-  revision "2017-07-08" {
-    description
-      "Add monitor port type and refs to hw ports, ";
-    reference "0.3.0";
-  }
-
-  revision "2017-03-28" {
-    description
-      "Added min/max/avg stats, status for media channels, OCM, APS";
-    reference "0.2.0";
-  }
-
-  revision "2016-03-31" {
-    description
-      "Initial public release";
-    reference "0.1.0";
-  }
-
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  identity OPTICAL_LINE_PORT_TYPE {
-    description
-      "Type definition for optical node port types";
-  }
-
-  identity INGRESS {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Ingress port, corresponding to a signal entering
-      a line device such as an amplifier or wavelength
-      router.";
-  }
-
-  identity EGRESS {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Egress port, corresponding to a signal exiting
-      a line device such as an amplifier or wavelength
-      router.";
-  }
-
-  identity ADD {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Add port, corresponding to a signal injected
-      at a wavelength router.";
-  }
-
-  identity DROP {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Drop port, corresponding to a signal dropped
-      at a wavelength router.";
-  }
-
-  identity MONITOR {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Monitor port, corresponding to a signal used by an optical
-      channel monitor. This is used to represent the connection
-      that a channel monitor port is connected to. This
-      connection may be via physical cable and faceplate ports or
-      internal to the device";
-  }
-
-  // typedef statements
-
-  // grouping statements
-
-   grouping optical-osc-config {
-    description
-      "Configuration data for OSC interfaces";
-
-    leaf interface {
-      type oc-if:base-interface-ref;
-      description
-        "Reference to an OSC interface";
-    }
-  }
-
-  grouping optical-osc-state {
-    description
-      "Operational state data for OSC interfaces";
-
-    container input-power {
-      description
-        "The input optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        the target is expected to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container output-power {
-      description
-        "The output optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        the target is expected to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container laser-bias-current {
-      description
-        "The current applied by the system to the transmit laser to
-        achieve the output power. The current is expressed in mA
-        with up to one decimal precision. If avg/min/max statistics
-        are not supported, the target is expected to just supply
-        the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-mA;
-    }
-  }
-
-
-
-  grouping optical-osc-top {
-    description
-      "Top-level grouping for configuration and operational state
-      data for optical supervisory channels (OSC) for amplifiers,
-      WSS/ROADM, nodes, etc.";
-
-    container config {
-      description
-        "Configuration data for OSCs";
-
-      uses optical-osc-config;
-    }
-
-    container state {
-
-      config false;
-
-      description
-        "Operational state data for OSCs";
-
-      uses optical-osc-config;
-      uses optical-osc-state;
-    }
-  }
-
-
-  grouping transport-line-common-port-config {
-    description
-      "Configuration data for optical line ports";
-
-    leaf admin-state {
-      type oc-opt-types:admin-state-type;
-      description
-          "Sets the admin state of the optical-port";
-    }
-  }
-
-  grouping transport-line-common-port-state {
-    description
-      "Operational state data describing optical line ports";
-
-    leaf optical-port-type {
-      type identityref {
-        base OPTICAL_LINE_PORT_TYPE;
-      }
-      description
-        "Indicates the type of transport line port.  This is an
-        informational field that should be made available by the
-        device (e.g., in the openconfig-platform model).";
-    }
-
-    container input-power {
-      description
-        "The total input optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container output-power {
-      description
-        "The total output optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-  }
-
-  grouping transport-line-common-port-top {
-    description
-      "Top-level grouping ";
-
-    container optical-port {
-      description
-        "Top-level container ";
-
-      container config {
-
-        description
-          "Operational config data for optical line ports";
-
-        uses transport-line-common-port-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for optical line ports";
-
-        uses transport-line-common-port-config;
-        uses transport-line-common-port-state;
-      }
-    }
-  }
-
-
-
-  // data definition statements
-
-  // uses optical-osc-top;
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    description
-      "Adding optical line port data to platform model";
-
-    uses transport-line-common-port-top {
-      when "/oc-platform:components/oc-platform:component/" +
-        "oc-platform:state/oc-platform:type = 'PORT'" {
-        description
-          "Augment is active when component is of type
-          PORT";
-      }
-    }
-  }
-
-  //TODO:this is placeholder until SONET model is added
-  //to interfaces model
-  augment "/oc-if:interfaces/oc-if:interface" {
-    when "oc-if:config/oc-if:type = 'ift:sonet'" {
-      description "Additional interface configuration parameters when
-      the interface type is SONET/SDH";
-    }
-    description "Adds additional SONET/SDH-specific data to
-    osc model";
-
-    container sonet {
-      description
-        "Data related to SONET/SDH interfaces";
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-transport-types@2017-08-16.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-transport-types@2017-08-16.yang
deleted file mode 100644 (file)
index 276f24b..0000000
+++ /dev/null
@@ -1,800 +0,0 @@
-module openconfig-transport-types {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/transport-types";
-
-  prefix "oc-opt-types";
-
-  import openconfig-platform-types { prefix oc-platform-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module contains general type definitions and identities
-    for optical transport models.";
-
-  oc-ext:openconfig-version "0.5.0";
-
-  revision "2017-08-16" {
-    description
-      "Added ODU Cn protocol type";
-    reference "0.5.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes and additions for terminal optics model";
-    reference "0.4.0";
-  }
-
-  // typedef statements
-
-  typedef frequency-type {
-    type uint64;
-    units "MHz";
-    description
-      "Type for optical spectrum frequency values";
-  }
-
-  typedef admin-state-type {
-    type enumeration {
-      enum ENABLED {
-        description
-        "Sets the channel admin state to enabled";
-      }
-      enum DISABLED {
-        description
-        "Sets the channel admin state to disabled";
-      }
-      enum MAINT {
-        description
-        "Sets the channel to maintenance / diagnostic mode";
-      }
-    }
-    description "Administrative state modes for
-    logical channels in the transponder model.";
-  }
-
-  typedef loopback-mode-type {
-    type enumeration {
-      enum NONE {
-        description
-          "No loopback is applied";
-      }
-      enum FACILITY {
-        description
-          "A loopback which directs traffic normally transmitted
-          on the port back to the device as if received on the same
-          port from an external source.";
-      }
-      enum TERMINAL {
-        description
-          "A loopback which directs traffic received from an external
-          source on the port back out the transmit side of the same
-          port.";
-      }
-    }
-    default NONE;
-    description
-      "Loopback modes for transponder logical channels";
-  }
-
-  // grouping statements
-
-  grouping avg-min-max-instant-stats-precision2-ps-nm {
-    description
-      "Common grouping for recording picosecond per nanometer
-      values with 2 decimal precision. Values include the
-      instantaneous, average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  grouping avg-min-max-instant-stats-precision2-ps {
-    description
-      "Common grouping for recording picosecond values with
-      2 decimal precision. Values include the instantaneous,
-      average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  grouping avg-min-max-instant-stats-precision2-ps2 {
-    description
-      "Common grouping for recording picosecond^2 values with
-      2 decimal precision. Values include the instantaneous,
-      average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  grouping avg-min-max-instant-stats-precision18-ber {
-    description
-      "Common grouping for recording bit error rate (BER) values
-      with 18 decimal precision. Note that decimal64 supports
-      values as small as i x 10^-18 where i is an integer. Values
-      smaller than this should be reported as 0 to inidicate error
-      free or near error free performance. Values include the
-      instantaneous, average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  // identity statements
-
-  identity TRIBUTARY_PROTOCOL_TYPE {
-    description
-      "Base identity for protocol framing used by tributary
-      signals.";
-  }
-
-  identity PROT_1GE {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "1G Ethernet protocol";
-  }
-
-  identity PROT_OC48 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OC48 protocol";
-  }
-
-  identity PROT_STM16 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "STM 16 protocol";
-  }
-
-  identity PROT_10GE_LAN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "10G Ethernet LAN protocol";
-  }
-
-  identity PROT_10GE_WAN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "10G Ethernet WAN protocol";
-  }
-
-  identity PROT_OC192 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OC 192 (9.6GB) port protocol";
-  }
-
-  identity PROT_STM64 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "STM 64 protocol";
-  }
-
-  identity PROT_OTU2 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 2 protocol";
-  }
-
-  identity PROT_OTU2E {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 2e protocol";
-  }
-
-  identity PROT_OTU1E {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 1e protocol";
-  }
-
-  identity PROT_ODU2 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 2 protocol";
-  }
-
-  identity PROT_ODU2E {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 2e protocol";
-  }
-
-  identity PROT_40GE {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "40G Ethernet port protocol";
-  }
-
-  identity PROT_OC768 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OC 768 protocol";
-  }
-
-  identity PROT_STM256 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "STM 256 protocol";
-  }
-
-  identity PROT_OTU3 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 3 protocol";
-  }
-
-  identity PROT_ODU3 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 3 protocol";
-  }
-
-  identity PROT_100GE {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "100G Ethernet protocol";
-  }
-
-  identity PROT_100G_MLG {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "100G MLG protocol";
-  }
-
-  identity PROT_OTU4 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU4 signal protocol (112G) for transporting
-    100GE signal";
-  }
-
-  identity PROT_OTUCN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU Cn protocol";
-  }
-
-  identity PROT_ODUCN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU Cn protocol";
-  }
-
-  identity PROT_ODU4 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 4 protocol";
-  }
-
-  identity TRANSCEIVER_FORM_FACTOR_TYPE {
-    description
-      "Base identity for identifying the type of pluggable optic
-      transceiver (i.e,. form factor) used in a port.";
-  }
-
-  identity CFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "C form-factor pluggable, that can support up to a
-      100 Gb/s signal with 10x10G or 4x25G physical channels";
-  }
-
-  identity CFP2 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "1/2 C form-factor pluggable, that can support up to a
-      200 Gb/s signal with 10x10G, 4x25G, or 8x25G physical
-      channels";
-  }
-
-  identity CFP2_ACO {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "CFP2 analog coherent optics transceiver, supporting
-      100 Gb, 200Gb, and 250 Gb/s signal.";
-  }
-
-  identity CFP4 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "1/4 C form-factor pluggable, that can support up to a
-      100 Gb/s signal with 10x10G or 4x25G physical channels";
-  }
-
-  identity QSFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "OriginalQuad Small Form-factor Pluggable transceiver that can
-      support 4x1G physical channels.  Not commonly used.";
-  }
-
-  identity QSFP_PLUS {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Quad Small Form-factor Pluggable transceiver that can support
-      up to 4x10G physical channels.";
-  }
-
-  identity QSFP28 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "QSFP pluggable optic with support for up to 4x28G physical
-      channels";
-  }
-
-  identity CPAK {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Cisco CPAK transceiver supporting 100 Gb/s.";
-  }
-
-  identity SFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Small form-factor pluggable transceiver supporting up to
-      10 Gb/s signal";
-  }
-
-  identity SFP_PLUS {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Enhanced small form-factor pluggable transceiver supporting
-      up to 16 Gb/s signals, including 10 GbE and OTU2";
-  }
-
-  identity XFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "10 Gigabit small form factor pluggable transceiver supporting
-      10 GbE and OTU2";
-  }
-
-  identity X2 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "10 Gigabit small form factor pluggable transceiver supporting
-      10 GbE using a XAUI inerface and 4 data channels.";
-  }
-
-  identity NON_PLUGGABLE {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Represents a port that does not require a pluggable optic,
-      e.g., with on-board optics like COBO";
-  }
-
-  identity OTHER {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Represents a transceiver form factor not otherwise listed";
-  }
-
-  identity FIBER_CONNECTOR_TYPE {
-    description
-      "Type of optical fiber connector";
-  }
-
-  identity SC_CONNECTOR {
-    base FIBER_CONNECTOR_TYPE;
-    description
-      "SC type fiber connector";
-  }
-
-  identity LC_CONNECTOR {
-    base FIBER_CONNECTOR_TYPE;
-    description
-      "LC type fiber connector";
-  }
-
-  identity MPO_CONNECTOR {
-    base FIBER_CONNECTOR_TYPE;
-    description
-      "MPO (multi-fiber push-on/pull-off) type fiber connector
-      1x12 fibers";
-  }
-
-  identity ETHERNET_PMD_TYPE {
-    description
-      "Ethernet compliance codes (PMD) supported by transceivers";
-  }
-
-  identity ETH_10GBASE_LRM {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_LRM";
-  }
-
-  identity ETH_10GBASE_LR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_LR";
-  }
-
-  identity ETH_10GBASE_ZR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_ZR";
-  }
-
-  identity ETH_10GBASE_ER {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_ER";
-  }
-
-  identity ETH_10GBASE_SR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_SR";
-  }
-
-  identity ETH_40GBASE_CR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_CR4";
-  }
-
-  identity ETH_40GBASE_SR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_SR4";
-  }
-
-  identity ETH_40GBASE_LR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_LR4";
-  }
-
-  identity ETH_40GBASE_ER4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_ER4";
-  }
-
-  identity ETH_40GBASE_PSM4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_PSM4";
-  }
-
-  identity ETH_4X10GBASE_LR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 4x10GBASE_LR";
-  }
-
-  identity ETH_4X10GBASE_SR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 4x10GBASE_SR";
-  }
-
-  identity ETH_100G_AOC {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100G_AOC";
-  }
-
-  identity ETH_100G_ACC {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100G_ACC";
-  }
-
-  identity ETH_100GBASE_SR10 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_SR10";
-  }
-
-  identity ETH_100GBASE_SR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_SR4";
-  }
-
-  identity ETH_100GBASE_LR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_LR4";
-  }
-
-  identity ETH_100GBASE_ER4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_ER4";
-  }
-
-  identity ETH_100GBASE_CWDM4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_CWDM4";
-  }
-
-  identity ETH_100GBASE_CLR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_CLR4";
-  }
-
-  identity ETH_100GBASE_PSM4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_PSM4";
-  }
-
-  identity ETH_100GBASE_CR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_CR4";
-  }
-
-  identity ETH_UNDEFINED {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: undefined";
-  }
-
-  identity SONET_APPLICATION_CODE {
-    description
-      "Supported SONET/SDH application codes";
-  }
-
-  identity VSR2000_3R2 {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: VSR2000_3R2";
-  }
-
-  identity VSR2000_3R3 {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: VSR2000_3R3";
-  }
-
-  identity VSR2000_3R5 {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: VSR2000_3R5";
-  }
-
-  identity SONET_UNDEFINED {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: undefined";
-  }
-
-  identity OTN_APPLICATION_CODE {
-    description
-      "Supported OTN application codes";
-  }
-
-  identity P1L1_2D1 {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: P1L1_2D1";
-  }
-
-  identity P1S1_2D2 {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: P1S1_2D2";
-  }
-
-  identity P1L1_2D2 {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: P1L1_2D2";
-  }
-
-  identity OTN_UNDEFINED {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: undefined";
-  }
-
-  identity TRIBUTARY_RATE_CLASS_TYPE {
-    description
-      "Rate of tributary signal _- identities will typically reflect
-      rounded bit rate.";
-  }
-
-  identity TRIB_RATE_1G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "1G tributary signal rate";
-  }
-
-  identity TRIB_RATE_2.5G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "2.5G tributary signal rate";
-  }
-
-  identity TRIB_RATE_10G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "10G tributary signal rate";
-  }
-
-  identity TRIB_RATE_40G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "40G tributary signal rate";
-  }
-
-  identity TRIB_RATE_100G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "100G tributary signal rate";
-  }
-
-  identity TRIB_RATE_150G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "150G tributary signal rate";
-  }
-
-  identity TRIB_RATE_200G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "200G tributary signal rate";
-  }
-
-  identity TRIB_RATE_250G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "250G tributary signal rate";
-  }
-
-  identity TRIB_RATE_300G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "300G tributary signal rate";
-  }
-
-  identity TRIB_RATE_400G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "400G tributary signal rate";
-  }
-
-  identity LOGICAL_ELEMENT_PROTOCOL_TYPE {
-    description
-      "Type of protocol framing used on the logical channel or
-      tributary";
-  }
-
-  identity PROT_ETHERNET {
-    base LOGICAL_ELEMENT_PROTOCOL_TYPE;
-    description
-      "Ethernet protocol framing";
-  }
-
-  identity PROT_OTN {
-    base LOGICAL_ELEMENT_PROTOCOL_TYPE;
-    description
-      "OTN protocol framing";
-  }
-
-  identity OPTICAL_CHANNEL {
-    base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Optical channels act as carriers for transport traffic
-      directed over a line system.  They are represented as
-      physical components in the physical inventory model.";
-  }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-types@2018-01-16.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-types@2018-01-16.yang
deleted file mode 100644 (file)
index 94eb65d..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-module openconfig-types {
-  yang-version "1";
-
-  namespace "http://openconfig.net/yang/openconfig-types";
-
-  prefix "oc-types";
-
-  // import statements
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization
-    "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "This module contains a set of general type definitions that
-    are used across OpenConfig models. It can be imported by modules
-    that make use of these types.";
-
-  oc-ext:openconfig-version "0.4.0";
-
-  revision "2018-01-16" {
-    description
-      "Add interval to min/max/avg stats; add percentage stat";
-    reference "0.4.0";
-  }
-
-  revision "2017-08-16" {
-    description
-      "Apply fix for ieetfloat32 length parameter";
-    reference "0.3.3";
-  }
-
-  revision "2017-01-13" {
-    description
-      "Add ADDRESS_FAMILY identity";
-    reference "0.3.2";
-  }
-
-  revision "2016-11-14" {
-    description
-      "Correct length of ieeefloat32";
-    reference "0.3.1";
-  }
-
-  revision "2016-11-11" {
-    description
-      "Additional types - ieeefloat32 and routing-password";
-    reference "0.3.0";
-  }
-
-  revision "2016-05-31" {
-    description
-      "OpenConfig public release";
-    reference "0.2.0";
-  }
-
-  typedef percentage {
-    type uint8 {
-      range "0..100";
-    }
-    description
-      "Integer indicating a percentage value";
-  }
-
-  typedef std-regexp {
-    type string;
-    description
-      "This type definition is a placeholder for a standard
-      definition of a regular expression that can be utilised in
-      OpenConfig models. Further discussion is required to
-      consider the type of regular expressions that are to be
-      supported. An initial proposal is POSIX compatible.";
-  }
-
-  typedef timeticks64 {
-    type uint64;
-    description
-     "This type is based on the timeticks type defined in
-     RFC 6991, but with 64-bit width.  It represents the time,
-     modulo 2^64, in hundredths of a second between two epochs.";
-    reference
-      "RFC 6991 - Common YANG Data Types";
-  }
-
-  typedef ieeefloat32 {
-    type binary {
-      length "4";
-    }
-    description
-      "An IEEE 32-bit floating point number. The format of this number
-      is of the form:
-        1-bit  sign
-        8-bit  exponent
-        23-bit fraction
-      The floating point value is calculated using:
-        (-1)**S * 2**(Exponent-127) * (1+Fraction)";
-  }
-
-  typedef routing-password {
-    type string;
-    description
-      "This type is indicative of a password that is used within
-      a routing protocol which can be returned in plain text to the
-      NMS by the local system. Such passwords are typically stored
-      as encrypted strings. Since the encryption used is generally
-      well known, it is possible to extract the original value from
-      the string - and hence this format is not considered secure.
-      Leaves specified with this type should not be modified by
-      the system, and should be returned to the end-user in plain
-      text. This type exists to differentiate passwords, which
-      may be sensitive, from other string leaves. It could, for
-      example, be used by the NMS to censor this data when
-      viewed by particular users.";
-  }
-
-  typedef stat-interval {
-    type uint64;
-    units nanoseconds;
-    description
-      "A time interval over which a set of statistics is computed.
-      A common usage is to report the interval over which
-      avg/min/max stats are computed and reported.";
-  }
-
-  grouping stat-interval-state {
-    description
-      "Reusable leaf definition for stats computation interval";
-
-    leaf interval {
-      type oc-types:stat-interval;
-      description
-        "The time interval over which the min/max/average statistics
-        are computed by the system.";
-    }
-  }
-
-  grouping avg-min-max-stats-precision1 {
-    description
-      "Common nodes for recording average, minimum, and
-      maximum values for a statistic.  These values all have
-      fraction-digits set to 1.";
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The maximum value of the statitic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-precision1 {
-    description
-      "Common grouping for recording an instantaneous statistic value
-      in addition to avg-min-max stats";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    uses avg-min-max-stats-precision1;
-  }
-
-  grouping avg-min-max-instant-stats-precision2-dB {
-    description
-      "Common grouping for recording dB values with 2 decimal
-      precision. Values include the instantaneous, average,
-      minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-precision2-dBm {
-    description
-      "Common grouping for recording dBm values with 2 decimal
-      precision. Values include the instantaneous, average,
-      minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-precision2-mA {
-    description
-      "Common grouping for recording mA values with 2 decimal
-      precision. Values include the instantaneous, average,
-      minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-pct {
-    description
-      "Common grouping for percentage statistics.";
-
-    leaf instant {
-      type oc-types:percentage;
-      description
-        "The instantaneous percentage value.";
-    }
-
-    leaf avg {
-      type oc-types:percentage;
-      description
-        "The arithmetic mean value of the percentage measure of the
-        statistic over the sampling period.";
-    }
-
-    leaf min {
-      type oc-types:percentage;
-      description
-        "The minimum value of the percentage measure of the
-        statistic over the sampling period";
-    }
-
-    leaf max {
-      type oc-types:percentage;
-      description
-        "The maximum value of the percentage measure of the
-        statistic over the sampling period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  identity ADDRESS_FAMILY {
-    description
-      "A base identity for all address families";
-  }
-
-  identity IPV4 {
-    base ADDRESS_FAMILY;
-    description
-      "The IPv4 address family";
-  }
-
-  identity IPV6 {
-    base ADDRESS_FAMILY;
-    description
-      "The IPv6 address family";
-  }
-
-  identity MPLS {
-    base ADDRESS_FAMILY;
-    description
-      "The MPLS address family";
-  }
-
-  identity L2_ETHERNET {
-    base ADDRESS_FAMILY;
-    description
-      "The 802.3 Ethernet address family";
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-yang-types@2017-07-30.yang b/tests/honeynode/1.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-yang-types@2017-07-30.yang
deleted file mode 100644 (file)
index 749fac4..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-module openconfig-yang-types {
-
-  yang-version "1";
-  namespace "http://openconfig.net/yang/types/yang";
-  prefix "oc-yang";
-
-  import openconfig-extensions { prefix "oc-ext"; }
-
-  organization
-    "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module contains a set of extension types to the
-    YANG builtin types that are used across multiple
-    OpenConfig models.
-
-    Portions of this code were derived from IETF RFC 6021.
-    Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "0.1.2";
-
-  revision 2017-07-30 {
-    description
-      "Fixed unprintable character";
-    reference "0.1.2";
-  }
-
-  revision 2017-04-03 {
-    description
-      "Update copyright notice.";
-    reference "0.1.1";
-  }
-
-  revision 2017-01-26 {
-    description
-      "Initial module for inet types";
-    reference "0.1.0";
-  }
-
-  typedef dotted-quad {
-    type string {
-      pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|'       +
-              '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' +
-              '[0-9]|25[0-5])$';
-    }
-    description
-      "An unsigned 32-bit integer expressed as a dotted quad. The
-      format is four octets written as decimal numbers separated
-      with a period character.";
-  }
-
-  typedef hex-string {
-    type string {
-      pattern '^[0-9a-fA-F]*$';
-    }
-    description
-      "A string consisting of a hexadecimal characters.";
-  }
-
-  typedef counter32 {
-    type uint32;
-    description
-
-      "A 32-bit counter. A counter value is a monotonically increasing
-      value which is used to express a count of a number of
-      occurrences of a particular event or entity. When the counter
-      reaches its maximum value, in this case 2^32-1, it wraps to 0.
-
-      Discontinuities in the counter are generally triggered only when
-      the counter is reset to zero.";
-  }
-
-  typedef counter64 {
-    type uint64;
-    description
-
-      "A 64-bit counter. A counter value is a monotonically increasing
-      value which is used to express a count of a number of
-      occurrences of a particular event or entity. When a counter64
-      reaches its maximum value, 2^64-1, it loops to zero.
-      Discontinuities in a counter are generally triggered only when
-      the counter is reset to zero, through operator or system
-      intervention.";
-  }
-
-  typedef date-and-time {
-    type string {
-      pattern
-        '^[0-9]{4}\-[0-9]{2}\-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}' +
-        '(\.[0-9]+)?Z[+-][0-9]{2}:[0-9]{2}$';
-    }
-    description
-      "A date and time, expressed in the format described in RFC3339.
-      That is to say:
-
-      YYYY-MM-DDTHH:MM:SSZ+-hh:mm
-
-      where YYYY is the year, MM is the month expressed as a two-digit
-      month (zero padding if required), DD is the day of the month,
-      expressed as a two digit value. T is the literal character 'T',
-      HH is the hour of the day expressed as a two digit number, using
-      the 24-hour clock, MM is the minute of the hour expressed as a
-      two digit number. Z is the literal character 'Z', followed by a
-      timezone offset expressed in hours (hh) and minutes (mm), both
-      expressed as two digit numbers. The time offset is specified as
-      a positive or negative offset to UTC using the '+' or '-'
-      character preceding the offset.
-
-      Optionally, fractional seconds can be expressed after the minute
-      of the hour as a decimal number of unspecified precision
-      reflecting fractions of a second.";
-    reference
-      "RFC3339 - Date and Time on the Internet: Timestamps";
-  }
-
-  typedef gauge64 {
-    type uint64;
-    description
-      "A gauge value may increase or decrease - and reflects a value
-      at a particular point in time. If the value of the variable
-      being modeled using the gauge exceeds its maximum - 2^64-1 in
-      this case - the gauge is set to its maximum value.";
-  }
-
-  typedef phys-address {
-    type string {
-      pattern '^([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?$';
-    }
-    description
-      "A physical layer address, expressed as a series of pairs of
-      hexadecimal digits.";
-  }
-
-  typedef mac-address {
-    type string {
-      pattern '^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$';
-    }
-    description
-      "An IEEE 802 MAC address";
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/asciidoc/Readme.adoc b/tests/honeynode/1.2.1/honeynode-plugin-impl/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index 5c2a93d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-= honeynode-plugin-impl
-
-Overview of honeynode-plugin-impl
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/pom.xml b/tests/honeynode/1.2.1/honeynode-plugin-impl/pom.xml
deleted file mode 100644 (file)
index de602b9..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (c) 2015 Cisco and/or its affiliates. Licensed under the Apache
-    License, Version 2.0 (the "License"); you may not use this file except in
-    compliance with the License. You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
-    OR CONDITIONS OF ANY KIND, either express or implied. See the License for
-    the specific language governing permissions and limitations under the License. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>io.fd.honeycomb.common</groupId>
-        <artifactId>impl-parent</artifactId>
-        <version>1.19.04</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>io.fd.honeycomb.transportpce</groupId>
-    <artifactId>honeynode-plugin-impl</artifactId>
-    <name>honeynode-plugin-impl</name>
-    <packaging>bundle</packaging>
-    <properties>
-        <honeycomb.infra.version>1.19.04</honeycomb.infra.version>
-        <maven.javadoc.skip>true</maven.javadoc.skip>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-    </properties>
-    <dependencies>
-        <!-- Transportpce -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>honeynode-common</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>honeynode-plugin-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>minimal-distribution-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <!-- Honeycomb infrastructure -->
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>translate-api</artifactId>
-            <version>${honeycomb.infra.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>translate-spi</artifactId>
-            <version>${honeycomb.infra.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>cfg-init</artifactId>
-            <version>${honeycomb.infra.version}</version>
-        </dependency>
-        <!-- DI -->
-        <dependency>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>net.jmob</groupId>
-            <artifactId>guice.conf</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.inject.extensions</groupId>
-            <artifactId>guice-multibindings</artifactId>
-        </dependency>
-        <!-- Testing Dependencies -->
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <forkCount>0</forkCount>
-                    <argLine>-Xmx4096m -XX:MaxPermSize=1024m</argLine>
-                </configuration>
-            </plugin>
-        </plugins>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-clean-plugin</artifactId>
-                    <version>3.1.0</version>
-                    <configuration>
-                        <filesets>
-                            <fileset>
-                                <directory>src/main/resources/honeycomb-minimal-resources/config/yang</directory>
-                                <includes>
-                                    <include>**</include>
-                                </includes>
-                            </fileset>
-                        </filesets>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <artifactId>maven-resources-plugin</artifactId>
-                    <version>3.1.0</version>
-                    <executions>
-                        <execution>
-                            <id>copy-resources</id>
-                            <!-- here the phase you need -->
-                            <phase>validate</phase>
-                            <goals>
-                                <goal>copy-resources</goal>
-                            </goals>
-                            <configuration>
-                                <outputDirectory>${basedir}/src/main/resources/honeycomb-minimal-resources/config/yang</outputDirectory>
-                                <resources>
-                                    <resource>
-                                        <directory>../honeynode-plugin-api/src/main/yang</directory>
-                                    </resource>
-                                </resources>
-                            </configuration>
-                        </execution>
-                    </executions>
-                </plugin>
-                <!--This plugin's configuration is used to store Eclipse m2e settings
-                    only. It has no influence on the Maven build itself. -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.apache.maven.plugins
-                                        </groupId>
-                                        <artifactId>
-                                            maven-checkstyle-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [3.0.0,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.codehaus.gmavenplus
-                                        </groupId>
-                                        <artifactId>
-                                            gmavenplus-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [1.6.2,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.apache.maven.plugins
-                                        </groupId>
-                                        <artifactId>
-                                            maven-dependency-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [2.10,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>
-                                                copy-dependencies
-                                            </goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceBindingDataBrokerProvider.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceBindingDataBrokerProvider.java
deleted file mode 100644 (file)
index 562e0b8..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.binding.init.ProviderTrait;
-
-
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataBrokerAdapter;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-
-
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public final class DeviceBindingDataBrokerProvider  extends ProviderTrait<DataBroker> {
-
-    @Inject
-    @Named(DeviceModule.DEVICE_DATABROKER)
-    private DOMDataBroker domDataBroker;
-    @Inject
-    private BindingToNormalizedNodeCodec mappingService;
-
-    @Override
-    protected BindingDOMDataBrokerAdapter create() {
-        return new BindingDOMDataBrokerAdapter(domDataBroker, mappingService);
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceModule.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceModule.java
deleted file mode 100644 (file)
index 6d7eff3..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device;
-
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.inject.PrivateModule;
-import com.google.inject.Singleton;
-import com.google.inject.name.Names;
-
-import io.fd.honeycomb.infra.distro.data.DataStoreProvider;
-import io.fd.honeycomb.infra.distro.data.InmemoryDOMDataBrokerProvider;
-import io.fd.honeycomb.transportpce.device.configuration.DeviceConfigurationModule;
-import io.fd.honeycomb.transportpce.device.configuration.NetconfConfigurationModule;
-import io.fd.honeycomb.transportpce.device.configuration.OcPlatformConfigurationModule;
-import io.fd.honeycomb.transportpce.device.configuration.OcTerminalDeviceConfigurationModule;
-import io.fd.honeycomb.transportpce.device.configuration.PmConfigurationModule;
-
-/**
- * Module class instantiating device-plugin plugin components.
- */
-
-public final class DeviceModule extends PrivateModule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceModule.class);
-    public static final String DEVICE_DATABROKER = "device-databroker";
-    public static final String DEVICE_DATABROKER_NONPERSIST = "device-databroker-nopersist";
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Honeynode Modules");
-        // Create inmemory config data store for DEVICE
-        bind(InMemoryDOMDataStore.class).annotatedWith(Names.named(InmemoryDOMDataBrokerProvider.CONFIG))
-            .toProvider(new DataStoreProvider(InmemoryDOMDataBrokerProvider.CONFIG, org.opendaylight.mdsal.common.api.LogicalDatastoreType.CONFIGURATION))
-            .in(Singleton.class);
-        // Create inmemory operational data store for DEVICE
-        bind(InMemoryDOMDataStore.class).annotatedWith(Names.named(InmemoryDOMDataBrokerProvider.OPERATIONAL))
-            .toProvider(new DataStoreProvider(InmemoryDOMDataBrokerProvider.OPERATIONAL, org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL))
-            .in(Singleton.class);
-
-        // Wrap datastores as DOMDataBroker
-        // TODO make executor service configurable
-        bind(DOMDataBroker.class).annotatedWith(Names.named(DEVICE_DATABROKER))
-            .toProvider(InmemoryDOMDataBrokerProvider.class).in(Singleton.class);
-        expose(DOMDataBroker.class).annotatedWith(Names.named(DEVICE_DATABROKER));
-
-        // Wrap DOMDataBroker as BA data broker
-        bind(DataBroker.class).annotatedWith(Names.named(DEVICE_DATABROKER)).toProvider(DeviceBindingDataBrokerProvider.class)
-            .in(Singleton.class);
-        expose(DataBroker.class).annotatedWith(Names.named(DEVICE_DATABROKER));
-
-        //install device configuration module
-        install(new DeviceConfigurationModule());
-
-        //install pm configuration module
-        install(new PmConfigurationModule());
-        LOG.info("Device Module initialized !");
-
-        // install oc-platform configuration module
-        install(new OcPlatformConfigurationModule());
-        LOG.info("oc-platform-configuration Module initialized !");
-
-        // install oc-terminal-device configuration module
-        install(new OcTerminalDeviceConfigurationModule());
-        LOG.info("oc-terminal-device Module initialized !");
-
-        //install netconf configuration module
-        install(new NetconfConfigurationModule());
-        LOG.info("Netconf Module initialized !");
-    }
-
-}
-
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceNotificationModule.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceNotificationModule.java
deleted file mode 100644 (file)
index 418ddc4..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.multibindings.Multibinder;
-
-import io.fd.honeycomb.notification.ManagedNotificationProducer;
-import io.fd.honeycomb.transportpce.device.notifications.DeviceNotificationProducer;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public class DeviceNotificationModule extends AbstractModule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceNotificationModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Honeynode Notification Module");
-        final Multibinder<ManagedNotificationProducer> notifFactoryBinder = Multibinder.newSetBinder(binder(),
-                ManagedNotificationProducer.class);
-        notifFactoryBinder.addBinding().to(DeviceNotificationProducer.class);
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceReaderModule.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceReaderModule.java
deleted file mode 100644 (file)
index d76621b..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.multibindings.Multibinder;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.transportpce.device.read.DeviceReaderFactory;
-import io.fd.honeycomb.transportpce.device.read.NetconfStateReaderFactory;
-import io.fd.honeycomb.transportpce.device.read.OcPlatformReaderFactory;
-import io.fd.honeycomb.transportpce.device.read.OcTerminalDeviceReaderFactory;
-import io.fd.honeycomb.transportpce.device.read.PmReaderFactory;
-
-/**
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public class DeviceReaderModule extends AbstractModule {
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceReaderModule.class);
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see com.google.inject.AbstractModule#configure()
-     */
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Device, PM, Netconf, OcPlatform and OcTerminalDevice Readers Module");
-        final Multibinder<ReaderFactory> binder = Multibinder.newSetBinder(binder(), ReaderFactory.class);
-        binder.addBinding().to(NetconfStateReaderFactory.class);
-        binder.addBinding().to(DeviceReaderFactory.class);
-        binder.addBinding().to(PmReaderFactory.class);
-        binder.addBinding().to(OcPlatformReaderFactory.class);
-        binder.addBinding().to(OcTerminalDeviceReaderFactory.class);
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceRpcModule.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceRpcModule.java
deleted file mode 100644 (file)
index 66cc761..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.multibindings.Multibinder;
-
-import io.fd.honeycomb.rpc.RpcService;
-import io.fd.honeycomb.transportpce.device.rpcs.ConnectionPortTrailService;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public class DeviceRpcModule extends AbstractModule {
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceRpcModule.class);
-
-    /* (non-Javadoc)
-     * @see com.google.inject.AbstractModule#configure()
-     */
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Honeynode Rpcs Module");
-        // TODO Auto-generated method stub
-        final Multibinder<RpcService> rpcsBinder = Multibinder.newSetBinder(binder(), RpcService.class);
-        rpcsBinder.addBinding().to(ConnectionPortTrailService.class);
-    }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceWriterModule.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceWriterModule.java
deleted file mode 100644 (file)
index 727f508..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.multibindings.Multibinder;
-
-import io.fd.honeycomb.translate.write.WriterFactory;
-import io.fd.honeycomb.transportpce.device.write.DeviceWriterFactory;
-import io.fd.honeycomb.transportpce.device.write.OcPlatformWriterFactory;
-import io.fd.honeycomb.transportpce.device.write.OcTerminalDeviceWriterFactory;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public class DeviceWriterModule extends AbstractModule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceWriterModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Honeynode Writers Module");
-        final Multibinder<WriterFactory> writerFactoryBinder = Multibinder.newSetBinder(binder(), WriterFactory.class);
-        writerFactoryBinder.addBinding().to(DeviceWriterFactory.class);
-        writerFactoryBinder.addBinding().to(OcPlatformWriterFactory.class);
-        writerFactoryBinder.addBinding().to(OcTerminalDeviceWriterFactory.class);
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/DeviceConfiguration.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/DeviceConfiguration.java
deleted file mode 100644 (file)
index 09145be..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import java.io.File;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultDeviceFactory;
-import io.fd.honeycomb.transportpce.device.tools.ExtractXMLTag;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-/**
- * Class containing static configuration for honeynode-plugin module<br>
- * <p/>
- * Further documentation for the configuration injection can be found at:
- * https://github.com/yyvess/gconf
- */
-@BindConfig(value = "honeycomb", syntax = Syntax.JSON)
-public final class DeviceConfiguration {
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceConfiguration.class);
-    private static final String DEVICE_XSL = "device/OperToConfig.xsl";
-    private static final String CONFIG_XSL = "device/config.xsl";
-
-    public String config_device;
-    public OrgOpenroadmDevice oper_device;
-    private DataStoreContext dataStoreContextUtil;
-    private DefaultDeviceFactory defaultDeviceFactory;
-    private ClassLoader classLoader;
-    private Boolean register;
-
-    @InjectConfig("persisted-config-path")
-    public String peristConfigPath;
-
-    @InjectConfig("netconf-initial-config-xml")
-    public String DEVICE_DATA_SAMPLE_OPER_XML;
-
-    public DeviceConfiguration() {
-        classLoader = Thread.currentThread().getContextClassLoader();
-        dataStoreContextUtil = new DataStoreContextImpl();
-        defaultDeviceFactory = new DefaultDeviceFactory();
-        register = false;
-    }
-
-    public String getConfigDevice() {
-        return operToConfig();
-    }
-
-    public String getPeristConfigPath() {
-        return peristConfigPath;
-    }
-
-    public String getNetconfInitialConfigXml() {
-        return DEVICE_DATA_SAMPLE_OPER_XML;
-    }
-
-    public Boolean getRegister() {
-        return register;
-    }
-
-    public void setRegister(Boolean reg) {
-        this.register = reg;
-    }
-
-    public OrgOpenroadmDevice getDataDevice() {
-        OrgOpenroadmDevice result = null;
-        File device_data = new File(classLoader.getResource(DEVICE_DATA_SAMPLE_OPER_XML).getFile());
-        result = defaultDeviceFactory.createDefaultDevice(dataStoreContextUtil, device_data);
-        if (result != null) {
-            LOG.info("result info : {}", result.getInfo().getNodeId());
-        } else {
-            LOG.warn("Failed to get Device data !");
-        }
-        return result;
-    }
-
-    public OrgOpenroadmDevice getDeviceFromXML(String xml) {
-        String config_result = null;
-        LOG.info("process to transform xml file to config data");
-        TransformerFactory factory = TransformerFactory.newInstance();
-        Source xslt = new StreamSource(new File(classLoader.getResource(CONFIG_XSL).getFile()));
-        Transformer transformer;
-        Source text;
-        StringWriter device_config = new StringWriter();
-        OrgOpenroadmDevice result = null;
-        try {
-            LOG.info("transforming xml string to config device ...");
-            transformer = factory.newTransformer(xslt);
-            text = new StreamSource(new StringReader(xml));
-            transformer.transform(text, new StreamResult(device_config));
-            config_result = device_config.toString();
-            // LOG.info("config_result: {}",config_result);
-            result = defaultDeviceFactory.createDefaultDevice(dataStoreContextUtil, config_result);
-            if (result != null) {
-                LOG.info("result info : {}", result.getInfo().getNodeId());
-            }
-        } catch (TransformerException e) {
-            LOG.error("Transformer failed ");
-        }
-
-        return result;
-    }
-
-    /**
-     * Convert data xml to config xml device.
-     *
-     * @return String result
-     */
-    public String operToConfig() {
-        String result = null;
-        LOG.info("process to transform xml file {}",DEVICE_DATA_SAMPLE_OPER_XML);
-        TransformerFactory factory = TransformerFactory.newInstance();
-        Source xslt = new StreamSource(new File(classLoader.getResource(DEVICE_XSL).getFile()));
-        StringWriter tmpwriter = new StringWriter();
-        try {
-            LOG.info("transforming xml data to config device ...");
-            Transformer transformer = factory.newTransformer(xslt);
-            String extract_data = ExtractXMLTag.extractTagElement(DEVICE_DATA_SAMPLE_OPER_XML, "org-openroadm-device",
-                    "http://org/openroadm/device");
-            Source text = new StreamSource(new StringReader(extract_data));
-            LOG.info("text avant transform = {}", text.toString());
-            transformer.transform(text, new StreamResult(tmpwriter));
-            result = tmpwriter.toString();
-        } catch (TransformerException e) {
-            LOG.error("Transformer failed ", e);
-        }
-        return result;
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/DeviceConfigurationModule.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/DeviceConfigurationModule.java
deleted file mode 100644 (file)
index 728d8fa..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import com.google.inject.AbstractModule;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-/**
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public final class DeviceConfigurationModule extends AbstractModule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceConfigurationModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Device Readers Module");
-        install(ConfigurationModule.create());
-        requestInjection(DeviceConfiguration.class);
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/NetconfConfiguration.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/NetconfConfiguration.java
deleted file mode 100644 (file)
index bba6537..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import java.io.File;
-
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.Netconf;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.Streams;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultNetconfFactory;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-/**
- * Class containing static configuration for honeynode-plugin module<br>
- * <p/>
- * Further documentation for the configuration injection can be found at:
- * https://github.com/yyvess/gconf
- */
-@BindConfig(value = "honeycomb", syntax = Syntax.JSON)
-public final class NetconfConfiguration {
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfConfiguration.class);
-
-    private DataStoreContext dataStoreContextUtil;
-    private DefaultNetconfFactory defaultNetconf;
-    private ClassLoader classLoader;
-
-    @InjectConfig("netconf-initial-config-xml")
-    public String NETCONF_DATA_SAMPLE_OPER_XML;
-
-    public NetconfConfiguration() {
-        classLoader = Thread.currentThread().getContextClassLoader();
-        dataStoreContextUtil = new DataStoreContextImpl();
-        defaultNetconf = new DefaultNetconfFactory();
-    }
-
-    public String getNetconfInitialXml() {
-        return NETCONF_DATA_SAMPLE_OPER_XML;
-    }
-
-    public Streams getNetconfStreamsData() {
-        Streams result = null;
-        File netconf_data = new File(classLoader.getResource(NETCONF_DATA_SAMPLE_OPER_XML).getFile());
-        Netconf netconf = defaultNetconf.createDefaultNetconf(dataStoreContextUtil, netconf_data);
-        if (netconf != null) {
-            try {
-                result = netconf.getStreams();
-                LOG.info("netconf streams result : {}", netconf.getStreams());
-            } catch (NullPointerException e) {
-                LOG.error("failed to get Netconf Streams");
-            }
-        } else {
-            LOG.warn("failed to get Netconf Streams");
-        }
-        return result;
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/NetconfConfigurationModule.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/NetconfConfigurationModule.java
deleted file mode 100644 (file)
index 1feec55..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import com.google.inject.AbstractModule;
-
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public final class NetconfConfigurationModule extends AbstractModule {
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfConfigurationModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Netconf Readers Module");
-        install(ConfigurationModule.create());
-        requestInjection(NetconfConfiguration.class);
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcPlatformConfiguration.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcPlatformConfiguration.java
deleted file mode 100644 (file)
index 0588352..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import java.io.File;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130.platform.component.top.Components;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultOcPlatformFactory;
-import io.fd.honeycomb.transportpce.device.tools.ExtractXMLTag;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-/**
- * Class containing static configuration for honeynode-plugin module<br>
- * <p/>
- * Further documentation for the configuration injection can be found at:
- * https://github.com/yyvess/gconf
- */
-@BindConfig(value = "honeycomb", syntax = Syntax.JSON)
-public final class OcPlatformConfiguration {
-    private static final Logger LOG = LoggerFactory.getLogger(OcPlatformConfiguration.class);
-    private static final String OC_PLATFORM_XSL = "device/ocplatformOperToConfig.xsl";
-
-    private DataStoreContext dataStoreContextUtil;
-    private DefaultOcPlatformFactory defaultOcPlatformFactory;
-    private ClassLoader classLoader;
-    private Boolean register;
-    public String config_components;
-    public Components oper_components;
-
-    @InjectConfig("netconf-initial-config-xml")
-    public String OC_PLATFORM_DATA_SAMPLE_OPER_XML;
-
-    public OcPlatformConfiguration() {
-        LOG.info("initializing OcPlatformConfiguration");
-        classLoader = Thread.currentThread().getContextClassLoader();
-        dataStoreContextUtil = new DataStoreContextImpl();
-        defaultOcPlatformFactory = new DefaultOcPlatformFactory();
-        register = false;
-    }
-
-    public String getNetconfInitialOcPlatformXml() {
-        return OC_PLATFORM_DATA_SAMPLE_OPER_XML;
-    }
-
-    public String getConfigComponents() {
-        return operToConfig();
-    }
-
-    public Boolean getRegister() {
-        return register;
-    }
-
-    public void setRegister(Boolean reg) {
-        this.register = reg;
-    }
-
-    public Components getDataComponents() {
-        Components result = null;
-        File components_data = new File(classLoader.getResource(OC_PLATFORM_DATA_SAMPLE_OPER_XML).getFile());
-        result = defaultOcPlatformFactory.createDefaultComponents(dataStoreContextUtil, components_data);
-        if (result != null) {
-            LOG.info("reading initial data.");
-        } else {
-            LOG.warn("failed to get OC Platform Data");
-        }
-        return result;
-    }
-
-    public Components getComponentsFromXML(String xml) {
-        String config_result = null;
-        LOG.info("process to transform xml file to config data");
-        LOG.info("xml={}", xml);
-        Components result = null;
-        LOG.info("transforming xml string to config components ...");
-        config_result = xml.toString();
-        // LOG.info("config_result: {}",config_result);
-        result = defaultOcPlatformFactory.createDefaultComponents(dataStoreContextUtil, config_result);
-        if (result != null) {
-            LOG.info("result : {}", result);
-        }
-        return result;
-    }
-
-    /**
-     * Convert data xml to config xml device.
-     *
-     * @return String result
-     */
-    public String operToConfig() {
-        String result = null;
-        LOG.info("process to transform oper xml file to config xml file ");
-        TransformerFactory factory = TransformerFactory.newInstance();
-        Source xslt = new StreamSource(new File(classLoader.getResource(OC_PLATFORM_XSL).getFile()));
-        Transformer transformer;
-        Source text;
-        StringWriter tmpwriter = new StringWriter();
-        try {
-            LOG.info("transforming xml data to config components ...");
-            transformer = factory.newTransformer(xslt);
-            String extract_data = ExtractXMLTag.extractTagElement(OC_PLATFORM_DATA_SAMPLE_OPER_XML, "components",
-                    "http://openconfig.net/yang/platform");
-            text = new StreamSource(new StringReader(extract_data));
-            LOG.info("text avant transform = {}", text.toString());
-            transformer.transform(text, new StreamResult(tmpwriter));
-            result = tmpwriter.toString();
-            LOG.info(result);
-        } catch (TransformerException e) {
-            LOG.error("Transformer failed ");
-        }
-        return result;
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcPlatformConfigurationModule.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcPlatformConfigurationModule.java
deleted file mode 100644 (file)
index a8102b5..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import com.google.inject.AbstractModule;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-/**
- * @authors Gilles THOUENON and Christophe BETOULE ( gilles.thouenon@orange.com, christophe.betoule@orange.com )
- */
-public final class OcPlatformConfigurationModule extends AbstractModule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(OcPlatformConfigurationModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing openconfig platform Readers Module");
-        install(ConfigurationModule.create());
-        requestInjection(OcPlatformConfiguration.class);
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcTerminalDeviceConfiguration.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcTerminalDeviceConfiguration.java
deleted file mode 100644 (file)
index e452ac4..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import java.io.File;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.terminal.device.rev170708.terminal.device.top.TerminalDevice;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultOcTerminalDeviceFactory;
-import io.fd.honeycomb.transportpce.device.tools.ExtractXMLTag;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-/**
- * Class containing static configuration for honeynode-plugin module<br>
- * <p/>
- * Further documentation for the configuration injection can be found at:
- * https://github.com/yyvess/gconf
- */
-@BindConfig(value = "honeycomb", syntax = Syntax.JSON)
-public final class OcTerminalDeviceConfiguration {
-    private static final Logger LOG = LoggerFactory.getLogger(OcTerminalDeviceConfiguration.class);
-    private static final String OC_TERMINAL_DEVICE_XSL = "device/octerminaldeviceOperToConfig.xsl";
-
-    private DataStoreContext dataStoreContextUtil;
-    private DefaultOcTerminalDeviceFactory defaultOcTermminalDeviceFactory;
-    private ClassLoader classLoader;
-    private Boolean register;
-    public String config_terminalDevice;
-    public TerminalDevice oper_terminalDevice;
-
-    @InjectConfig("netconf-initial-config-xml")
-    public String OC_TERMINAL_DEVICE_DATA_SAMPLE_OPER_XML;
-
-    public OcTerminalDeviceConfiguration() {
-        LOG.info("initializing OcTerminalDeviceConfiguration");
-        classLoader = Thread.currentThread().getContextClassLoader();
-        dataStoreContextUtil = new DataStoreContextImpl();
-        defaultOcTermminalDeviceFactory = new DefaultOcTerminalDeviceFactory();
-        register = false;
-    }
-
-    public String getNetconfInitialOcTerminalDeviceXml() {
-        return OC_TERMINAL_DEVICE_DATA_SAMPLE_OPER_XML;
-    }
-
-    public String getConfigTerminalDevice() {
-        return operToConfig();
-    }
-
-    public Boolean getRegister() {
-        return register;
-    }
-
-    public void setRegister(Boolean reg) {
-        this.register = reg;
-    }
-
-    public TerminalDevice getDataTerminalDevice() {
-        TerminalDevice result = null;
-        File terminalDevice_data = new File(classLoader.getResource(OC_TERMINAL_DEVICE_DATA_SAMPLE_OPER_XML).getFile());
-        result = defaultOcTermminalDeviceFactory.createDefaultTerminalDevice(dataStoreContextUtil, terminalDevice_data);
-        if (result != null) {
-            LOG.info("reading initial data.");
-        } else {
-            LOG.warn("failed to get OC Platform Data");
-        }
-        return result;
-    }
-
-    public TerminalDevice getTerminalDeviceFromXML(String xml) {
-        String config_result = null;
-        LOG.info("process to transform xml file to config data");
-        TerminalDevice result = null;
-        LOG.info("transforming xml string to config components ...");
-        config_result = xml.toString();
-        // LOG.info("config_result: {}",config_result);
-        result = defaultOcTermminalDeviceFactory.createDefaultTerminalDevice(dataStoreContextUtil, config_result);
-        if (result != null) {
-            LOG.info("result : {}", result);
-        }
-        return result;
-    }
-
-    /**
-     * Convert data xml to config xml terminal-device.
-     *
-     * @return String result
-     */
-    public String operToConfig() {
-        String result = null;
-        LOG.info("process to transform oper xml file to config xml file for terminal-device");
-        TransformerFactory factory = TransformerFactory.newInstance();
-        Source xslt = new StreamSource(new File(classLoader.getResource(OC_TERMINAL_DEVICE_XSL).getFile()));
-        Transformer transformer;
-        Source text;
-        StringWriter tmpwriter = new StringWriter();
-        try {
-            LOG.info("transforming xml data to config terminal-device ...");
-            transformer = factory.newTransformer(xslt);
-            String extract_data = ExtractXMLTag.extractTagElement(OC_TERMINAL_DEVICE_DATA_SAMPLE_OPER_XML,
-                    "terminal-device", "http://openconfig.net/yang/terminal-device");
-            text = new StreamSource(new StringReader(extract_data));
-            LOG.info("text avant transform = {}", text.toString());
-            transformer.transform(text, new StreamResult(tmpwriter));
-            result = tmpwriter.toString();
-            LOG.info(result);
-        } catch (TransformerException e) {
-            LOG.error("Transformer failed ");
-        }
-        return result;
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcTerminalDeviceConfigurationModule.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcTerminalDeviceConfigurationModule.java
deleted file mode 100644 (file)
index f4dd40f..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import com.google.inject.AbstractModule;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-/**
- * @authors Gilles THOUENON and Christophe BETOULE ( gilles.thouenon@orange.com, christophe.betoule@orange.com )
- */
-public final class OcTerminalDeviceConfigurationModule extends AbstractModule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(OcTerminalDeviceConfigurationModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing openconfig-terminal-device Readers Module");
-        install(ConfigurationModule.create());
-        requestInjection(OcTerminalDeviceConfiguration.class);
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/PmConfiguration.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/PmConfiguration.java
deleted file mode 100644 (file)
index 9891597..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import java.io.File;
-
-import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.CurrentPmlist;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultPmListFactory;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-/**
- * Class containing static configuration for honeynode-plugin module<br>
- * <p/>
- * Further documentation for the configuration injection can be found at:
- * https://github.com/yyvess/gconf
- */
-@BindConfig(value = "honeycomb", syntax = Syntax.JSON)
-public final class PmConfiguration {
-    private static final Logger LOG = LoggerFactory.getLogger(PmConfiguration.class);
-
-    private DataStoreContext dataStoreContextUtil;
-    private DefaultPmListFactory defaultPmListFactory;
-    private ClassLoader classLoader;
-
-    @InjectConfig("netconf-initial-config-xml")
-    public String PM_DATA_SAMPLE_OPER_XML;
-
-    public PmConfiguration() {
-        classLoader = Thread.currentThread().getContextClassLoader();
-        dataStoreContextUtil = new DataStoreContextImpl();
-        defaultPmListFactory = new DefaultPmListFactory();
-    }
-
-    public String getNetconfInitialPmXml() {
-        return PM_DATA_SAMPLE_OPER_XML;
-    }
-
-    public CurrentPmlist getDataPm() {
-        CurrentPmlist result = null;
-        File pm_list_data = new File(classLoader.getResource(PM_DATA_SAMPLE_OPER_XML).getFile());
-        result = defaultPmListFactory.createDefaultPmList(dataStoreContextUtil, pm_list_data);
-        if (result != null) {
-            LOG.info("result pm list size : {}", result.getCurrentPm().size());
-        } else {
-            LOG.warn("Failed to get PM info !");
-        }
-        return result;
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/PmConfigurationModule.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/PmConfigurationModule.java
deleted file mode 100644 (file)
index f9d8ee0..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import com.google.inject.AbstractModule;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-/**
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public final class PmConfigurationModule extends AbstractModule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(PmConfigurationModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Pm Readers Module");
-        install(ConfigurationModule.create());
-        requestInjection(PmConfiguration.class);
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/notifications/DeviceNotificationProducer.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/notifications/DeviceNotificationProducer.java
deleted file mode 100644 (file)
index 10aecbe..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.notifications;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-
-import io.fd.honeycomb.notification.ManagedNotificationProducer;
-import io.fd.honeycomb.notification.NotificationCollector;
-
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-
-
-
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataObjectModification;
-import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
-import org.opendaylight.mdsal.binding.api.DataTreeModification;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.ChangeNotification;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.ChangeNotification.Datastore;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.ChangeNotificationBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.change.notification.Edit;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.change.notification.EditBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.changed.by.parms.ChangedBy;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.changed.by.parms.ChangedByBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.changed.by.parms.changed.by.server.or.user.ServerBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.pack.Ports;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.pack.PortsKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.packs.CircuitPacks;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.packs.CircuitPacksKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.Interface;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.EditOperationType;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.Notification;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public class DeviceNotificationProducer implements ManagedNotificationProducer {
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceNotificationProducer.class);
-    private static final InstanceIdentifier<OrgOpenroadmDevice> DEVICE_CONTAINER_ID = InstanceIdentifier
-            .create(OrgOpenroadmDevice.class);
-    private static final String INTERFACE_CLASS = Interface.class.getName();
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker dataBroker;
-
-    @Override
-    public Collection<Class<? extends Notification>> getNotificationTypes() {
-        final ArrayList<Class<? extends Notification>> classes = Lists.newArrayList();
-        classes.add(ChangeNotification.class);
-        return classes;
-    }
-
-    @Override
-    public void close() throws Exception {
-        stop();
-    }
-
-    @Override
-    public void start(NotificationCollector collector) {
-        LOG.info("Starting notification stream for OrgOpenroadmDevice");
-        Preconditions.checkArgument(this.dataBroker != null, "Device datastore is null");
-        this.dataBroker.registerDataTreeChangeListener(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, DEVICE_CONTAINER_ID),
-                 new DataTreeChangeListener<OrgOpenroadmDevice>() {
-                    @Override
-                    public void onDataTreeChanged(Collection<DataTreeModification<OrgOpenroadmDevice>> changes) {
-                        LOG.info("onDataTreeChanged");
-                        ChangeNotification changeNotification = null;
-                        try {
-                            changeNotification = transformToNotification(changes);
-                            LOG.info("Emitting notification : {}", changeNotification);
-                            collector.onNotification(changeNotification);
-                        } catch (NullPointerException e) {
-                            LOG.warn("Failed to emit notification");
-                        }
-                    }
-                });
-    }
-
-    @Override
-    public void stop() {
-        LOG.info("Stopping OrgOpenroadmDevice change notification");
-    }
-
-    /**
-     * Transform {@link Collection} of {@link DataTreeModification } to {@link ChangeNotification}
-     *
-     * @return changeNotification {@link ChangeNotification}
-     */
-    private ChangeNotification transformToNotification(Collection<DataTreeModification<OrgOpenroadmDevice>> changes) {
-        LOG.info("transforming changes to notification...");
-        ChangeNotification result = null;
-        List<Edit> editList = new ArrayList<Edit>();
-        for (DataTreeModification<OrgOpenroadmDevice> change : changes) {
-            LOG.info("Received Device change :\n{}", change.getRootNode().getModificationType());
-            final DataObjectModification<OrgOpenroadmDevice> rootNode = change.getRootNode();
-            final DataTreeIdentifier<OrgOpenroadmDevice> rootPath = change.getRootPath();
-            if (rootNode != null) {
-                Collection<? extends DataObjectModification<? extends DataObject>> modifiedChildren = rootNode.getModifiedChildren();
-                switch (rootNode.getModificationType()) {
-                case SUBTREE_MODIFIED: // OrgOpenroadmDevice
-                    if (!modifiedChildren.isEmpty()) {
-                        Iterator<? extends DataObjectModification<? extends DataObject>> iterator = modifiedChildren.iterator();
-                        while (iterator.hasNext()) {
-                            DataObjectModification<? extends DataObject> modified = iterator.next();
-                            LOG.info(
-                                    "modified = \ndataType : {}\nid : {}\nmodifiedType : {}\noldData : {}\nnewData : {} \n",
-                                    modified.getDataType(), modified.getIdentifier(), modified.getModificationType(),
-                                    modified.getDataBefore(), modified.getDataAfter());
-                            String dataType = modified.getDataType().getName();
-                            if (dataType.equals(INTERFACE_CLASS)) {
-                                Interface data = null;
-                                LOG.info("Interface type update !");
-                                switch (modified.getModificationType()) {
-                                case SUBTREE_MODIFIED:
-                                    data = (Interface) modified.getDataAfter();
-                                    break;
-                                case WRITE:
-                                    data = (Interface) modified.getDataAfter();
-                                    break;
-                                case DELETE:
-                                    data = (Interface) modified.getDataBefore();
-                                    break;
-                                default:
-                                    break;
-                                }
-                                if (data!= null) {
-                                    String circuitPackName = data.getSupportingCircuitPackName();
-                                    String port = data.getSupportingPort().toString();
-                                    String interfaceName = data.getName();
-                                    if (circuitPackName != null && port != null && interfaceName != null) {
-                                        InstanceIdentifier<Ports> portIId = InstanceIdentifier.create(OrgOpenroadmDevice.class).child(
-                                                CircuitPacks.class, new CircuitPacksKey(circuitPackName)).child(Ports.class,
-                                                    new PortsKey(port));
-                                        Edit edit = new EditBuilder()
-                                                .setOperation(EditOperationType.Merge)
-                                                .setTarget(portIId)
-                                                .build();
-                                        editList.add(edit);
-                                    }
-                                } else {
-                                    LOG.warn("Interface data is null !");
-                                }
-                            } else {
-                                LOG.warn("modifiedChild is not an interface !");
-                            }
-                        }
-                    }
-                    break;
-                case WRITE:
-                    LOG.info("device operational datastore is created !");
-                    break;
-                case DELETE:
-                    LOG.info("device operational datastore is deleted !");
-                    break;
-                default:
-                    break;
-                }
-            } else {
-                LOG.error("rootNode is null !");
-            }
-        }
-        if (!editList.isEmpty()) {
-            ChangedBy changedBy = new ChangedByBuilder().setServerOrUser(new ServerBuilder().setServer(true).build())
-                    .build();
-            String time = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX").format(new Date());
-            result = new ChangeNotificationBuilder().setChangedBy(changedBy).setChangeTime(new DateAndTime(time))
-                    .setDatastore(Datastore.Running).setEdit(editList).build();
-        } else {
-            LOG.warn("edit List is empty !");
-        }
-        return result;
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/DeviceReaderFactory.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/DeviceReaderFactory.java
deleted file mode 100644 (file)
index 7a8c8d1..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.read;
-
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDeviceBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.Netconf;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.Streams;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.StreamsBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.util.concurrent.FluentFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
-import io.fd.honeycomb.translate.util.read.BindingBrokerReader;
-import io.fd.honeycomb.transportpce.device.configuration.DeviceConfiguration;
-import io.fd.honeycomb.transportpce.device.configuration.NetconfConfiguration;
-
-/**
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public final class DeviceReaderFactory implements ReaderFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceReaderFactory.class);
-    public static final InstanceIdentifier<OrgOpenroadmDevice> DEVICE_CONTAINER_ID = InstanceIdentifier
-            .create(OrgOpenroadmDevice.class);
-    private static final String YANG_MODELS = "yang";
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker dataBroker;
-
-    @Inject
-    private DeviceConfiguration deviceConfiguration;
-
-    @Inject
-    private NetconfConfiguration netconfConfiguration;
-
-    @Override
-    public void init(final ModifiableReaderRegistryBuilder registry) {
-        registry.add(new BindingBrokerReader<>(DEVICE_CONTAINER_ID, dataBroker, LogicalDatastoreType.OPERATIONAL,
-                OrgOpenroadmDeviceBuilder.class));
-        if (writeXMLDataToOper()) {
-            writeNetconfStream();
-            loadConfigData();
-        }
-    }
-
-    /**
-     * Write xml data from {@link DeviceConfiguration} to operational data.
-     *
-     */
-    public boolean writeXMLDataToOper() {
-        Boolean res = false;
-        LOG.info("writting xml file data to oper datastore");
-        OrgOpenroadmDevice device = this.deviceConfiguration.getDataDevice();
-        if (device != null) {
-            String deviceId = device.getInfo().getNodeId();
-            LOG.info("Getting device info from xml file for device '{}'", deviceId);
-            OrgOpenroadmDeviceBuilder result = new OrgOpenroadmDeviceBuilder(device);
-            InstanceIdentifier<OrgOpenroadmDevice> iid = InstanceIdentifier.create(OrgOpenroadmDevice.class);
-            WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-            if (writeTx != null) {
-                LOG.info("WriteTransaction is ok, copy device info to oper datastore");
-                writeTx.put(LogicalDatastoreType.OPERATIONAL, iid, result.build());
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    Futures.getChecked(future, ExecutionException.class);
-                    LOG.info("device '{}' writed to oper datastore", deviceId);
-                    res = true;
-                } catch (ExecutionException e) {
-                    LOG.error("Failed to write Element '{}' to oper datastore", deviceId);
-                }
-            } else {
-                LOG.error("WriteTransaction object is null");
-            }
-        } else {
-            LOG.error("device data operation gets from xml file is null !");
-        }
-        return res;
-    }
-
-    /**
-     * Load data to config device datastore.
-     *
-     */
-    private boolean loadConfigData() {
-        Boolean res = false;
-        LOG.info("loading device configuration info from xml file...");
-        String xml = this.deviceConfiguration.getConfigDevice();
-        LOG.info("device info gets from xml file !");
-        if (xml != null) {
-            OrgOpenroadmDevice result = this.deviceConfiguration.getDeviceFromXML(xml);
-            if (result != null) {
-                LOG.info("OrgOpenroadmDevice info gets : {}", result.getInfo().getNodeId());
-                WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-                if (writeTx != null) {
-                    LOG.info("WriteTransaction is ok, copy device info to config datastore");
-                    writeTx.put(LogicalDatastoreType.CONFIGURATION, DEVICE_CONTAINER_ID, result);
-                    FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                    try {
-                        Futures.getChecked(future, ExecutionException.class);
-                        LOG.info("device writed to config datastore");
-                    } catch (ExecutionException e) {
-                        LOG.error("Failed to write device to config datastore");
-                    }
-                } else {
-                    LOG.error("WriteTransaction object is null");
-                }
-            } else {
-                LOG.error("device gets from xml is null !!");
-            }
-        } else {
-            LOG.error("device ID from input is not the same from xml file");
-        }
-        return res;
-    }
-
-    /**
-     * write {@link Streams} data to operational device datastore.
-     *
-     * @return result {@link Boolean}
-     */
-    public boolean writeNetconfStream() {
-        Boolean result = false;
-        LOG.info("writting netconf stream to oper datastore");
-        Streams streams = this.netconfConfiguration.getNetconfStreamsData();
-        if (streams != null) {
-            LOG.info("Netconf Data gets from xml file is present");
-            InstanceIdentifier<Streams> iid = InstanceIdentifier.create(Netconf.class).child(Streams.class);
-//            StreamNameType name = new StreamNameType("OPENROADM");
-//            Streams netconfStreams = new StreamsBuilder()
-//                    .setStream(Arrays.asList(new StreamBuilder()
-//                            .setKey(new StreamKey(name))
-//                            .setName(name)
-//                            .build()))
-//                    .build();
-            Streams netconfStreams = new StreamsBuilder(streams).build();
-            WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-            if (writeTx != null) {
-                LOG.info("WriteTransaction is ok");
-                writeTx.put(LogicalDatastoreType.OPERATIONAL, iid, netconfStreams);
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    Futures.getChecked(future, ExecutionException.class);
-                    LOG.info("netconf stream writed to oper datastore");
-                    result = true;
-                } catch (ExecutionException e) {
-                    LOG.error("Failed to write netconf stream to oper datastore");
-                }
-            } else {
-                LOG.error("WriteTransaction object is null");
-            }
-        } else {
-            LOG.error("Netconf data gets from xml file is null !");
-        }
-        return result;
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/DummyMonitoringService.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/DummyMonitoringService.java
deleted file mode 100644 (file)
index d141127..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.read;
-
-import java.util.Collections;
-import java.util.Set;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.monitoring.NetconfManagementSession;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.monitoring.SessionEvent;
-import org.opendaylight.netconf.api.monitoring.SessionListener;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.Yang;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.CapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.SchemasBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Sessions;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.SessionsBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema.Location;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema.Location.Enumeration;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.SchemaBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.SchemaKey;
-
-import com.google.common.base.Function;
-import com.google.common.collect.ArrayListMultimap;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-
-public class DummyMonitoringService implements NetconfMonitoringService {
-
-    private static final Sessions EMPTY_SESSIONS = new SessionsBuilder().setSession(Collections.emptyList()).build();
-    private static final Function<Capability, Uri> CAPABILITY_URI_FUNCTION =
-        capability -> new Uri(capability.getCapabilityUri());
-
-    private static final Function<Capability, Schema> CAPABILITY_SCHEMA_FUNCTION = new Function<Capability, Schema>() {
-        @Nullable
-        @Override
-        public Schema apply(@Nonnull final Capability capability) {
-            return new SchemaBuilder()
-                    .setIdentifier(capability.getModuleName().get())
-                    .setNamespace(new Uri(capability.getModuleNamespace().get()))
-                    .setFormat(Yang.class)
-                    .setVersion(capability.getRevision().get())
-                    .setLocation(Collections.singletonList(new Location(Enumeration.NETCONF)))
-                    .withKey(new SchemaKey(Yang.class, capability.getModuleName().get(),
-                        capability.getRevision().get()))
-                    .build();
-        }
-    };
-
-    private final Capabilities capabilities;
-    private final ArrayListMultimap<String, Capability> capabilityMultiMap;
-    private final Schemas schemas;
-
-    public DummyMonitoringService(final Set<Capability> capabilities) {
-
-        this.capabilities = new CapabilitiesBuilder().setCapability(
-                Lists.newArrayList(Collections2.transform(capabilities, CAPABILITY_URI_FUNCTION))).build();
-
-        Set<Capability> moduleCapabilities = Sets.newHashSet();
-        this.capabilityMultiMap = ArrayListMultimap.create();
-        for (Capability cap : capabilities) {
-            if (cap.getModuleName().isPresent()) {
-                capabilityMultiMap.put(cap.getModuleName().get(), cap);
-                moduleCapabilities.add(cap);
-            }
-        }
-
-        this.schemas = new SchemasBuilder().setSchema(
-            Lists.newArrayList(Collections2.transform(moduleCapabilities, CAPABILITY_SCHEMA_FUNCTION))).build();
-    }
-
-    @Override
-    public Sessions getSessions() {
-        return EMPTY_SESSIONS;
-    }
-
-    @Override
-    public SessionListener getSessionListener() {
-        return new SessionListener() {
-            @Override
-            public void onSessionUp(final NetconfManagementSession session) {
-                //no op
-            }
-
-            @Override
-            public void onSessionDown(final NetconfManagementSession session) {
-                //no op
-            }
-
-            @Override
-            public void onSessionEvent(final SessionEvent event) {
-                //no op
-            }
-        };
-    }
-
-    @Override
-    public Schemas getSchemas() {
-        return schemas;
-    }
-
-
-    @Override
-    public Capabilities getCapabilities() {
-        return capabilities;
-    }
-
-    @Override
-    public AutoCloseable registerCapabilitiesListener(final CapabilitiesListener listener) {
-        return null;
-    }
-
-    @Override
-    public AutoCloseable registerSessionsListener(final SessionsListener listener) {
-        return null;
-    }
-
-@Override
-public String getSchemaForCapability(String moduleName, java.util.Optional<String> revision) {
-   for (Capability capability : capabilityMultiMap.get(moduleName)) {
-            if (capability.getRevision().get().equals(revision.get())) {
-                return capability.getCapabilitySchema().get();
-            }
-        }
-        throw new IllegalArgumentException(
-            "Module with name: " + moduleName + " and revision: " + revision + " does not exist");
-}
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/NetconfStateReaderFactory.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/NetconfStateReaderFactory.java
deleted file mode 100644 (file)
index 9831e93..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.read;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.capability.YangModuleCapability;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfState;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfStateBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.Yang;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.SchemasBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema.Location;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema.Location.Enumeration;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.SchemaBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
-import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceFilter;
-import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation;
-import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
-import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
-import org.opendaylight.yangtools.yang.model.repo.spi.PotentialSchemaSource;
-import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceListener;
-import org.opendaylight.yangtools.yang.model.repo.util.FilesystemSchemaSourceCache;
-import org.opendaylight.yangtools.yang.parser.repo.SharedSchemaRepository;
-import org.opendaylight.yangtools.yang.parser.rfc7950.repo.TextToASTTransformer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Sets;
-import com.google.common.util.concurrent.FluentFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
-
-/**
- * @author Martial Coulibaly ( martial.coulibaly@gfi.com ) on behalf of Orange
- *
- */
-public class NetconfStateReaderFactory implements ReaderFactory {
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfStateReaderFactory.class);
-    public static final InstanceIdentifier<NetconfState> NETCONF_STATE_ID = InstanceIdentifier
-            .create(NetconfState.class);
-    private static final String YANG_MODELS = "yang";
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker dataBroker;
-
-    @Override
-    public void init(ModifiableReaderRegistryBuilder registry) {
-        writeNetconfState();
-    }
-
-    /**
-     * Write {@link NetconfState} data to operational device datastore.
-     *
-     * @return result {@link Boolean}
-     */
-    public boolean writeNetconfState() {
-        Boolean res = false;
-        LOG.info("writting netconf state to oper datastore");
-        final SharedSchemaRepository schemaRepo = new SharedSchemaRepository("honeynode-simulator");
-        final Set<Capability> capabilities = parseSchemasToModuleCapabilities(schemaRepo);
-        final Set<Capability> transformedCapabilities = Sets.newHashSet(capabilities);
-        DummyMonitoringService monitor = new DummyMonitoringService(transformedCapabilities);
-        List<Schema> schemaList = new ArrayList<Schema>();
-        List<Location> locationList = new ArrayList<Location>();
-        Location location = new Location(Enumeration.NETCONF);
-        locationList.add(location);
-        Schema schematobuild = null;
-        for (final Schema schema : monitor.getSchemas().getSchema()) {
-            schematobuild = new SchemaBuilder().setIdentifier(schema.getIdentifier())
-                    .setNamespace(schema.getNamespace()).setVersion(schema.getVersion()).setFormat(Yang.class)
-                    .setLocation(locationList).build();
-            schemaList.add(schematobuild);
-        }
-        Schemas schemas = new SchemasBuilder().setSchema(schemaList).build();
-        NetconfState netconfState = new NetconfStateBuilder().setSchemas(schemas).build();
-        if (netconfState != null) {
-            WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-            if (writeTx != null) {
-                LOG.info("WriteTransaction is ok, copy device info to oper datastore");
-                writeTx.put(LogicalDatastoreType.OPERATIONAL, NETCONF_STATE_ID, netconfState);
-                 @NonNull
-                 FluentFuture<? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    Futures.getChecked(future, ExecutionException.class);
-                    LOG.info("netconf state writed to oper datastore");
-                    res = true;
-                } catch (ExecutionException e) {
-                    LOG.error("Failed to write netconf state to oper datastore");
-                }
-            } else {
-                LOG.error("WriteTransaction object is null");
-            }
-        } else {
-            LOG.error("device data operation gets from xml file is null !");
-        }
-        return res;
-    }
-
-    private Set<Capability> parseSchemasToModuleCapabilities(final SharedSchemaRepository consumer) {
-        final Set<SourceIdentifier> loadedSources = Sets.newHashSet();
-        consumer.registerSchemaSourceListener(TextToASTTransformer.create(consumer, consumer));
-        consumer.registerSchemaSourceListener(new SchemaSourceListener() {
-            @Override
-            public void schemaSourceEncountered(final SchemaSourceRepresentation schemaSourceRepresentation) {
-            }
-
-            @Override
-            public void schemaSourceRegistered(final Iterable<PotentialSchemaSource<?>> potentialSchemaSources) {
-                for (final PotentialSchemaSource<?> potentialSchemaSource : potentialSchemaSources) {
-                    loadedSources.add(potentialSchemaSource.getSourceIdentifier());
-                }
-            }
-
-            @Override
-            public void schemaSourceUnregistered(final PotentialSchemaSource<?> potentialSchemaSource) {
-            }
-        });
-        LOG.info("Loading models from directory.");
-        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-        File models = new File(classLoader.getResource(YANG_MODELS).getFile());
-        if (models.exists() && models.isDirectory()) {
-            LOG.info("folder '{}' exists !", models.getAbsolutePath());
-            final FilesystemSchemaSourceCache<YangTextSchemaSource> cache = new FilesystemSchemaSourceCache<>(consumer,
-                    YangTextSchemaSource.class, models);
-            consumer.registerSchemaSourceListener(cache);
-        } else {
-            LOG.warn("folder '{}' not exists !", models.getAbsolutePath());
-            LOG.info("Custom module loading skipped.");
-        }
-        SchemaContext schemaContext;
-        try {
-            // necessary for creating mdsal data stores and operations
-            schemaContext = consumer.createSchemaContextFactory(SchemaSourceFilter.ALWAYS_ACCEPT)
-                    .createSchemaContext(loadedSources).get();
-        } catch (final InterruptedException | ExecutionException e) {
-            throw new RuntimeException("Cannot parse schema context", e);
-        }
-
-        final Set<Capability> capabilities = Sets.newHashSet();
-
-        for (final Module module : schemaContext.getModules()) {
-            for (final Module subModule : module.getSubmodules()) {
-                addModuleCapability(consumer, capabilities, subModule);
-            }
-            addModuleCapability(consumer, capabilities, module);
-        }
-        return capabilities;
-    }
-
-    private static void addModuleCapability(final SharedSchemaRepository consumer, final Set<Capability> capabilities,
-            final Module module) {
-        final SourceIdentifier moduleSourceIdentifier = RevisionSourceIdentifier.create(module.getName(),
-                module.getRevision());
-        try {
-            final String moduleContent = new String(
-                    consumer.getSchemaSource(moduleSourceIdentifier, YangTextSchemaSource.class).get().read());
-            capabilities.add(new YangModuleCapability(module, moduleContent));
-            // IOException would be thrown in creating SchemaContext already
-        } catch (ExecutionException | InterruptedException | IOException e) {
-            LOG.warn("Cannot retrieve schema source for module {} from schema repository",
-                    moduleSourceIdentifier.toString(), e);
-        }
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/OcPlatformReaderFactory.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/OcPlatformReaderFactory.java
deleted file mode 100644 (file)
index e2c6a9e..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.read;
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130.platform.component.top.Components;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130.platform.component.top.ComponentsBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.util.concurrent.FluentFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
-import io.fd.honeycomb.translate.util.read.BindingBrokerReader;
-import io.fd.honeycomb.transportpce.device.configuration.OcPlatformConfiguration;
-import io.fd.honeycomb.transportpce.device.configuration.PmConfiguration;
-
-/**
- * @authors Gilles THOUENON and Christophe BETOULE ( gilles.thouenon@orange.com, christophe.betoule@orange.com )
- */
-public class OcPlatformReaderFactory implements ReaderFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(OcPlatformReaderFactory.class);
-    public static final InstanceIdentifier<Components> COMPONENTS_ID =
-            InstanceIdentifier.create(Components.class);
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker dataBroker;
-
-    @Inject
-    private OcPlatformConfiguration ocPlatformConfiguration;
-
-
-    @Override
-    public void init(final ModifiableReaderRegistryBuilder registry) {
-        registry.add(new BindingBrokerReader<>(COMPONENTS_ID, dataBroker,LogicalDatastoreType.OPERATIONAL,
-                ComponentsBuilder.class));
-        if (writeXMLDataToOper()) {
-            loadConfigData();
-        };
-    }
-
-    /**
-     * Write xml data from {@link PmConfiguration}
-     * to operational data.
-     *
-     */
-    public boolean writeXMLDataToOper() {
-        Boolean res = false;
-        LOG.info("writting xml oc-platform file data to oper datastore");
-        Components components = this.ocPlatformConfiguration.getDataComponents();
-        if (components !=null && components.getComponent().size()> 0) {
-            LOG.info("Getting oc-platform info from xml file");
-            ComponentsBuilder result = new ComponentsBuilder(components);
-            InstanceIdentifier<Components> iid = InstanceIdentifier.create(Components.class);
-            WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-            if (writeTx != null ) {
-                LOG.info("WriteTransaction is ok, copy oc-platform to oper datastore");
-                writeTx.put(LogicalDatastoreType.OPERATIONAL, iid, result.build());
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    Futures.getChecked(future, ExecutionException.class);
-                    LOG.info("oc-platform writed to oper datastore");
-                    res = true;
-                } catch (ExecutionException e) {
-                    LOG.error("Failed to write oc-platform to oper datastore");
-                }
-            } else {
-                LOG.error("WriteTransaction object is null");
-            }
-        } else {
-            LOG.error("get oc-platform data from xml file is null !");
-        }
-        return res;
-    }
-
-    /**
-     * Load data to config oc-platform datastore.
-     *
-     */
-    private boolean loadConfigData() {
-        Boolean res = false;
-        LOG.info("loading oc-platform configuration info from config-xml file...");
-        String xml = this.ocPlatformConfiguration.getConfigComponents();
-        LOG.info("xml de loadConfigData = {}", xml);
-        LOG.info("get components data from xml file !");
-        if (xml != null) {
-            Components result = this.ocPlatformConfiguration.getComponentsFromXML(xml);
-            if (result != null) {
-                LOG.info("get components data : {}", result.getComponent().toString());
-                WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-                if (writeTx != null) {
-                    LOG.info("WriteTransaction is ok, copy device info to config datastore");
-                    writeTx.put(LogicalDatastoreType.CONFIGURATION, COMPONENTS_ID, result);
-                    FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                    try {
-                        Futures.getChecked(future, ExecutionException.class);
-                        LOG.info("components writed to config datastore");
-                    } catch (ExecutionException e) {
-                        LOG.error("Failed to write components to config datastore");
-                    }
-                } else {
-                    LOG.error("WriteTransaction object is null");
-                }
-            } else {
-                LOG.error("components from xml is null !!");
-            }
-        } else {
-            LOG.error("no components obtained from xml file");
-        }
-        return res;
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/OcTerminalDeviceReaderFactory.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/OcTerminalDeviceReaderFactory.java
deleted file mode 100644 (file)
index 213c764..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.read;
-
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.terminal.device.rev170708.terminal.device.top.TerminalDevice;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.terminal.device.rev170708.terminal.device.top.TerminalDeviceBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.util.concurrent.FluentFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
-import io.fd.honeycomb.translate.util.read.BindingBrokerReader;
-import io.fd.honeycomb.transportpce.device.configuration.OcTerminalDeviceConfiguration;
-
-/**
- * @authors Gilles THOUENON and Christophe BETOULE ( gilles.thouenon@orange.com, christophe.betoule@orange.com )
- */
-public class OcTerminalDeviceReaderFactory implements ReaderFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(OcTerminalDeviceReaderFactory.class);
-    public static final InstanceIdentifier<TerminalDevice> TERMINAL_DEVICE_ID =
-            InstanceIdentifier.create(TerminalDevice.class);
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker dataBroker;
-
-    @Inject
-    private OcTerminalDeviceConfiguration ocTerminalDeviceConfiguration;
-
-
-    @Override
-    public void init(final ModifiableReaderRegistryBuilder registry) {
-        registry.add(new BindingBrokerReader<>(TERMINAL_DEVICE_ID, dataBroker,LogicalDatastoreType.OPERATIONAL,
-                TerminalDeviceBuilder.class));
-        if (writeXMLDataToOper()) {
-        loadConfigData();
-        };
-    }
-
-    /**
-     * Write xml data from {@link terminal-device}
-     * to operational data.
-     *
-     */
-    public boolean writeXMLDataToOper() {
-        Boolean res = false;
-        LOG.info("writting xml oc-terminal-device file data to oper datastore");
-        TerminalDevice terminalDevice = this.ocTerminalDeviceConfiguration.getDataTerminalDevice();
-        if (terminalDevice !=null) {
-            LOG.info("Getting oc-terminal-device info from xml file");
-            TerminalDeviceBuilder result = new TerminalDeviceBuilder(terminalDevice);
-            InstanceIdentifier<TerminalDevice> iid = InstanceIdentifier.create(TerminalDevice.class);
-            WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-            if (writeTx != null ) {
-                LOG.info("WriteTransaction is ok, copy oc-terminal-device to oper datastore");
-                writeTx.put(LogicalDatastoreType.OPERATIONAL, iid, result.build());
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    Futures.getChecked(future, ExecutionException.class);
-                    LOG.info("oc-terminal-device writed to oper datastore");
-                    res = true;
-                } catch (ExecutionException e) {
-                    LOG.error("Failed to write oc-terminal-device to oper datastore");
-                }
-            } else {
-                LOG.error("WriteTransaction object is null");
-            }
-        } else {
-            LOG.error("get oc-terminal-device data from xml file is null !");
-        }
-        return res;
-    }
-
-    /**
-     * Load data to config oc-terminal-device datastore.
-     *
-     */
-    private boolean loadConfigData() {
-        Boolean res = false;
-        LOG.info("loading oc-terminal-device configuration info from config-xml file...");
-        String xml = this.ocTerminalDeviceConfiguration.getConfigTerminalDevice();
-        LOG.info("get terminal-device data from xml file !");
-        if (xml != null) {
-            TerminalDevice result = this.ocTerminalDeviceConfiguration.getTerminalDeviceFromXML(xml);
-            if (result != null) {
-                LOG.info("get terminal-device data : {}", result.toString());
-                WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-                if (writeTx != null) {
-                    LOG.info("WriteTransaction is ok, copy terminal-device info to config datastore");
-                    writeTx.put(LogicalDatastoreType.CONFIGURATION, TERMINAL_DEVICE_ID, result);
-                    FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                    try {
-                        Futures.getChecked(future, ExecutionException.class);
-                        LOG.info("terminal-device writed to config datastore");
-                    } catch (ExecutionException e) {
-                        LOG.error("Failed to write terminal-device to config datastore");
-                    }
-                } else {
-                    LOG.error("WriteTransaction object is null");
-                }
-            } else {
-                LOG.error("terminal-device from xml is null !!");
-            }
-        } else {
-            LOG.error("no terminal-device obtained from xml file");
-        }
-        return res;
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/PmReaderFactory.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/PmReaderFactory.java
deleted file mode 100644 (file)
index 7a86757..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.read;
-
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.CurrentPmlist;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.CurrentPmlistBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.util.concurrent.FluentFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
-import io.fd.honeycomb.translate.util.read.BindingBrokerReader;
-import io.fd.honeycomb.transportpce.device.configuration.PmConfiguration;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public class PmReaderFactory implements ReaderFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(PmReaderFactory.class);
-    public static final InstanceIdentifier<CurrentPmlist> PM_CONTAINER_ID =
-            InstanceIdentifier.create(CurrentPmlist.class);
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker dataBroker;
-
-    @Inject
-    private PmConfiguration pmConfiguration;
-
-
-    @Override
-    public void init(final ModifiableReaderRegistryBuilder registry) {
-        registry.add(new BindingBrokerReader<>(PM_CONTAINER_ID, dataBroker,LogicalDatastoreType.OPERATIONAL,
-                CurrentPmlistBuilder.class));
-        writeXMLDataToOper();
-    }
-
-    /**
-     * Write xml data from {@link PmConfiguration}
-     * to operational data.
-     *
-     */
-    public boolean writeXMLDataToOper() {
-        Boolean res = false;
-        LOG.info("writting xml pm file data to oper datastore");
-        CurrentPmlist pmList = this.pmConfiguration.getDataPm();
-        if (pmList !=null && pmList.getCurrentPm().size() > 0) {
-            LOG.info("Getting pm info from xml file for device ");
-            CurrentPmlistBuilder result  = new CurrentPmlistBuilder(pmList);
-            InstanceIdentifier<CurrentPmlist> iid = InstanceIdentifier.create(CurrentPmlist.class);
-            WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-            if (writeTx != null ) {
-                LOG.info("WriteTransaction is ok, copy currentPmList to oper datastore");
-                writeTx.put(LogicalDatastoreType.OPERATIONAL, iid, result.build());
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    Futures.getChecked(future, ExecutionException.class);
-                    LOG.info("currentPmList writed to oper datastore");
-                    res = true;
-                } catch (ExecutionException e) {
-                    LOG.error("Failed to write currentPmList  to oper datastore");
-                }
-            } else {
-                LOG.error("WriteTransaction object is null");
-            }
-        } else {
-            LOG.error("currentPmList data operation gets from xml file is null !");
-        }
-        return res;
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/rpcs/ConnectionPortTrailService.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/rpcs/ConnectionPortTrailService.java
deleted file mode 100644 (file)
index 0f64086..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.rpcs;
-
-import io.fd.honeycomb.rpc.RpcService;
-
-import java.util.Arrays;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.CompletionStage;
-
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.RpcStatus;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.GetConnectionPortTrailInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.GetConnectionPortTrailOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.GetConnectionPortTrailOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.get.connection.port.trail.output.Ports;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.get.connection.port.trail.output.PortsBuilder;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Class to simulate get-connection-port-trail rpc.
- *
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public class ConnectionPortTrailService implements RpcService<GetConnectionPortTrailInput, GetConnectionPortTrailOutput> {
-    private static final Logger LOG = LoggerFactory.getLogger(ConnectionPortTrailService.class);
-    private static final String localName = "get-connection-port-trail";
-    private static final QName name = QName.create(GetConnectionPortTrailInput.QNAME, localName);
-    private static final SchemaPath schemaPath = SchemaPath.ROOT.createChild(name);
-
-    @Override
-    public SchemaPath getManagedNode() {
-        return schemaPath;
-    }
-
-    /* (non-Javadoc)
-     * @see io.fd.honeycomb.rpc.RpcService#invoke(org.opendaylight.yangtools.yang.binding.DataObject)
-     */
-    @Override
-    public CompletionStage<GetConnectionPortTrailOutput> invoke(GetConnectionPortTrailInput arg0) {
-        LOG.info("RPC GetConnectionPortTrail request received !");
-        Ports port = new PortsBuilder()
-                .setCircuitPackName("2/0")
-                .setPortName("L1")
-                .build();
-        GetConnectionPortTrailOutput output = new GetConnectionPortTrailOutputBuilder()
-                .setStatusMessage("OK")
-                .setStatus(RpcStatus.Successful)
-                .setPorts(Arrays.asList(port))
-                .build();
-        CompletableFuture<GetConnectionPortTrailOutput> result = new CompletableFuture<>();
-        result.complete(output);
-        return result;
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultDeviceFactory.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultDeviceFactory.java
deleted file mode 100644 (file)
index 6f3aa91..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.tools;
-
-import java.io.BufferedWriter;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Writer;
-import java.util.Optional;
-
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.binding.converter.XMLDataObjectConverter;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-
-/**
- * Factory for creating the default device from the XML stored in classpath.
- *
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public class DefaultDeviceFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultDeviceFactory.class);
-
-    /**
-     * Returns a new instance of {@link OrgOpenroadmDevice} from the loaded XML
-     * stored in File.
-     *
-     * @return {@link OrgOpenroadmDevice}
-     */
-    public OrgOpenroadmDevice createDefaultDevice(DataStoreContext dataStoreContextUtil, File device_data_config) {
-        OrgOpenroadmDevice result = null;
-        if (device_data_config.exists()) {
-            String config = device_data_config.getName();
-            LOG.info("file '{}' exists at location : {}", config, device_data_config.getAbsolutePath());
-            InputStream targetStream;
-            try {
-                targetStream = new FileInputStream(device_data_config);
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes", config));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), OrgOpenroadmDevice.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (OrgOpenroadmDevice) dataObject.get();
-            } catch (FileNotFoundException e) {
-                LOG.error("File not found : {} at {}", e.getMessage(), e.getLocalizedMessage());
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input OrgOpenroadmDevice into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("xml file not existed at : '{}'", device_data_config.getAbsolutePath());
-        }
-        return result;
-    }
-
-    /**
-     * Returns a new instance of {@link OrgOpenroadmDevice} from the loaded XML
-     * stored in String.
-     *
-     * @return {@link OrgOpenroadmDevice}
-     */
-    public OrgOpenroadmDevice createDefaultDevice(DataStoreContext dataStoreContextUtil, String device_data_config) {
-        OrgOpenroadmDevice result = null;
-        if (device_data_config != null) {
-            LOG.info("device data config string is ok ");
-            LOG.info("device data config = {}", device_data_config);
-           InputStream targetStream;
-            try {
-                targetStream = new ByteArrayInputStream(device_data_config.getBytes());
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes"));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), OrgOpenroadmDevice.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (OrgOpenroadmDevice) dataObject.get();
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input OrgOpenroadmDevice into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("device data config string is null!");
-        }
-        return result;
-    }
-
-    public void createXMLFromDevice(DataStoreContext dataStoreContextUtil, OrgOpenroadmDevice device, String output) {
-        if (device != null) {
-            Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-            transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                    .toNormalizedNodes(device, OrgOpenroadmDevice.class);
-            if (!transformIntoNormalizedNode.isPresent()) {
-                throw new IllegalStateException(
-                        String.format("Could not transform the input %s into normalized nodes", device));
-            }
-            XMLDataObjectConverter createWithDataStoreUtil = XMLDataObjectConverter
-                    .createWithDataStoreUtil(dataStoreContextUtil);
-            Writer writerFromDataObject = createWithDataStoreUtil.writerFromDataObject(device, OrgOpenroadmDevice.class,
-                    createWithDataStoreUtil.dataContainer());
-            try {
-                BufferedWriter writer = new BufferedWriter(new FileWriter(output));
-                writer.write(writerFromDataObject.toString());
-                writer.close();
-            } catch (IOException e) {
-                LOG.error("Bufferwriter error ");
-            }
-            LOG.info("device xml : {}", writerFromDataObject.toString());
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultNetconfFactory.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultNetconfFactory.java
deleted file mode 100644 (file)
index e1bbe02..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.tools;
-
-import java.io.BufferedWriter;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Writer;
-import java.util.Optional;
-
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.Netconf;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.binding.converter.XMLDataObjectConverter;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-
-/**
- * Factory for creating the {@link Netconf} from the XML stored in classpath.
- *
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public class DefaultNetconfFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultNetconfFactory.class);
-
-    /**
-     * Returns a new instance of {@link Netconf} from the loaded XML stored in File.
-     *
-     * @return {@link Netconf}
-     */
-    public Netconf createDefaultNetconf(DataStoreContext dataStoreContextUtil, File netconf_data_config) {
-        Netconf result = null;
-        if (netconf_data_config.exists()) {
-            String config = netconf_data_config.getName();
-            LOG.info("file '{}' exists at location : {}", config, netconf_data_config.getAbsolutePath());
-            InputStream targetStream;
-            try {
-                targetStream = new FileInputStream(netconf_data_config);
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes", config));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), Netconf.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (Netconf) dataObject.get();
-            } catch (FileNotFoundException e) {
-                LOG.error("File not found : {} at {}", e.getMessage(), e.getLocalizedMessage());
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input Netconf into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("netconf xml file not existed at : '{}'", netconf_data_config.getAbsolutePath());
-        }
-        return result;
-    }
-
-    /**
-     * Returns a new instance of {@link Netconf} from the loaded XML stored in
-     * String.
-     *
-     * @return {@link Netconf}
-     */
-    public Netconf createDefaultNetconf(DataStoreContext dataStoreContextUtil, String netconf_data_config) {
-        Netconf result = null;
-        if (netconf_data_config != null) {
-            LOG.info("Netconf data config string is ok ");
-            InputStream targetStream;
-            try {
-                targetStream = new ByteArrayInputStream(netconf_data_config.getBytes());
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes"));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), Netconf.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (Netconf) dataObject.get();
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input Netconf into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("netconf data config string is null!");
-        }
-        return result;
-    }
-
-    /**
-     * create an XML String from an instance of {@link Netconf}.
-     *
-     */
-    public void createXMLFromNetconf(DataStoreContext dataStoreContextUtil, Netconf netconf, String output) {
-        if (netconf != null) {
-            Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-            transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                    .toNormalizedNodes(netconf, Netconf.class);
-            if (!transformIntoNormalizedNode.isPresent()) {
-                throw new IllegalStateException(
-                        String.format("Could not transform the input %s into normalized nodes", netconf));
-            }
-            XMLDataObjectConverter createWithDataStoreUtil = XMLDataObjectConverter
-                    .createWithDataStoreUtil(dataStoreContextUtil);
-            Writer writerFromDataObject = createWithDataStoreUtil.writerFromDataObject(netconf, Netconf.class,
-                    createWithDataStoreUtil.dataContainer());
-            try {
-                BufferedWriter writer = new BufferedWriter(new FileWriter(output));
-                writer.write(writerFromDataObject.toString());
-                writer.close();
-            } catch (IOException e) {
-                LOG.error("Bufferwriter error ");
-            }
-            LOG.info("netconf xml : {}", writerFromDataObject.toString());
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultOcPlatformFactory.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultOcPlatformFactory.java
deleted file mode 100644 (file)
index cac6089..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.tools;
-
-import java.io.BufferedWriter;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Writer;
-import java.util.Optional;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.CurrentPmlist;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130.platform.component.top.Components;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.binding.converter.XMLDataObjectConverter;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-
-/**
- * Factory for creating the default device from the XML stored in classpath.
- *
- * @authors Gilles THOUENON and Christophe BETOULE ( gilles.thouenon@orange.com,
- *          christophe.betoule@orange.com )
- */
-public class DefaultOcPlatformFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultOcPlatformFactory.class);
-
-    /**
-     * Returns a new instance of {@link CurrentPmlist} from the loaded XML stored in
-     * File.
-     *
-     * @return {@link CurrentPmlist}
-     */
-    public Components createDefaultComponents(DataStoreContext dataStoreContextUtil, File oc_platform_data) {
-        Components result = null;
-        if (oc_platform_data.exists()) {
-            String oper = oc_platform_data.getName();
-            LOG.info("file '{}' exists at location : {}", oper, oc_platform_data.getAbsolutePath());
-            InputStream targetStream;
-            try {
-                targetStream = new FileInputStream(oc_platform_data);
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes", oper));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), Components.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (Components) dataObject.get();
-            } catch (FileNotFoundException e) {
-                LOG.error("File not found : {} at {}", e.getMessage(), e.getLocalizedMessage());
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input OCPlatform into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("xml file not existed at : '{}'", oc_platform_data.getAbsolutePath());
-        }
-        return result;
-    }
-
-    /**
-     * Returns a new instance of {@link CurrentPmlist} from the loaded XML stored in
-     * String.
-     *
-     * @return {@link CurrentPmlist}
-     */
-    public Components createDefaultComponents(DataStoreContext dataStoreContextUtil, String oc_platform_data) {
-        Components result = null;
-        if (oc_platform_data != null) {
-            LOG.info("openconfig platform data string is ok ");
-            LOG.info(oc_platform_data);
-            InputStream targetStream;
-            try {
-                targetStream = new ByteArrayInputStream(oc_platform_data.getBytes());
-                LOG.info("targetStream = {}", targetStream);
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input into normalized nodes"));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), Components.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                }
-                result = (Components) dataObject.get();
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input OCPlatform into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("openconfig platform data string is null!");
-        }
-        return result;
-    }
-
-    /**
-     * create an XML String from an instance of {@link CurrentPmlist}.
-     *
-     */
-    public void createXMLFromComponents(DataStoreContext dataStoreContextUtil, Components components, String output) {
-        if (components != null) {
-            Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-            transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                    .toNormalizedNodes(components, Components.class);
-            if (!transformIntoNormalizedNode.isPresent()) {
-                throw new IllegalStateException(
-                        String.format("Could not transform the input %s into normalized nodes", components));
-            }
-            XMLDataObjectConverter createWithDataStoreUtil = XMLDataObjectConverter
-                    .createWithDataStoreUtil(dataStoreContextUtil);
-            Writer writerFromDataObject = createWithDataStoreUtil.writerFromDataObject(components, Components.class,
-                    createWithDataStoreUtil.dataContainer());
-            try {
-                BufferedWriter writer = new BufferedWriter(new FileWriter(output));
-                writer.write(writerFromDataObject.toString());
-                writer.close();
-            } catch (IOException e) {
-                LOG.error("Bufferwriter error ");
-            }
-            LOG.info("openconf platform xml : {}", writerFromDataObject.toString());
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultOcTerminalDeviceFactory.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultOcTerminalDeviceFactory.java
deleted file mode 100644 (file)
index dc2c757..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.tools;
-
-import java.io.BufferedWriter;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Writer;
-import java.util.Optional;
-
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.terminal.device.rev170708.terminal.device.top.TerminalDevice;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.binding.converter.XMLDataObjectConverter;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-
-/**
- * Factory for creating the default device from the XML stored in classpath.
- *
- * @authors Gilles THOUENON and Christophe BETOULE ( gilles.thouenon@orange.com,
- *          christophe.betoule@orange.com )
- */
-public class DefaultOcTerminalDeviceFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultOcTerminalDeviceFactory.class);
-
-    /**
-     * Returns a new instance of {@link TerminalDevice} from the loaded XML stored in
-     * File.
-     *
-     * @return {@link TerminalDevice}
-     */
-    public TerminalDevice createDefaultTerminalDevice(DataStoreContext dataStoreContextUtil, File oc_terminal_device_data) {
-        TerminalDevice result = null;
-        if (oc_terminal_device_data.exists()) {
-            String oper = oc_terminal_device_data.getName();
-            LOG.info("file '{}' exists at location : {}", oper, oc_terminal_device_data.getAbsolutePath());
-            InputStream targetStream;
-            try {
-                targetStream = new FileInputStream(oc_terminal_device_data);
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes", oper));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), TerminalDevice.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (TerminalDevice) dataObject.get();
-            } catch (FileNotFoundException e) {
-                LOG.error("File not found : {} at {}", e.getMessage(), e.getLocalizedMessage());
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input OcTerminalDevice into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("xml file not existed at : '{}'", oc_terminal_device_data.getAbsolutePath());
-        }
-        return result;
-    }
-
-    /**
-     * Returns a new instance of {@link TerminalDevice} from the loaded XML stored in
-     * String.
-     *
-     * @return {@link TerminalDevice}
-     */
-    public TerminalDevice createDefaultTerminalDevice(DataStoreContext dataStoreContextUtil, String oc_terminal_device_data) {
-        TerminalDevice result = null;
-        if (oc_terminal_device_data != null) {
-            LOG.info("openconfig-terminal-device data string is ok ");
-            InputStream targetStream;
-            try {
-                targetStream = new ByteArrayInputStream(oc_terminal_device_data.getBytes());
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes"));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), TerminalDevice.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                }
-                result = (TerminalDevice) dataObject.get();
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input OcTerminalDevice into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("openconfig-terminal-device data string is null!");
-        }
-        return result;
-    }
-
-    /**
-     * create an XML String from an instance of {@link TerminalDevice}.
-     *
-     */
-    public void createXMLFromTerminalDevice(DataStoreContext dataStoreContextUtil, TerminalDevice terminalDevice, String output) {
-        if (terminalDevice != null) {
-            Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-            transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                    .toNormalizedNodes(terminalDevice, TerminalDevice.class);
-            if (!transformIntoNormalizedNode.isPresent()) {
-                throw new IllegalStateException(
-                        String.format("Could not transform the input %s into normalized nodes", terminalDevice));
-            }
-            XMLDataObjectConverter createWithDataStoreUtil = XMLDataObjectConverter
-                    .createWithDataStoreUtil(dataStoreContextUtil);
-            Writer writerFromDataObject = createWithDataStoreUtil.writerFromDataObject(terminalDevice, TerminalDevice.class,
-                    createWithDataStoreUtil.dataContainer());
-            try {
-                BufferedWriter writer = new BufferedWriter(new FileWriter(output));
-                writer.write(writerFromDataObject.toString());
-                writer.close();
-            } catch (IOException e) {
-                LOG.error("Bufferwriter error ");
-            }
-            LOG.info("openconfig-terminal-device xml : {}", writerFromDataObject.toString());
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultPmListFactory.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultPmListFactory.java
deleted file mode 100644 (file)
index d199d90..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.tools;
-
-import java.io.BufferedWriter;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Writer;
-import java.util.Optional;
-
-import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.CurrentPmlist;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.binding.converter.XMLDataObjectConverter;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-
-/**
- * Factory for creating the default device from the XML stored in classpath.
- *
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public class DefaultPmListFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultPmListFactory.class);
-
-    /**
-     * Returns a new instance of {@link CurrentPmlist} from the loaded XML stored in
-     * File.
-     *
-     * @return {@link CurrentPmlist}
-     */
-    public CurrentPmlist createDefaultPmList(DataStoreContext dataStoreContextUtil, File pm_data_config) {
-        CurrentPmlist result = null;
-        if (pm_data_config.exists()) {
-            String config = pm_data_config.getName();
-            LOG.info("file '{}' exists at location : {}", config, pm_data_config.getAbsolutePath());
-            InputStream targetStream;
-            try {
-                targetStream = new FileInputStream(pm_data_config);
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes", config));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), CurrentPmlist.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (CurrentPmlist) dataObject.get();
-            } catch (FileNotFoundException e) {
-                LOG.error("File not found : {} at {}", e.getMessage(), e.getLocalizedMessage());
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input PM into normalized nodes");
-            }
-        } else {
-            LOG.info("xml file not existed at : '{}'", pm_data_config.getAbsolutePath());
-        }
-        return result;
-    }
-
-    /**
-     * Returns a new instance of {@link CurrentPmlist} from the loaded XML stored in
-     * String.
-     *
-     * @return {@link CurrentPmlist}
-     */
-    public CurrentPmlist createDefaultPmList(DataStoreContext dataStoreContextUtil, String pm_data_config) {
-        CurrentPmlist result = null;
-        if (pm_data_config != null) {
-            LOG.info("Pm List data config string is ok ");
-            InputStream targetStream;
-            try {
-                targetStream = new ByteArrayInputStream(pm_data_config.getBytes());
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes"));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), CurrentPmlist.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (CurrentPmlist) dataObject.get();
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input pm into normalized nodes");
-            }
-        } else {
-            LOG.info("device data config string is null!");
-        }
-        return result;
-    }
-
-    /**
-     * create an XML String from an instance of {@link CurrentPmlist}.
-     *
-     */
-    public void createXMLFromPmList(DataStoreContext dataStoreContextUtil, CurrentPmlist pm_list, String output) {
-        if (pm_list != null) {
-            Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-            transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                    .toNormalizedNodes(pm_list, CurrentPmlist.class);
-            if (!transformIntoNormalizedNode.isPresent()) {
-                throw new IllegalStateException(
-                        String.format("Could not transform the input %s into normalized nodes", pm_list));
-            }
-            XMLDataObjectConverter createWithDataStoreUtil = XMLDataObjectConverter
-                    .createWithDataStoreUtil(dataStoreContextUtil);
-            Writer writerFromDataObject = createWithDataStoreUtil.writerFromDataObject(pm_list, CurrentPmlist.class,
-                    createWithDataStoreUtil.dataContainer());
-            try {
-                BufferedWriter writer = new BufferedWriter(new FileWriter(output));
-                writer.write(writerFromDataObject.toString());
-                writer.close();
-            } catch (IOException e) {
-                LOG.error("Bufferwriter error ");
-            }
-            LOG.info("device xml : {}", writerFromDataObject.toString());
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/ExtractXMLTag.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/ExtractXMLTag.java
deleted file mode 100644 (file)
index 5f16a55..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.tools;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.StringWriter;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
-
-/**
- * @author Martial Coulibaly ( martial.coulibaly@gfi.com ) on behalf of Orange
- *
- */
-public class ExtractXMLTag {
-    private static final Logger LOG = LoggerFactory.getLogger(ExtractXMLTag.class);
-    private static ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-
-    private ExtractXMLTag() {
-
-    }
-
-    /**
-     * Extract tag xml element
-     * from xml file.
-     *
-     * @param oper_path path to operational file
-     * @param tag XML tag to be extracted
-     * @param namespace XML tag namespace (optional)
-     * @return String XML extract element
-     */
-    public static String extractTagElement(String oper_path, String tag, String namespace) {
-        String result = null;
-        LOG.info("Getting {} xml data", tag);
-        DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
-        try {
-            DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
-            Document doc = docBuilder.parse(new File(classLoader.getResource(oper_path).getFile()));
-            Document extract = extractDom(doc, tag, namespace);
-            if (extract != null) {
-                result = getStringFromDocument(extract);
-            } else {
-                throw new NullPointerException("Failed to extract data from document !");
-            }
-        } catch (ParserConfigurationException | SAXException | IOException | TransformerException e) {
-            LOG.error("failed to extract data from document", e);
-        }
-        return result;
-    }
-
-    public static Document extractDom(Document doc, String tag, String namespace) throws ParserConfigurationException {
-        NodeList nodeList = doc.getElementsByTagName(tag);
-        if (nodeList.getLength() > 0) {
-            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-            DocumentBuilder builder = dbf.newDocumentBuilder();
-            Document result = builder.newDocument();
-            Element root = result.createElementNS("urn:ietf:params:xml:ns:netconf:base:1.0", "data");
-            result.appendChild(root);
-            Node newNode = result.importNode(nodeList.item(0), true);
-            result.getDocumentElement().appendChild(newNode);
-            return result;
-        } else {
-            LOG.warn("no {} object present in doc",tag);
-            return null;
-        }
-    }
-
-    public static String getStringFromDocument(Document doc) throws TransformerException {
-        DOMSource domSource = new DOMSource(doc);
-        StringWriter writer = new StringWriter();
-        StreamResult result = new StreamResult(writer);
-        TransformerFactory tf = TransformerFactory.newInstance();
-        Transformer transformer = tf.newTransformer();
-        transformer.transform(domSource, result);
-        return writer.toString();
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/ComponentsChangeListener.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/ComponentsChangeListener.java
deleted file mode 100644 (file)
index 673147f..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.write;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataObjectModification;
-import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
-import org.opendaylight.mdsal.binding.api.DataTreeModification;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130.platform.component.top.Components;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.FluentFuture;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-final class ComponentsChangeListener implements DataTreeChangeListener<Components> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(ComponentsChangeListener.class);
-    private final DataBroker dataBroker;
-
-    public ComponentsChangeListener(DataBroker deviceDataBroker) {
-        this.dataBroker = deviceDataBroker;
-        Preconditions.checkArgument(this.dataBroker != null, "Device datastore is null");
-    }
-
-
-    /**
-     * Delete change from device
-     * oper datastore.
-     *
-     * @param id container identifier
-     */
-    private void deleteContainer(DataTreeIdentifier<Components> rootPath,
-            DataObjectModification<? extends DataObject> modified) {
-        Class<? extends DataObject> type = modified.getDataType();
-        PathArgument path = modified.getIdentifier();
-        LOG.info("deleting container type '{}' with id '{}' ...", type.toString(), path);
-    }
-
-
-    /**
-     * Merge change to Honeycomb
-     * config datastore and device
-     * config datastore.
-     *
-     * @param id OrgOpenroadmDevice identifier
-     * @param dataAfter OrgOpenroadmDevice to be merged
-     */
-    private void processChange(final InstanceIdentifier<Components> id,
-            DataObjectModification<? extends DataObject> modified, final Components dataAfter) {
-        LOG.info("processing change ...");
-        WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-        if (writeTx != null) {
-            LOG.info("WriteTransactions are ok, merge device info to datastores");
-            if(dataAfter != null) {
-                writeTx.merge(LogicalDatastoreType.OPERATIONAL, id, dataAfter);
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    future.get();
-                    LOG.info("components merged to components oper datastore");
-                } catch (InterruptedException | ExecutionException e) {
-                    LOG.error("Failed to merge components to datastores");
-                }
-            } else {
-                LOG.error("components is null");
-            }
-        } else {
-            LOG.error("WriteTransaction object is null");
-        }
-    }
-
-    @Override
-    public void onDataTreeChanged(@NonNull Collection<DataTreeModification<Components>> changes) {
-         LOG.info("onDataTreeChanged for Components");
-            for (DataTreeModification<Components> change : changes) {
-                final DataObjectModification<Components> rootNode = change.getRootNode();
-                final DataTreeIdentifier<Components> rootPath = change.getRootPath();
-                if (rootNode != null ) {
-                    final Components dataBefore = rootNode.getDataBefore();
-                    final Components dataAfter = rootNode.getDataAfter();
-                    LOG.info("Received Components change({}):\n before={} \n after={}", rootNode.getModificationType(), dataBefore,
-                            dataAfter);
-                    Collection<? extends DataObjectModification<? extends DataObject>> modifiedChildren = rootNode.getModifiedChildren();
-                    switch (rootNode.getModificationType()) {
-                        case SUBTREE_MODIFIED:
-                            if (!modifiedChildren.isEmpty()) {
-                                Iterator<? extends DataObjectModification<? extends DataObject>> iterator = modifiedChildren.iterator();
-                                while (iterator.hasNext()) {
-                                    DataObjectModification<? extends DataObject> modified = iterator.next();
-                                    LOG.info("modified = \ndataType : {}\nid : {}\nmodifiedType : {}\noldData : {}\nnewData : {} \n",
-                                            modified.getDataType(), modified.getIdentifier(),modified.getModificationType(),
-                                            modified.getDataBefore(), modified.getDataAfter());
-                                    switch (modified.getModificationType()) {
-                                      case SUBTREE_MODIFIED:
-                                      case WRITE :
-                                          processChange(rootPath.getRootIdentifier(), modified, dataAfter);
-                                          break;
-                                      case DELETE:
-                                          deleteContainer(rootPath, modified);
-                                          break;
-                                      default:
-                                          break;
-                                   }
-                                }
-                            }
-                            //processChange(rootPath.getRootIdentifier(), dataAfter);
-                            break;
-                        case WRITE :
-                            processChange(rootPath.getRootIdentifier(), null, dataAfter);
-                            break;
-                        case DELETE:
-                            LOG.info("device config datastore is deleted !");
-                            break;
-                        default:
-                            break;
-                    }
-                } else {
-                    LOG.error("rootNode is null !");
-                }
-            }
-
-    }
-
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/DeviceChangeListener.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/DeviceChangeListener.java
deleted file mode 100644 (file)
index 2c2bfd5..0000000
+++ /dev/null
@@ -1,418 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.write;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataObjectModification;
-import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
-import org.opendaylight.mdsal.binding.api.DataTreeModification;
-import org.opendaylight.mdsal.binding.api.ReadTransaction;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.pack.Ports;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.pack.PortsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.packs.CircuitPacks;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.packs.CircuitPacksKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.Interface;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.InterfaceKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDeviceBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.RoadmConnections;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.RoadmConnectionsKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.port.Interfaces;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.port.InterfacesBuilder;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.FluentFuture;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-final class DeviceChangeListener implements DataTreeChangeListener<OrgOpenroadmDevice> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceChangeListener.class);
-    private final DataBroker dataBroker;
-
-    public DeviceChangeListener(DataBroker deviceDataBroker) {
-        this.dataBroker = deviceDataBroker;
-        Preconditions.checkArgument(this.dataBroker != null, "Device datastore is null");
-    }
-
-    @Override
-    public void onDataTreeChanged(Collection<DataTreeModification<OrgOpenroadmDevice>> changes) {
-        LOG.info("onDataTreeChanged");
-        for (DataTreeModification<OrgOpenroadmDevice> change : changes) {
-            final DataObjectModification<OrgOpenroadmDevice> rootNode = change.getRootNode();
-            final DataTreeIdentifier<OrgOpenroadmDevice> rootPath = change.getRootPath();
-            if (rootNode != null ) {
-                final OrgOpenroadmDevice dataBefore = rootNode.getDataBefore();
-                final OrgOpenroadmDevice dataAfter = rootNode.getDataAfter();
-                LOG.info("Received Device change({}):\n before={} \n after={}", rootNode.getModificationType(), dataBefore,
-                        dataAfter);
-                Collection<? extends DataObjectModification<? extends DataObject>> modifiedChildren = rootNode.getModifiedChildren();
-                switch (rootNode.getModificationType()) {
-                    case SUBTREE_MODIFIED:
-                        if (!modifiedChildren.isEmpty()) {
-                            Iterator<? extends DataObjectModification<? extends DataObject>> iterator = modifiedChildren.iterator();
-                            while (iterator.hasNext()) {
-                                DataObjectModification<? extends DataObject> modified = iterator.next();
-                                LOG.info("modified = \ndataType : {}\nid : {}\nmodifiedType : {}\noldData : {}\nnewData : {} \n",
-                                        modified.getDataType(), modified.getIdentifier(),modified.getModificationType(),
-                                        modified.getDataBefore(), modified.getDataAfter());
-                                switch (modified.getModificationType()) {
-                                  case SUBTREE_MODIFIED:
-                                  case WRITE :
-                                      processChange(rootPath.getRootIdentifier(), modified, dataAfter);
-                                      updateCircuitPackInterface(rootPath.getRootIdentifier(), modified, false);
-                                      break;
-                                  case DELETE:
-                                      updateCircuitPackInterface(rootPath.getRootIdentifier(), modified, true);
-                                      deleteContainer(rootPath, modified);
-                                      break;
-                                  default:
-                                      break;
-                               }
-                            }
-                        }
-                        //processChange(rootPath.getRootIdentifier(), dataAfter);
-                        break;
-                    case WRITE :
-                        processChange(rootPath.getRootIdentifier(), null, dataAfter);
-                        break;
-                    case DELETE:
-                        LOG.info("device config datastore is deleted !");
-                        break;
-                    default:
-                        break;
-                }
-            } else {
-                LOG.error("rootNode is null !");
-            }
-        }
-    }
-
-    /**
-     * Delete change from device
-     * oper datastore.
-     *
-     * @param id container identifier
-     */
-    private void deleteContainer(DataTreeIdentifier<OrgOpenroadmDevice> rootPath,
-            DataObjectModification<? extends DataObject> modified) {
-        final String ROADM_CONNECTIONS = "interface org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206"
-                + ".org.openroadm.device.container.org.openroadm.device.RoadmConnections";
-        final String INTERFACE_GRP = "interface org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206"
-                + ".interfaces.grp.Interface";
-        Class<? extends DataObject> type = modified.getDataType();
-        PathArgument path = modified.getIdentifier();
-        LOG.info("deleting container type '{}' with id '{}' ...", type.toString(), path);
-        String key = extractKey(path.toString());
-        if ( key != null) {
-            InstanceIdentifier<?> iid = null;
-            switch (type.toString()) {
-                case ROADM_CONNECTIONS:
-                    LOG.info("roadm-connections ...");
-                    iid = rootPath.getRootIdentifier().child(RoadmConnections.class,
-                        new RoadmConnectionsKey(key));
-                    break;
-                case INTERFACE_GRP:
-                    LOG.info("interface ....");
-                    iid = rootPath.getRootIdentifier().child(Interface.class,
-                            new InterfaceKey(key));
-                default:
-                    break;
-            }
-            LOG.info("iid : {}", iid);
-            WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-            if (writeTx != null) {
-                LOG.info("WriteTransaction is ok, delete container device from device oper datastore");
-                try {
-                    LOG.info("deleting container element from device oper DS ...");
-                    writeTx.delete(LogicalDatastoreType.OPERATIONAL, iid);
-                    FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                    future.get();
-                    LOG.info("container element '{}' deleted from device oper datastore", iid);
-                } catch (InterruptedException | ExecutionException e) {
-                    LOG.error("Failed to process WriteTransactions",e);
-                }
-            } else {
-                LOG.error("WriteTransaction object is null");
-            }
-        } else {
-            LOG.error("extract key is null");
-        }
-    }
-
-
-
-    private String extractKey(String path) {
-        LOG.info("getting key from pathArgument ...");
-        String result = null;
-        if (path != null && path.length() > 2) {
-            result = path.substring(path.lastIndexOf("=") + 1, path.length()-2);
-            LOG.info("result : {}", result);
-        } else {
-            LOG.error("String pathArgument is not compliant !!");
-        }
-        return result;
-    }
-
-
-    /**
-     * Merge change to Honeycomb
-     * config datastore and device
-     * config datastore.
-     *
-     * @param id OrgOpenroadmDevice identifier
-     * @param dataAfter OrgOpenroadmDevice to be merged
-     */
-    private void processChange(final InstanceIdentifier<OrgOpenroadmDevice> id,
-            DataObjectModification<? extends DataObject> modified, final OrgOpenroadmDevice dataAfter) {
-        LOG.info("processing change ...");
-        WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-        if (writeTx != null) {
-            LOG.info("WriteTransactions are ok, merge device info to datastores");
-            if(dataAfter != null) {
-                String deviceId = dataAfter.getInfo().getNodeId();
-                writeTx.merge(LogicalDatastoreType.OPERATIONAL, id, dataAfter);
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    future.get();
-                    LOG.info("device '{}' merged to device oper datastore", deviceId);
-                } catch (InterruptedException | ExecutionException e) {
-                    LOG.error("Failed to merge Element '{}' to datastores", deviceId);
-                }
-            } else {
-                LOG.error("device is null");
-            }
-        } else {
-            LOG.error("WriteTransaction object is null");
-        }
-    }
-
-    /**
-     *Update Interface info on
-     *Ports list in CircuitPacks.
-     *
-     * @param id device InstanceIdentifier
-     * @param modified DataObjectModification
-     * @param deviceData OrgOpenroadmDevice
-     * @param delete if yes delete interface from circuitpacks else adding interface
-     */
-    private void updateCircuitPackInterface(final InstanceIdentifier<OrgOpenroadmDevice> id,
-            DataObjectModification<? extends DataObject> modified, boolean delete) {
-        LOG.info("Updating circuit packs interface ...");
-        final String INTERFACE_GRP = "interface org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206"
-                + ".interfaces.grp.Interface";
-        InstanceIdentifier<CircuitPacks> iid = null;
-        if (modified != null) {
-            Class<? extends DataObject> type = modified.getDataType();
-            LOG.info("getting container type '{}' ...", type.toString());
-            if (type != null) {
-                if (type.toString().compareTo(INTERFACE_GRP) == 0) {
-                    LOG.warn("interface update ! ");
-                    Interface data = null;
-                    if (delete) {
-                        data = (Interface) modified.getDataBefore();
-                    } else {
-                        data = (Interface) modified.getDataAfter();
-                    }
-                    LOG.info("Interface data gets : {}", data.toString());
-                    if (data!= null) {
-                        String circuitPackName = data.getSupportingCircuitPackName();
-                        String port = data.getSupportingPort().toString();
-                        String interfaceName = data.getName();
-                        if (circuitPackName != null && port != null && interfaceName != null) {
-                            iid = id.child(CircuitPacks.class,
-                                    new CircuitPacksKey(circuitPackName));
-                            OrgOpenroadmDevice operDevice = readDeviceOperData(id);
-                            if (operDevice != null) {
-                                OrgOpenroadmDeviceBuilder builder = new OrgOpenroadmDeviceBuilder(operDevice);
-                                List<CircuitPacks> list = builder.getCircuitPacks();
-                                LOG.info("Getting circuit packs ...");
-                                for (CircuitPacks circuitPacks : list) {
-                                    if (circuitPacks.getCircuitPackName().compareTo(circuitPackName) == 0) {
-                                        LOG.info("circuitpack found");
-                                        List<Ports> portList = circuitPacks.getPorts();
-                                        LOG.info("Getting ports for circuit pack '{}' ...", circuitPackName);
-                                        for (Ports ports : portList) {
-                                            if (ports.getPortName().compareTo(port) == 0) {
-                                                LOG.info("port found");
-                                                PortsBuilder newPorts = new PortsBuilder(ports);
-                                                List<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206
-                                                .port.Interfaces> value = newPorts.getInterfaces();
-                                                if (!delete) {
-                                                    LOG.info("adding interface info to port '{}'", port);
-                                                    if (value == null || value.isEmpty()) {
-                                                        LOG.info("Interfaces List is empty !");
-                                                        value = new ArrayList<org.opendaylight.yang.gen.v1.http.org
-                                                                .openroadm.device.rev170206.port.Interfaces>();
-                                                        value.add(new InterfacesBuilder().setInterfaceName(interfaceName)
-                                                                .build());
-                                                    } else { // value is not empty
-                                                        org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206
-                                                        .port.Interfaces tmp = getInterfaces(value, interfaceName);
-                                                        if( tmp != null) {
-                                                            LOG.warn("Interfaces with name '{}' already exists !",interfaceName);
-                                                            break;
-                                                        } else { // no interface found
-                                                            value.add(new InterfacesBuilder().setInterfaceName(interfaceName)
-                                                                    .build());
-                                                        }
-                                                    }
-                                                } else {
-                                                    LOG.info("removing interface info from port '{}'", port);
-                                                    org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206
-                                                    .port.Interfaces tmp = getInterfaces(value, interfaceName);
-                                                    if( tmp != null) {
-                                                        LOG.info("Interfaces with name '{}' gets",interfaceName);
-                                                        value.remove(tmp);
-                                                    }else {
-                                                        LOG.error("Interfaces list is null");
-                                                        value = new ArrayList<org.opendaylight.yang.gen.v1.http.org.openroadm
-                                                                .device.rev170206.port.Interfaces>();
-                                                    }
-                                                }
-                                                newPorts.setInterfaces(value);
-                                                portList.remove(ports);
-                                                portList.add(newPorts.build());
-                                                LOG.info("port list updated !");
-                                                update(circuitPacks, iid);
-                                                break;
-                                            }
-                                        }
-                                        break;
-                                    }
-                                }
-                            } else {
-                                LOG.error("reading operational device data failed !");
-                            }
-
-                        } else {
-                            LOG.error("SupportingCircuitPackName / SupportingPort / Interface Name are/is null !");
-                        }
-                    }
-                } else {
-                    LOG.warn("not an interface update ! ");
-                }
-            }
-        } else {
-            LOG.error("DataObjectModification is null");
-        }
-    }
-
-    /**
-     * Search in {@link Interfaces} list
-     * if an interfaces already exists.
-     *
-     * @param value Interfaces List
-     * @param interfaceName Interface Name
-     * @return Interfaces
-     */
-    private org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.port.Interfaces getInterfaces(
-            List<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.port.Interfaces> value,
-            String interfaceName) {
-        org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.port.Interfaces result = null;
-        if (value != null && !value.isEmpty()) {
-            LOG.info("Getting interfaces list ...");
-            for (org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206
-                    .port.Interfaces tmp : value) {
-                if( tmp != null
-                        && tmp.getInterfaceName().compareTo(interfaceName) == 0) {
-                    LOG.info("Interfaces with name '{}' gets",interfaceName);
-                    result = tmp;
-                    break;
-                }
-            }
-        } else {
-            LOG.error("Interfaces list is empty");
-        }
-        return result;
-    }
-
-    /**
-     * Update circuitPacks information
-     * in device oper datastore.
-     *
-     * @param circuitPacks CircuitPacks data
-     * @param iid CircuitPacks InstanceIdentifier
-     * @param id OrgOpenroadmDevice InstanceIdentifier
-     * @param deviceData OrgOpenroadmDevice data
-     */
-    private void update(CircuitPacks circuitPacks, final InstanceIdentifier<CircuitPacks> iid) {
-        LOG.info("updating oper Datastore with iid : {}", iid);
-        WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-        if (writeTx != null) {
-            LOG.info("WriteTransaction is ok, update container circuitpacks from device oper datastore");
-            try {
-                LOG.info("updating container circuitpacks from device oper DS ...");
-                writeTx.merge(LogicalDatastoreType.OPERATIONAL, iid,circuitPacks);
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                future.get();
-                LOG.info("container circuitpacks '{}' merged to device oper datastore", iid);
-            } catch (InterruptedException | ExecutionException e) {
-                LOG.error("Failed to process WriteTransactions",e);
-            }
-        } else {
-            LOG.error("WriteTransaction object is null");
-        }
-    }
-
-    /**
-     * Get {@link OrgOpenroadmDevice} data
-     * from operational datastore
-     *
-     * @param id OrgOpenroadmDevice InstanceIdentifier
-     * @return OrgOpenroadmDevice result
-     */
-    private OrgOpenroadmDevice readDeviceOperData(final InstanceIdentifier<OrgOpenroadmDevice> id) {
-        OrgOpenroadmDevice result = null;
-        LOG.info("reading device operational datastore ...");
-        ReadTransaction readTx = this.dataBroker.newReadOnlyTransaction();
-        if (readTx != null) {
-            LOG.info("ReadTransaction is ok");
-            try {
-                LOG.info("reading device from device oper DS ...");
-                java.util.Optional<OrgOpenroadmDevice> device = readTx.read(LogicalDatastoreType.OPERATIONAL, id).get();
-                if (device.isPresent()) {
-                    result = device.get();
-                    LOG.info("device gets from device oper datastore");
-                }
-            } catch (InterruptedException | ExecutionException e) {
-                LOG.error("Failed to process ReadTransaction",e);
-            }
-        } else {
-            LOG.error("ReadTransaction object is null");
-        }
-        return result;
-
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/DeviceWriterFactory.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/DeviceWriterFactory.java
deleted file mode 100644 (file)
index 0a5d99f..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.write;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.util.write.BindingBrokerWriter;
-import io.fd.honeycomb.translate.write.WriterFactory;
-import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder;
-
-import javax.annotation.Nonnull;
-
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-public class DeviceWriterFactory implements WriterFactory {
-    private static final InstanceIdentifier<OrgOpenroadmDevice> DEVICE_CONTAINER_ID = InstanceIdentifier
-            .create(OrgOpenroadmDevice.class);
-
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker deviceDataBroker;
-
-    @Override
-    public void init(@Nonnull final ModifiableWriterRegistryBuilder registry) {
-        registry.wildcardedSubtreeAdd(new BindingBrokerWriter<>(DEVICE_CONTAINER_ID, deviceDataBroker));
-        deviceDataBroker.registerDataTreeChangeListener(DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION,
-                DEVICE_CONTAINER_ID), new DeviceChangeListener(deviceDataBroker));
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/OcPlatformWriterFactory.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/OcPlatformWriterFactory.java
deleted file mode 100644 (file)
index ae35198..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.write;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.util.write.BindingBrokerWriter;
-import io.fd.honeycomb.translate.write.WriterFactory;
-import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder;
-
-import javax.annotation.Nonnull;
-
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130.platform.component.top.Components;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-public class OcPlatformWriterFactory implements WriterFactory {
-    private static final InstanceIdentifier<Components> COMPONENTS_CONTAINER_ID = InstanceIdentifier
-            .create(Components.class);
-
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker deviceDataBroker;
-
-    @Override
-    public void init(@Nonnull final ModifiableWriterRegistryBuilder registry) {
-        registry.wildcardedSubtreeAdd(new BindingBrokerWriter<>(COMPONENTS_CONTAINER_ID, deviceDataBroker));
-        deviceDataBroker.registerDataTreeChangeListener(DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION,
-                COMPONENTS_CONTAINER_ID), new ComponentsChangeListener(deviceDataBroker));
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/OcTerminalDeviceWriterFactory.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/OcTerminalDeviceWriterFactory.java
deleted file mode 100644 (file)
index ac52f3b..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.write;
-
-import javax.annotation.Nonnull;
-
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.terminal.device.rev170708.terminal.device.top.TerminalDevice;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.util.write.BindingBrokerWriter;
-import io.fd.honeycomb.translate.write.WriterFactory;
-import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder;
-
-public class OcTerminalDeviceWriterFactory implements WriterFactory {
-    private static final InstanceIdentifier<TerminalDevice> TERMINAL_DEVICE_CONTAINER_ID = InstanceIdentifier
-            .create(TerminalDevice.class);
-
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker deviceDataBroker;
-
-    @Override
-    public void init(@Nonnull final ModifiableWriterRegistryBuilder registry) {
-        registry.wildcardedSubtreeAdd(new BindingBrokerWriter<>(TERMINAL_DEVICE_CONTAINER_ID, deviceDataBroker));
-        deviceDataBroker.registerDataTreeChangeListener(DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION,
-                TERMINAL_DEVICE_CONTAINER_ID), new TerminalDeviceChangeListener(deviceDataBroker));
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/TerminalDeviceChangeListener.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/TerminalDeviceChangeListener.java
deleted file mode 100644 (file)
index 0d3dd91..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.write;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataObjectModification;
-import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
-import org.opendaylight.mdsal.binding.api.DataTreeModification;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.terminal.device.rev170708.terminal.device.top.TerminalDevice;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.FluentFuture;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-final class TerminalDeviceChangeListener implements DataTreeChangeListener<TerminalDevice> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(TerminalDeviceChangeListener.class);
-    private final DataBroker dataBroker;
-
-    public TerminalDeviceChangeListener(DataBroker deviceDataBroker) {
-        this.dataBroker = deviceDataBroker;
-        Preconditions.checkArgument(this.dataBroker != null, "terminal-device datastore is null");
-    }
-
-
-    /**
-     * Delete change from terminal-device
-     * oper datastore.
-     *
-     * @param id container identifier
-     */
-    private void deleteContainer(DataTreeIdentifier<TerminalDevice> rootPath,
-            DataObjectModification<? extends DataObject> modified) {
-        Class<? extends DataObject> type = modified.getDataType();
-        PathArgument path = modified.getIdentifier();
-        LOG.info("deleting container type '{}' with id '{}' ...", type.toString(), path);
-    }
-
-
-    /**
-     * Merge change to Honeycomb
-     * config datastore and device
-     * config datastore.
-     *
-     * @param id TerminalDevice identifier
-     * @param dataAfter TerminalDevice to be merged
-     */
-    private void processChange(final InstanceIdentifier<TerminalDevice> id,
-            DataObjectModification<? extends DataObject> modified, final TerminalDevice dataAfter) {
-        LOG.info("processing change ...");
-        WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-        if (writeTx != null) {
-            LOG.info("WriteTransactions are ok, merge terminal-device data to datastores");
-            if(dataAfter != null) {
-                writeTx.merge(LogicalDatastoreType.OPERATIONAL, id, dataAfter);
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    future.get();
-                    LOG.info("terminal-device merged to terminal-device oper datastore");
-                } catch (InterruptedException | ExecutionException e) {
-                    LOG.error("Failed to merge terminal-device to datastores");
-                }
-            } else {
-                LOG.error("terminal-device is null");
-            }
-        } else {
-            LOG.error("WriteTransaction object is null");
-        }
-    }
-
-@Override
-public void onDataTreeChanged(@NonNull Collection<DataTreeModification<TerminalDevice>> changes) {
-  LOG.info("onDataTreeChanged for terminal-device");
-        for (DataTreeModification<TerminalDevice> change : changes) {
-            final DataObjectModification<TerminalDevice> rootNode = change.getRootNode();
-            final DataTreeIdentifier<TerminalDevice> rootPath = change.getRootPath();
-            if (rootNode != null ) {
-                final TerminalDevice dataBefore = rootNode.getDataBefore();
-                final TerminalDevice dataAfter = rootNode.getDataAfter();
-                LOG.info("Received terminal-device change({}):\n before={} \n after={}", rootNode.getModificationType(), dataBefore,
-                        dataAfter);
-                Collection<? extends DataObjectModification<? extends DataObject>> modifiedChildren = rootNode.getModifiedChildren();
-                switch (rootNode.getModificationType()) {
-                    case SUBTREE_MODIFIED:
-                        if (!modifiedChildren.isEmpty()) {
-                            Iterator<? extends DataObjectModification<? extends DataObject>> iterator = modifiedChildren.iterator();
-                            while (iterator.hasNext()) {
-                                DataObjectModification<? extends DataObject> modified = iterator.next();
-                                LOG.info("modified = \ndataType : {}\nid : {}\nmodifiedType : {}\noldData : {}\nnewData : {} \n",
-                                        modified.getDataType(), modified.getIdentifier(),modified.getModificationType(),
-                                        modified.getDataBefore(), modified.getDataAfter());
-                                switch (modified.getModificationType()) {
-                                  case SUBTREE_MODIFIED:
-                                  case WRITE :
-                                      processChange(rootPath.getRootIdentifier(), modified, dataAfter);
-                                      break;
-                                  case DELETE:
-                                      deleteContainer(rootPath, modified);
-                                      break;
-                                  default:
-                                      break;
-                               }
-                            }
-                        }
-                        //processChange(rootPath.getRootIdentifier(), dataAfter);
-                        break;
-                    case WRITE :
-                        processChange(rootPath.getRootIdentifier(), null, dataAfter);
-                        break;
-                    case DELETE:
-                        LOG.info("terminal-device config datastore is deleted !");
-                        break;
-                    default:
-                        break;
-                }
-            } else {
-                LOG.error("rootNode is null !");
-            }
-        }
-
-}
-
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/NamespaceTrimmer.xslt b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/NamespaceTrimmer.xslt
deleted file mode 100644 (file)
index 7667f57..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-    <xsl:template match="*/*/*" name="nodes">
-        <xsl:element name="{local-name()}">
-            <xsl:apply-templates select="@*|node()" />
-        </xsl:element>
-    </xsl:template>
-    <xsl:template match="*/*/*/*">
-        <xsl:if test="not(name(.)='type' or name(.)='lldp' or name(.)='ethernet' or name(.)='ots')">
-            <xsl:element name="{local-name()}">
-                <xsl:apply-templates select="@*|node()" />
-            </xsl:element>
-        </xsl:if>
-        <xsl:if test="name(.)='type'" xmlns="http://org/openroadm/device">
-            <type xmlns:openROADM-if="http://org/openroadm/interfaces">
-                <xsl:apply-templates select="@*|node()"/>
-            </type>
-        </xsl:if>
-        <xsl:if test="name(.)='ots'">
-            <ots xmlns="http://org/openroadm/optical-transport-interfaces">
-                <xsl:apply-templates select="@*|node()"/>
-            </ots>
-        </xsl:if>
-        <xsl:if test="name(.)='lldp'">
-            <lldp xmlns="http://org/openroadm/lldp">
-                <xsl:apply-templates select="@*|node()"/>
-            </lldp>
-        </xsl:if>
-        <xsl:if test="name(.)='ethernet'">
-            <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-                <xsl:apply-templates select="@*|node()"/>
-            </ethernet>
-        </xsl:if>
-    </xsl:template>
-    <xsl:template match="/">
-        <org-openroadm-device xmlns="http://org/openroadm/device">
-            <xsl:apply-templates select="*"/>
-        </org-openroadm-device>
-    </xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/OperToConfig.xsl b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/OperToConfig.xsl
deleted file mode 100644 (file)
index ec6c1db..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-xmlns:d="urn:ietf:params:xml:ns:netconf:base:1.0"
-xmlns:oor="http://org/openroadm/device"
-exclude-result-prefixes="oor d">
-
-  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
-
-  <xsl:template match="/">
-    <xsl:element name="config" namespace="urn:ietf:params:xml:ns:netconf:base:1.0">
-    <xsl:element name="org-openroadm-device" namespace="http://org/openroadm/device">
-    <xsl:element name="info" namespace="http://org/openroadm/device">
-      <xsl:apply-templates select="d:data/oor:org-openroadm-device/oor:info"/>
-    </xsl:element>
-
-    <xsl:copy-of select="d:data/oor:org-openroadm-device/oor:users" />
-
-    <xsl:for-each select="d:data/oor:org-openroadm-device/oor:shelves">
-      <xsl:element name="shelves" namespace="http://org/openroadm/device">
-        <xsl:call-template name="shelve-body"/>
-      </xsl:element>
-    </xsl:for-each>
-
-    <xsl:for-each select="d:data/oor:org-openroadm-device/oor:circuit-packs">
-      <xsl:element name="circuit-packs" namespace="http://org/openroadm/device">
-        <xsl:call-template name="cp-body"/>
-      </xsl:element>
-    </xsl:for-each>
-
-    <xsl:for-each select="d:data/oor:org-openroadm-device/oor:interface">
-        <xsl:element name="interface" namespace="http://org/openroadm/device">
-            <xsl:call-template name="inter-body"/>
-        </xsl:element>
-    </xsl:for-each>
-
-    <xsl:for-each select="d:data/oor:org-openroadm-device/oor:protocols">
-        <xsl:element name="protocols" namespace="http://org/openroadm/device">
-            <xsl:call-template name="proto-body"/>
-        </xsl:element>
-    </xsl:for-each>
-
-    <xsl:for-each select="d:data/oor:org-openroadm-device/oor:degree">
-      <xsl:element name="degree" namespace="http://org/openroadm/device">
-        <xsl:call-template name="degree-body"/>
-      </xsl:element>
-    </xsl:for-each>
-
-    <xsl:for-each select="d:data/oor:org-openroadm-device/oor:shared-risk-group">
-      <xsl:element name="shared-risk-group" namespace="http://org/openroadm/device">
-        <xsl:call-template name="srg-body"/>
-      </xsl:element>
-    </xsl:for-each>
-
-    </xsl:element>
-    </xsl:element>
-  </xsl:template>
-
-  <xsl:template match="oor:info">
-    <xsl:for-each select="./*">
-      <xsl:if test="name(.) = 'node-id' or name(.) = 'node-number'  or name(.) = 'clli' or name(.) = 'ipAddress' or name(.) = 'prefix-length' or name(.) = 'defaultGateway' or name(.) = 'template' or name(.) = 'geoLocation'">
-        <xsl:copy-of select="." />
-      </xsl:if>
-     </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="shelve-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="name(.) ='shelf-name' or name(.) = 'shelf-type' or name(.) = 'rack' or name(.) = 'shelf-position' or name(.) = 'administrative-state' or name(.) = 'equipment-state' or name(.) = 'due-date'">
-        <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="cp-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="name(.) = 'circuit-pack-type' or name(.) = 'circuit-pack-product-code' or name(.) = 'circuit-pack-name' or name(.) = 'administrative-state' or name(.) = 'equipment-state' or name(.) = 'circuit-pack-mode' or name(.) = 'shelf' or name(.) = 'slot' or name(.) = 'subSlot' or name(.) = 'due-date' or name(.) = 'parent-circuit-pack'">
-        <xsl:copy-of select="." />
-      </xsl:if>
-      <xsl:if test="name(.) = 'ports'">
-        <xsl:for-each select=".">
-          <xsl:element name="ports" namespace="http://org/openroadm/device">
-            <xsl:call-template name="ports-body"/>
-          </xsl:element>
-        </xsl:for-each>
-      </xsl:if>
-     </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="inter-body">
-    <xsl:for-each select="./*">
-        <xsl:if test="not(name(.) = 'operational-state' or name(.) = 'ethernet' or name(.) = 'och' or name(.) = 'otu'  or name(.) = 'odu')">
-          <xsl:copy-of select="." />
-        </xsl:if>
-        <xsl:if test="name(.)='ethernet'">
-          <xsl:element name="ethernet" xmlns="http://org/openroadm/ethernet-interfaces">
-            <xsl:call-template name="eth-body"/>
-          </xsl:element>
-        </xsl:if>
-        <xsl:if test="name(.)='och'">
-          <xsl:element name="och" xmlns="http://org/openroadm/optical-channel-interfaces">
-            <xsl:call-template name="och-body"/>
-          </xsl:element>
-        </xsl:if>
-        <xsl:if test="name(.)='otu'">
-          <xsl:element name="otu" xmlns="http://org/openroadm/otn-otu-interfaces">
-            <xsl:call-template name="otu-body"/>
-          </xsl:element>
-        </xsl:if>
-        <xsl:if test="name(.)='odu'">
-          <xsl:element name="odu" xmlns="http://org/openroadm/otn-odu-interfaces">
-            <xsl:call-template name="odu-body"/>
-          </xsl:element>
-        </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-   <xsl:template name="eth-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.) = 'curr-speed' or name(.)='curr-duplex') ">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-   <xsl:template name="och-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.) = 'width') ">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-   <xsl:template name="otu-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.)='accepted-sapi' or name(.) = 'accepted-dapi' or name(.)='accepted-operator' or name(.)='tim-act-enabled') ">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-   <xsl:template name="odu-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.)='no-oam-function' or name(.)='accepted-sapi' or name(.) = 'accepted-dapi' or name(.)='accepted-operator' or name(.)='tim-act-enabled' or name(.)='opu') ">
-         <xsl:copy-of select="." />
-      </xsl:if>
-      <xsl:if test="name(.)='opu'">
-        <xsl:element name="opu" xmlns="http://org/openroadm/otn-odu-interfaces">
-          <xsl:call-template name="opu-body"/>
-        </xsl:element>
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-   <xsl:template name="opu-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.)='rx-payload-type' or name(.) = 'msi') ">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="proto-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="name(.) = 'lldp'">
-        <xsl:for-each select=".">
-          <xsl:element name="lldp" xmlns="http://org/openroadm/lldp">
-            <xsl:call-template name="lldp-body"/>
-          </xsl:element>
-        </xsl:for-each>
-      </xsl:if>
-     </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="ports-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="name(.) = 'port-name' or name(.) = 'port-type' or name(.) = 'port-qual' or name(.) = 'circuit-id' or name(.) = 'administrative-state' or name(.) = 'logical-connection-point'  or name(.) = 'otdr-port' or name(.) = 'ila-port' ">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="lldp-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.) = 'nbr-list') ">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="degree-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.) = 'max-wavelengths')">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="srg-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.) = 'max-add-drop-ports' or name(.) = 'wavelengthDuplication' or name(.) = 'current-provisioned-add-drop-ports')">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
- </xsl:stylesheet>
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/config.xsl b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/config.xsl
deleted file mode 100644 (file)
index a68b6c0..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-    <xsl:template match="@* | node()">
-        <xsl:copy>
-            <xsl:apply-templates select="@* | node()"/>
-        </xsl:copy>
-    </xsl:template>
-    <xsl:template match="/">
-        <!-- config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"-->
-            <xsl:apply-templates/>
-        <!-- /config-->
-    </xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/ocplatformOperToConfig.xsl b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/ocplatformOperToConfig.xsl
deleted file mode 100644 (file)
index b37f43f..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-xmlns:d="urn:ietf:params:xml:ns:netconf:base:1.0"
-xmlns:n="urn:ietf:params:xml:ns:netmod:notification"
-xmlns:ood="http://org/openroadm/device"
-xmlns:ocp="http://openconfig.net/yang/platform" >
-
-  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
-
-  <xsl:template match="d:data/ocp:components">
-    <xsl:element name="config" namespace="urn:ietf:params:xml:ns:netconf:base:1.0">
-    <xsl:element name="components" namespace="http://openconfig.net/yang/platform">
-      <xsl:for-each select="*">
-        <xsl:apply-templates select="." />
-      </xsl:for-each>
-    </xsl:element>
-    </xsl:element>
-  </xsl:template>
-
-  <xsl:template match="*">
-    <xsl:if test="name(.) != 'state'">
-    <xsl:copy>
-      <xsl:for-each select="@*"><xsl:copy-of select="."></xsl:copy-of></xsl:for-each>
-        <xsl:choose>
-          <xsl:when test="name(.) = 'state'"></xsl:when>
-          <xsl:otherwise><xsl:apply-templates select="node()" /></xsl:otherwise>
-        </xsl:choose>
-    </xsl:copy>
-    </xsl:if>
-  </xsl:template>
-
-  <xsl:template match="d:data | n:netconf">
-    <xsl:apply-templates />
-  </xsl:template>
-
-  </xsl:stylesheet>
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/octerminaldeviceOperToConfig.xsl b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/octerminaldeviceOperToConfig.xsl
deleted file mode 100644 (file)
index 4e69d6e..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-xmlns:d="urn:ietf:params:xml:ns:netconf:base:1.0"
-xmlns:n="urn:ietf:params:xml:ns:netmod:notification"
-xmlns:ood="http://org/openroadm/device"
-xmlns:ocp="http://openconfig.net/yang/platform"
-xmlns:octd="http://openconfig.net/yang/terminal-device">
-
-  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
-
-  <xsl:template match="d:data/octd:terminal-device">
-    <xsl:element name="config" namespace="urn:ietf:params:xml:ns:netconf:base:1.0">
-    <xsl:element name="terminal-device" namespace="http://openconfig.net/yang/terminal-device">
-      <xsl:for-each select="*">
-        <xsl:apply-templates select="." />
-      </xsl:for-each>
-    </xsl:element>
-    </xsl:element>
-  </xsl:template>
-
-  <xsl:template match="*">
-    <xsl:if test="name(.) != 'state'">
-    <xsl:copy>
-      <xsl:for-each select="@*"><xsl:copy-of select="."></xsl:copy-of></xsl:for-each>
-        <xsl:choose>
-          <xsl:when test="name(.) = 'state'"></xsl:when>
-          <xsl:otherwise><xsl:apply-templates select="node()" /></xsl:otherwise>
-        </xsl:choose>
-    </xsl:copy>
-    </xsl:if>
-  </xsl:template>
-
-  <xsl:template match="d:data">
-    <xsl:apply-templates />
-  </xsl:template>
-
-  <xsl:template match="d:data/ocp:components">
-    <xsl:apply-templates />
-  </xsl:template>
-
-  </xsl:stylesheet>
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/iana-afn-safi@2013-07-04.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/iana-afn-safi@2013-07-04.yang
deleted file mode 100644 (file)
index c076260..0000000
+++ /dev/null
@@ -1,526 +0,0 @@
-module iana-afn-safi {
-  namespace "urn:ietf:params:xml:ns:yang:iana-afn-safi";
-  prefix "ianaaf";
-
-  organization
-    "IANA";
-  contact
-    "        Internet Assigned Numbers Authority
-
-     Postal: ICANN
-             4676 Admiralty Way, Suite 330
-             Marina del Rey, CA 90292
-
-     Tel:    +1 310 823 9358
-     E-Mail: iana&iana.org";
-  description
-    "This YANG module provides two typedefs containing YANG
-     definitions for the following IANA-registered enumerations:
-
-     - Address Family Numbers (AFN)
-
-     - Subsequent Address Family Identifiers (SAFI)
-
-     The latest revision of this YANG module can be obtained from the
-     IANA web site.
-
-     Copyright (c) 2012 IETF Trust and the persons identified as
-     authors of the code. All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject to
-     the license terms contained in, the Simplified BSD License set
-     forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC XXXX; see the
-     RFC itself for full legal notices.";
-  // RFC Ed.: replace XXXX with actual RFC number and remove this
-  // note.
-
-  // RFC Ed.: update the date below with the date of RFC publication
-  // and remove this note.
-  revision 2013-07-04 {
-    description
-      "Initial revision.";
-    reference
-      "RFC XXXX: IANA Address Family Numbers and
-                 Subsequent Address Family Identifiers YANG Module";
-  }
-
-  typedef address-family {
-    type enumeration {
-      // value 0 is reserved by IANA
-      enum ipV4 {
-        value "1";
-        description
-          "IP version 4";
-      }
-      enum ipV6 {
-        value "2";
-        description
-          "IP version 6";
-      }
-      enum nsap {
-        value "3";
-        description
-          "NSAP";
-      }
-      enum hdlc {
-        value "4";
-        description
-          "HDLC (8-bit multidrop)";
-      }
-      enum bbn1822 {
-        value "5";
-        description
-          "BBN 1822";
-      }
-      enum all802 {
-        value "6";
-        description
-          "802 (includes all 802 media plus Ethernet 'canonical
-           format')";
-      }
-      enum e163 {
-        value "7";
-        description
-          "E.163";
-      }
-      enum e164 {
-        value "8";
-        description
-          "E.164 (SMDS, FrameRelay, ATM)";
-      }
-      enum f69 {
-        value "9";
-        description
-          "F.69 (Telex)";
-      }
-      enum x121 {
-        value "10";
-        description
-          "X.121 (X.25, Frame Relay)";
-      }
-      enum ipx {
-        value "11";
-        description
-          "IPX (Internetwork Packet Exchange)";
-      }
-      enum appletalk {
-        value "12";
-        description
-          "Appletalk";
-      }
-      enum decnetIV {
-        value "13";
-        description
-          "DECnet IV";
-      }
-      enum banyanVines {
-        value "14";
-        description
-          "Banyan Vines";
-      }
-      enum e164withNsap {
-        value "15";
-        description
-          "E.164 with NSAP format subaddress";
-        reference
-          "ATM Forum UNI 3.1";
-      }
-      enum dns {
-        value "16";
-        description
-          "DNS (Domain Name System)";
-      }
-      enum distinguishedName {
-        value "17";
-        description
-          "Distinguished Name (per X.500)";
-      }
-      enum asNumber {
-        value "18";
-        description
-          "Autonomous System Number";
-      }
-      enum xtpOverIpv4 {
-        value "19";
-        description
-          "XTP over IP version 4";
-      }
-      enum xtpOverIpv6 {
-        value "20";
-        description
-          "XTP over IP version 6";
-      }
-      enum xtpNativeModeXTP {
-        value "21";
-        description
-          "XTP native mode XTP";
-      }
-      enum fibreChannelWWPN {
-        value "22";
-        description
-          "Fibre Channel World-Wide Port Name";
-      }
-      enum fibreChannelWWNN {
-        value "23";
-        description
-          "Fibre Channel World-Wide Node Name";
-      }
-      enum gwid {
-        value "24";
-        description
-          "Gateway Identifier";
-      }
-      // FIXME: This one is actually called "afi" in the MIB, but
-      // that must be a mistake.
-      enum l2vpn {
-        value "25";
-        description
-          "AFI for L2VPN information";
-        reference
-          "RFC 4761: Virtual Private LAN Service (VPLS): Using BGP
-           for Auto-Discovery and Signaling
-
-           RFC 6074: Provisioning, Auto-Discovery, and Signaling in
-           Layer 2 Virtual Private Networks (L2VPNs)";
-      }
-      enum mplsTpSectionEndpointIdentifier {
-        value "26";
-        description
-          "MPLS-TP Section Endpoint Identifier";
-        reference
-          "draft-ietf-mpls-gach-adv";
-      }
-      enum mplsTpLspEndpointIdentifier {
-        value "27";
-        description
-          "MPLS-TP LSP Endpoint Identifier";
-        reference
-          "draft-ietf-mpls-gach-adv";
-      }
-      enum mplsTpPseudowireEndpointIdentifier {
-        value "28";
-        description
-          "MPLS-TP Pseudowire Endpoint Identifier";
-        reference
-          "draft-ietf-mpls-gach-adv";
-      }
-      enum eigrpCommonServiceFamily {
-        value "16384";
-        description
-          "EIGRP Common Service Family";
-      }
-      enum eigrpIpv4ServiceFamily {
-        value "16385";
-        description
-          "EIGRP IPv4 Service Family";
-      }
-      enum eigrpIpv6ServiceFamily {
-        value "16386";
-        description
-          "EIGRP IPv6 Service Family";
-      }
-      enum lispCanonicalAddressFormat {
-        value "16387";
-        description
-          "LISP Canonical Address Format (LCAF)";
-      }
-      enum bgpLs {
-        value "16388";
-        description
-          "BGP-LS";
-        reference
-          "draft-ietf-idr-ls-distribution";
-      }
-      enum 48BitMac {
-        value "16389";
-        description
-          "48-bit MAC";
-        reference
-          "draft-eastlake-rfc5342bis";
-      }
-      enum 64BitMac {
-        value "16390";
-        description
-          "64-bit MAC";
-        reference
-          "draft-eastlake-rfc5342bis";
-      }
-      // value 65535 is reserved by IANA
-    }
-    description
-      "This typedef is a YANG enumeration of IANA-registered address
-       family numbers (AFN).";
-    reference
-      "IANA Address Family Numbers registry.
-       <http://www.iana.org/assignments/address-family-numbers>";
-  }
-
-  typedef subsequent-address-family {
-    type enumeration {
-      // value 0 is reserved by IANA
-      enum nlriUnicast {
-        value "1";
-        description
-          "Network Layer Reachability Information used for unicast
-           forwarding";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum nlriMulticast {
-        value "2";
-        description
-          "Network Layer Reachability Information used for multicast
-           forwarding";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      // value 3 is reserved by IANA
-      enum nlriMpls {
-        value "4";
-        description
-          "Network Layer Reachability Information (NLRI) with MPLS
-           Labels";
-        reference
-          "RFC 3107: Carrying Label Information in BGP-4";
-      }
-      enum mcastVpn {
-        value "5";
-        description
-          "MCAST-VPN";
-        reference
-          "RFC 6514: BGP Encodings and Procedures for Multicast in
-           MPLS/BGP IP VPNs";
-      }
-      enum nlriDynamicMsPw {
-        value "6";
-        status "obsolete";
-        description
-          "Network Layer Reachability Information used for Dynamic
-           Placement of Multi-Segment Pseudowires (TEMPORARY -
-           Expires 2008-08-23)";
-        reference
-          "draft-ietf-pwe3-dynamic-ms-pw: Dynamic Placement of Multi
-           Segment Pseudowires";
-      }
-      enum encapsulation {
-        value "7";
-        description
-          "Encapsulation SAFI";
-        reference
-          "RFC 5512: The BGP Encapsulation Subsequent Address Family
-           Identifier (SAFI) and the BGP Tunnel Encapsulation
-           Attribute";
-      }
-      enum tunnel {
-        value "64";
-        status "obsolete";
-        description
-          "Tunnel SAFI";
-        reference
-          "draft-nalawade-kapoor-tunnel-safi: BGP Tunnel SAFI";
-      }
-      enum vpls {
-        value "65";
-        description
-          "Virtual Private LAN Service (VPLS)";
-        reference
-          "RFC 4761: Virtual Private LAN Service (VPLS): Using BGP
-           for Auto-Discovery and Signaling
-
-           RFC 6074: Provisioning, Auto-Discovery, and Signaling in
-           Layer 2 Virtual Private Networks (L2VPNs)";
-      }
-      enum bgpMdt {
-        value "66";
-        description
-          "BGP MDT SAFI";
-        reference
-          "RFC 6037: Cisco Systems' Solution for Multicast in
-           BGP/MPLS IP VPNs";
-      }
-      enum bgp4over6 {
-        value "67";
-        description
-          "BGP 4over6 SAFI";
-        reference
-          "RFC 5747: 4over6 Transit Solution Using IP Encapsulation
-           and MP-BGP Extensions";
-      }
-      enum bgp6over4 {
-        value "68";
-        description
-          "BGP 6over4 SAFI";
-      }
-      enum l1VpnAutoDiscovery {
-        value "69";
-        description
-          "Layer-1 VPN auto-discovery information";
-        reference
-          "RFC 5195: BGP-Based Auto-Discovery for Layer-1 VPNs";
-      }
-      enum mplsVpn {
-        value "128";
-        description
-          "MPLS-labeled VPN address";
-        reference
-          "RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs)";
-      }
-      enum multicastBgpMplsVpn {
-        value "129";
-        description
-          "Multicast for BGP/MPLS IP Virtual Private Networks
-           (VPNs)";
-        reference
-          "RFC 6513: Multicast in MPLS/BGP IP VPNs
-
-           RFC 6514: BGP Encodings and Procedures for Multicast in
-           MPLS/BGP IP VPNs";
-      }
-      // values 130-131 are reserved by IANA
-      enum routeTargetConstraints {
-        value "132";
-        description
-          "Route Target constraints";
-        reference
-          "RFC 4684: Constrained Route Distribution for Border
-           Gateway Protocol/MultiProtocol Label Switching (BGP/MPLS)
-           Internet Protocol (IP) Virtual Private Networks (VPNs)";
-      }
-      enum ipv4DissFlow {
-        value "133";
-        description
-          "IPv4 dissemination of flow specification rules";
-        reference
-          "RFC 5575: Dissemination of Flow Specification Rules";
-      }
-      enum vpnv4DissFlow {
-        value "134";
-        description
-          "VPNv4 dissemination of flow specification rules";
-        reference
-          "RFC 5575: Dissemination of Flow Specification Rules";
-      }
-      // values 135-139 are reserved by IANA
-      enum vpnAutoDiscovery {
-        value "140";
-        status "obsolete";
-        description
-          "VPN auto-discovery";
-        reference
-          "draft-ietf-l3vpn-bgpvpn-auto: Using BGP as an
-           Auto-Discovery Mechanism for VR-based Layer-3 VPNs";
-      }
-      // values 141-240 are reserved by IANA
-      enum private241 {
-        value "241";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private242 {
-        value "242";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private243 {
-        value "243";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private244 {
-        value "244";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private245 {
-        value "245";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private246 {
-        value "246";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private247 {
-        value "247";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private248 {
-        value "248";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private249 {
-        value "249";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private250 {
-        value "250";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private251 {
-        value "251";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private252 {
-        value "252";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private253 {
-        value "253";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private254 {
-        value "254";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      // value 255 is reserved by IANA
-    }
-    description
-      "This typedef is a YANG enumeration of IANA-registered
-       subsequent address family identifiers (SAFI).";
-    reference
-      "IANA SAFI Values registry.
-       <http://www.iana.org/assignments/safi-namespace>";
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/iana-if-type@2017-01-19.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/iana-if-type@2017-01-19.yang
deleted file mode 100644 (file)
index 4a684aa..0000000
+++ /dev/null
@@ -1,1620 +0,0 @@
-module iana-if-type {
-  namespace "urn:ietf:params:xml:ns:yang:iana-if-type";
-  prefix ianaift;
-
-  import ietf-interfaces {
-    prefix if;
-  }
-
-  organization "IANA";
-  contact
-    "        Internet Assigned Numbers Authority
-
-     Postal: ICANN
-             12025 Waterfront Drive, Suite 300
-             Los Angeles, CA 90094-2536
-             United States
-
-     Tel:    +1 310 301 5800
-     <mailto:iana&iana.org>";
-  description
-    "This YANG module defines YANG identities for IANA-registered
-     interface types.
-
-     This YANG module is maintained by IANA and reflects the
-     'ifType definitions' registry.
-
-     The latest revision of this YANG module can be obtained from
-     the IANA web site.
-
-     Requests for new values should be made to IANA via
-     email (iana&iana.org).
-
-     Copyright (c) 2014 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     The initial version of this YANG module is part of RFC 7224;
-     see the RFC itself for full legal notices.";
-  reference
-    "IANA 'ifType definitions' registry.
-     <http://www.iana.org/assignments/smi-numbers>";
-
-  revision 2017-01-19 {
-    description
-      "Registered ifType 289.";
-  }
-
-  revision 2016-11-23 {
-    description
-      "Registered ifTypes 283-288.";
-  }
-
-  revision 2016-06-09 {
-    description
-      "Registered ifType 282.";
-  }
-  revision 2016-05-03 {
-    description
-      "Registered ifType 281.";
-  }
-  revision 2015-06-12 {
-    description
-      "Corrected formatting issue.";
-  }
-  revision 2014-09-24 {
-    description
-      "Registered ifType 280.";
-  }
-  revision 2014-09-19 {
-    description
-      "Registered ifType 279.";
-  }
-  revision 2014-07-03 {
-    description
-      "Registered ifTypes 277-278.";
-  }
-  revision 2014-05-19 {
-    description
-      "Updated the contact address.";
-  }
-  revision 2014-05-08 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 7224: IANA Interface Type YANG Module";
-  }
-
-  identity iana-interface-type {
-    base if:interface-type;
-    description
-      "This identity is used as a base for all interface types
-       defined in the 'ifType definitions' registry.";
-  }
-
-  identity other {
-    base iana-interface-type;
-  }
-  identity regular1822 {
-    base iana-interface-type;
-  }
-  identity hdh1822 {
-    base iana-interface-type;
-  }
-  identity ddnX25 {
-    base iana-interface-type;
-  }
-  identity rfc877x25 {
-    base iana-interface-type;
-    reference
-      "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer";
-  }
-  identity ethernetCsmacd {
-    base iana-interface-type;
-    description
-      "For all Ethernet-like interfaces, regardless of speed,
-       as per RFC 3635.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity iso88023Csmacd {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Deprecated via RFC 3635.
-       Use ethernetCsmacd(6) instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity iso88024TokenBus {
-    base iana-interface-type;
-  }
-  identity iso88025TokenRing {
-    base iana-interface-type;
-  }
-  identity iso88026Man {
-    base iana-interface-type;
-  }
-  identity starLan {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Deprecated via RFC 3635.
-       Use ethernetCsmacd(6) instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity proteon10Mbit {
-    base iana-interface-type;
-  }
-  identity proteon80Mbit {
-    base iana-interface-type;
-  }
-  identity hyperchannel {
-    base iana-interface-type;
-  }
-  identity fddi {
-    base iana-interface-type;
-    reference
-      "RFC 1512 - FDDI Management Information Base";
-  }
-  identity lapb {
-    base iana-interface-type;
-    reference
-      "RFC 1381 - SNMP MIB Extension for X.25 LAPB";
-  }
-  identity sdlc {
-    base iana-interface-type;
-  }
-  identity ds1 {
-    base iana-interface-type;
-    description
-      "DS1-MIB.";
-    reference
-      "RFC 4805 - Definitions of Managed Objects for the
-                  DS1, J1, E1, DS2, and E2 Interface Types";
-  }
-  identity e1 {
-    base iana-interface-type;
-    status obsolete;
-    description
-      "Obsolete; see DS1-MIB.";
-    reference
-      "RFC 4805 - Definitions of Managed Objects for the
-                  DS1, J1, E1, DS2, and E2 Interface Types";
-  }
-  identity basicISDN {
-    base iana-interface-type;
-    description
-      "No longer used.  See also RFC 2127.";
-  }
-  identity primaryISDN {
-    base iana-interface-type;
-    description
-      "No longer used.  See also RFC 2127.";
-  }
-  identity propPointToPointSerial {
-    base iana-interface-type;
-    description
-      "Proprietary serial.";
-  }
-  identity ppp {
-    base iana-interface-type;
-  }
-  identity softwareLoopback {
-    base iana-interface-type;
-  }
-  identity eon {
-    base iana-interface-type;
-    description
-      "CLNP over IP.";
-  }
-  identity ethernet3Mbit {
-    base iana-interface-type;
-  }
-  identity nsip {
-    base iana-interface-type;
-    description
-      "XNS over IP.";
-  }
-  identity slip {
-    base iana-interface-type;
-    description
-      "Generic SLIP.";
-  }
-  identity ultra {
-    base iana-interface-type;
-    description
-      "Ultra Technologies.";
-  }
-  identity ds3 {
-    base iana-interface-type;
-    description
-      "DS3-MIB.";
-    reference
-      "RFC 3896 - Definitions of Managed Objects for the
-                  DS3/E3 Interface Type";
-  }
-  identity sip {
-    base iana-interface-type;
-    description
-      "SMDS, coffee.";
-    reference
-      "RFC 1694 - Definitions of Managed Objects for SMDS
-                  Interfaces using SMIv2";
-  }
-  identity frameRelay {
-    base iana-interface-type;
-    description
-      "DTE only.";
-    reference
-      "RFC 2115 - Management Information Base for Frame Relay
-                  DTEs Using SMIv2";
-  }
-  identity rs232 {
-    base iana-interface-type;
-    reference
-      "RFC 1659 - Definitions of Managed Objects for RS-232-like
-                  Hardware Devices using SMIv2";
-  }
-  identity para {
-    base iana-interface-type;
-    description
-      "Parallel-port.";
-    reference
-      "RFC 1660 - Definitions of Managed Objects for
-                  Parallel-printer-like Hardware Devices using
-                  SMIv2";
-  }
-  identity arcnet {
-    base iana-interface-type;
-    description
-      "ARCnet.";
-  }
-  identity arcnetPlus {
-    base iana-interface-type;
-    description
-      "ARCnet Plus.";
-  }
-  identity atm {
-    base iana-interface-type;
-    description
-      "ATM cells.";
-  }
-  identity miox25 {
-    base iana-interface-type;
-    reference
-      "RFC 1461 - SNMP MIB extension for Multiprotocol
-                  Interconnect over X.25";
-  }
-  identity sonet {
-    base iana-interface-type;
-    description
-      "SONET or SDH.";
-  }
-  identity x25ple {
-    base iana-interface-type;
-    reference
-      "RFC 2127 - ISDN Management Information Base using SMIv2";
-  }
-  identity iso88022llc {
-    base iana-interface-type;
-  }
-  identity localTalk {
-    base iana-interface-type;
-  }
-  identity smdsDxi {
-    base iana-interface-type;
-  }
-  identity frameRelayService {
-    base iana-interface-type;
-    description
-      "FRNETSERV-MIB.";
-    reference
-      "RFC 2954 - Definitions of Managed Objects for Frame
-                  Relay Service";
-  }
-  identity v35 {
-    base iana-interface-type;
-  }
-  identity hssi {
-    base iana-interface-type;
-  }
-  identity hippi {
-    base iana-interface-type;
-  }
-  identity modem {
-    base iana-interface-type;
-    description
-      "Generic modem.";
-  }
-  identity aal5 {
-    base iana-interface-type;
-    description
-      "AAL5 over ATM.";
-  }
-  identity sonetPath {
-    base iana-interface-type;
-  }
-  identity sonetVT {
-    base iana-interface-type;
-  }
-  identity smdsIcip {
-    base iana-interface-type;
-    description
-      "SMDS InterCarrier Interface.";
-  }
-  identity propVirtual {
-    base iana-interface-type;
-    description
-      "Proprietary virtual/internal.";
-    reference
-      "RFC 2863 - The Interfaces Group MIB";
-  }
-  identity propMultiplexor {
-    base iana-interface-type;
-    description
-      "Proprietary multiplexing.";
-    reference
-      "RFC 2863 - The Interfaces Group MIB";
-  }
-  identity ieee80212 {
-    base iana-interface-type;
-    description
-      "100BaseVG.";
-  }
-  identity fibreChannel {
-    base iana-interface-type;
-    description
-      "Fibre Channel.";
-  }
-  identity hippiInterface {
-    base iana-interface-type;
-    description
-      "HIPPI interfaces.";
-  }
-  identity frameRelayInterconnect {
-    base iana-interface-type;
-    status obsolete;
-    description
-      "Obsolete; use either
-       frameRelay(32) or frameRelayService(44).";
-  }
-  identity aflane8023 {
-    base iana-interface-type;
-    description
-      "ATM Emulated LAN for 802.3.";
-  }
-  identity aflane8025 {
-    base iana-interface-type;
-    description
-      "ATM Emulated LAN for 802.5.";
-  }
-  identity cctEmul {
-    base iana-interface-type;
-    description
-      "ATM Emulated circuit.";
-  }
-  identity fastEther {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Obsoleted via RFC 3635.
-       ethernetCsmacd(6) should be used instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity isdn {
-    base iana-interface-type;
-    description
-      "ISDN and X.25.";
-    reference
-      "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN
-                  in the Packet Mode";
-  }
-  identity v11 {
-    base iana-interface-type;
-    description
-      "CCITT V.11/X.21.";
-  }
-  identity v36 {
-    base iana-interface-type;
-    description
-      "CCITT V.36.";
-  }
-  identity g703at64k {
-    base iana-interface-type;
-    description
-      "CCITT G703 at 64Kbps.";
-  }
-  identity g703at2mb {
-    base iana-interface-type;
-    status obsolete;
-    description
-      "Obsolete; see DS1-MIB.";
-  }
-  identity qllc {
-    base iana-interface-type;
-    description
-      "SNA QLLC.";
-  }
-  identity fastEtherFX {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Obsoleted via RFC 3635.
-       ethernetCsmacd(6) should be used instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity channel {
-    base iana-interface-type;
-    description
-      "Channel.";
-  }
-  identity ieee80211 {
-    base iana-interface-type;
-    description
-      "Radio spread spectrum.";
-  }
-  identity ibm370parChan {
-    base iana-interface-type;
-    description
-      "IBM System 360/370 OEMI Channel.";
-  }
-  identity escon {
-    base iana-interface-type;
-    description
-      "IBM Enterprise Systems Connection.";
-  }
-  identity dlsw {
-    base iana-interface-type;
-    description
-      "Data Link Switching.";
-  }
-  identity isdns {
-    base iana-interface-type;
-    description
-      "ISDN S/T interface.";
-  }
-  identity isdnu {
-    base iana-interface-type;
-    description
-      "ISDN U interface.";
-  }
-  identity lapd {
-    base iana-interface-type;
-    description
-      "Link Access Protocol D.";
-  }
-  identity ipSwitch {
-    base iana-interface-type;
-    description
-      "IP Switching Objects.";
-  }
-  identity rsrb {
-    base iana-interface-type;
-    description
-      "Remote Source Route Bridging.";
-  }
-  identity atmLogical {
-    base iana-interface-type;
-    description
-      "ATM Logical Port.";
-    reference
-      "RFC 3606 - Definitions of Supplemental Managed Objects
-                  for ATM Interface";
-  }
-  identity ds0 {
-    base iana-interface-type;
-    description
-      "Digital Signal Level 0.";
-    reference
-      "RFC 2494 - Definitions of Managed Objects for the DS0
-                  and DS0 Bundle Interface Type";
-  }
-  identity ds0Bundle {
-    base iana-interface-type;
-    description
-      "Group of ds0s on the same ds1.";
-    reference
-      "RFC 2494 - Definitions of Managed Objects for the DS0
-                  and DS0 Bundle Interface Type";
-  }
-  identity bsc {
-    base iana-interface-type;
-    description
-      "Bisynchronous Protocol.";
-  }
-  identity async {
-    base iana-interface-type;
-    description
-      "Asynchronous Protocol.";
-  }
-  identity cnr {
-    base iana-interface-type;
-    description
-      "Combat Net Radio.";
-  }
-  identity iso88025Dtr {
-    base iana-interface-type;
-    description
-      "ISO 802.5r DTR.";
-  }
-  identity eplrs {
-    base iana-interface-type;
-    description
-      "Ext Pos Loc Report Sys.";
-  }
-  identity arap {
-    base iana-interface-type;
-    description
-      "Appletalk Remote Access Protocol.";
-  }
-  identity propCnls {
-    base iana-interface-type;
-    description
-      "Proprietary Connectionless Protocol.";
-  }
-  identity hostPad {
-    base iana-interface-type;
-    description
-      "CCITT-ITU X.29 PAD Protocol.";
-  }
-  identity termPad {
-    base iana-interface-type;
-    description
-      "CCITT-ITU X.3 PAD Facility.";
-  }
-  identity frameRelayMPI {
-    base iana-interface-type;
-    description
-      "Multiproto Interconnect over FR.";
-  }
-  identity x213 {
-    base iana-interface-type;
-    description
-      "CCITT-ITU X213.";
-  }
-  identity adsl {
-    base iana-interface-type;
-    description
-      "Asymmetric Digital Subscriber Loop.";
-  }
-  identity radsl {
-    base iana-interface-type;
-    description
-      "Rate-Adapt. Digital Subscriber Loop.";
-  }
-  identity sdsl {
-    base iana-interface-type;
-    description
-      "Symmetric Digital Subscriber Loop.";
-  }
-  identity vdsl {
-    base iana-interface-type;
-    description
-      "Very H-Speed Digital Subscrib. Loop.";
-  }
-  identity iso88025CRFPInt {
-    base iana-interface-type;
-    description
-      "ISO 802.5 CRFP.";
-  }
-  identity myrinet {
-    base iana-interface-type;
-    description
-      "Myricom Myrinet.";
-  }
-  identity voiceEM {
-    base iana-interface-type;
-    description
-      "Voice recEive and transMit.";
-  }
-  identity voiceFXO {
-    base iana-interface-type;
-    description
-      "Voice Foreign Exchange Office.";
-  }
-  identity voiceFXS {
-    base iana-interface-type;
-    description
-      "Voice Foreign Exchange Station.";
-  }
-  identity voiceEncap {
-    base iana-interface-type;
-    description
-      "Voice encapsulation.";
-  }
-  identity voiceOverIp {
-    base iana-interface-type;
-    description
-      "Voice over IP encapsulation.";
-  }
-  identity atmDxi {
-    base iana-interface-type;
-    description
-      "ATM DXI.";
-  }
-  identity atmFuni {
-    base iana-interface-type;
-    description
-      "ATM FUNI.";
-  }
-  identity atmIma {
-    base iana-interface-type;
-    description
-      "ATM IMA.";
-  }
-  identity pppMultilinkBundle {
-    base iana-interface-type;
-    description
-      "PPP Multilink Bundle.";
-  }
-  identity ipOverCdlc {
-    base iana-interface-type;
-    description
-      "IBM ipOverCdlc.";
-  }
-  identity ipOverClaw {
-    base iana-interface-type;
-    description
-      "IBM Common Link Access to Workstn.";
-  }
-  identity stackToStack {
-    base iana-interface-type;
-    description
-      "IBM stackToStack.";
-  }
-  identity virtualIpAddress {
-    base iana-interface-type;
-    description
-      "IBM VIPA.";
-  }
-  identity mpc {
-    base iana-interface-type;
-    description
-      "IBM multi-protocol channel support.";
-  }
-  identity ipOverAtm {
-    base iana-interface-type;
-    description
-      "IBM ipOverAtm.";
-    reference
-      "RFC 2320 - Definitions of Managed Objects for Classical IP
-                  and ARP Over ATM Using SMIv2 (IPOA-MIB)";
-  }
-  identity iso88025Fiber {
-    base iana-interface-type;
-    description
-      "ISO 802.5j Fiber Token Ring.";
-  }
-  identity tdlc {
-    base iana-interface-type;
-    description
-      "IBM twinaxial data link control.";
-  }
-  identity gigabitEthernet {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Obsoleted via RFC 3635.
-       ethernetCsmacd(6) should be used instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity hdlc {
-    base iana-interface-type;
-    description
-      "HDLC.";
-  }
-  identity lapf {
-    base iana-interface-type;
-    description
-      "LAP F.";
-  }
-  identity v37 {
-    base iana-interface-type;
-    description
-      "V.37.";
-  }
-  identity x25mlp {
-    base iana-interface-type;
-    description
-      "Multi-Link Protocol.";
-  }
-  identity x25huntGroup {
-    base iana-interface-type;
-    description
-      "X25 Hunt Group.";
-  }
-  identity transpHdlc {
-    base iana-interface-type;
-    description
-      "Transp HDLC.";
-  }
-  identity interleave {
-    base iana-interface-type;
-    description
-      "Interleave channel.";
-  }
-  identity fast {
-    base iana-interface-type;
-    description
-      "Fast channel.";
-  }
-  identity ip {
-    base iana-interface-type;
-    description
-      "IP (for APPN HPR in IP networks).";
-  }
-  identity docsCableMaclayer {
-    base iana-interface-type;
-    description
-      "CATV Mac Layer.";
-  }
-  identity docsCableDownstream {
-    base iana-interface-type;
-    description
-      "CATV Downstream interface.";
-  }
-  identity docsCableUpstream {
-    base iana-interface-type;
-    description
-      "CATV Upstream interface.";
-  }
-  identity a12MppSwitch {
-    base iana-interface-type;
-    description
-      "Avalon Parallel Processor.";
-  }
-  identity tunnel {
-    base iana-interface-type;
-    description
-      "Encapsulation interface.";
-  }
-  identity coffee {
-    base iana-interface-type;
-    description
-      "Coffee pot.";
-    reference
-      "RFC 2325 - Coffee MIB";
-  }
-  identity ces {
-    base iana-interface-type;
-    description
-      "Circuit Emulation Service.";
-  }
-  identity atmSubInterface {
-    base iana-interface-type;
-    description
-      "ATM Sub Interface.";
-  }
-  identity l2vlan {
-    base iana-interface-type;
-    description
-      "Layer 2 Virtual LAN using 802.1Q.";
-  }
-  identity l3ipvlan {
-    base iana-interface-type;
-    description
-      "Layer 3 Virtual LAN using IP.";
-  }
-  identity l3ipxvlan {
-    base iana-interface-type;
-    description
-      "Layer 3 Virtual LAN using IPX.";
-  }
-  identity digitalPowerline {
-    base iana-interface-type;
-    description
-      "IP over Power Lines.";
-  }
-  identity mediaMailOverIp {
-    base iana-interface-type;
-    description
-      "Multimedia Mail over IP.";
-  }
-  identity dtm {
-    base iana-interface-type;
-    description
-      "Dynamic synchronous Transfer Mode.";
-  }
-  identity dcn {
-    base iana-interface-type;
-    description
-      "Data Communications Network.";
-  }
-  identity ipForward {
-    base iana-interface-type;
-    description
-      "IP Forwarding Interface.";
-  }
-  identity msdsl {
-    base iana-interface-type;
-    description
-      "Multi-rate Symmetric DSL.";
-  }
-  identity ieee1394 {
-    base iana-interface-type;
-
-    description
-      "IEEE1394 High Performance Serial Bus.";
-  }
-  identity if-gsn {
-    base iana-interface-type;
-    description
-      "HIPPI-6400.";
-  }
-  identity dvbRccMacLayer {
-    base iana-interface-type;
-    description
-      "DVB-RCC MAC Layer.";
-  }
-  identity dvbRccDownstream {
-    base iana-interface-type;
-    description
-      "DVB-RCC Downstream Channel.";
-  }
-  identity dvbRccUpstream {
-    base iana-interface-type;
-    description
-      "DVB-RCC Upstream Channel.";
-  }
-  identity atmVirtual {
-    base iana-interface-type;
-    description
-      "ATM Virtual Interface.";
-  }
-  identity mplsTunnel {
-    base iana-interface-type;
-    description
-      "MPLS Tunnel Virtual Interface.";
-  }
-  identity srp {
-    base iana-interface-type;
-    description
-      "Spatial Reuse Protocol.";
-  }
-  identity voiceOverAtm {
-    base iana-interface-type;
-    description
-      "Voice over ATM.";
-  }
-  identity voiceOverFrameRelay {
-    base iana-interface-type;
-    description
-      "Voice Over Frame Relay.";
-  }
-  identity idsl {
-    base iana-interface-type;
-    description
-      "Digital Subscriber Loop over ISDN.";
-  }
-  identity compositeLink {
-    base iana-interface-type;
-    description
-      "Avici Composite Link Interface.";
-  }
-  identity ss7SigLink {
-    base iana-interface-type;
-    description
-      "SS7 Signaling Link.";
-  }
-  identity propWirelessP2P {
-    base iana-interface-type;
-    description
-      "Prop. P2P wireless interface.";
-  }
-  identity frForward {
-    base iana-interface-type;
-    description
-      "Frame Forward Interface.";
-  }
-  identity rfc1483 {
-    base iana-interface-type;
-    description
-      "Multiprotocol over ATM AAL5.";
-    reference
-      "RFC 1483 - Multiprotocol Encapsulation over ATM
-                  Adaptation Layer 5";
-  }
-  identity usb {
-    base iana-interface-type;
-    description
-      "USB Interface.";
-  }
-  identity ieee8023adLag {
-    base iana-interface-type;
-    description
-      "IEEE 802.3ad Link Aggregate.";
-  }
-  identity bgppolicyaccounting {
-    base iana-interface-type;
-    description
-      "BGP Policy Accounting.";
-  }
-  identity frf16MfrBundle {
-    base iana-interface-type;
-    description
-      "FRF.16 Multilink Frame Relay.";
-  }
-  identity h323Gatekeeper {
-    base iana-interface-type;
-    description
-      "H323 Gatekeeper.";
-  }
-  identity h323Proxy {
-    base iana-interface-type;
-    description
-      "H323 Voice and Video Proxy.";
-  }
-  identity mpls {
-    base iana-interface-type;
-    description
-      "MPLS.";
-  }
-  identity mfSigLink {
-    base iana-interface-type;
-    description
-      "Multi-frequency signaling link.";
-  }
-  identity hdsl2 {
-    base iana-interface-type;
-    description
-      "High Bit-Rate DSL - 2nd generation.";
-  }
-  identity shdsl {
-    base iana-interface-type;
-    description
-      "Multirate HDSL2.";
-  }
-  identity ds1FDL {
-    base iana-interface-type;
-    description
-      "Facility Data Link (4Kbps) on a DS1.";
-  }
-  identity pos {
-    base iana-interface-type;
-    description
-      "Packet over SONET/SDH Interface.";
-  }
-  identity dvbAsiIn {
-    base iana-interface-type;
-    description
-      "DVB-ASI Input.";
-  }
-  identity dvbAsiOut {
-    base iana-interface-type;
-    description
-      "DVB-ASI Output.";
-  }
-  identity plc {
-    base iana-interface-type;
-    description
-      "Power Line Communications.";
-  }
-  identity nfas {
-    base iana-interface-type;
-    description
-      "Non-Facility Associated Signaling.";
-  }
-  identity tr008 {
-    base iana-interface-type;
-    description
-      "TR008.";
-  }
-  identity gr303RDT {
-    base iana-interface-type;
-    description
-      "Remote Digital Terminal.";
-  }
-  identity gr303IDT {
-    base iana-interface-type;
-    description
-      "Integrated Digital Terminal.";
-  }
-  identity isup {
-    base iana-interface-type;
-    description
-      "ISUP.";
-  }
-  identity propDocsWirelessMaclayer {
-    base iana-interface-type;
-    description
-      "Cisco proprietary Maclayer.";
-  }
-  identity propDocsWirelessDownstream {
-    base iana-interface-type;
-    description
-      "Cisco proprietary Downstream.";
-  }
-  identity propDocsWirelessUpstream {
-    base iana-interface-type;
-    description
-      "Cisco proprietary Upstream.";
-  }
-  identity hiperlan2 {
-    base iana-interface-type;
-    description
-      "HIPERLAN Type 2 Radio Interface.";
-  }
-  identity propBWAp2Mp {
-    base iana-interface-type;
-    description
-      "PropBroadbandWirelessAccesspt2Multipt (use of this value
-       for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f
-       is deprecated, and ieee80216WMAN(237) should be used
-       instead).";
-  }
-  identity sonetOverheadChannel {
-    base iana-interface-type;
-    description
-      "SONET Overhead Channel.";
-  }
-  identity digitalWrapperOverheadChannel {
-    base iana-interface-type;
-    description
-      "Digital Wrapper.";
-  }
-  identity aal2 {
-    base iana-interface-type;
-    description
-      "ATM adaptation layer 2.";
-  }
-  identity radioMAC {
-    base iana-interface-type;
-    description
-      "MAC layer over radio links.";
-  }
-  identity atmRadio {
-    base iana-interface-type;
-    description
-      "ATM over radio links.";
-  }
-  identity imt {
-    base iana-interface-type;
-    description
-      "Inter-Machine Trunks.";
-  }
-  identity mvl {
-    base iana-interface-type;
-    description
-      "Multiple Virtual Lines DSL.";
-  }
-  identity reachDSL {
-    base iana-interface-type;
-    description
-      "Long Reach DSL.";
-  }
-  identity frDlciEndPt {
-    base iana-interface-type;
-    description
-      "Frame Relay DLCI End Point.";
-  }
-  identity atmVciEndPt {
-    base iana-interface-type;
-    description
-      "ATM VCI End Point.";
-  }
-  identity opticalChannel {
-    base iana-interface-type;
-    description
-      "Optical Channel.";
-  }
-  identity opticalTransport {
-    base iana-interface-type;
-    description
-      "Optical Transport.";
-  }
-  identity propAtm {
-    base iana-interface-type;
-    description
-      "Proprietary ATM.";
-  }
-  identity voiceOverCable {
-    base iana-interface-type;
-    description
-      "Voice Over Cable Interface.";
-  }
-  identity infiniband {
-    base iana-interface-type;
-    description
-      "Infiniband.";
-  }
-  identity teLink {
-    base iana-interface-type;
-    description
-      "TE Link.";
-  }
-  identity q2931 {
-    base iana-interface-type;
-    description
-      "Q.2931.";
-  }
-  identity virtualTg {
-    base iana-interface-type;
-    description
-      "Virtual Trunk Group.";
-  }
-  identity sipTg {
-    base iana-interface-type;
-    description
-      "SIP Trunk Group.";
-  }
-  identity sipSig {
-    base iana-interface-type;
-    description
-      "SIP Signaling.";
-  }
-  identity docsCableUpstreamChannel {
-    base iana-interface-type;
-    description
-      "CATV Upstream Channel.";
-  }
-  identity econet {
-    base iana-interface-type;
-    description
-      "Acorn Econet.";
-  }
-  identity pon155 {
-    base iana-interface-type;
-    description
-      "FSAN 155Mb Symetrical PON interface.";
-  }
-  identity pon622 {
-    base iana-interface-type;
-    description
-      "FSAN 622Mb Symetrical PON interface.";
-  }
-  identity bridge {
-    base iana-interface-type;
-    description
-      "Transparent bridge interface.";
-  }
-  identity linegroup {
-    base iana-interface-type;
-    description
-      "Interface common to multiple lines.";
-  }
-  identity voiceEMFGD {
-    base iana-interface-type;
-    description
-      "Voice E&M Feature Group D.";
-  }
-  identity voiceFGDEANA {
-    base iana-interface-type;
-    description
-      "Voice FGD Exchange Access North American.";
-  }
-  identity voiceDID {
-    base iana-interface-type;
-    description
-      "Voice Direct Inward Dialing.";
-  }
-  identity mpegTransport {
-    base iana-interface-type;
-    description
-      "MPEG transport interface.";
-  }
-  identity sixToFour {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "6to4 interface (DEPRECATED).";
-    reference
-      "RFC 4087 - IP Tunnel MIB";
-  }
-  identity gtp {
-    base iana-interface-type;
-    description
-      "GTP (GPRS Tunneling Protocol).";
-  }
-  identity pdnEtherLoop1 {
-    base iana-interface-type;
-    description
-      "Paradyne EtherLoop 1.";
-  }
-  identity pdnEtherLoop2 {
-    base iana-interface-type;
-    description
-      "Paradyne EtherLoop 2.";
-  }
-  identity opticalChannelGroup {
-    base iana-interface-type;
-    description
-      "Optical Channel Group.";
-  }
-  identity homepna {
-    base iana-interface-type;
-    description
-      "HomePNA ITU-T G.989.";
-  }
-  identity gfp {
-    base iana-interface-type;
-    description
-      "Generic Framing Procedure (GFP).";
-  }
-  identity ciscoISLvlan {
-    base iana-interface-type;
-    description
-      "Layer 2 Virtual LAN using Cisco ISL.";
-  }
-  identity actelisMetaLOOP {
-    base iana-interface-type;
-    description
-      "Acteleis proprietary MetaLOOP High Speed Link.";
-  }
-  identity fcipLink {
-    base iana-interface-type;
-    description
-      "FCIP Link.";
-  }
-  identity rpr {
-    base iana-interface-type;
-    description
-      "Resilient Packet Ring Interface Type.";
-  }
-  identity qam {
-    base iana-interface-type;
-    description
-      "RF Qam Interface.";
-  }
-  identity lmp {
-    base iana-interface-type;
-    description
-      "Link Management Protocol.";
-    reference
-      "RFC 4327 - Link Management Protocol (LMP) Management
-                  Information Base (MIB)";
-  }
-  identity cblVectaStar {
-    base iana-interface-type;
-    description
-      "Cambridge Broadband Networks Limited VectaStar.";
-  }
-  identity docsCableMCmtsDownstream {
-    base iana-interface-type;
-    description
-      "CATV Modular CMTS Downstream Interface.";
-  }
-  identity adsl2 {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Asymmetric Digital Subscriber Loop Version 2
-       (DEPRECATED/OBSOLETED - please use adsl2plus(238)
-       instead).";
-    reference
-      "RFC 4706 - Definitions of Managed Objects for Asymmetric
-                  Digital Subscriber Line 2 (ADSL2)";
-  }
-  identity macSecControlledIF {
-    base iana-interface-type;
-    description
-      "MACSecControlled.";
-  }
-  identity macSecUncontrolledIF {
-    base iana-interface-type;
-    description
-      "MACSecUncontrolled.";
-  }
-  identity aviciOpticalEther {
-    base iana-interface-type;
-    description
-      "Avici Optical Ethernet Aggregate.";
-  }
-  identity atmbond {
-    base iana-interface-type;
-    description
-      "atmbond.";
-  }
-  identity voiceFGDOS {
-    base iana-interface-type;
-    description
-      "Voice FGD Operator Services.";
-  }
-  identity mocaVersion1 {
-    base iana-interface-type;
-    description
-      "MultiMedia over Coax Alliance (MoCA) Interface
-       as documented in information provided privately to IANA.";
-  }
-  identity ieee80216WMAN {
-    base iana-interface-type;
-    description
-      "IEEE 802.16 WMAN interface.";
-  }
-  identity adsl2plus {
-    base iana-interface-type;
-    description
-      "Asymmetric Digital Subscriber Loop Version 2 -
-       Version 2 Plus and all variants.";
-  }
-  identity dvbRcsMacLayer {
-    base iana-interface-type;
-    description
-      "DVB-RCS MAC Layer.";
-    reference
-      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-  }
-  identity dvbTdm {
-    base iana-interface-type;
-    description
-      "DVB Satellite TDM.";
-    reference
-      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-  }
-  identity dvbRcsTdma {
-    base iana-interface-type;
-    description
-      "DVB-RCS TDMA.";
-    reference
-      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-  }
-  identity x86Laps {
-    base iana-interface-type;
-    description
-      "LAPS based on ITU-T X.86/Y.1323.";
-  }
-  identity wwanPP {
-    base iana-interface-type;
-    description
-      "3GPP WWAN.";
-  }
-  identity wwanPP2 {
-    base iana-interface-type;
-    description
-      "3GPP2 WWAN.";
-  }
-  identity voiceEBS {
-    base iana-interface-type;
-    description
-      "Voice P-phone EBS physical interface.";
-  }
-  identity ifPwType {
-    base iana-interface-type;
-    description
-      "Pseudowire interface type.";
-    reference
-      "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)";
-  }
-  identity ilan {
-    base iana-interface-type;
-    description
-      "Internal LAN on a bridge per IEEE 802.1ap.";
-  }
-  identity pip {
-    base iana-interface-type;
-    description
-      "Provider Instance Port on a bridge per IEEE 802.1ah PBB.";
-  }
-  identity aluELP {
-    base iana-interface-type;
-    description
-      "Alcatel-Lucent Ethernet Link Protection.";
-  }
-  identity gpon {
-    base iana-interface-type;
-    description
-      "Gigabit-capable passive optical networks (G-PON) as per
-       ITU-T G.948.";
-  }
-  identity vdsl2 {
-    base iana-interface-type;
-    description
-      "Very high speed digital subscriber line Version 2
-       (as per ITU-T Recommendation G.993.2).";
-    reference
-      "RFC 5650 - Definitions of Managed Objects for Very High
-                  Speed Digital Subscriber Line 2 (VDSL2)";
-  }
-  identity capwapDot11Profile {
-    base iana-interface-type;
-    description
-      "WLAN Profile Interface.";
-    reference
-      "RFC 5834 - Control and Provisioning of Wireless Access
-                  Points (CAPWAP) Protocol Binding MIB for
-                  IEEE 802.11";
-  }
-  identity capwapDot11Bss {
-    base iana-interface-type;
-    description
-      "WLAN BSS Interface.";
-    reference
-      "RFC 5834 - Control and Provisioning of Wireless Access
-                  Points (CAPWAP) Protocol Binding MIB for
-                  IEEE 802.11";
-  }
-  identity capwapWtpVirtualRadio {
-    base iana-interface-type;
-    description
-      "WTP Virtual Radio Interface.";
-    reference
-      "RFC 5833 - Control and Provisioning of Wireless Access
-                  Points (CAPWAP) Protocol Base MIB";
-  }
-  identity bits {
-    base iana-interface-type;
-    description
-      "bitsport.";
-  }
-  identity docsCableUpstreamRfPort {
-    base iana-interface-type;
-    description
-      "DOCSIS CATV Upstream RF Port.";
-  }
-  identity cableDownstreamRfPort {
-    base iana-interface-type;
-    description
-      "CATV downstream RF Port.";
-  }
-  identity vmwareVirtualNic {
-    base iana-interface-type;
-    description
-      "VMware Virtual Network Interface.";
-  }
-  identity ieee802154 {
-    base iana-interface-type;
-    description
-      "IEEE 802.15.4 WPAN interface.";
-    reference
-      "IEEE 802.15.4-2006";
-  }
-  identity otnOdu {
-    base iana-interface-type;
-    description
-      "OTN Optical Data Unit.";
-  }
-  identity otnOtu {
-    base iana-interface-type;
-    description
-      "OTN Optical channel Transport Unit.";
-  }
-  identity ifVfiType {
-    base iana-interface-type;
-    description
-      "VPLS Forwarding Instance Interface Type.";
-  }
-  identity g9981 {
-    base iana-interface-type;
-    description
-      "G.998.1 bonded interface.";
-  }
-  identity g9982 {
-    base iana-interface-type;
-    description
-      "G.998.2 bonded interface.";
-  }
-  identity g9983 {
-    base iana-interface-type;
-    description
-      "G.998.3 bonded interface.";
-  }
-
-  identity aluEpon {
-    base iana-interface-type;
-    description
-      "Ethernet Passive Optical Networks (E-PON).";
-  }
-  identity aluEponOnu {
-    base iana-interface-type;
-    description
-      "EPON Optical Network Unit.";
-  }
-  identity aluEponPhysicalUni {
-    base iana-interface-type;
-    description
-      "EPON physical User to Network interface.";
-  }
-  identity aluEponLogicalLink {
-    base iana-interface-type;
-    description
-      "The emulation of a point-to-point link over the EPON
-       layer.";
-  }
-  identity aluGponOnu {
-    base iana-interface-type;
-    description
-      "GPON Optical Network Unit.";
-    reference
-      "ITU-T G.984.2";
-  }
-  identity aluGponPhysicalUni {
-    base iana-interface-type;
-    description
-      "GPON physical User to Network interface.";
-    reference
-      "ITU-T G.984.2";
-  }
-  identity vmwareNicTeam {
-    base iana-interface-type;
-    description
-      "VMware NIC Team.";
-  }
-  identity docsOfdmDownstream {
-    base iana-interface-type;
-    description
-      "CATV Downstream OFDM interface.";
-  }
-  identity docsOfdmaUpstream {
-    base iana-interface-type;
-    description
-      "CATV Upstream OFDMA interface.";
-  }
-  identity gfast {
-    base iana-interface-type;
-    description
-      "G.fast port.";
-    reference
-      "ITU-T G.9701";
-  }
-  identity sdci {
-    base iana-interface-type;
-    description
-      "SDCI (IO-Link).";
-    reference
-      "IEC 61131-9 Edition 1.0 2013-09";
-  }
-  identity xboxWireless {
-    base iana-interface-type;
-    description
-      "Xbox wireless.";
-  }
-  identity fastdsl {
-    base iana-interface-type;
-    description
-      "FastDSL.";
-    reference
-      "BBF TR-355";
-  }
-  identity docsCableScte55d1FwdOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-1 OOB Forward Channel.";
-  }
-  identity docsCableScte55d1RetOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-1 OOB Return Channel.";
-  }
-  identity docsCableScte55d2DsOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-2 OOB Downstream Channel.";
-  }
-  identity docsCableScte55d2UsOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-2 OOB Upstream Channel.";
-  }
-  identity docsCableNdf {
-    base iana-interface-type;
-    description
-      "Cable Narrowband Digital Forward.";
-  }
-  identity docsCableNdr {
-    base iana-interface-type;
-    description
-      "Cable Narrowband Digital Return.";
-  }
-  identity ptm {
-    base iana-interface-type;
-    description
-      "Packet Transfer Mode.";
-  }
-}
-
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-inet-types@2013-07-15.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-inet-types@2013-07-15.yang
deleted file mode 100644 (file)
index 5c6f139..0000000
+++ /dev/null
@@ -1,457 +0,0 @@
-module ietf-inet-types {
-
-  namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types";
-  prefix "inet";
-
-  organization
-   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-
-  contact
-   "WG Web:   <http://tools.ietf.org/wg/netmod/>
-    WG List:  <mailto:netmod@ietf.org>
-
-    WG Chair: David Kessens
-              <mailto:david.kessens@nsn.com>
-
-    WG Chair: Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>
-
-    Editor:   Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>";
-
-  description
-   "This module contains a collection of generally useful derived
-    YANG data types for Internet addresses and related things.
-
-    Copyright (c) 2013 IETF Trust and the persons identified as
-    authors of the code.  All rights reserved.
-
-    Redistribution and use in source and binary forms, with or
-    without modification, is permitted pursuant to, and subject
-    to the license terms contained in, the Simplified BSD License
-    set forth in Section 4.c of the IETF Trust's Legal Provisions
-    Relating to IETF Documents
-    (http://trustee.ietf.org/license-info).
-
-    This version of this YANG module is part of RFC 6991; see
-    the RFC itself for full legal notices.";
-
-  revision 2013-07-15 {
-    description
-     "This revision adds the following new data types:
-      - ip-address-no-zone
-      - ipv4-address-no-zone
-      - ipv6-address-no-zone";
-    reference
-     "RFC 6991: Common YANG Data Types";
-  }
-
-  revision 2010-09-24 {
-    description
-     "Initial revision.";
-    reference
-     "RFC 6021: Common YANG Data Types";
-  }
-
-  /*** collection of types related to protocol fields ***/
-
-  typedef ip-version {
-    type enumeration {
-      enum unknown {
-        value "0";
-        description
-         "An unknown or unspecified version of the Internet
-          protocol.";
-      }
-      enum ipv4 {
-        value "1";
-        description
-         "The IPv4 protocol as defined in RFC 791.";
-      }
-      enum ipv6 {
-        value "2";
-        description
-         "The IPv6 protocol as defined in RFC 2460.";
-      }
-    }
-    description
-     "This value represents the version of the IP protocol.
-
-      In the value set and its semantics, this type is equivalent
-      to the InetVersion textual convention of the SMIv2.";
-    reference
-     "RFC  791: Internet Protocol
-      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
-      RFC 4001: Textual Conventions for Internet Network Addresses";
-  }
-
-  typedef dscp {
-    type uint8 {
-      range "0..63";
-    }
-    description
-     "The dscp type represents a Differentiated Services Code Point
-      that may be used for marking packets in a traffic stream.
-      In the value set and its semantics, this type is equivalent
-      to the Dscp textual convention of the SMIv2.";
-    reference
-     "RFC 3289: Management Information Base for the Differentiated
-                Services Architecture
-      RFC 2474: Definition of the Differentiated Services Field
-                (DS Field) in the IPv4 and IPv6 Headers
-      RFC 2780: IANA Allocation Guidelines For Values In
-                the Internet Protocol and Related Headers";
-  }
-
-  typedef ipv6-flow-label {
-    type uint32 {
-      range "0..1048575";
-    }
-    description
-     "The ipv6-flow-label type represents the flow identifier or Flow
-      Label in an IPv6 packet header that may be used to
-      discriminate traffic flows.
-
-      In the value set and its semantics, this type is equivalent
-      to the IPv6FlowLabel textual convention of the SMIv2.";
-    reference
-     "RFC 3595: Textual Conventions for IPv6 Flow Label
-      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification";
-  }
-
-  typedef port-number {
-    type uint16 {
-      range "0..65535";
-    }
-    description
-     "The port-number type represents a 16-bit port number of an
-      Internet transport-layer protocol such as UDP, TCP, DCCP, or
-      SCTP.  Port numbers are assigned by IANA.  A current list of
-      all assignments is available from <http://www.iana.org/>.
-
-      Note that the port number value zero is reserved by IANA.  In
-      situations where the value zero does not make sense, it can
-      be excluded by subtyping the port-number type.
-      In the value set and its semantics, this type is equivalent
-      to the InetPortNumber textual convention of the SMIv2.";
-    reference
-     "RFC  768: User Datagram Protocol
-      RFC  793: Transmission Control Protocol
-      RFC 4960: Stream Control Transmission Protocol
-      RFC 4340: Datagram Congestion Control Protocol (DCCP)
-      RFC 4001: Textual Conventions for Internet Network Addresses";
-  }
-
-  /*** collection of types related to autonomous systems ***/
-
-  typedef as-number {
-    type uint32;
-    description
-     "The as-number type represents autonomous system numbers
-      which identify an Autonomous System (AS).  An AS is a set
-      of routers under a single technical administration, using
-      an interior gateway protocol and common metrics to route
-      packets within the AS, and using an exterior gateway
-      protocol to route packets to other ASes.  IANA maintains
-      the AS number space and has delegated large parts to the
-      regional registries.
-
-      Autonomous system numbers were originally limited to 16
-      bits.  BGP extensions have enlarged the autonomous system
-      number space to 32 bits.  This type therefore uses an uint32
-      base type without a range restriction in order to support
-      a larger autonomous system number space.
-
-      In the value set and its semantics, this type is equivalent
-      to the InetAutonomousSystemNumber textual convention of
-      the SMIv2.";
-    reference
-     "RFC 1930: Guidelines for creation, selection, and registration
-                of an Autonomous System (AS)
-      RFC 4271: A Border Gateway Protocol 4 (BGP-4)
-      RFC 4001: Textual Conventions for Internet Network Addresses
-      RFC 6793: BGP Support for Four-Octet Autonomous System (AS)
-                Number Space";
-  }
-
-  /*** collection of types related to IP addresses and hostnames ***/
-
-  typedef ip-address {
-    type union {
-      type inet:ipv4-address;
-      type inet:ipv6-address;
-    }
-    description
-     "The ip-address type represents an IP address and is IP
-      version neutral.  The format of the textual representation
-      implies the IP version.  This type supports scoped addresses
-      by allowing zone identifiers in the address format.";
-    reference
-     "RFC 4007: IPv6 Scoped Address Architecture";
-  }
-
-  typedef ipv4-address {
-    type string {
-      pattern
-        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-      +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-      + '(%[\p{N}\p{L}]+)?';
-    }
-    description
-      "The ipv4-address type represents an IPv4 address in
-       dotted-quad notation.  The IPv4 address may include a zone
-       index, separated by a % sign.
-
-       The zone index is used to disambiguate identical address
-       values.  For link-local addresses, the zone index will
-       typically be the interface index number or the name of an
-       interface.  If the zone index is not present, the default
-       zone of the device will be used.
-
-       The canonical format for the zone index is the numerical
-       format";
-  }
-
-  typedef ipv6-address {
-    type string {
-      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
-            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
-            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
-            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
-            + '(%[\p{N}\p{L}]+)?';
-      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
-            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
-            + '(%.+)?';
-    }
-    description
-     "The ipv6-address type represents an IPv6 address in full,
-      mixed, shortened, and shortened-mixed notation.  The IPv6
-      address may include a zone index, separated by a % sign.
-
-      The zone index is used to disambiguate identical address
-      values.  For link-local addresses, the zone index will
-      typically be the interface index number or the name of an
-      interface.  If the zone index is not present, the default
-      zone of the device will be used.
-
-      The canonical format of IPv6 addresses uses the textual
-      representation defined in Section 4 of RFC 5952.  The
-      canonical format for the zone index is the numerical
-      format as described in Section 11.2 of RFC 4007.";
-    reference
-     "RFC 4291: IP Version 6 Addressing Architecture
-      RFC 4007: IPv6 Scoped Address Architecture
-      RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  typedef ip-address-no-zone {
-    type union {
-      type inet:ipv4-address-no-zone;
-      type inet:ipv6-address-no-zone;
-    }
-    description
-     "The ip-address-no-zone type represents an IP address and is
-      IP version neutral.  The format of the textual representation
-      implies the IP version.  This type does not support scoped
-      addresses since it does not allow zone identifiers in the
-      address format.";
-    reference
-     "RFC 4007: IPv6 Scoped Address Architecture";
-  }
-
-  typedef ipv4-address-no-zone {
-    type inet:ipv4-address {
-      pattern '[0-9\.]*';
-    }
-    description
-      "An IPv4 address without a zone index.  This type, derived from
-       ipv4-address, may be used in situations where the zone is
-       known from the context and hence no zone index is needed.";
-  }
-
-  typedef ipv6-address-no-zone {
-    type inet:ipv6-address {
-      pattern '[0-9a-fA-F:\.]*';
-    }
-    description
-      "An IPv6 address without a zone index.  This type, derived from
-       ipv6-address, may be used in situations where the zone is
-       known from the context and hence no zone index is needed.";
-    reference
-     "RFC 4291: IP Version 6 Addressing Architecture
-      RFC 4007: IPv6 Scoped Address Architecture
-      RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  typedef ip-prefix {
-    type union {
-      type inet:ipv4-prefix;
-      type inet:ipv6-prefix;
-    }
-    description
-     "The ip-prefix type represents an IP prefix and is IP
-      version neutral.  The format of the textual representations
-      implies the IP version.";
-  }
-
-  typedef ipv4-prefix {
-    type string {
-      pattern
-         '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-       +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-       + '/(([0-9])|([1-2][0-9])|(3[0-2]))';
-    }
-    description
-     "The ipv4-prefix type represents an IPv4 address prefix.
-      The prefix length is given by the number following the
-      slash character and must be less than or equal to 32.
-
-      A prefix length value of n corresponds to an IP address
-      mask that has n contiguous 1-bits from the most
-      significant bit (MSB) and all other bits set to 0.
-
-      The canonical format of an IPv4 prefix has all bits of
-      the IPv4 address set to zero that are not part of the
-      IPv4 prefix.";
-  }
-
-  typedef ipv6-prefix {
-    type string {
-      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
-            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
-            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
-            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
-            + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))';
-      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
-            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
-            + '(/.+)';
-    }
-    description
-     "The ipv6-prefix type represents an IPv6 address prefix.
-      The prefix length is given by the number following the
-      slash character and must be less than or equal to 128.
-
-      A prefix length value of n corresponds to an IP address
-      mask that has n contiguous 1-bits from the most
-      significant bit (MSB) and all other bits set to 0.
-
-      The IPv6 address should have all bits that do not belong
-      to the prefix set to zero.
-
-      The canonical format of an IPv6 prefix has all bits of
-      the IPv6 address set to zero that are not part of the
-      IPv6 prefix.  Furthermore, the IPv6 address is represented
-      as defined in Section 4 of RFC 5952.";
-    reference
-     "RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  /*** collection of domain name and URI types ***/
-
-  typedef domain-name {
-    type string {
-      pattern
-        '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
-      + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
-      + '|\.';
-      length "1..253";
-    }
-    description
-     "The domain-name type represents a DNS domain name.  The
-      name SHOULD be fully qualified whenever possible.
-
-      Internet domain names are only loosely specified.  Section
-      3.5 of RFC 1034 recommends a syntax (modified in Section
-      2.1 of RFC 1123).  The pattern above is intended to allow
-      for current practice in domain name use, and some possible
-      future expansion.  It is designed to hold various types of
-      domain names, including names used for A or AAAA records
-      (host names) and other records, such as SRV records.  Note
-      that Internet host names have a stricter syntax (described
-      in RFC 952) than the DNS recommendations in RFCs 1034 and
-      1123, and that systems that want to store host names in
-      schema nodes using the domain-name type are recommended to
-      adhere to this stricter standard to ensure interoperability.
-
-      The encoding of DNS names in the DNS protocol is limited
-      to 255 characters.  Since the encoding consists of labels
-      prefixed by a length bytes and there is a trailing NULL
-      byte, only 253 characters can appear in the textual dotted
-      notation.
-
-      The description clause of schema nodes using the domain-name
-      type MUST describe when and how these names are resolved to
-      IP addresses.  Note that the resolution of a domain-name value
-      may require to query multiple DNS records (e.g., A for IPv4
-      and AAAA for IPv6).  The order of the resolution process and
-      which DNS record takes precedence can either be defined
-      explicitly or may depend on the configuration of the
-      resolver.
-
-      Domain-name values use the US-ASCII encoding.  Their canonical
-      format uses lowercase US-ASCII characters.  Internationalized
-      domain names MUST be A-labels as per RFC 5890.";
-    reference
-     "RFC  952: DoD Internet Host Table Specification
-      RFC 1034: Domain Names - Concepts and Facilities
-      RFC 1123: Requirements for Internet Hosts -- Application
-                and Support
-      RFC 2782: A DNS RR for specifying the location of services
-                (DNS SRV)
-      RFC 5890: Internationalized Domain Names in Applications
-                (IDNA): Definitions and Document Framework";
-  }
-
-  typedef host {
-    type union {
-      type inet:ip-address;
-      type inet:domain-name;
-    }
-    description
-     "The host type represents either an IP address or a DNS
-      domain name.";
-  }
-
-  typedef uri {
-    type string;
-    description
-     "The uri type represents a Uniform Resource Identifier
-      (URI) as defined by STD 66.
-
-      Objects using the uri type MUST be in US-ASCII encoding,
-      and MUST be normalized as described by RFC 3986 Sections
-      6.2.1, 6.2.2.1, and 6.2.2.2.  All unnecessary
-      percent-encoding is removed, and all case-insensitive
-      characters are set to lowercase except for hexadecimal
-      digits, which are normalized to uppercase as described in
-      Section 6.2.2.1.
-
-      The purpose of this normalization is to help provide
-      unique URIs.  Note that this normalization is not
-      sufficient to provide uniqueness.  Two URIs that are
-      textually distinct after this normalization may still be
-      equivalent.
-
-      Objects using the uri type may restrict the schemes that
-      they permit.  For example, 'data:' and 'urn:' schemes
-      might not be appropriate.
-
-      A zero-length URI is not a valid URI.  This can be used to
-      express 'URI absent' where required.
-
-      In the value set and its semantics, this type is equivalent
-      to the Uri SMIv2 textual convention defined in RFC 5017.";
-    reference
-     "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
-      RFC 3305: Report from the Joint W3C/IETF URI Planning Interest
-                Group: Uniform Resource Identifiers (URIs), URLs,
-                and Uniform Resource Names (URNs): Clarifications
-                and Recommendations
-      RFC 5017: MIB Textual Conventions for Uniform Resource
-                Identifiers (URIs)";
-  }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-interfaces@2014-05-08.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-interfaces@2014-05-08.yang
deleted file mode 100644 (file)
index 5f42b15..0000000
+++ /dev/null
@@ -1,603 +0,0 @@
-module ietf-interfaces {
-  namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces";
-  prefix if;
-  import ietf-yang-types {
-    prefix yang;
-  }
-  organization
-    "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-  contact
-    "WG Web:   <http://tools.ietf.org/wg/netmod/>
-     WG List:  <mailto:netmod@ietf.org>
-     WG Chair: Thomas Nadeau
-               <mailto:tnadeau@lucidvision.com>
-     WG Chair: Juergen Schoenwaelder
-               <mailto:j.schoenwaelder@jacobs-university.de>
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>";
-  description
-    "This module contains a collection of YANG definitions for
-     managing network interfaces.
-     Copyright (c) 2014 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-     This version of this YANG module is part of RFC 7223; see
-     the RFC itself for full legal notices.";
-  revision 2014-05-08 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 7223: A YANG Data Model for Interface Management";
-  }
-  /*
-   * Typedefs
-   */
-  typedef interface-ref {
-    type leafref {
-      path "/if:interfaces/if:interface/if:name";
-    }
-    description
-      "This type is used by data models that need to reference
-       configured interfaces.";
-  }
-  typedef interface-state-ref {
-    type leafref {
-      path "/if:interfaces-state/if:interface/if:name";
-    }
-    description
-      "This type is used by data models that need to reference
-       the operationally present interfaces.";
-  }
-  /*
-   * Identities
-   */
-  identity interface-type {
-    description
-      "Base identity from which specific interface types are
-       derived.";
-  }
-  /*
-   * Features
-   */
-  feature arbitrary-names {
-    description
-      "This feature indicates that the device allows user-controlled
-       interfaces to be named arbitrarily.";
-  }
-  feature pre-provisioning {
-    description
-      "This feature indicates that the device supports
-       pre-provisioning of interface configuration, i.e., it is
-       possible to configure an interface whose physical interface
-       hardware is not present on the device.";
-  }
-  feature if-mib {
-    description
-      "This feature indicates that the device implements
-       the IF-MIB.";
-    reference
-      "RFC 2863: The Interfaces Group MIB";
-  }
-  /*
-   * Configuration data nodes
-   */
-  container interfaces {
-    description
-      "Interface configuration parameters.";
-    list interface {
-      key "name";
-      description
-        "The list of configured interfaces on the device.
-         The operational state of an interface is available in the
-         /interfaces-state/interface list.  If the configuration of a
-         system-controlled interface cannot be used by the system
-         (e.g., the interface hardware present does not match the
-         interface type), then the configuration is not applied to
-         the system-controlled interface shown in the
-         /interfaces-state/interface list.  If the configuration
-         of a user-controlled interface cannot be used by the system,
-         the configured interface is not instantiated in the
-         /interfaces-state/interface list.";
-     leaf name {
-        type string;
-        description
-          "The name of the interface.
-           A device MAY restrict the allowed values for this leaf,
-           possibly depending on the type of the interface.
-           For system-controlled interfaces, this leaf is the
-           device-specific name of the interface.  The 'config false'
-           list /interfaces-state/interface contains the currently
-           existing interfaces on the device.
-           If a client tries to create configuration for a
-           system-controlled interface that is not present in the
-           /interfaces-state/interface list, the server MAY reject
-           the request if the implementation does not support
-           pre-provisioning of interfaces or if the name refers to
-           an interface that can never exist in the system.  A
-           NETCONF server MUST reply with an rpc-error with the
-           error-tag 'invalid-value' in this case.
-           If the device supports pre-provisioning of interface
-           configuration, the 'pre-provisioning' feature is
-           advertised.
-           If the device allows arbitrarily named user-controlled
-           interfaces, the 'arbitrary-names' feature is advertised.
-           When a configured user-controlled interface is created by
-           the system, it is instantiated with the same name in the
-           /interface-state/interface list.";
-      }
-      leaf description {
-        type string;
-        description
-          "A textual description of the interface.
-           A server implementation MAY map this leaf to the ifAlias
-           MIB object.  Such an implementation needs to use some
-           mechanism to handle the differences in size and characters
-           allowed between this leaf and ifAlias.  The definition of
-           such a mechanism is outside the scope of this document.
-           Since ifAlias is defined to be stored in non-volatile
-           storage, the MIB implementation MUST map ifAlias to the
-           value of 'description' in the persistently stored
-           datastore.
-           Specifically, if the device supports ':startup', when
-           ifAlias is read the device MUST return the value of
-           'description' in the 'startup' datastore, and when it is
-           written, it MUST be written to the 'running' and 'startup'
-           datastores.  Note that it is up to the implementation to
-           decide whether to modify this single leaf in 'startup' or
-           perform an implicit copy-config from 'running' to
-           'startup'.
-           If the device does not support ':startup', ifAlias MUST
-           be mapped to the 'description' leaf in the 'running'
-           datastore.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAlias";
-      }
-      leaf type {
-        type identityref {
-          base interface-type;
-        }
-        mandatory true;
-        description
-          "The type of the interface.
-           When an interface entry is created, a server MAY
-           initialize the type leaf with a valid value, e.g., if it
-           is possible to derive the type from the name of the
-           interface.
-           If a client tries to set the type of an interface to a
-           value that can never be used by the system, e.g., if the
-           type is not supported or if the type does not match the
-           name of the interface, the server MUST reject the request.
-           A NETCONF server MUST reply with an rpc-error with the
-           error-tag 'invalid-value' in this case.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifType";
-      }
-      leaf enabled {
-        type boolean;
-        default "true";
-        description
-          "This leaf contains the configured, desired state of the
-           interface.
-           Systems that implement the IF-MIB use the value of this
-           leaf in the 'running' datastore to set
-           IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
-           has been initialized, as described in RFC 2863.
-           Changes in this leaf in the 'running' datastore are
-           reflected in ifAdminStatus, but if ifAdminStatus is
-           changed over SNMP, this leaf is not affected.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-      }
-      leaf link-up-down-trap-enable {
-        //if-feature if-mib;
-        type enumeration {
-          enum enabled {
-            value 1;
-          }
-          enum disabled {
-            value 2;
-          }
-        }
-        description
-          "Controls whether linkUp/linkDown SNMP notifications
-           should be generated for this interface.
-           If this node is not configured, the value 'enabled' is
-           operationally used by the server for interfaces that do
-           not operate on top of any other interface (i.e., there are
-           no 'lower-layer-if' entries), and 'disabled' otherwise.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifLinkUpDownTrapEnable";
-      }
-    }
-  }
-  /*
-   * Operational state data nodes
-   */
-  container interfaces-state {
-    config false;
-    description
-      "Data nodes for the operational state of interfaces.";
-    list interface {
-      key "name";
-      description
-        "The list of interfaces on the device.
-         System-controlled interfaces created by the system are
-         always present in this list, whether they are configured or
-         not.";
-      leaf name {
-        type string;
-        description
-          "The name of the interface.
-           A server implementation MAY map this leaf to the ifName
-           MIB object.  Such an implementation needs to use some
-           mechanism to handle the differences in size and characters
-           allowed between this leaf and ifName.  The definition of
-           such a mechanism is outside the scope of this document.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifName";
-      }
-      leaf type {
-        type identityref {
-          base interface-type;
-        }
-        mandatory true;
-        description
-          "The type of the interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifType";
-      }
-      leaf admin-status {
-        //if-feature if-mib;
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-            description
-              "Not ready to pass packets and not in some test mode.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.";
-          }
-        }
-        mandatory true;
-        description
-          "The desired state of the interface.
-           This leaf has the same read semantics as ifAdminStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-      }
-      leaf oper-status {
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-            description
-              "The interface does not pass any packets.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.  No operational packets can
-               be passed.";
-          }
-          enum unknown {
-            value 4;
-            description
-              "Status cannot be determined for some reason.";
-          }
-          enum dormant {
-            value 5;
-            description
-              "Waiting for some external event.";
-          }
-          enum not-present {
-            value 6;
-            description
-              "Some component (typically hardware) is missing.";
-          }
-          enum lower-layer-down {
-            value 7;
-            description
-              "Down due to state of lower-layer interface(s).";
-          }
-        }
-        mandatory true;
-        description
-          "The current operational state of the interface.
-           This leaf has the same semantics as ifOperStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOperStatus";
-      }
-      leaf last-change {
-        type yang:date-and-time;
-        description
-          "The time the interface entered its current operational
-           state.  If the current state was entered prior to the
-           last re-initialization of the local network management
-           subsystem, then this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifLastChange";
-      }
-      leaf if-index {
-        //if-feature if-mib;
-        type int32 {
-          range "1..2147483647";
-        }
-        mandatory true;
-        description
-          "The ifIndex value for the ifEntry represented by this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifIndex";
-      }
-      leaf phys-address {
-        type yang:phys-address;
-        description
-          "The interface's address at its protocol sub-layer.  For
-           example, for an 802.x interface, this object normally
-           contains a Media Access Control (MAC) address.  The
-           interface's media-specific modules must define the bit
-           and byte ordering and the format of the value of this
-           object.  For interfaces that do not have such an address
-           (e.g., a serial line), this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
-      }
-      leaf-list higher-layer-if {
-        type interface-state-ref;
-        description
-          "A list of references to interfaces layered on top of this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-      leaf-list lower-layer-if {
-        type interface-state-ref;
-        description
-          "A list of references to interfaces layered underneath this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-      leaf speed {
-        type yang:gauge64;
-        units "bits/second";
-        description
-            "An estimate of the interface's current bandwidth in bits
-             per second.  For interfaces that do not vary in
-             bandwidth or for those where no accurate estimation can
-             be made, this node should contain the nominal bandwidth.
-             For interfaces that have no concept of bandwidth, this
-             node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifSpeed, ifHighSpeed";
-      }
-      container statistics {
-        description
-          "A collection of interface-related statistics objects.";
-        leaf discontinuity-time {
-          type yang:date-and-time;
-          mandatory true;
-          description
-            "The time on the most recent occasion at which any one or
-             more of this interface's counters suffered a
-             discontinuity.  If no such discontinuities have occurred
-             since the last re-initialization of the local management
-             subsystem, then this node contains the time the local
-             management subsystem re-initialized itself.";
-        }
-        leaf in-octets {
-          type yang:counter64;
-          description
-            "The total number of octets received on the interface,
-             including framing characters.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
-        }
-        leaf in-unicast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were not addressed to a
-             multicast or broadcast address at this sub-layer.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
-        }
-        leaf in-broadcast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a broadcast
-             address at this sub-layer.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInBroadcastPkts";
-        }
-        leaf in-multicast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a multicast
-             address at this sub-layer.  For a MAC-layer protocol,
-             this includes both Group and Functional addresses.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInMulticastPkts";
-        }
-        leaf in-discards {
-          type yang:counter32;
-          description
-            "The number of inbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being deliverable to a higher-layer
-             protocol.  One possible reason for discarding such a
-             packet could be to free up buffer space.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInDiscards";
-        }
-        leaf in-errors {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of inbound
-             packets that contained errors preventing them from being
-             deliverable to a higher-layer protocol.  For character-
-             oriented or fixed-length interfaces, the number of
-             inbound transmission units that contained errors
-             preventing them from being deliverable to a higher-layer
-             protocol.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInErrors";
-        }
-        leaf in-unknown-protos {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of packets
-             received via the interface that were discarded because
-             of an unknown or unsupported protocol.  For
-             character-oriented or fixed-length interfaces that
-             support protocol multiplexing, the number of
-             transmission units received via the interface that were
-             discarded because of an unknown or unsupported protocol.
-             For any interface that does not support protocol
-             multiplexing, this counter is not present.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
-        }
-        leaf out-octets {
-          type yang:counter64;
-          description
-            "The total number of octets transmitted out of the
-             interface, including framing characters.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
-        }
-        leaf out-unicast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted, and that were not addressed
-             to a multicast or broadcast address at this sub-layer,
-             including those that were discarded or not sent.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
-        }
-        leaf out-broadcast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted, and that were addressed to a
-             broadcast address at this sub-layer, including those
-             that were discarded or not sent.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutBroadcastPkts";
-        }
-        leaf out-multicast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted, and that were addressed to a
-             multicast address at this sub-layer, including those
-             that were discarded or not sent.  For a MAC-layer
-             protocol, this includes both Group and Functional
-             addresses.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutMulticastPkts";
-        }
-        leaf out-discards {
-          type yang:counter32;
-          description
-            "The number of outbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being transmitted.  One possible reason
-             for discarding such a packet could be to free up buffer
-             space.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
-        }
-        leaf out-errors {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of outbound
-             packets that could not be transmitted because of errors.
-             For character-oriented or fixed-length interfaces, the
-             number of outbound transmission units that could not be
-             transmitted because of errors.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutErrors";
-        }
-      }
-    }
-  }
-}
-
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-monitoring-extension@2013-12-10.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-monitoring-extension@2013-12-10.yang
deleted file mode 100644 (file)
index e8f2ec3..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-module ietf-netconf-monitoring-extension {
-
-    yang-version 1;
-
-    namespace
-      "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring-extension";
-
-    prefix ncme;
-
-    import ietf-netconf-monitoring {
-      prefix ncm;
-    }
-
-    revision "2013-12-10" {
-      description "Initial revision.";
-
-    }
-
-    identity netconf-tcp {
-      base ncm:transport;
-      description
-        "NETCONF over TCP.";
-    }
-
-    augment "/ncm:netconf-state/ncm:sessions/ncm:session" {
-      leaf session-identifier {
-        type string;
-      }
-    }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-monitoring@2010-10-04.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-monitoring@2010-10-04.yang
deleted file mode 100644 (file)
index 730a416..0000000
+++ /dev/null
@@ -1,596 +0,0 @@
-module ietf-netconf-monitoring {
-
-    yang-version 1;
-
-    namespace
-      "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring";
-
-    prefix ncm;
-
-    import ietf-yang-types {
-      prefix yang;
-      revision-date "2013-07-15";
-    }
-
-    import ietf-inet-types {
-      prefix inet;
-      revision-date "2013-07-15";
-    }
-
-    organization
-      "IETF NETCONF (Network Configuration) Working Group";
-
-    contact
-      "WG Web:   <http://tools.ietf.org/wg/netconf/>
-     WG List:  <mailto:netconf@ietf.org>
-
-     WG Chair: Mehmet Ersue
-               <mailto:mehmet.ersue@nsn.com>
-
-     WG Chair: Bert Wijnen
-               <mailto:bertietf@bwijnen.net>
-
-     Editor:   Mark Scott
-               <mailto:mark.scott@ericsson.com>
-
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>";
-
-    description
-      "NETCONF Monitoring Module.
-     All elements in this module are read-only.
-
-     Copyright (c) 2010 IETF Trust and the persons identified as
-     authors of the code. All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD
-     License set forth in Section 4.c of the IETF Trust's
-     Legal Provisions Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC 6022; see
-     the RFC itself for full legal notices.";
-
-    revision "2010-10-04" {
-      description "Initial revision.";
-      reference
-        "RFC 6022: YANG Module for NETCONF Monitoring";
-
-    }
-
-
-    typedef netconf-datastore-type {
-      type enumeration {
-        enum "running" {
-          value 0;
-        }
-        enum "candidate" {
-          value 1;
-        }
-        enum "startup" {
-          value 2;
-        }
-      }
-      description
-        "Enumeration of possible NETCONF datastore types.";
-      reference
-        "RFC 4741: NETCONF Configuration Protocol";
-
-    }
-
-    identity transport {
-      description
-        "Base identity for NETCONF transport types.";
-    }
-
-    identity netconf-ssh {
-      base transport;
-      description
-        "NETCONF over Secure Shell (SSH).";
-      reference
-        "RFC 4742: Using the NETCONF Configuration Protocol
-              over Secure SHell (SSH)";
-
-    }
-
-    identity netconf-soap-over-beep {
-      base transport;
-      description
-        "NETCONF over Simple Object Access Protocol (SOAP) over
-       Blocks Extensible Exchange Protocol (BEEP).";
-      reference
-        "RFC 4743: Using NETCONF over the Simple Object
-              Access Protocol (SOAP)";
-
-    }
-
-    identity netconf-soap-over-https {
-      base transport;
-      description
-        "NETCONF over Simple Object Access Protocol (SOAP)
-      over Hypertext Transfer Protocol Secure (HTTPS).";
-      reference
-        "RFC 4743: Using NETCONF over the Simple Object
-              Access Protocol (SOAP)";
-
-    }
-
-    identity netconf-beep {
-      base transport;
-      description
-        "NETCONF over Blocks Extensible Exchange Protocol (BEEP).";
-      reference
-        "RFC 4744: Using the NETCONF Protocol over the
-              Blocks Extensible Exchange Protocol (BEEP)";
-
-    }
-
-    identity netconf-tls {
-      base transport;
-      description
-        "NETCONF over Transport Layer Security (TLS).";
-      reference
-        "RFC 5539: NETCONF over Transport Layer Security (TLS)";
-
-    }
-
-    identity schema-format {
-      description
-        "Base identity for data model schema languages.";
-    }
-
-    identity xsd {
-      base schema-format;
-      description
-        "W3C XML Schema Definition.";
-      reference
-        "W3C REC REC-xmlschema-1-20041028:
-          XML Schema Part 1: Structures";
-
-    }
-
-    identity yang {
-      base schema-format;
-      description
-        "The YANG data modeling language for NETCONF.";
-      reference
-        "RFC 6020:  YANG - A Data Modeling Language for the
-               Network Configuration Protocol (NETCONF)";
-
-    }
-
-    identity yin {
-      base schema-format;
-      description "The YIN syntax for YANG.";
-      reference
-        "RFC 6020:  YANG - A Data Modeling Language for the
-               Network Configuration Protocol (NETCONF)";
-
-    }
-
-    identity rng {
-      base schema-format;
-      description
-        "Regular Language for XML Next Generation (RELAX NG).";
-      reference
-        "ISO/IEC 19757-2:2008: RELAX NG";
-
-    }
-
-    identity rnc {
-      base schema-format;
-      description "Relax NG Compact Syntax";
-      reference
-        "ISO/IEC 19757-2:2008: RELAX NG";
-
-    }
-
-    grouping common-counters {
-      description
-        "Counters that exist both per session, and also globally,
-       accumulated from all sessions.";
-      leaf in-rpcs {
-        type yang:zero-based-counter32;
-        description
-          "Number of correct <rpc> messages received.";
-      }
-
-      leaf in-bad-rpcs {
-        type yang:zero-based-counter32;
-        description
-          "Number of messages received when an <rpc> message was expected,
-         that were not correct <rpc> messages.  This includes XML parse
-         errors and errors on the rpc layer.";
-      }
-
-      leaf out-rpc-errors {
-        type yang:zero-based-counter32;
-        description
-          "Number of <rpc-reply> messages sent that contained an
-         <rpc-error> element.";
-      }
-
-      leaf out-notifications {
-        type yang:zero-based-counter32;
-        description
-          "Number of <notification> messages sent.";
-      }
-    }  // grouping common-counters
-
-    container netconf-state {
-      config false;
-      description
-        "The netconf-state container is the root of the monitoring
-       data model.";
-      container capabilities {
-        description
-          "Contains the list of NETCONF capabilities supported by the
-         server.";
-        leaf-list capability {
-          type inet:uri;
-          description
-            "List of NETCONF capabilities supported by the server.";
-        }
-      }  // container capabilities
-
-      container datastores {
-        description
-          "Contains the list of NETCONF configuration datastores.";
-        list datastore {
-          key "name";
-          description
-            "List of NETCONF configuration datastores supported by
-           the NETCONF server and related information.";
-          leaf name {
-            type netconf-datastore-type;
-            description
-              "Name of the datastore associated with this list entry.";
-          }
-
-          container locks {
-            presence
-              "This container is present only if the datastore
-             is locked.";
-            description
-              "The NETCONF <lock> and <partial-lock> operations allow
-             a client to lock specific resources in a datastore.  The
-             NETCONF server will prevent changes to the locked
-             resources by all sessions except the one that acquired
-             the lock(s).
-
-             Monitoring information is provided for each datastore
-             entry including details such as the session that acquired
-             the lock, the type of lock (global or partial) and the
-             list of locked resources.  Multiple locks per datastore
-             are supported.";
-            grouping lock-info {
-              description
-                "Lock related parameters, common to both global and
-               partial locks.";
-              leaf locked-by-session {
-                type uint32;
-                mandatory true;
-                description
-                  "The session ID of the session that has locked
-                 this resource.  Both a global lock and a partial
-                 lock MUST contain the NETCONF session-id.
-
-                 If the lock is held by a session that is not managed
-                 by the NETCONF server (e.g., a CLI session), a session
-                 id of 0 (zero) is reported.";
-                reference
-                  "RFC 4741: NETCONF Configuration Protocol";
-
-              }
-
-              leaf locked-time {
-                type yang:date-and-time;
-                mandatory true;
-                description
-                  "The date and time of when the resource was
-                 locked.";
-              }
-            }  // grouping lock-info
-            choice lock-type {
-              description
-                "Indicates if a global lock or a set of partial locks
-               are set.";
-              container global-lock {
-                description
-                  "Present if the global lock is set.";
-                uses lock-info;
-              }  // container global-lock
-              list partial-lock {
-                key "lock-id";
-                description
-                  "List of partial locks.";
-                reference
-                  "RFC 5717: Partial Lock Remote Procedure Call (RPC) for
-                      NETCONF";
-
-                leaf lock-id {
-                  type uint32;
-                  description
-                    "This is the lock id returned in the <partial-lock>
-                   response.";
-                }
-
-                uses lock-info;
-
-                leaf-list select {
-                  type yang:xpath1.0;
-                  min-elements 1;
-                  description
-                    "The xpath expression that was used to request
-                   the lock.  The select expression indicates the
-                   original intended scope of the lock.";
-                }
-
-                leaf-list locked-node {
-                  type instance-identifier;
-                  description
-                    "The list of instance-identifiers (i.e., the
-                   locked nodes).
-
-                   The scope of the partial lock is defined by the list
-                   of locked nodes.";
-                }
-              }  // list partial-lock
-            }  // choice lock-type
-          }  // container locks
-        }  // list datastore
-      }  // container datastores
-
-      container schemas {
-        description
-          "Contains the list of data model schemas supported by the
-         server.";
-        list schema {
-          key "identifier version format";
-          description
-            "List of data model schemas supported by the server.";
-          leaf identifier {
-            type string;
-            description
-              "Identifier to uniquely reference the schema.  The
-             identifier is used in the <get-schema> operation and may
-             be used for other purposes such as file retrieval.
-
-             For modeling languages that support or require a data
-             model name (e.g., YANG module name) the identifier MUST
-             match that name.  For YANG data models, the identifier is
-             the name of the module or submodule.  In other cases, an
-             identifier such as a filename MAY be used instead.";
-          }
-
-          leaf version {
-            type string;
-            description
-              "Version of the schema supported.  Multiple versions MAY be
-             supported simultaneously by a NETCONF server.  Each
-             version MUST be reported individually in the schema list,
-             i.e., with same identifier, possibly different location,
-             but different version.
-
-             For YANG data models, version is the value of the most
-             recent YANG 'revision' statement in the module or
-             submodule, or the empty string if no 'revision' statement
-             is present.";
-          }
-
-          leaf format {
-            type identityref {
-              base schema-format;
-            }
-            description
-              "The data modeling language the schema is written
-             in (currently xsd, yang, yin, rng, or rnc).
-             For YANG data models, 'yang' format MUST be supported and
-             'yin' format MAY also be provided.";
-          }
-
-          leaf namespace {
-            type inet:uri;
-            mandatory true;
-            description
-              "The XML namespace defined by the data model.
-
-             For YANG data models, this is the module's namespace.
-             If the list entry describes a submodule, this field
-             contains the namespace of the module to which the
-             submodule belongs.";
-          }
-
-          leaf-list location {
-            type union {
-              type enumeration {
-                enum "NETCONF" {
-                  value 0;
-                }
-              }
-              type inet:uri;
-            }
-            description
-              "One or more locations from which the schema can be
-             retrieved.  This list SHOULD contain at least one
-             entry per schema.
-
-             A schema entry may be located on a remote file system
-             (e.g., reference to file system for ftp retrieval) or
-             retrieved directly from a server supporting the
-             <get-schema> operation (denoted by the value 'NETCONF').";
-          }
-        }  // list schema
-      }  // container schemas
-
-      container sessions {
-        description
-          "The sessions container includes session-specific data for
-         NETCONF management sessions.  The session list MUST include
-         all currently active NETCONF sessions.";
-        list session {
-          key "session-id";
-          description
-            "All NETCONF sessions managed by the NETCONF server
-           MUST be reported in this list.";
-          leaf session-id {
-            type uint32 {
-              range "1..max";
-            }
-            description
-              "Unique identifier for the session.  This value is the
-             NETCONF session identifier, as defined in RFC 4741.";
-            reference
-              "RFC 4741: NETCONF Configuration Protocol";
-
-          }
-
-          leaf transport {
-            type identityref {
-              base transport;
-            }
-            mandatory true;
-            description
-              "Identifies the transport for each session, e.g.,
-            'netconf-ssh', 'netconf-soap', etc.";
-          }
-
-          leaf username {
-            type string;
-            mandatory true;
-            description
-              "The username is the client identity that was authenticated
-            by the NETCONF transport protocol.  The algorithm used to
-            derive the username is NETCONF transport protocol specific
-            and in addition specific to the authentication mechanism
-            used by the NETCONF transport protocol.";
-          }
-
-          leaf source-host {
-            type inet:host;
-            description
-              "Host identifier of the NETCONF client.  The value
-             returned is implementation specific (e.g., hostname,
-             IPv4 address, IPv6 address)";
-          }
-
-          leaf login-time {
-            type yang:date-and-time;
-            mandatory true;
-            description
-              "Time at the server at which the session was established.";
-          }
-
-          uses common-counters {
-            description
-              "Per-session counters.  Zero based with following reset
-             behaviour:
-               - at start of a session
-               - when max value is reached";
-          }
-        }  // list session
-      }  // container sessions
-
-      container statistics {
-        description
-          "Statistical data pertaining to the NETCONF server.";
-        leaf netconf-start-time {
-          type yang:date-and-time;
-          description
-            "Date and time at which the management subsystem was
-           started.";
-        }
-
-        leaf in-bad-hellos {
-          type yang:zero-based-counter32;
-          description
-            "Number of sessions silently dropped because an
-          invalid <hello> message was received.  This includes <hello>
-          messages with a 'session-id' attribute, bad namespace, and
-          bad capability declarations.";
-        }
-
-        leaf in-sessions {
-          type yang:zero-based-counter32;
-          description
-            "Number of sessions started.  This counter is incremented
-           when a <hello> message with a <session-id> is sent.
-
-          'in-sessions' - 'in-bad-hellos' =
-              'number of correctly started netconf sessions'";
-        }
-
-        leaf dropped-sessions {
-          type yang:zero-based-counter32;
-          description
-            "Number of sessions that were abnormally terminated, e.g.,
-           due to idle timeout or transport close.  This counter is not
-           incremented when a session is properly closed by a
-           <close-session> operation, or killed by a <kill-session>
-           operation.";
-        }
-
-        uses common-counters {
-          description
-            "Global counters, accumulated from all sessions.
-           Zero based with following reset behaviour:
-             - re-initialization of NETCONF server
-             - when max value is reached";
-        }
-      }  // container statistics
-    }  // container netconf-state
-
-    rpc get-schema {
-      description
-        "This operation is used to retrieve a schema from the
-       NETCONF server.
-
-       Positive Response:
-         The NETCONF server returns the requested schema.
-
-       Negative Response:
-         If requested schema does not exist, the <error-tag> is
-         'invalid-value'.
-
-         If more than one schema matches the requested parameters, the
-         <error-tag> is 'operation-failed', and <error-app-tag> is
-         'data-not-unique'.";
-      input {
-        leaf identifier {
-          type string;
-          mandatory true;
-          description
-            "Identifier for the schema list entry.";
-        }
-
-        leaf version {
-          type string;
-          description
-            "Version of the schema requested.  If this parameter is not
-           present, and more than one version of the schema exists on
-           the server, a 'data-not-unique' error is returned, as
-           described above.";
-        }
-
-        leaf format {
-          type identityref {
-            base schema-format;
-          }
-          description
-            "The data modeling language of the schema.  If this
-            parameter is not present, and more than one formats of
-            the schema exists on the server, a 'data-not-unique' error
-            is returned, as described above.";
-        }
-      }
-
-      output {
-        anyxml data {
-          description
-            "Contains the schema content.";
-        }
-      }
-    }  // rpc get-schema
-} // module
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-notifications@2012-02-06.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-notifications@2012-02-06.yang
deleted file mode 100644 (file)
index 31352a1..0000000
+++ /dev/null
@@ -1,363 +0,0 @@
-module ietf-netconf-notifications {
-
-   namespace
-     "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications";
-
-   prefix ncn;
-
-   import ietf-inet-types { prefix inet; revision-date "2013-07-15";}
-   import ietf-netconf { prefix nc; revision-date "2011-06-01";}
-
-   organization
-     "IETF NETCONF (Network Configuration Protocol) Working Group";
-
-   contact
-     "WG Web:   <http://tools.ietf.org/wg/netconf/>
-      WG List:  <mailto:netconf@ietf.org>
-
-      WG Chair: Bert Wijnen
-                <mailto:bertietf@bwijnen.net>
-
-      WG Chair: Mehmet Ersue
-                <mailto:mehmet.ersue@nsn.com>
-
-      Editor:   Andy Bierman
-                <mailto:andy@netconfcentral.org>";
-
-   description
-     "This module defines a YANG data model for use with the
-      NETCONF protocol that allows the NETCONF client to
-      receive common NETCONF base event notifications.
-
-      Copyright (c) 2012 IETF Trust and the persons identified as
-      the document authors.  All rights reserved.
-
-      Redistribution and use in source and binary forms, with or
-      without modification, is permitted pursuant to, and subject
-      to the license terms contained in, the Simplified BSD License
-
-
-
-      set forth in Section 4.c of the IETF Trust's Legal Provisions
-      Relating to IETF Documents
-      (http://trustee.ietf.org/license-info).
-
-      This version of this YANG module is part of RFC 6470; see
-      the RFC itself for full legal notices.";
-
-   revision "2012-02-06" {
-     description
-       "Initial version. Errata 3957 added.";
-     reference
-       "RFC 6470: NETCONF Base Notifications";
-   }
-
-  grouping common-session-parms {
-    description
-      "Common session parameters to identify a
-       management session.";
-
-    leaf username {
-      type string;
-      mandatory true;
-      description
-        "Name of the user for the session.";
-    }
-
-    leaf session-id {
-      type nc:session-id-or-zero-type;
-      mandatory true;
-      description
-        "Identifier of the session.
-         A NETCONF session MUST be identified by a non-zero value.
-         A non-NETCONF session MAY be identified by the value zero.";
-    }
-
-    leaf source-host {
-      type inet:ip-address;
-      description
-        "Address of the remote host for the session.";
-    }
-  }
-
-
-
-
-
-
-
-
-   grouping changed-by-parms {
-    description
-      "Common parameters to identify the source
-       of a change event, such as a configuration
-       or capability change.";
-
-    container changed-by {
-      description
-        "Indicates the source of the change.
-         If caused by internal action, then the
-         empty leaf 'server' will be present.
-         If caused by a management session, then
-         the name, remote host address, and session ID
-         of the session that made the change will be reported.";
-      choice server-or-user {
-        mandatory true;
-        leaf server {
-          type empty;
-          description
-            "If present, the change was caused
-             by the server.";
-        }
-
-        case by-user {
-          uses common-session-parms;
-        }
-      } // choice server-or-user
-    } // container changed-by-parms
-  }
-
-
-  notification netconf-config-change {
-    description
-      "Generated when the NETCONF server detects that the
-       <running> or <startup> configuration datastore
-       has been changed by a management session.
-       The notification summarizes the edits that
-       have been detected.
-
-       The server MAY choose to also generate this
-       notification while loading a datastore during the
-       boot process for the device.";
-
-    uses changed-by-parms;
-
-
-
-
-
-    leaf datastore {
-      type enumeration {
-        enum running {
-          description "The <running> datastore has changed.";
-        }
-        enum startup {
-          description "The <startup> datastore has changed";
-        }
-      }
-      default "running";
-      description
-        "Indicates which configuration datastore has changed.";
-    }
-
-    list edit {
-      description
-        "An edit record SHOULD be present for each distinct
-         edit operation that the server has detected on
-         the target datastore.  This list MAY be omitted
-         if the detailed edit operations are not known.
-         The server MAY report entries in this list for
-         changes not made by a NETCONF session (e.g., CLI).";
-
-      leaf target {
-        type instance-identifier;
-        description
-          "Topmost node associated with the configuration change.
-           A server SHOULD set this object to the node within
-           the datastore that is being altered.  A server MAY
-           set this object to one of the ancestors of the actual
-           node that was changed, or omit this object, if the
-           exact node is not known.";
-      }
-
-      leaf operation {
-        type nc:edit-operation-type;
-        description
-          "Type of edit operation performed.
-           A server MUST set this object to the NETCONF edit
-           operation performed on the target datastore.";
-      }
-    } // list edit
-  } // notification netconf-config-change
-
-
-
-
-
-
-  notification netconf-capability-change {
-    description
-      "Generated when the NETCONF server detects that
-       the server capabilities have changed.
-       Indicates which capabilities have been added, deleted,
-       and/or modified.  The manner in which a server
-       capability is changed is outside the scope of this
-       document.";
-
-    uses changed-by-parms;
-
-    leaf-list added-capability {
-      type inet:uri;
-      description
-        "List of capabilities that have just been added.";
-    }
-
-    leaf-list deleted-capability {
-      type inet:uri;
-      description
-        "List of capabilities that have just been deleted.";
-    }
-
-    leaf-list modified-capability {
-      type inet:uri;
-      description
-        "List of capabilities that have just been modified.
-         A capability is considered to be modified if the
-         base URI for the capability has not changed, but
-         one or more of the parameters encoded at the end of
-         the capability URI have changed.
-         The new modified value of the complete URI is returned.";
-    }
-  } // notification netconf-capability-change
-
-
-  notification netconf-session-start {
-    description
-      "Generated when a NETCONF server detects that a
-       NETCONF session has started.  A server MAY generate
-       this event for non-NETCONF management sessions.
-       Indicates the identity of the user that started
-       the session.";
-    uses common-session-parms;
-  } // notification netconf-session-start
-
-
-
-
-  notification netconf-session-end {
-    description
-      "Generated when a NETCONF server detects that a
-       NETCONF session has terminated.
-       A server MAY optionally generate this event for
-       non-NETCONF management sessions.  Indicates the
-       identity of the user that owned the session,
-       and why the session was terminated.";
-
-    uses common-session-parms;
-
-    leaf killed-by {
-      when "../termination-reason = 'killed'";
-      type nc:session-id-type;
-      description
-        "The ID of the session that directly caused this session
-         to be abnormally terminated.  If this session was abnormally
-         terminated by a non-NETCONF session unknown to the server,
-         then this leaf will not be present.";
-    }
-
-    leaf termination-reason {
-      type enumeration {
-        enum "closed" {
-          description
-            "The session was terminated by the client in normal
-             fashion, e.g., by the NETCONF <close-session>
-             protocol operation.";
-        }
-        enum "killed" {
-          description
-            "The session was terminated in abnormal
-             fashion, e.g., by the NETCONF <kill-session>
-             protocol operation.";
-        }
-        enum "dropped" {
-          description
-            "The session was terminated because the transport layer
-             connection was unexpectedly closed.";
-        }
-        enum "timeout" {
-          description
-            "The session was terminated because of inactivity,
-             e.g., waiting for the <hello> message or <rpc>
-             messages.";
-        }
-
-
-
-        enum "bad-hello" {
-          description
-            "The client's <hello> message was invalid.";
-        }
-        enum "other" {
-          description
-            "The session was terminated for some other reason.";
-        }
-      }
-      mandatory true;
-      description
-        "Reason the session was terminated.";
-    }
-  } // notification netconf-session-end
-
-
-  notification netconf-confirmed-commit {
-    description
-      "Generated when a NETCONF server detects that a
-       confirmed-commit event has occurred.  Indicates the event
-       and the current state of the confirmed-commit procedure
-       in progress.";
-    reference
-      "RFC 6241, Section 8.4";
-
-    uses common-session-parms {
-      when "confirm-event != 'timeout'";
-    }
-
-    leaf confirm-event {
-      type enumeration {
-        enum "start" {
-          description
-            "The confirmed-commit procedure has started.";
-        }
-        enum "cancel" {
-          description
-            "The confirmed-commit procedure has been canceled,
-             e.g., due to the session being terminated, or an
-             explicit <cancel-commit> operation.";
-        }
-        enum "timeout" {
-          description
-            "The confirmed-commit procedure has been canceled
-             due to the confirm-timeout interval expiring.
-             The common session parameters will not be present
-             in this sub-mode.";
-        }
-
-        enum "extend" {
-          description
-            "The confirmed-commit timeout has been extended,
-             e.g., by a new <confirmed-commit> operation.";
-        }
-        enum "complete" {
-          description
-            "The confirmed-commit procedure has been completed.";
-        }
-      }
-      mandatory true;
-      description
-        "Indicates the event that caused the notification.";
-    }
-
-    leaf timeout {
-      when
-        "../confirm-event = 'start' or ../confirm-event = 'extend'";
-      type uint32;
-      units "seconds";
-      description
-        "The configured timeout value if the event type
-         is 'start' or 'extend'.  This value represents
-         the approximate number of seconds from the event
-         time when the 'timeout' event might occur.";
-    }
-  } // notification netconf-confirmed-commit
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf@2011-06-01.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf@2011-06-01.yang
deleted file mode 100644 (file)
index 4bbb1c2..0000000
+++ /dev/null
@@ -1,928 +0,0 @@
-module ietf-netconf {
-
-  // the namespace for NETCONF XML definitions is unchanged
-  // from RFC 4741, which this document replaces
-  namespace "urn:ietf:params:xml:ns:netconf:base:1.0";
-
-  prefix nc;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-
-  organization
-    "IETF NETCONF (Network Configuration) Working Group";
-
-  contact
-    "WG Web:   <http://tools.ietf.org/wg/netconf/>
-     WG List:  <netconf@ietf.org>
-
-     WG Chair: Bert Wijnen
-               <bertietf@bwijnen.net>
-
-     WG Chair: Mehmet Ersue
-               <mehmet.ersue@nsn.com>
-
-     Editor:   Martin Bjorklund
-               <mbj@tail-f.com>
-
-     Editor:   Juergen Schoenwaelder
-               <j.schoenwaelder@jacobs-university.de>
-
-     Editor:   Andy Bierman
-               <andy.bierman@brocade.com>";
-  description
-    "NETCONF Protocol Data Types and Protocol Operations.
-
-     Copyright (c) 2011 IETF Trust and the persons identified as
-     the document authors.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC 6241; see
-     the RFC itself for full legal notices.";
-
-  revision 2011-06-01 {
-    description
-      "Initial revision;";
-    reference
-      "RFC 6241: Network Configuration Protocol";
-  }
-
-  extension get-filter-element-attributes {
-    description
-      "If this extension is present within an 'anyxml'
-       statement named 'filter', which must be conceptually
-       defined within the RPC input section for the <get>
-       and <get-config> protocol operations, then the
-       following unqualified XML attribute is supported
-       within the <filter> element, within a <get> or
-       <get-config> protocol operation:
-
-         type : optional attribute with allowed
-                value strings 'subtree' and 'xpath'.
-                If missing, the default value is 'subtree'.
-
-       If the 'xpath' feature is supported, then the
-       following unqualified XML attribute is
-       also supported:
-
-         select: optional attribute containing a
-                 string representing an XPath expression.
-                 The 'type' attribute must be equal to 'xpath'
-                 if this attribute is present.";
-  }
-
-  // NETCONF capabilities defined as features
-  feature writable-running {
-    description
-      "NETCONF :writable-running capability;
-       If the server advertises the :writable-running
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.2";
-  }
-
-  feature candidate {
-    description
-      "NETCONF :candidate capability;
-       If the server advertises the :candidate
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.3";
-  }
-
-  feature confirmed-commit {
-    if-feature candidate;
-    description
-      "NETCONF :confirmed-commit:1.1 capability;
-       If the server advertises the :confirmed-commit:1.1
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-
-    reference "RFC 6241, Section 8.4";
-  }
-
-  feature rollback-on-error {
-    description
-      "NETCONF :rollback-on-error capability;
-       If the server advertises the :rollback-on-error
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.5";
-  }
-
-  feature validate {
-    description
-      "NETCONF :validate:1.1 capability;
-       If the server advertises the :validate:1.1
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.6";
-  }
-
-  feature startup {
-    description
-      "NETCONF :startup capability;
-       If the server advertises the :startup
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.7";
-  }
-
-  feature url {
-    description
-      "NETCONF :url capability;
-       If the server advertises the :url
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.8";
-  }
-
-  feature xpath {
-    description
-      "NETCONF :xpath capability;
-       If the server advertises the :xpath
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.9";
-  }
-
-  // NETCONF Simple Types
-
-  typedef session-id-type {
-    type uint32 {
-      range "1..max";
-    }
-    description
-      "NETCONF Session Id";
-  }
-
-  typedef session-id-or-zero-type {
-    type uint32;
-    description
-      "NETCONF Session Id or Zero to indicate none";
-  }
-  typedef error-tag-type {
-    type enumeration {
-       enum in-use {
-         description
-           "The request requires a resource that
-            already is in use.";
-       }
-       enum invalid-value {
-         description
-           "The request specifies an unacceptable value for one
-            or more parameters.";
-       }
-       enum too-big {
-         description
-           "The request or response (that would be generated) is
-            too large for the implementation to handle.";
-       }
-       enum missing-attribute {
-         description
-           "An expected attribute is missing.";
-       }
-       enum bad-attribute {
-         description
-           "An attribute value is not correct; e.g., wrong type,
-            out of range, pattern mismatch.";
-       }
-       enum unknown-attribute {
-         description
-           "An unexpected attribute is present.";
-       }
-       enum missing-element {
-         description
-           "An expected element is missing.";
-       }
-       enum bad-element {
-         description
-           "An element value is not correct; e.g., wrong type,
-            out of range, pattern mismatch.";
-       }
-       enum unknown-element {
-         description
-           "An unexpected element is present.";
-       }
-       enum unknown-namespace {
-         description
-           "An unexpected namespace is present.";
-       }
-       enum access-denied {
-         description
-           "Access to the requested protocol operation or
-            data model is denied because authorization failed.";
-       }
-       enum lock-denied {
-         description
-           "Access to the requested lock is denied because the
-            lock is currently held by another entity.";
-       }
-       enum resource-denied {
-         description
-           "Request could not be completed because of
-            insufficient resources.";
-       }
-       enum rollback-failed {
-         description
-           "Request to roll back some configuration change (via
-            rollback-on-error or <discard-changes> operations)
-            was not completed for some reason.";
-
-       }
-       enum data-exists {
-         description
-           "Request could not be completed because the relevant
-            data model content already exists.  For example,
-            a 'create' operation was attempted on data that
-            already exists.";
-       }
-       enum data-missing {
-         description
-           "Request could not be completed because the relevant
-            data model content does not exist.  For example,
-            a 'delete' operation was attempted on
-            data that does not exist.";
-       }
-       enum operation-not-supported {
-         description
-           "Request could not be completed because the requested
-            operation is not supported by this implementation.";
-       }
-       enum operation-failed {
-         description
-           "Request could not be completed because the requested
-            operation failed for some reason not covered by
-            any other error condition.";
-       }
-       enum partial-operation {
-         description
-           "This error-tag is obsolete, and SHOULD NOT be sent
-            by servers conforming to this document.";
-       }
-       enum malformed-message {
-         description
-           "A message could not be handled because it failed to
-            be parsed correctly.  For example, the message is not
-            well-formed XML or it uses an invalid character set.";
-       }
-     }
-     description "NETCONF Error Tag";
-     reference "RFC 6241, Appendix A";
-  }
-
-  typedef error-severity-type {
-    type enumeration {
-      enum error {
-        description "Error severity";
-      }
-      enum warning {
-        description "Warning severity";
-      }
-    }
-    description "NETCONF Error Severity";
-    reference "RFC 6241, Section 4.3";
-  }
-
-  typedef edit-operation-type {
-    type enumeration {
-      enum merge {
-        description
-          "The configuration data identified by the
-           element containing this attribute is merged
-           with the configuration at the corresponding
-           level in the configuration datastore identified
-           by the target parameter.";
-      }
-      enum replace {
-        description
-          "The configuration data identified by the element
-           containing this attribute replaces any related
-           configuration in the configuration datastore
-           identified by the target parameter.  If no such
-           configuration data exists in the configuration
-           datastore, it is created.  Unlike a
-           <copy-config> operation, which replaces the
-           entire target configuration, only the configuration
-           actually present in the config parameter is affected.";
-      }
-      enum create {
-        description
-          "The configuration data identified by the element
-           containing this attribute is added to the
-           configuration if and only if the configuration
-           data does not already exist in the configuration
-           datastore.  If the configuration data exists, an
-           <rpc-error> element is returned with an
-           <error-tag> value of 'data-exists'.";
-      }
-      enum delete {
-        description
-          "The configuration data identified by the element
-           containing this attribute is deleted from the
-           configuration if and only if the configuration
-           data currently exists in the configuration
-           datastore.  If the configuration data does not
-           exist, an <rpc-error> element is returned with
-           an <error-tag> value of 'data-missing'.";
-      }
-      enum remove {
-        description
-          "The configuration data identified by the element
-           containing this attribute is deleted from the
-           configuration if the configuration
-           data currently exists in the configuration
-           datastore.  If the configuration data does not
-           exist, the 'remove' operation is silently ignored
-           by the server.";
-      }
-    }
-    default "merge";
-    description "NETCONF 'operation' attribute values";
-    reference "RFC 6241, Section 7.2";
-  }
-
-  // NETCONF Standard Protocol Operations
-
-  rpc get-config {
-    description
-      "Retrieve all or part of a specified configuration.";
-
-    reference "RFC 6241, Section 7.1";
-
-    input {
-      container source {
-        description
-          "Particular configuration to retrieve.";
-
-        choice config-source {
-          mandatory true;
-          description
-            "The configuration to retrieve.";
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config source.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config source.
-               This is optional-to-implement on the server because
-               not all servers will support filtering for this
-               datastore.";
-          }
-        }
-      }
-
-      anyxml filter {
-        description
-          "Subtree or XPath filter to use.";
-        nc:get-filter-element-attributes;
-      }
-    }
-
-    output {
-      anyxml data {
-        description
-          "Copy of the source datastore subset that matched
-           the filter criteria (if any).  An empty data container
-           indicates that the request did not produce any results.";
-      }
-    }
-  }
-
-  rpc edit-config {
-    description
-      "The <edit-config> operation loads all or part of a specified
-       configuration to the specified target configuration.";
-
-    reference "RFC 6241, Section 7.2";
-
-    input {
-      container target {
-        description
-          "Particular configuration to edit.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            if-feature writable-running;
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-        }
-      }
-
-      leaf default-operation {
-        type enumeration {
-          enum merge {
-            description
-              "The default operation is merge.";
-          }
-          enum replace {
-            description
-              "The default operation is replace.";
-          }
-          enum none {
-            description
-              "There is no default operation.";
-          }
-        }
-        default "merge";
-        description
-          "The default operation to use.";
-      }
-
-      leaf test-option {
-        if-feature validate;
-        type enumeration {
-          enum test-then-set {
-            description
-              "The server will test and then set if no errors.";
-          }
-          enum set {
-            description
-              "The server will set without a test first.";
-          }
-
-          enum test-only {
-            description
-              "The server will only test and not set, even
-               if there are no errors.";
-          }
-        }
-        default "test-then-set";
-        description
-          "The test option to use.";
-      }
-
-      leaf error-option {
-        type enumeration {
-          enum stop-on-error {
-            description
-              "The server will stop on errors.";
-          }
-          enum continue-on-error {
-            description
-              "The server may continue on errors.";
-          }
-          enum rollback-on-error {
-            description
-              "The server will roll back on errors.
-               This value can only be used if the 'rollback-on-error'
-               feature is supported.";
-          }
-        }
-        default "stop-on-error";
-        description
-          "The error option to use.";
-      }
-
-      choice edit-content {
-        mandatory true;
-        description
-          "The content for the edit operation.";
-
-        anyxml config {
-          description
-            "Inline Config content.";
-        }
-        leaf url {
-          if-feature url;
-          type inet:uri;
-          description
-            "URL-based config content.";
-        }
-      }
-    }
-  }
-
-  rpc copy-config {
-    description
-      "Create or replace an entire configuration datastore with the
-       contents of another complete configuration datastore.";
-
-    reference "RFC 6241, Section 7.3";
-
-    input {
-      container target {
-        description
-          "Particular configuration to copy to.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target of the copy operation.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            if-feature writable-running;
-            type empty;
-            description
-              "The running configuration is the config target.
-               This is optional-to-implement on the server.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config target.";
-          }
-        }
-      }
-
-      container source {
-        description
-          "Particular configuration to copy from.";
-
-        choice config-source {
-          mandatory true;
-          description
-            "The configuration source for the copy operation.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config source.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config source.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config source.";
-          }
-          anyxml config {
-            description
-              "Inline Config content: <config> element.  Represents
-               an entire configuration datastore, not
-               a subset of the running datastore.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc delete-config {
-    description
-      "Delete a configuration datastore.";
-
-    reference "RFC 6241, Section 7.4";
-
-    input {
-      container target {
-        description
-          "Particular configuration to delete.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target to delete.";
-
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config target.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc lock {
-    description
-      "The lock operation allows the client to lock the configuration
-       system of a device.";
-
-    reference "RFC 6241, Section 7.5";
-
-    input {
-      container target {
-        description
-          "Particular configuration to lock.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target to lock.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config target.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc unlock {
-    description
-      "The unlock operation is used to release a configuration lock,
-       previously obtained with the 'lock' operation.";
-
-    reference "RFC 6241, Section 7.6";
-
-    input {
-      container target {
-        description
-          "Particular configuration to unlock.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target to unlock.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config target.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc get {
-    description
-      "Retrieve running configuration and device state information.";
-
-    reference "RFC 6241, Section 7.7";
-
-    input {
-      anyxml filter {
-        description
-          "This parameter specifies the portion of the system
-           configuration and state data to retrieve.";
-        nc:get-filter-element-attributes;
-      }
-    }
-
-    output {
-      anyxml data {
-        description
-          "Copy of the running datastore subset and/or state
-           data that matched the filter criteria (if any).
-           An empty data container indicates that the request did not
-           produce any results.";
-      }
-    }
-  }
-
-  rpc close-session {
-    description
-      "Request graceful termination of a NETCONF session.";
-
-    reference "RFC 6241, Section 7.8";
-  }
-
-  rpc kill-session {
-    description
-      "Force the termination of a NETCONF session.";
-
-    reference "RFC 6241, Section 7.9";
-
-    input {
-      leaf session-id {
-        type session-id-type;
-        mandatory true;
-        description
-          "Particular session to kill.";
-      }
-    }
-  }
-
-  rpc commit {
-    if-feature candidate;
-
-    description
-      "Commit the candidate configuration as the device's new
-       current configuration.";
-
-    reference "RFC 6241, Section 8.3.4.1";
-
-    input {
-      leaf confirmed {
-        if-feature confirmed-commit;
-        type empty;
-        description
-          "Requests a confirmed commit.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-      leaf confirm-timeout {
-        if-feature confirmed-commit;
-        type uint32 {
-          range "1..max";
-        }
-        units "seconds";
-        default "600";   // 10 minutes
-        description
-          "The timeout interval for a confirmed commit.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-      leaf persist {
-        if-feature confirmed-commit;
-        type string;
-        description
-          "This parameter is used to make a confirmed commit
-           persistent.  A persistent confirmed commit is not aborted
-           if the NETCONF session terminates.  The only way to abort
-           a persistent confirmed commit is to let the timer expire,
-           or to use the <cancel-commit> operation.
-
-           The value of this parameter is a token that must be given
-           in the 'persist-id' parameter of <commit> or
-           <cancel-commit> operations in order to confirm or cancel
-           the persistent confirmed commit.
-
-           The token should be a random string.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-      leaf persist-id {
-        if-feature confirmed-commit;
-        type string;
-        description
-          "This parameter is given in order to commit a persistent
-           confirmed commit.  The value must be equal to the value
-           given in the 'persist' parameter to the <commit> operation.
-           If it does not match, the operation fails with an
-          'invalid-value' error.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-    }
-  }
-
-  rpc discard-changes {
-    if-feature candidate;
-
-    description
-      "Revert the candidate configuration to the current
-       running configuration.";
-    reference "RFC 6241, Section 8.3.4.2";
-  }
-
-  rpc cancel-commit {
-    if-feature confirmed-commit;
-    description
-      "This operation is used to cancel an ongoing confirmed commit.
-       If the confirmed commit is persistent, the parameter
-       'persist-id' must be given, and it must match the value of the
-       'persist' parameter.";
-    reference "RFC 6241, Section 8.4.4.1";
-
-    input {
-      leaf persist-id {
-        type string;
-        description
-          "This parameter is given in order to cancel a persistent
-           confirmed commit.  The value must be equal to the value
-           given in the 'persist' parameter to the <commit> operation.
-           If it does not match, the operation fails with an
-          'invalid-value' error.";
-      }
-    }
-  }
-
-  rpc validate {
-    if-feature validate;
-
-    description
-      "Validates the contents of the specified configuration.";
-
-    reference "RFC 6241, Section 8.6.4.1";
-
-    input {
-      container source {
-        description
-          "Particular configuration to validate.";
-
-        choice config-source {
-          mandatory true;
-          description
-            "The configuration source to validate.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config source.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config source.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config source.";
-          }
-          anyxml config {
-            description
-              "Inline Config content: <config> element.  Represents
-               an entire configuration datastore, not
-               a subset of the running datastore.";
-          }
-        }
-      }
-    }
-  }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-network-topology@2015-06-08.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-network-topology@2015-06-08.yang
deleted file mode 100644 (file)
index 0aeb2e5..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-module ietf-network-topology {
-  yang-version 1;
-  namespace "urn:ietf:params:xml:ns:yang:ietf-network-topology";
-  prefix lnk;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-  import ietf-network {
-    prefix nd;
-  }
-
-  organization "TBD";
-  contact
-    "WILL-BE-DEFINED-LATER";
-  description
-    "This module defines a common base model for network topology,
-     augmenting the base network model with links to connect nodes,
-     as well as termination points to terminate links on nodes.";
-
-  revision 2015-06-08 {
-    description
-      "Initial revision.";
-    reference "draft-ietf-i2rs-yang-network-topo-01";
-  }
-
-  typedef link-id {
-    type inet:uri;
-    description
-      "An identifier for a link in a topology.
-       The identifier may be opaque.
-       The identifier SHOULD be chosen such that the same link in a
-       real network topology will always be identified through the
-       same identifier, even if the model is instantiated in
-       separate datastores. An implementation MAY choose to capture
-       semantics in the identifier, for example to indicate the type
-       of link and/or the type of topology that the link is a part
-       of.";
-  }
-
-  typedef tp-id {
-    type inet:uri;
-    description
-      "An identifier for termination points on a node.
-       The identifier may be opaque.
-       The identifier SHOULD be chosen such that the same TP in a
-       real network topology will always be identified through the
-       same identifier, even if the model is instantiated in
-       separate datastores. An implementation MAY choose to capture
-       semantics in the identifier, for example to indicate the type
-       of TP and/or the type of node and topology that the TP is a
-       part of.";
-  }
-
-  grouping link-ref {
-    description
-      "References a link in a specific network.";
-    leaf link-ref {
-      type leafref {
-        path "/nd:network[nd:network-id=current()/../"+
-          "nd:network-ref]/link/link-id";
-      }
-      description
-        "A type for an absolute reference a link instance.
-         (This type should not be used for relative references.
-         In such a case, a relative path should be used instead.)";
-    }
-    uses nd:network-ref;
-  }
-
-  grouping tp-ref {
-    description
-      "References a termination point in a specific node.";
-    leaf tp-ref {
-      type leafref {
-        path "/nd:network[nd:network-id=current()/../"+
-          "nd:network-ref]/nd:node[nd:node-id=current()/../"+
-          "nd:node-ref]/termination-point/tp-id";
-      }
-      description
-        "A type for an absolute reference to a termination point.
-         (This type should not be used for relative references.
-         In such a case, a relative path should be used instead.)";
-    }
-    uses nd:node-ref;
-  }
-
-  augment "/nd:network" {
-    description
-      "Add links to the network model.";
-    list link {
-      key "link-id";
-      description
-        "A Network Link connects a by Local (Source) node and
-         a Remote (Destination) Network Nodes via a set of the
-         nodes' termination points.
-         As it is possible to have several links between the same
-         source and destination nodes, and as a link could
-         potentially be re-homed between termination points, to
-         ensure that we would always know to distinguish between
-         links, every link is identified by a dedicated link
-         identifier.
-         Note that a link models a point-to-point link, not a
-         multipoint link.
-         Layering dependencies on links in underlay topologies are
-         not represented as the layering information of nodes and of
-         termination points is sufficient.";
-      container source {
-        description
-          "This container holds the logical source of a particular
-           link.";
-        leaf source-node {
-          type leafref {
-            path "../../../nd:node/nd:node-id";
-          }
-          mandatory true;
-          description
-            "Source node identifier, must be in same topology.";
-        }
-        leaf source-tp {
-          type leafref {
-            path "../../../nd:node[nd:node-id=current()/../"+
-              "source-node]/termination-point/tp-id";
-          }
-          description
-            "Termination point within source node that terminates
-             the link.";
-        }
-      }
-      container destination {
-        description
-          "This container holds the logical destination of a
-           particular link.";
-        leaf dest-node {
-          type leafref {
-            path "../../../nd:node/nd:node-id";
-          }
-          mandatory true;
-          description
-            "Destination node identifier, must be in the same
-             network.";
-        }
-        leaf dest-tp {
-          type leafref {
-            path "../../../nd:node[nd:node-id=current()/../"+
-              "dest-node]/termination-point/tp-id";
-          }
-          description
-            "Termination point within destination node that
-             terminates the link.";
-        }
-      }
-      leaf link-id {
-        type link-id;
-        description
-          "The identifier of a link in the topology.
-           A link is specific to a topology to which it belongs.";
-      }
-      list supporting-link {
-        key "network-ref link-ref";
-        description
-          "Identifies the link, or links, that this link
-           is dependent on.";
-        leaf network-ref {
-          type leafref {
-            path "../../../nd:supporting-network/nd:network-ref";
-          }
-          description
-            "This leaf identifies in which underlay topology
-             supporting link is present.";
-        }
-        leaf link-ref {
-          type leafref {
-            path "/nd:network[nd:network-id=current()/.."+
-              "/network-ref]/link/link-id";
-          }
-          description
-            "This leaf identifies a link which is a part
-             of this link's underlay. Reference loops, in which
-             a link identifies itself as its underlay, either
-             directly or transitively, are not allowed.";
-        }
-      }
-    }
-  }
-  augment "/nd:network/nd:node" {
-    description
-      "Augment termination points which terminate links.
-       Termination points can ultimately be mapped to interfaces.";
-    list termination-point {
-      key "tp-id";
-      description
-        "A termination point can terminate a link.
-         Depending on the type of topology, a termination point
-         could, for example, refer to a port or an interface.";
-      leaf tp-id {
-        type tp-id;
-        description
-          "Termination point identifier.";
-      }
-      list supporting-termination-point {
-        key "network-ref node-ref tp-ref";
-        description
-          "The leaf list identifies any termination points that
-           the termination point is dependent on, or maps onto.
-           Those termination points will themselves be contained
-           in a supporting node.
-           This dependency information can be inferred from
-           the dependencies between links.  For this reason,
-           this item is not separately configurable.  Hence no
-           corresponding constraint needs to be articulated.
-           The corresponding information is simply provided by the
-           implementing system.";
-        leaf network-ref {
-          type leafref {
-            path "../../../nd:supporting-node/nd:network-ref";
-          }
-          description
-            "This leaf identifies in which topology the
-             supporting termination point is present.";
-        }
-        leaf node-ref {
-          type leafref {
-            path "../../../nd:supporting-node/nd:node-ref";
-          }
-          description
-            "This leaf identifies in which node the supporting
-             termination point is present.";
-        }
-        leaf tp-ref {
-          type leafref {
-            path "/nd:network[nd:network-id=current()/../"+
-              "network-ref]/nd:node[nd:node-id=current()/../"+
-              "node-ref]/termination-point/tp-id";
-          }
-          description
-            "Reference to the underlay node, must be in a
-             different topology";
-        }
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-network@2015-06-08.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-network@2015-06-08.yang
deleted file mode 100644 (file)
index 9e2dadf..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-module ietf-network {
-  yang-version 1;
-  namespace "urn:ietf:params:xml:ns:yang:ietf-network";
-  prefix nd;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-
-  organization "TBD";
-  contact
-    "WILL-BE-DEFINED-LATER";
-  description
-    "This module defines a common base model for a collection
-     of nodes in a network. Node definitions s are further used
-     in network topologies and inventories.";
-
-  revision 2015-06-08 {
-    description
-      "Initial revision.";
-    reference "draft-ietf-i2rs-yang-network-topo-01";
-  }
-
-  typedef node-id {
-    type inet:uri;
-    description
-      "Identifier for a node.";
-  }
-
-  typedef network-id {
-    type inet:uri;
-    description
-      "Identifier for a network.";
-  }
-
-  grouping network-ref {
-    description
-      "Contains the information necessary to reference a network,
-       for example an underlay network.";
-    leaf network-ref {
-      type leafref {
-        path "/network/network-id";
-      }
-      description
-        "Used to reference a network, for example an underlay
-         network.";
-    }
-  }
-
-  grouping node-ref {
-    description
-      "Contains the information necessary to reference a node.";
-    leaf node-ref {
-      type leafref {
-        path "/network[network-id=current()/../network-ref]"+
-          "/node/node-id";
-      }
-      description
-        "Used to reference a node.
-         Nodes are identified relative to the network they are
-         contained in.";
-    }
-    uses network-ref;
-  }
-
-  list network {
-    key "network-id";
-    description
-      "Describes a network.
-       A network typically contains an inventory of nodes,
-       topological information (augmented through
-       network-topology model), as well as layering
-       information.";
-    container network-types {
-      description
-        "Serves as an augmentation target.
-         The network type is indicated through corresponding
-         presence containers augmented into this container.";
-    }
-    leaf network-id {
-      type network-id;
-      description
-        "Identifies a network.";
-    }
-    leaf server-provided {
-      type boolean;
-      config false;
-      description
-        "Indicates whether the information concerning this
-         particular network is populated by the server
-         (server-provided true, the general case for network
-         information discovered from the server),
-         or whether it is configured by a client
-         (server-provided true, possible e.g. for
-         service overlays managed through a controller).";
-    }
-    list supporting-network {
-      key "network-ref";
-      description
-        "An underlay network, used to represent layered network
-         topologies.";
-      leaf network-ref {
-        type leafref {
-          path "/network/network-id";
-        }
-        description
-          "References the underlay network.";
-      }
-    }
-    list node {
-      key "node-id";
-      description
-        "The inventory of nodes of this network.";
-      leaf node-id {
-        type node-id;
-        description
-          "Identifies a node uniquely within the containing
-           network.";
-      }
-      list supporting-node {
-        key "network-ref node-ref";
-        description
-          "Represents another node, in an underlay network, that
-           this node is supported by.  Used to represent layering
-           structure.";
-        leaf network-ref {
-          type leafref {
-            path "../../../supporting-network/network-ref";
-          }
-          description
-            "References the underlay network that the
-             underlay node is part of.";
-        }
-        leaf node-ref {
-          type leafref {
-            path "/network/node/node-id";
-          }
-          description
-            "References the underlay node itself.";
-        }
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-yang-types@2013-07-15.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-yang-types@2013-07-15.yang
deleted file mode 100644 (file)
index bdff18c..0000000
+++ /dev/null
@@ -1,467 +0,0 @@
-module ietf-yang-types {
-
-     namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types";
-     prefix "yang";
-
-     organization
-      "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-
-     contact
-      "WG Web:   <http://tools.ietf.org/wg/netmod/>
-       WG List:  <mailto:netmod@ietf.org>
-       WG Chair: David Kessens
-                 <mailto:david.kessens@nsn.com>
-
-       WG Chair: Juergen Schoenwaelder
-                 <mailto:j.schoenwaelder@jacobs-university.de>
-
-       Editor:   Juergen Schoenwaelder
-                 <mailto:j.schoenwaelder@jacobs-university.de>";
-
-     description
-      "This module contains a collection of generally useful derived
-       YANG data types.
-
-       Copyright (c) 2013 IETF Trust and the persons identified as
-       authors of the code.  All rights reserved.
-
-       Redistribution and use in source and binary forms, with or
-       without modification, is permitted pursuant to, and subject
-       to the license terms contained in, the Simplified BSD License
-       set forth in Section 4.c of the IETF Trust's Legal Provisions
-       Relating to IETF Documents
-       (http://trustee.ietf.org/license-info).
-
-       This version of this YANG module is part of RFC 6991; see
-       the RFC itself for full legal notices.";
-
-     revision 2013-07-15 {
-       description
-        "This revision adds the following new data types:
-         - yang-identifier
-         - hex-string
-         - uuid
-         - dotted-quad";
-       reference
-        "RFC 6991: Common YANG Data Types";
-     }
-
-     revision 2010-09-24 {
-       description
-        "Initial revision.";
-       reference
-        "RFC 6021: Common YANG Data Types";
-     }
-
-     /*** collection of counter and gauge types ***/
-
-     typedef counter32 {
-       type uint32;
-       description
-        "The counter32 type represents a non-negative integer
-         that monotonically increases until it reaches a
-         maximum value of 2^32-1 (4294967295 decimal), when it
-         wraps around and starts increasing again from zero.
-
-         Counters have no defined 'initial' value, and thus, a
-         single value of a counter has (in general) no information
-         content.  Discontinuities in the monotonically increasing
-         value normally occur at re-initialization of the
-         management system, and at other times as specified in the
-         description of a schema node using this type.  If such
-         other times can occur, for example, the creation of
-         a schema node of type counter32 at times other than
-         re-initialization, then a corresponding schema node
-         should be defined, with an appropriate type, to indicate
-         the last discontinuity.
-
-         The counter32 type should not be used for configuration
-         schema nodes.  A default statement SHOULD NOT be used in
-         combination with the type counter32.
-
-         In the value set and its semantics, this type is equivalent
-         to the Counter32 type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef zero-based-counter32 {
-       type yang:counter32;
-       default "0";
-       description
-        "The zero-based-counter32 type represents a counter32
-         that has the defined 'initial' value zero.
-
-         A schema node of this type will be set to zero (0) on creation
-         and will thereafter increase monotonically until it reaches
-         a maximum value of 2^32-1 (4294967295 decimal), when it
-         wraps around and starts increasing again from zero.
-
-         Provided that an application discovers a new schema node
-         of this type within the minimum time to wrap, it can use the
-         'initial' value as a delta.  It is important for a management
-         station to be aware of this minimum time and the actual time
-         between polls, and to discard data if the actual time is too
-         long or there is no defined minimum time.
-        In the value set and its semantics, this type is equivalent
-         to the ZeroBasedCounter32 textual convention of the SMIv2.";
-       reference
-         "RFC 4502: Remote Network Monitoring Management Information
-                    Base Version 2";
-     }
-
-     typedef counter64 {
-       type uint64;
-       description
-        "The counter64 type represents a non-negative integer
-         that monotonically increases until it reaches a
-         maximum value of 2^64-1 (18446744073709551615 decimal),
-         when it wraps around and starts increasing again from zero.
-
-         Counters have no defined 'initial' value, and thus, a
-         single value of a counter has (in general) no information
-         content.  Discontinuities in the monotonically increasing
-         value normally occur at re-initialization of the
-         management system, and at other times as specified in the
-         description of a schema node using this type.  If such
-         other times can occur, for example, the creation of
-         a schema node of type counter64 at times other than
-         re-initialization, then a corresponding schema node
-         should be defined, with an appropriate type, to indicate
-         the last discontinuity.
-
-         The counter64 type should not be used for configuration
-         schema nodes.  A default statement SHOULD NOT be used in
-         combination with the type counter64.
-
-         In the value set and its semantics, this type is equivalent
-         to the Counter64 type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef zero-based-counter64 {
-       type yang:counter64;
-       default "0";
-       description
-        "The zero-based-counter64 type represents a counter64 that
-         has the defined 'initial' value zero.
-         A schema node of this type will be set to zero (0) on creation
-         and will thereafter increase monotonically until it reaches
-         a maximum value of 2^64-1 (18446744073709551615 decimal),
-         when it wraps around and starts increasing again from zero.
-
-         Provided that an application discovers a new schema node
-         of this type within the minimum time to wrap, it can use the
-         'initial' value as a delta.  It is important for a management
-         station to be aware of this minimum time and the actual time
-         between polls, and to discard data if the actual time is too
-         long or there is no defined minimum time.
-
-         In the value set and its semantics, this type is equivalent
-         to the ZeroBasedCounter64 textual convention of the SMIv2.";
-       reference
-        "RFC 2856: Textual Conventions for Additional High Capacity
-                   Data Types";
-     }
-
-     typedef gauge32 {
-       type uint32;
-       description
-        "The gauge32 type represents a non-negative integer, which
-         may increase or decrease, but shall never exceed a maximum
-         value, nor fall below a minimum value.  The maximum value
-         cannot be greater than 2^32-1 (4294967295 decimal), and
-         the minimum value cannot be smaller than 0.  The value of
-         a gauge32 has its maximum value whenever the information
-         being modeled is greater than or equal to its maximum
-         value, and has its minimum value whenever the information
-         being modeled is smaller than or equal to its minimum value.
-         If the information being modeled subsequently decreases
-         below (increases above) the maximum (minimum) value, the
-         gauge32 also decreases (increases).
-
-         In the value set and its semantics, this type is equivalent
-         to the Gauge32 type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef gauge64 {
-       type uint64;
-       description
-        "The gauge64 type represents a non-negative integer, which
-         may increase or decrease, but shall never exceed a maximum
-         value, nor fall below a minimum value.  The maximum value
-         cannot be greater than 2^64-1 (18446744073709551615), and
-         the minimum value cannot be smaller than 0.  The value of
-         a gauge64 has its maximum value whenever the information
-         being modeled is greater than or equal to its maximum
-         value, and has its minimum value whenever the information
-         being modeled is smaller than or equal to its minimum value.
-         If the information being modeled subsequently decreases
-         below (increases above) the maximum (minimum) value, the
-         gauge64 also decreases (increases).
-
-         In the value set and its semantics, this type is equivalent
-         to the CounterBasedGauge64 SMIv2 textual convention defined
-         in RFC 2856";
-       reference
-        "RFC 2856: Textual Conventions for Additional High Capacity
-                   Data Types";
-     }
-
-     /*** collection of identifier-related types ***/
-
-     typedef object-identifier {
-       type string {
-         pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))'
-               + '(\.(0|([1-9]\d*)))*';
-       }
-       description
-        "The object-identifier type represents administratively
-         assigned names in a registration-hierarchical-name tree.
-
-         Values of this type are denoted as a sequence of numerical
-         non-negative sub-identifier values.  Each sub-identifier
-         value MUST NOT exceed 2^32-1 (4294967295).  Sub-identifiers
-         are separated by single dots and without any intermediate
-         whitespace.
-
-         The ASN.1 standard restricts the value space of the first
-         sub-identifier to 0, 1, or 2.  Furthermore, the value space
-         of the second sub-identifier is restricted to the range
-         0 to 39 if the first sub-identifier is 0 or 1.  Finally,
-         the ASN.1 standard requires that an object identifier
-         has always at least two sub-identifiers.  The pattern
-         captures these restrictions.
-
-         Although the number of sub-identifiers is not limited,
-         module designers should realize that there may be
-         implementations that stick with the SMIv2 limit of 128
-         sub-identifiers.
-         This type is a superset of the SMIv2 OBJECT IDENTIFIER type
-         since it is not restricted to 128 sub-identifiers.  Hence,
-         this type SHOULD NOT be used to represent the SMIv2 OBJECT
-         IDENTIFIER type; the object-identifier-128 type SHOULD be
-         used instead.";
-       reference
-        "ISO9834-1: Information technology -- Open Systems
-         Interconnection -- Procedures for the operation of OSI
-         Registration Authorities: General procedures and top
-         arcs of the ASN.1 Object Identifier tree";
-     }
-
-     typedef object-identifier-128 {
-       type object-identifier {
-         pattern '\d*(\.\d*){1,127}';
-       }
-       description
-        "This type represents object-identifiers restricted to 128
-         sub-identifiers.
-
-         In the value set and its semantics, this type is equivalent
-         to the OBJECT IDENTIFIER type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef yang-identifier {
-       type string {
-         length "1..max";
-         pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*';
-         pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*';
-       }
-       description
-         "A YANG identifier string as defined by the 'identifier'
-          rule in Section 12 of RFC 6020.  An identifier must
-          start with an alphabetic character or an underscore
-          followed by an arbitrary sequence of alphabetic or
-          numeric characters, underscores, hyphens, or dots.
-
-          A YANG identifier MUST NOT start with any possible
-          combination of the lowercase or uppercase character
-          sequence 'xml'.";
-       reference
-         "RFC 6020: YANG - A Data Modeling Language for the Network
-                    Configuration Protocol (NETCONF)";
-     }
-     /*** collection of types related to date and time***/
-
-     typedef date-and-time {
-       type string {
-         pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?'
-               + '(Z|[\+\-]\d{2}:\d{2})';
-       }
-       description
-        "The date-and-time type is a profile of the ISO 8601
-         standard for representation of dates and times using the
-         Gregorian calendar.  The profile is defined by the
-         date-time production in Section 5.6 of RFC 3339.
-
-         The date-and-time type is compatible with the dateTime XML
-         schema type with the following notable exceptions:
-
-         (a) The date-and-time type does not allow negative years.
-
-         (b) The date-and-time time-offset -00:00 indicates an unknown
-             time zone (see RFC 3339) while -00:00 and +00:00 and Z
-             all represent the same time zone in dateTime.
-
-         (c) The canonical format (see below) of data-and-time values
-             differs from the canonical format used by the dateTime XML
-             schema type, which requires all times to be in UTC using
-             the time-offset 'Z'.
-
-         This type is not equivalent to the DateAndTime textual
-         convention of the SMIv2 since RFC 3339 uses a different
-         separator between full-date and full-time and provides
-         higher resolution of time-secfrac.
-
-         The canonical format for date-and-time values with a known time
-         zone uses a numeric time zone offset that is calculated using
-         the device's configured known offset to UTC time.  A change of
-         the device's offset to UTC time will cause date-and-time values
-         to change accordingly.  Such changes might happen periodically
-         in case a server follows automatically daylight saving time
-         (DST) time zone offset changes.  The canonical format for
-         date-and-time values with an unknown time zone (usually
-         referring to the notion of local time) uses the time-offset
-         -00:00.";
-       reference
-        "RFC 3339: Date and Time on the Internet: Timestamps
-         RFC 2579: Textual Conventions for SMIv2
-         XSD-TYPES: XML Schema Part 2: Datatypes Second Edition";
-     }
-     typedef timeticks {
-       type uint32;
-       description
-        "The timeticks type represents a non-negative integer that
-         represents the time, modulo 2^32 (4294967296 decimal), in
-         hundredths of a second between two epochs.  When a schema
-         node is defined that uses this type, the description of
-         the schema node identifies both of the reference epochs.
-
-         In the value set and its semantics, this type is equivalent
-         to the TimeTicks type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef timestamp {
-       type yang:timeticks;
-       description
-        "The timestamp type represents the value of an associated
-         timeticks schema node at which a specific occurrence
-         happened.  The specific occurrence must be defined in the
-         description of any schema node defined using this type.  When
-         the specific occurrence occurred prior to the last time the
-         associated timeticks attribute was zero, then the timestamp
-         value is zero.  Note that this requires all timestamp values
-         to be reset to zero when the value of the associated timeticks
-         attribute reaches 497+ days and wraps around to zero.
-
-         The associated timeticks schema node must be specified
-         in the description of any schema node using this type.
-
-         In the value set and its semantics, this type is equivalent
-         to the TimeStamp textual convention of the SMIv2.";
-       reference
-        "RFC 2579: Textual Conventions for SMIv2";
-     }
-
-     /*** collection of generic address types ***/
-
-     typedef phys-address {
-       type string {
-         pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
-       }
-       description
-        "Represents media- or physical-level addresses represented
-         as a sequence octets, each octet represented by two hexadecimal
-         numbers.  Octets are separated by colons.  The canonical
-         representation uses lowercase characters.
-
-         In the value set and its semantics, this type is equivalent
-         to the PhysAddress textual convention of the SMIv2.";
-       reference
-        "RFC 2579: Textual Conventions for SMIv2";
-     }
-
-     typedef mac-address {
-       type string {
-         pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}';
-       }
-       description
-        "The mac-address type represents an IEEE 802 MAC address.
-         The canonical representation uses lowercase characters.
-
-         In the value set and its semantics, this type is equivalent
-         to the MacAddress textual convention of the SMIv2.";
-       reference
-        "IEEE 802: IEEE Standard for Local and Metropolitan Area
-                   Networks: Overview and Architecture
-         RFC 2579: Textual Conventions for SMIv2";
-     }
-
-     /*** collection of XML-specific types ***/
-
-     typedef xpath1.0 {
-       type string;
-       description
-        "This type represents an XPATH 1.0 expression.
-
-         When a schema node is defined that uses this type, the
-         description of the schema node MUST specify the XPath
-         context in which the XPath expression is evaluated.";
-       reference
-        "XPATH: XML Path Language (XPath) Version 1.0";
-     }
-
-     /*** collection of string types ***/
-
-     typedef hex-string {
-       type string {
-         pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
-       }
-       description
-        "A hexadecimal string with octets represented as hex digits
-         separated by colons.  The canonical representation uses
-         lowercase characters.";
-     }
-
-     typedef uuid {
-       type string {
-         pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'
-               + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}';
-       }
-       description
-        "A Universally Unique IDentifier in the string representation
-         defined in RFC 4122.  The canonical representation uses
-         lowercase characters.
-
-         The following is an example of a UUID in string representation:
-         f81d4fae-7dec-11d0-a765-00a0c91e6bf6
-         ";
-       reference
-        "RFC 4122: A Universally Unique IDentifier (UUID) URN
-                   Namespace";
-     }
-
-     typedef dotted-quad {
-       type string {
-         pattern
-           '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-         + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
-       }
-       description
-         "An unsigned 32-bit number expressed in the dotted-quad
-          notation, i.e., four octets written as decimal numbers
-          and separated with the '.' (full stop) character.";
-     }
-   }
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/notifications@2008-07-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/notifications@2008-07-14.yang
deleted file mode 100644 (file)
index 77fbe98..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-module notifications {
-
-    namespace "urn:ietf:params:xml:ns:netconf:notification:1.0";
-    prefix "ncEvent";
-
-    import ietf-yang-types { prefix yang; revision-date "2013-07-15";}
-
-    organization
-      "IETF NETCONF WG";
-
-    contact
-      "netconf@ops.ietf.org";
-
-    description
-      "Conversion of the 'ncEvent' XSD in the
-       NETCONF Notifications RFC.";
-
-    reference
-      "RFC 5277.";
-
-    revision 2008-07-14 {
-      description "RFC 5277 version.";
-    }
-
-    typedef streamNameType {
-      description
-        "The name of an event stream.";
-      type string;
-    }
-
-    rpc create-subscription {
-      description
-        "The command to create a notification subscription. It
-         takes as argument the name of the notification stream
-         and filter. Both of those options limit the content of
-         the subscription. In addition, there are two time-related
-         parameters, startTime and stopTime, which can be used to
-         select the time interval of interest to the notification
-         replay feature.";
-
-      input {
-        leaf stream {
-          description
-            "An optional parameter that indicates which stream of events
-             is of interest. If not present, then events in the default
-             NETCONF stream will be sent.";
-          type streamNameType;
-          default "NETCONF";
-        }
-
-        anyxml filter {
-          description
-            "An optional parameter that indicates which subset of all
-             possible events is of interest. The format of this
-             parameter is the same as that of the filter parameter
-             in the NETCONF protocol operations. If not present,
-             all events not precluded by other parameters will
-             be sent.";
-        }
-
-        leaf startTime {
-          description
-            "A parameter used to trigger the replay feature and
-             indicates that the replay should start at the time
-             specified. If start time is not present, this is not a
-             replay subscription.";
-          type yang:date-and-time;
-        }
-
-        leaf stopTime {
-          // must ". >= ../startTime";
-          description
-            "An optional parameter used with the optional replay
-             feature to indicate the newest notifications of
-             interest. If stop time is not present, the notifications
-             will continue until the subscription is terminated.
-             Must be used with startTime.";
-          type yang:date-and-time;
-        }
-      }
-    }
-}
-
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-common-types@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-common-types@2016-10-14.yang
deleted file mode 100644 (file)
index e52b12b..0000000
+++ /dev/null
@@ -1,282 +0,0 @@
-module org-openroadm-common-types {
-  namespace "http://org/openroadm/common-types";
-  prefix org-openroadm-common-types;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of common types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping physical-location {
-    leaf rack {
-      type string;
-      mandatory false;
-    }
-    leaf shelf {
-      type string;
-      mandatory false;
-    }
-    leaf slot {
-      type string;
-      mandatory false;
-    }
-    leaf subSlot {
-      type string;
-      mandatory false;
-    }
-  }
-
-  typedef node-types {
-    type enumeration {
-      enum "rdm" {
-        value 1;
-      }
-      enum "xpdr" {
-        value 2;
-      }
-    }
-    description
-      "3 digit identifier for node type
-       1. rdm for ROADM
-       2. xpdr for Transponder, Regen";
-  }
-
-  typedef power-dBm {
-    description
-      "Power value in dBm.";
-    type decimal64 {
-      fraction-digits 2;
-    }
-    units "dBm";
-  }
-
-  typedef ratio-dB {
-    description
-      "Power ratio in dB.";
-    type decimal64 {
-      fraction-digits 3;
-    }
-    units "dB";
-  }
-
-  typedef severity {
-    description
-      "Severity, based on X.733 perceived severity";
-    type enumeration {
-      enum "critical" {
-        value 1;
-      }
-      enum "major" {
-        value 2;
-      }
-      enum "minor" {
-        value 3;
-      }
-      enum "warning" {
-        value 4;
-      }
-      enum "clear" {
-        value 5;
-      }
-      enum "indeterminate" {
-        value 6;
-      }
-    }
-  }
-
-  typedef rpc-status {
-    description
-      "status of RPC ";
-    type enumeration {
-      enum "Successful" {
-        value 1;
-      }
-      enum "Failed" {
-        value 2;
-      }
-    }
-  }
-
-  grouping rpc-response-status {
-    leaf status {
-      type rpc-status;
-      mandatory true;
-      description
-        "Successful or Failed";
-    }
-    leaf status-message {
-      type string;
-      description
-        "Gives a more detailed reason for failure";
-    }
-  }
-
-  typedef lifecycle-state {
-    description
-      "Lifecycle state.";
-    type enumeration {
-      enum "deployed" {
-        value 1;
-      }
-      enum "planned" {
-        value 2;
-      }
-      enum "maintenance" {
-        value 3;
-      }
-      enum "deploying" {
-        value 4;
-      }
-      enum "undeploying" {
-        value 5;
-      }
-    }
-  }
-
-  typedef state {
-    description
-      "State that indicates whether the resource is able to provide fullfill its role - carry traffic, etc.";
-    type enumeration {
-      enum "inService" {
-        value 1;
-      }
-      enum "outOfService" {
-        value 2;
-      }
-      enum "degraded" {
-        value 3;
-      }
-    }
-  }
-
-  typedef optic-types {
-    type enumeration {
-      enum "gray" {
-        value 1;
-      }
-      enum "dwdm" {
-        value 2;
-      }
-    }
-  }
-  grouping equipment-type {
-    leaf type {
-      type equipment-type-enum;
-      mandatory true;
-      config false;
-    }
-    leaf extension {
-      description
-        "Populated with equipment type when enum value is set to vendorExtension";
-      type string;
-      mandatory false;
-      config false;
-    }
-  }
-
-  typedef equipment-type-enum {
-    type enumeration {
-      enum "other" {
-        value 1;
-      }
-      enum "powerSupply" {
-        value 2;
-      }
-      enum "shelfProcessor" {
-        value 3;
-      }
-      enum "crossConnect" {
-        value 4;
-      }
-      enum "fan" {
-        value 5;
-      }
-      enum "accessPanel" {
-        value 6;
-      }
-      enum "circuitPack" {
-        value 7;
-      }
-    }
-  }
-
-  typedef optical-control-mode {
-    description
-      "Optical Control Mode: identifies specific algorithm related to power management and general optical control.";
-    type enumeration {
-      enum "power" {
-        value 1;
-      }
-      enum "gainLoss" {
-        value 2;
-      }
-      enum "off" {
-        value 3;
-      }
-    }
-    reference "openroadm.org: Open ROADM MSA Specification.";
-  }
-
-  typedef direction {
-    type enumeration {
-      enum "tx" {
-        value 1;
-      }
-      enum "rx" {
-        value 2;
-      }
-      enum "bidirectional" {
-        value 3;
-      }
-    }
-  }
-
-  typedef pm-direction {
-    type enumeration {
-      enum "tx" {
-        value 1;
-      }
-      enum "rx" {
-        value 2;
-      }
-      enum "bidirectional" {
-        value 3;
-      }
-      enum "notApplicable" {
-        value 4;
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-common-types@2017-09-29.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-common-types@2017-09-29.yang
deleted file mode 100644 (file)
index 5957348..0000000
+++ /dev/null
@@ -1,629 +0,0 @@
-module org-openroadm-common-types {
-  namespace "http://org/openroadm/common-types";
-  prefix org-openroadm-common-types;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of common types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping physical-location {
-    leaf rack {
-      type string;
-      mandatory false;
-    }
-    leaf shelf {
-      type string;
-      mandatory false;
-    }
-    leaf slot {
-      type string;
-      mandatory false;
-    }
-    leaf subSlot {
-      type string;
-      mandatory false;
-    }
-  }
-
-  typedef node-types {
-    type enumeration {
-      enum "rdm" {
-        value 1;
-      }
-      enum "xpdr" {
-        value 2;
-      }
-      enum "ila" {
-        value 3;
-      }
-      enum "extplug" {
-        value 4;
-      }
-    }
-    description
-      "Identifier for node type
-       1. rdm for ROADM
-       2. xpdr for Transponder, Regen
-       3. ila for in-line amplifier
-       4. extplug for external plugable";
-  }
-
-  typedef node-id-type {
-    type string {
-      length "7..63";
-      pattern "([a-zA-Z][a-zA-Z0-9-]{5,18}[a-zA-Z0-9])" {
-        error-message
-          "A node-id must be 7 to 63 characters in length.
-           A node-id can contain letters, numbers, and hyphens.
-           The first character must be a letter.
-           The last character must be a letter or number.";
-       }
-    }
-    description
-      "Globally unique identifer for a device.";
-  }
-
-  typedef xpdr-node-types {
-    type enumeration {
-      enum "tpdr" {
-        value 1;
-      }
-      enum "mpdr" {
-        value 2;
-      }
-      enum "switch" {
-        value 3;
-      }
-      enum "regen" {
-        value 4;
-      }
-      enum "regen-uni" {
-        value 5;
-      }
-    }
-    description
-      "Identifier for Xponder node type
-       1. Transponder
-       2. Muxponder
-       3. OTN switchponder
-       4. Regenerator
-       5. Regenerator based on unidirectional model";
-  }
-
-  typedef frequency-THz {
-    description
-      "Frequency value in THz.";
-    type decimal64 {
-      fraction-digits 8;
-    }
-    units "THz";
-  }
-
-  typedef frequency-GHz {
-    description
-      "Frequency value in GHz.";
-    type decimal64 {
-      fraction-digits 5;
-    }
-    units "GHz";
-  }
-
-  typedef power-dBm {
-    description
-      "Power value in dBm.";
-    type decimal64 {
-      fraction-digits 2;
-    }
-    units "dBm";
-  }
-
-  typedef ratio-dB {
-    description
-      "Power ratio in dB.";
-    type decimal64 {
-      fraction-digits 3;
-    }
-    units "dB";
-  }
-
-  typedef fiber-pmd {
-    description
-      "Polarization Mode Dispersion expressed in ps/km(1/2).";
-    type decimal64 {
-      fraction-digits 2;
-    }
-    units "ps/(km[1/2])";
-  }
-
-  typedef amplifier-types {
-    type enumeration {
-      enum "standard" {
-        value 1;
-      }
-    }
-    description
-      "identifier for amplifier type
-       1. standard for amplifier as defined initially in the ROADM MSA specifications
-       To be completed if/when additional amplifier types are required ";
-  }
-
-  typedef line-amplifier-control-mode {
-    description
-      "Identifies the line amplifier control mode, either off or gain.";
-    type enumeration {
-      enum "gainLoss" {
-        value 2;
-      }
-      enum "off" {
-        value 3;
-      }
-    }
-  }
-
-  typedef amplifier-gain-range {
-    description
-      "Operational mode for the amplifier:
-       this parameter allows modeling different operational modes (gain ranges) ,notably for switched-gain amplifiers.
-       It indicates which performance model shall be used by the path feasibility engine.
-       For standard amplifier, or when performance evaluation is based on incremental noise, use gain-range-1.
-       When performance evaluation is based on advanced parameters, specify used gain-range (1 to 4).
-       Up to release 2.1, only gain-range-1 is to be used (default value) ";
-    type enumeration {
-      enum "gain-range-1" {
-        value 1;
-      }
-      enum "gain-range-2" {
-        value 2;
-      }
-      enum "gain-range-3" {
-        value 3;
-      }
-      enum "gain-range-4" {
-        value 4;
-      }
-    }
-  }
-
-  typedef severity {
-    description
-      "Severity, based on X.733 perceived severity";
-    type enumeration {
-      enum "critical" {
-        value 1;
-      }
-      enum "major" {
-        value 2;
-      }
-      enum "minor" {
-        value 3;
-      }
-      enum "warning" {
-        value 4;
-      }
-      enum "clear" {
-        value 5;
-      }
-      enum "indeterminate" {
-        value 6;
-      }
-    }
-  }
-
-  typedef activate-notification-type {
-    description
-      "Type of notification on software or database activation events";
-    type enumeration {
-      enum "activate" {
-        value 1;
-        description
-          "software or database activation";
-      }
-      enum "commit" {
-        value 2;
-        description
-          "commit the software or database.
-           For software activate, this event can happen in the following scenarios:
-             1) immediately when user issue db-activate command without rollBackTimer
-                or if the rollBackTimer is specified as 00-00-00;
-             2) when user issue cancel-rollback-timer before it expires and with accept=true.
-           For database activate, this event can occur in the following scenarios:
-             1) immediately when user issue db-activate command without rollBackTimer
-                or if the rollBackTimer is specified as 00-00-00;
-             2) when user issue cancel-rollback-timer before it expires and with accept=true.";
-      }
-      enum "cancel" {
-        value 3;
-        description
-          "cancel the database or software activation operation.
-           For software activate, this event can happen in the following cases:
-             1) when the rollBackTimer expires;
-             2) when the user issues cancel-rollback-timer with accept=false.
-           For database activate, this event can happen in the following cases:
-             1) when the rollBackTimer expires;
-             2) when the user issues cancel-rollback-timer with accept=false.";
-      }
-    }
-  }
-
-  typedef rpc-status {
-    description
-      "status of RPC ";
-    type enumeration {
-      enum "Successful" {
-        value 1;
-      }
-      enum "Failed" {
-        value 2;
-      }
-    }
-  }
-
-  grouping rpc-response-status {
-    leaf status {
-      type rpc-status;
-      mandatory true;
-      description
-        "Successful or Failed";
-    }
-    leaf status-message {
-      type string;
-      description
-        "Gives a more detailed status";
-    }
-  }
-
-  typedef extended-rpc-status {
-    description
-      "status of RPC ";
-    type enumeration {
-      enum "Successful" {
-        value 1;
-      }
-      enum "Failed" {
-        value 2;
-      }
-      enum "In-progress" {
-        value 3;
-      }
-    }
-  }
-
-  grouping extended-rpc-response-status {
-    leaf status {
-      type extended-rpc-status;
-      mandatory true;
-      description
-        "Successful, Failed or In-progress";
-    }
-    leaf status-message {
-      type string;
-      description
-        "Gives a more detailed status.";
-    }
-  }
-
-  typedef lifecycle-state {
-    description
-      "Lifecycle state.";
-    type enumeration {
-      enum "deployed" {
-        value 1;
-      }
-      enum "planned" {
-        value 2;
-      }
-      enum "maintenance" {
-        value 3;
-      }
-      enum "deploying" {
-        value 4;
-      }
-      enum "undeploying" {
-        value 5;
-      }
-      enum "undeployed" {
-        value 6;
-      }
-      enum "proposed" {
-        value 7;
-      }
-      enum "draft" {
-        value 8;
-      }
-    }
-  }
-
-  typedef state {
-    description
-      "State that indicates whether the resource is able to provide fullfill its role - carry traffic, etc.";
-    type enumeration {
-      enum "inService" {
-        value 1;
-      }
-      enum "outOfService" {
-        value 2;
-      }
-      enum "degraded" {
-        value 3;
-      }
-    }
-  }
-
-  typedef optic-types {
-    type enumeration {
-      enum "gray" {
-        value 1;
-      }
-      enum "dwdm" {
-        value 2;
-      }
-    }
-  }
-
-  grouping equipment-type {
-    leaf type {
-      type equipment-type-enum;
-      mandatory true;
-      config false;
-    }
-    leaf extension {
-      description
-        "Populated with equipment type when enum value is set to vendorExtension";
-      type string;
-      mandatory false;
-      config false;
-    }
-  }
-
-  typedef equipment-type-enum {
-    type enumeration {
-      enum "other" {
-        value 1;
-      }
-      enum "powerSupply" {
-        value 2;
-      }
-      enum "shelfProcessor" {
-        value 3;
-      }
-      enum "crossConnect" {
-        value 4;
-      }
-      enum "fan" {
-        value 5;
-      }
-      enum "accessPanel" {
-        value 6;
-      }
-      enum "circuitPack" {
-        value 7;
-      }
-    }
-  }
-
-  typedef optical-control-mode {
-    description
-      "Optical Control Mode: identifies specific algorithm related to power management and general optical control.";
-    type enumeration {
-      enum "power" {
-        value 1;
-      }
-      enum "gainLoss" {
-        value 2;
-      }
-      enum "off" {
-        value 3;
-      }
-    }
-    reference "openroadm.org: Open ROADM MSA Specification.";
-  }
-
-  typedef direction {
-    type enumeration {
-      enum "tx" {
-        value 1;
-      }
-      enum "rx" {
-        value 2;
-      }
-      enum "bidirectional" {
-        value 3;
-      }
-      enum "notApplicable" {
-        value 4;
-      }
-    }
-  }
-
-  typedef location {
-    type enumeration {
-      enum "notApplicable" {
-        value 1;
-      }
-      enum "nearEnd" {
-        value 2;
-      }
-      enum "farEnd" {
-        value 3;
-      }
-    }
-  }
-
-  typedef wavelength-duplication-type {
-    description
-      "One per srg is applied to C/D add/drop group
-       one per degree is applied to C/D/C add drop group";
-    type enumeration {
-      enum "one-per-srg" {
-        description
-          "The SRG cannot handle wavelength duplication. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will result in failure.";
-        value 1;
-      }
-      enum "one-per-degree" {
-        description
-          "The SRG can handle wavelength duplication, but only one per degree. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will succeed, so long as the connections are not using the same degree.";
-        value 2;
-      }
-    }
-  }
-
-  typedef port-qual {
-    type enumeration {
-      enum "roadm-internal" {
-        value 1;
-      }
-      enum "roadm-external" {
-        value 2;
-      }
-      enum "xpdr-network" {
-        value 3;
-      }
-      enum "xpdr-client" {
-        value 4;
-      }
-      enum "otdr" {
-        value 5;
-      }
-      enum "switch-network" {
-        value 6;
-      }
-      enum "switch-client" {
-        value 7;
-      }
-      enum "ila-external" {
-        value 8;
-      }
-      enum "ila-internal" {
-        value 9;
-      }
-    }
-  }
-
-  identity och-rate-identity {
-    description
-      "A unique och rate identification";
-  }
-
-  identity R200G {
-    base och-rate-identity;
-    description
-      "Identity for 200G Rate";
-  }
-
-  identity R100G {
-    base och-rate-identity;
-    description
-      "Identity for 100G Rate";
-  }
-
-  identity R10.7G {
-    base och-rate-identity;
-    description
-      "Identity for 10.7G Rate";
-  }
-
-  identity R11.1G {
-    base och-rate-identity;
-    description
-      "Identity for 11.1G Rate";
-  }
-
-  typedef modulation-format {
-    type enumeration {
-      enum "bpsk" {
-        value 0;
-        description
-          "binary phase-shift keying";
-      }
-      enum "dc-dp-bpsk" {
-        value 1;
-        description
-          "DC dual-polarization binary phase-shift keying";
-      }
-      enum "qpsk" {
-        value 2;
-        description
-          "quadrature phase-shift keying";
-      }
-      enum "dp-qpsk" {
-        value 3;
-        description
-          "dual-polarization binary phase-shift keying";
-      }
-      enum "qam16" {
-        value 4;
-        description
-          "quadrature amplitude modulation 16";
-      }
-      enum "dp-qam16" {
-        value 5;
-        description
-          "dual-polarization quadrature amplitude modulation 16";
-      }
-      enum "dc-dp-qam16" {
-        value 6;
-        description
-          "DC dual-polarization quadrature amplitude modulation 16";
-      }
-      enum "qam8" {
-        value 7;
-        description
-          "quadrature amplitude modulation 8";
-      }
-      enum "dp-qam8" {
-        value 8;
-        description
-          "dual-polarization quadrature amplitude modulation 8";
-      }
-      enum "dc-dp-qam8" {
-        value 9;
-        description
-          "DC dual-polarization quadrature amplitude modulation 8";
-      }
-    }
-    description
-      "Modulation format";
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-device@2017-02-06.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-device@2017-02-06.yang
deleted file mode 100644 (file)
index 522cfea..0000000
+++ /dev/null
@@ -1,1215 +0,0 @@
-module org-openroadm-device {
-  namespace "http://org/openroadm/device";
-  prefix org-openroadm-device;
-
-  import ietf-yang-types {
-    prefix ietf-yang-types;
-  }
-  import ietf-inet-types {
-    prefix ietf-inet-types;
-  }
-  import ietf-netconf {
-    prefix ietf-nc;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2016-10-14;
-  }
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-  }
-  import org-openroadm-wavelength-map {
-      prefix org-openroadm-wavelength-map;
-      revision-date 2016-10-14;
-  }
-  import org-openroadm-physical-types {
-    prefix org-openroadm-physical-types;
-  }
-  import org-openroadm-user-mgmt {
-    prefix org-openroadm-user-mgmt;
-  }
-  import org-openroadm-port-types {
-    prefix org-openroadm-port-types;
-  }
-  import org-openroadm-interfaces {
-    prefix org-openroadm-interfaces;
-  }
-  import org-openroadm-swdl {
-    prefix org-openroadm-swdl;
-  }
-  import org-openroadm-equipment-states-types {
-    prefix org-openroadm-equipment-states-types;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of ROADM device
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF netconf.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2017-02-06 {
-    description
-      "Version 1.2.1 - removed pattern for current-datetime in info tree and rpc";
-  }
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  rpc get-connection-port-trail {
-    input {
-      leaf connection-number {
-        type string;
-        mandatory true;
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-      list ports {
-        uses org-openroadm-common-types:physical-location;
-        uses port-name {
-          refine "circuit-pack-name" {
-            mandatory true;
-          }
-          refine "port-name" {
-            mandatory true;
-          }
-        }
-      }
-    }
-  }
-  rpc disable-automatic-shutoff {
-    input {
-      leaf amp {
-        type leafref {
-          path "/org-openroadm-device/shelves/shelf-name";
-        }
-        mandatory true;
-        description
-          "The shelf where amp is located";
-      }
-      leaf degree-number {
-        type uint16;
-        mandatory true;
-      }
-      leaf support-timer {
-        type uint16 {
-          range "1..600";
-        }
-        default "20";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc start-scan {
-    input {
-      leaf degree-number {
-        type uint16;
-        mandatory true;
-      }
-      leaf port-direction {
-        type org-openroadm-common-types:direction;
-      }
-      leaf distance {
-        type uint32;
-      }
-      leaf resolution {
-        type uint32;
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-
-  notification otdr-scan-result {
-    leaf status {
-      type enumeration {
-        enum "Completed" {
-          value 1;
-        }
-        enum "Failed" {
-          value 2;
-        }
-      }
-      mandatory true;
-      description
-        "Completed or Failed for the scan's final status";
-    }
-    leaf result-file {
-      type string;
-    }
-  }
-
-  rpc set-current-datetime {
-    description
-      "Set the info/current-datetime leaf to the specified value.";
-    input {
-     leaf current-datetime {
-        type ietf-yang-types:date-and-time;
-        mandatory true;
-        description
-          "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS";
-      }
-    }
-
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-
-  grouping device-common {
-    leaf node-id {
-      type string;
-      description
-        "Globally unique identifer for a device.";
-      default "openroadm";
-    }
-    leaf node-number {
-      type uint32;
-      description
-        "Number assigned to a ROADM node at a
-         given office";
-    }
-    leaf node-type {
-      type org-openroadm-common-types:node-types;
-      description
-        "Identifier for node-type e.g Roadm, xponder";
-      config false;
-      mandatory true;
-    }
-    leaf clli {
-      type string;
-      description
-        "Common Language Location Identifier.";
-    }
-    uses org-openroadm-physical-types:node-info;
-    leaf ipAddress {
-      type ietf-inet-types:ip-address;
-      description
-        "IP Address of device";
-    }
-    leaf prefix-length {
-      type uint8 {
-        range "0..128";
-      }
-      description
-        "The length of the subnet prefix";
-    }
-    leaf defaultGateway {
-      type ietf-inet-types:ip-address;
-      description
-        "Default Gateway";
-    }
-    leaf source {
-      type enumeration {
-        enum "static" {
-          value 1;
-        }
-        enum "dhcp" {
-          value 2;
-        }
-      }
-      config false;
-    }
-    leaf current-ipAddress {
-      type ietf-inet-types:ip-address;
-      config false;
-      description
-        "Current IP Address of device";
-    }
-    leaf current-prefix-length {
-      type uint8 {
-        range "0..128";
-      }
-      config false;
-      description
-        "The current length of the subnet prefix";
-    }
-    leaf current-defaultGateway {
-      type ietf-inet-types:ip-address;
-      config false;
-      description
-        "Current Default Gateway";
-    }
-    leaf macAddress {
-      type ietf-yang-types:mac-address;
-      description
-        "MAC Address of device";
-      config false;
-    }
-    leaf softwareVersion {
-      type string;
-      config false;
-      description
-        "Software version";
-    }
-    leaf template {
-      type string;
-      description
-        "Template information used in the deployment.";
-    }
-    leaf current-datetime {
-      type ietf-yang-types:date-and-time;
-      config false;
-      description
-        "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS.mm+ ";
-    }
-    container geoLocation {
-      description
-        "GPS location";
-      leaf latitude {
-        type decimal64 {
-          fraction-digits 16;
-          range "-90 .. 90";
-        }
-        description
-          "[From wikipedia] Latitude is an angle (defined below)
-           which ranges from 0° at the Equator to 90° (North or
-           South) at the poles";
-      }
-      leaf longitude {
-        type decimal64 {
-          fraction-digits 16;
-          range "-180 .. 180";
-        }
-        description
-          "[From wikipedia] The longitude is measured as the
-           angle east or west from the Prime Meridian, ranging
-           from 0° at the Prime Meridian to +180° eastward and
-           âˆ’180° westward.";
-      }
-    }
-  }
-
-  grouping slot-info {
-    description
-      "slots information. To be populated by NE during retrieval.";
-    leaf slot-name {
-      type string;
-      description
-        "The name of this slot.";
-    }
-    leaf label {
-      type string;
-      description
-        "Faceplate label";
-    }
-    leaf provisioned-circuit-pack {
-      type leafref {
-        path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-      }
-      description
-        "The supported circuit-pack. It will be empty if no provision on this slot.";
-    }
-  }
-  grouping shelves {
-    list shelves {
-      key "shelf-name";
-      uses shelf;
-    }
-  }
-  grouping shelf {
-    leaf shelf-name {
-      description
-        "Unique identifier for this shelf within a device";
-      type string;
-    }
-    leaf shelf-type {
-      description
-        "The shelf type: describe the shelf with a unique string.";
-      type string;
-      mandatory true;
-    }
-    leaf rack {
-      description
-        "Reflect the shelf physical location data including floor, aisle, bay values.";
-      type string;
-    }
-    leaf shelf-position {
-      description
-        "Reflect the shelf vertical position within an equipment bay.";
-      type string;
-    }
-    leaf administrative-state {
-      description
-        "Admin State of the shelf";
-      type org-openroadm-equipment-states-types:admin-states;
-    }
-    uses org-openroadm-physical-types:common-info;
-    leaf equipment-state {
-      type org-openroadm-equipment-states-types:states;
-      description
-        "equipment state for the shelf, used to track the lifecycle state.";
-    }
-    leaf due-date {
-      type ietf-yang-types:date-and-time;
-      description
-        "due date for the shelf.";
-    }
-    list slots {
-      description
-          "List of slots on this shelf. To be populated by NE during retrieval.";
-      key "slot-name";
-      config false;
-      uses slot-info;
-    }
-  }
-
-  grouping circuit-packs {
-    list circuit-packs {
-      description
-        "List of circuit packs. This includes common equipment, like fans, power supplies, etc.";
-      key "circuit-pack-name";
-      leaf circuit-pack-type {
-        description
-          "Type of circuit-pack";
-        type string;
-        mandatory true;
-      }
-      leaf circuit-pack-product-code {
-        description
-          "Product Code for the circuit-pack";
-        type string;
-      }
-      uses circuit-pack;
-    }
-  }
-
-  grouping circuit-pack {
-    leaf circuit-pack-name {
-      description
-        "Unique identifier for this circuit-pack within a device";
-      type string;
-    }
-    leaf administrative-state {
-      description
-        "Administrative state of circuit-pack";
-      type org-openroadm-equipment-states-types:admin-states;
-    }
-    uses org-openroadm-physical-types:common-info;
-    container circuit-pack-category {
-      description
-        "General type of circuit-pack";
-      uses org-openroadm-common-types:equipment-type;
-      config false;
-    }
-    leaf equipment-state {
-      description
-        "Equipment state, which complements operational state.";
-      type org-openroadm-equipment-states-types:states;
-    }
-    leaf circuit-pack-mode {
-      description
-        "Circuit-pack mode allowed. e.g. NORMAL or REGEN";
-      type string;
-      default "NORMAL";
-    }
-    leaf shelf {
-      type leafref {
-        path "/org-openroadm-device/shelves/shelf-name";
-      }
-      mandatory true;
-    }
-    leaf slot {
-      type string;
-      mandatory true;
-    }
-    leaf subSlot {
-      type string;
-      mandatory false;
-    }
-    leaf due-date {
-      type ietf-yang-types:date-and-time;
-      description
-        "due date for this circuit-pack.";
-    }
-    container parent-circuit-pack {
-      description
-        "In the case of circuit packs that contain other equipment (modules or pluggables), this captures the hierarchy of that equipment.  It is a vendor specific design decision if the ports for single-port pluggables are modeled as children of the parent circuit-pack, or as children of the pluggable circuit-pack contained in the parent circuit-pack.  For modules with multiple ports, it is recommended that ports be children of the module and not the carrier, to help in fault correlation and isolation in the case of a module failure.";
-      uses circuit-pack-name;
-      leaf cp-slot-name {
-        type string;
-        description
-          "Slot name on parent-circuit-pack.";
-      }
-    }
-    list cp-slots {
-      description
-          "List of circuit-pack slots on this circuit-pack. To be populated by NE during retrieval.";
-      key "slot-name";
-      config false;
-      uses slot-info;
-    }
-    list ports {
-      key "port-name";
-      description
-        "List of ports on this circuit-pack.  For single port pluggables, the port may be modeled against the pluggable itself, or against the parent-circuit-pack.  For mulit-port pluggables, it is recommended that ports be modeled against the module itself.  Modeling ports as close to the equipment hierarchy as possible will help in fault correlation and isolation since common failures associated with supporting equipment can be used to help identify symptomatic failures on the contained ports.";
-      uses port;
-      container roadm-port {
-        when "../port-qual='roadm-external'";
-        uses org-openroadm-port-types:roadm-port;
-      }
-      container transponder-port {
-        when "../port-qual='xpdr-network' or ../port-qual='xpdr-client'";
-        uses org-openroadm-port-types:common-port;
-      }
-      container otdr-port {
-        when "../port-qual='otdr'";
-        description
-          "Settings for otdr port.";
-        leaf launch-cable-length {
-          type uint32;
-          default "30";
-          units "m";
-        }
-        leaf port-direction {
-          type org-openroadm-common-types:direction;
-        }
-      }
-    }
-  }
-
-  grouping connection {
-    description
-      "Grouping used to define connections.";
-    leaf connection-number {
-      type string;
-    }
-    leaf wavelength-number {
-      type uint32;
-      mandatory true;
-      description
-        "wavelength-number, can be used to access wavelength-map
-         to get wavelength value in nm.";
-    }
-    leaf opticalControlMode {
-      description
-        "Whether connection is currently in power or gain/loss mode";
-      type org-openroadm-common-types:optical-control-mode;
-      reference "openroadm.org: Open ROADM MSA Specification.";
-      default "off";
-    }
-    leaf target-output-power {
-      type org-openroadm-common-types:power-dBm;
-      description
-        "The output target power for this connection. When set, the ROADM will work to ensure that current-output-power reaches this level.";
-    }
-    container source {
-      leaf src-if {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-        mandatory true;
-      }
-    }
-    container destination {
-      leaf dst-if {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-        mandatory true;
-      }
-    }
-  }
-
-  grouping degree {
-    leaf degree-number {
-      type uint16;
-      must "not( current() > /org-openroadm-device/info/max-degrees) and current() > 0" {
-        error-message "Degree not supported by device ";
-        description
-          "Validating if the degree is supported by device";
-      }
-    }
-    leaf max-wavelengths {
-      type uint16;
-      description
-        "maximum number of wavelengths";
-      config false;
-      mandatory true;
-    }
-    list circuit-packs {
-      key "index";
-      description
-        "list for Cards associated with a degree";
-      leaf index {
-        type uint32;
-      }
-      uses circuit-pack-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-      }
-    }
-    list connection-ports {
-      description
-        "Port associated with degree: One if bi-directional; two if uni-directional";
-      key "index";
-      leaf index {
-        type uint32;
-      }
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container otdr-port {
-      description
-        "otdr port associated with degree.";
-      uses port-name;
-    }
-  }
-
-  grouping external-links {
-    description
-      "YANG definitions for external links..
-       - physical links between ROADMs and between the ROADMs and XPonders, which can be added and removed maually.";
-    list external-link {
-      key "external-link-name";
-      uses external-link;
-    }
-  }
-
-  grouping external-link {
-    leaf external-link-name {
-      type string;
-    }
-    container source {
-      uses org-openroadm-resource-types:device-id {
-        refine "node-id" {
-          mandatory true;
-        }
-      }
-      uses org-openroadm-resource-types:port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container destination {
-      uses org-openroadm-resource-types:device-id {
-        refine "node-id" {
-          mandatory true;
-        }
-      }
-      uses org-openroadm-resource-types:port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-  }
-
-  grouping internal-links {
-    list internal-link {
-      key "internal-link-name";
-      config false;
-      uses internal-link;
-    }
-  }
-
-  grouping internal-link {
-    leaf internal-link-name {
-      type string;
-    }
-    container source {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container destination {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-  }
-
-  grouping physical-links {
-    description
-      "YANG definitions for physical links.
-       - phyical links between cards within a ROADM, which are populated by the ROADM and cannot be added or removed manually. ";
-    list physical-link {
-      key "physical-link-name";
-      uses physical-link;
-    }
-  }
-
-  grouping physical-link {
-    leaf physical-link-name {
-      type string;
-    }
-    container source {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container destination {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-  }
-
-  grouping srg {
-    leaf max-add-drop-ports {
-      type uint16;
-      config false;
-      mandatory true;
-    }
-    leaf srg-number {
-      type uint16;
-      must "not(current()>/org-openroadm-device/info/max-srgs) and current()>0" {
-        error-message "invalid SRG";
-        description
-          "Validating if the srg is supported by add/drop group";
-      }
-    }
-    leaf wavelengthDuplication {
-      description
-        "Whether the SRG can handle duplicate wavelengths and if so to what extent.";
-      config false;
-      mandatory true;
-      type enumeration {
-        enum "onePerSRG" {
-          description
-            "The SRG cannot handle wavelength duplication. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will result in failure.";
-          value 1;
-        }
-        enum "onePerDegree" {
-          description
-            "The SRG can handle wavelength duplication, but only one per degree. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will succeed, so long as the connections are not using the same degree.";
-          value 2;
-        }
-      }
-    }
-    list circuit-packs {
-      key "index";
-      description
-        "list for Cards associated with an add/drop group and srg";
-      leaf index {
-        type uint32;
-      }
-      uses circuit-pack-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-      }
-    }
-  }
-
-  grouping degree-number {
-    leaf degree-number {
-      description
-        "Degree identifier. Unique within the context of a device.";
-      type leafref {
-        path "/org-openroadm-device/degree/degree-number";
-      }
-    }
-  }
-
-  grouping circuit-pack-name {
-    leaf circuit-pack-name {
-      description
-        "Circuit-Pack identifier. Unique within the context of a device.";
-      type leafref {
-        path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-      }
-    }
-  }
-
-  grouping port-name {
-    uses circuit-pack-name;
-    leaf port-name {
-      description
-        "Port identifier. Unique within the context of a circuit-pack.";
-      type leafref {
-        path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
-      }
-    }
-  }
-
-  grouping srg-number {
-    leaf srg-number {
-      description
-        "Shared Risk Group identifier. Unique within the context of a device.";
-      type leafref {
-        path "/org-openroadm-device/shared-risk-group/srg-number";
-      }
-    }
-  }
-
-  grouping supporting-port-name {
-    leaf supporting-circuit-pack-name {
-      description
-        "Identifier of the supporting circuit-pack.";
-      type leafref {
-        path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-      }
-      mandatory true;
-    }
-    leaf supporting-port {
-      description
-        "Identifier of the supporting port.";
-      mandatory true;
-      type leafref {
-        path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../supporting-circuit-pack-name]/ports/port-name";
-      }
-    }
-  }
-
-  grouping interface-name {
-    leaf interface-name {
-      description
-        "Name of an interface. Unique within the context of a device.";
-      type leafref {
-        path "/org-openroadm-device/interface/name";
-      }
-      config false;
-    }
-  }
-
-  grouping interfaces-grp {
-    description
-      "OpenROADM Interface configuration parameters.";
-    list interface {
-      key "name";
-      description
-        "The list of configured interfaces on the device.";
-      leaf name {
-        type string;
-        description
-          "The name of the interface.";
-      }
-      leaf description {
-        type string;
-        description
-          "A textual description of the interface.";
-      }
-      leaf type {
-        type identityref {
-          base org-openroadm-interfaces:interface-type;
-        }
-        mandatory true;
-        description
-          "The type of the interface.";
-      }
-      leaf administrative-state {
-        type org-openroadm-equipment-states-types:admin-states;
-      }
-      leaf operational-state {
-        type org-openroadm-common-types:state;
-        config false;
-      }
-      leaf circuit-id {
-        type string {
-          length "0..45";
-        }
-        description
-          "circuit identifier/user label,
-           can be used in alarm correlation and/or connection management ";
-      }
-      leaf supporting-interface {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-      }
-      uses supporting-port-name;
-    }
-  }
-
-  grouping port {
-    description
-      "Grouping of attributes related to a port object.";
-    leaf port-name {
-      type string;
-      mandatory true;
-      description
-        "Identifier for a port, unique within a circuit pack";
-    }
-    leaf port-type {
-      type string;
-      description
-        "Type of the pluggable or fixed port.";
-    }
-    leaf port-qual {
-      type enumeration {
-        enum "roadm-internal" {
-          value 1;
-        }
-        enum "roadm-external" {
-          value 2;
-        }
-        enum "xpdr-network" {
-          value 3;
-        }
-        enum "xpdr-client" {
-          value 4;
-        }
-        enum "otdr" {
-          value 5;
-        }
-      }
-    }
-    leaf port-wavelength-type {
-      type org-openroadm-port-types:port-wavelength-types;
-      config false;
-      description
-        "Type of port - single, multiple-wavelength, etc.";
-    }
-    leaf port-direction {
-      type org-openroadm-common-types:direction;
-      config false;
-      mandatory true;
-      description
-        "Whether port is uni (tx/rx) or bi-directional and";
-    }
-    leaf label {
-      type string;
-      config false;
-      description
-        "Faceplate label";
-    }
-    leaf circuit-id{
-      type string{
-        length "0..45";
-      }
-      description
-          "circuit identifier/user label,
-           can be used in alarm correlation and/or connection management ";
-
-    }
-    leaf administrative-state {
-      type org-openroadm-equipment-states-types:admin-states;
-      description
-        "Administrative state of port. The value of this field independant of the state of its contained and containing resources.  Setting this a port to administratively down will impact both its operational state, as well the operational state of its contained resources.  If this port is an endpoint to a connection, internal-link, physical-link, etc, then administratevely disabling this port will impact the operational state of those items unless they are using some form of port-protection schema.";
-      default "outOfService";
-    }
-    leaf operational-state {
-      type org-openroadm-common-types:state;
-      config false;
-      mandatory true;
-      description
-        "Operational state of a port";
-    }
-    leaf-list supported-interface-capability {
-      description
-        "Interface types supported on this port";
-      config false;
-      type identityref {
-        base org-openroadm-port-types:supported-if-capability;
-      }
-    }
-    leaf logical-connection-point {
-      type string;
-      description
-        "delete or replace with list logical-ports or connections?";
-    }
-    container partner-port {
-      config false;
-      description
-        "For ports which are not identified as having a direction of bidirectional, this field is used to identify the port which corresponds to the reverse direction. A port pair should include a port for each direction (tx, rx) and report their mate as partner-port.";
-      uses port-name;
-    }
-    container parent-port {
-      config false;
-      description
-        "In the case of port hierarchy, this is the parent port, which is also modeled as port within this circuit-pack. This is used in the case of a port that supports a parallel connector that contains subports.  The parent-port of the subport will be the port that contains this subport.  This can be used to help isolate faults when a single fault on a parallel connector introduces symptomatic failures on the contained subports.";
-      uses port-name;
-    }
-    list interfaces {
-      config false;
-      description
-        "List of the interfaces this port supports.  This is a list of names of instances in the flat instance list";
-      uses interface-name;
-    }
-  }
-
-  uses org-openroadm-device-container;
-
-  grouping org-openroadm-device-container {
-    container org-openroadm-device {
-      container info {
-        uses device-common;
-        leaf max-degrees {
-          type uint16;
-          description
-            "Max. number of degrees supported by device";
-          config false;
-        }
-        leaf max-srgs {
-          type uint16;
-          description
-            "Max. number of SRGs in an add/drop group";
-          config false;
-        }
-      }
-      container users {
-        description
-          "Stores a list of users";
-        uses org-openroadm-user-mgmt:user-profile;
-      }
-      container pending-sw {
-        config false;
-        uses org-openroadm-swdl:sw-bank;
-      }
-      uses shelves;
-      uses circuit-packs;
-      uses interfaces-grp;
-      container protocols {
-        description
-          "Contains the supported protocols";
-      }
-      container wavelength-map {
-        description
-          "The wavelength-number and center frequency, wavelength mapping";
-        config false;
-        uses org-openroadm-wavelength-map:wavelength-map-g;
-      }
-      uses internal-links;
-      uses physical-links;
-      uses external-links;
-      list degree {
-        when "/org-openroadm-device/info/node-type='rdm'";
-        key "degree-number";
-        uses degree;
-      }
-      list shared-risk-group {
-        when "/org-openroadm-device/info/node-type='rdm'";
-        key "srg-number";
-        uses srg;
-      }
-      list roadm-connections {
-        when "/org-openroadm-device/info/node-type='rdm'";
-        key "connection-number";
-        uses connection;
-      }
-      list connection-map {
-        key "connection-map-number";
-        config false;
-        leaf connection-map-number {
-          description
-            "Unique identifier for this connection-map entry";
-          type uint32;
-        }
-        container source {
-          leaf circuit-pack-name {
-            type leafref {
-              path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-            }
-            mandatory true;
-          }
-          leaf port-name {
-            description
-              "Port identifier. Unique within the context of a circuit-pack.";
-            type leafref {
-              path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
-            }
-            mandatory true;
-          }
-        }
-        list destination {
-          key "circuit-pack-name port-name";
-          min-elements 1;
-          leaf circuit-pack-name {
-            type leafref {
-              path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-            }
-            mandatory true;
-          }
-          leaf port-name {
-            description
-              "Port identifier. Unique within the context of a circuit-pack.";
-            type leafref {
-              path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
-            }
-            mandatory true;
-          }
-        }
-      }
-    }
-  }
-
-  grouping common-session-parms {
-    description
-      "Common session parameters to identify a
-       management session.";
-
-    leaf username {
-      type string;
-      mandatory true;
-      description
-        "Name of the user for the session.";
-    }
-
-    leaf session-id {
-      type ietf-nc:session-id-or-zero-type;
-      mandatory true;
-      description
-        "Identifier of the session.
-         A NETCONF session MUST be identified by a non-zero value.
-         A non-NETCONF session MAY be identified by the value zero.";
-    }
-
-    leaf source-host {
-      type ietf-inet-types:ip-address;
-      description
-        "Address of the remote host for the session.";
-    }
-  }
-  grouping changed-by-parms {
-    description
-      "Common parameters to identify the source
-       of a change event, such as a configuration
-       or capability change.";
-
-     container changed-by {
-       description
-         "Indicates the source of the change.
-          If caused by internal action, then the
-          empty leaf 'server' will be present.
-          If caused by a management session, then
-          the name, remote host address, and session ID
-          of the session that made the change will be reported.";
-       choice server-or-user {
-         leaf server {
-           type empty;
-           description
-             "If present, the change was caused
-              by the server.";
-         }
-
-         case by-user {
-           uses common-session-parms;
-         }
-       } // choice server-or-user
-     } // container changed-by-parms
-  }
-  notification change-notification {
-    description
-      "The Notification that a resource has been added, modified or removed.
-       This notification can be triggered by changes in configuration and operational data.
-       It shall contain the changed field pointed by the xpath.
-       Typically it is not intended for frequently changing volatile data e.g. PM, power levels";
-
-    leaf change-time {
-      description "The time the change occurs.";
-      type ietf-yang-types:date-and-time;
-    }
-    uses changed-by-parms;
-
-    leaf datastore {
-      type enumeration {
-        enum running {
-          description "The <running> datastore has changed.";
-        }
-        enum startup {
-          description "The <startup> datastore has changed";
-        }
-      }
-      default "running";
-      description
-        "Indicates which configuration datastore has changed.";
-    }
-    list edit {
-      description
-        "An edit (change) record SHOULD be present for each distinct
-         edit operation that the server has detected on
-         the target datastore.  This list MAY be omitted
-         if the detailed edit operations are not known.
-         The server MAY report entries in this list for
-         changes not made by a NETCONF session.";
-
-      leaf target {
-        type instance-identifier;
-        description
-            "Topmost node associated with the configuration or operationa change.
-             A server SHOULD set this object to the node within
-             the datastore that is being altered.  A server MAY
-             set this object to one of the ancestors of the actual
-             node that was changed, or omit this object, if the
-             exact node is not known.";
-      }
-      leaf operation {
-        type ietf-nc:edit-operation-type;
-        description
-          "Type of edit operation performed.
-         A server MUST set this object to the NETCONF edit
-         operation performed on the target datastore.";
-      }
-    } // list edit
-  } // notification change-notification
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-equipment-states-types@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-equipment-states-types@2016-10-14.yang
deleted file mode 100644 (file)
index 11ce8f5..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-module org-openroadm-equipment-states-types {
-  namespace "http://org/openroadm/equipment/states/types";
-  prefix org-openroadm-equipment-states-types;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for types of states of equipment (slot/subslot).
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef admin-states {
-    type enumeration {
-      enum "inService" {
-        value 1;
-      }
-      enum "outOfService" {
-        value 2;
-      }
-      enum "maintenance" {
-        value 3;
-      }
-    }
-  }
-
-  typedef states {
-    type enumeration {
-      enum "reserved-for-facility-planned" {
-        value 1;
-        description
-          "equipment is planned for use by a service";
-      }
-      enum "not-reserved-planned" {
-        value 2;
-        description
-          "equipment is planned by not reserved for any purpose";
-      }
-      enum "reserved-for-maintenance-planned" {
-        value 3;
-        description
-          "equipment is planned for use as a maintenance spare";
-      }
-      enum "reserved-for-facility-unvalidated" {
-        value 4;
-        description
-          "equipment is reserved for use by a service but not
-           validated against planned equipment";
-      }
-      enum "not-reserved-unvalidated" {
-        value 5;
-        description
-          "equipment is not reserved for any purpose and
-           not validated against planned equipment";
-      }
-      enum "unknown-unvalidated" {
-        value 6;
-        description
-          "unknown equipment not validated against planned equipment";
-      }
-      enum "reserved-for-maintenance-unvalidated" {
-        value 7;
-        description
-          "equipment is to be used for use as a maintenance spare
-           but not validated against planned equipment";
-      }
-      enum "reserved-for-facility-available" {
-        value 8;
-        description
-          "reserved for use by a service and available";
-      }
-      enum "not-reserved-available" {
-        value 9;
-        description
-          "not reserved for use by a service and available";
-      }
-      enum "reserved-for-maintenance-available" {
-        value 10;
-        description
-          "reserved as a maintenance spare and available";
-      }
-      enum "reserved-for-reversion-inuse" {
-        value 11;
-        description
-          "equipiment that is reserved as part of a home path
-           for a service that has been temporarily re-routed";
-      }
-      enum "not-reserved-inuse" {
-        value 12;
-        description
-          "equipment in use for a service";
-      }
-      enum "reserved-for-maintenance-inuse" {
-        value 13;
-        description
-          "maintenance spare equipment that is in use as a
-           maintenance spare";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-ethernet-interfaces@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-ethernet-interfaces@2016-10-14.yang
deleted file mode 100644 (file)
index 869a2c9..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-module org-openroadm-ethernet-interfaces {
-  namespace "http://org/openroadm/ethernet-interfaces";
-  prefix org-openroadm-eth-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility ethernet interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping eth-attributes {
-    leaf speed {
-      type uint32;
-      description
-        "Set speed of the interface, unit mbps.
-         This is for ETH facility. ";
-    }
-    leaf fec {
-      type enumeration {
-        enum off;
-        enum rsfec;
-      }
-      description "Forward Error Correction Choices. ";
-    }
-    leaf duplex {
-      type enumeration {
-        enum "half" {
-          value 0;
-          description
-            "half duplex";
-        }
-        enum "full" {
-          value 1;
-          description
-            "full duplex";
-        }
-      }
-      default "full";
-      description
-        "Set duplex selections.";
-    }
-    leaf mtu {
-      type uint32 {
-        range "1518..9000";
-      }
-      default "1522";
-      description
-        "Set Maximum Frame Size.";
-    }
-    leaf auto-negotiation {
-      type enumeration {
-        enum "enabled" {
-          value 1;
-          description
-            "Auto Negotiation enabled";
-        }
-        enum "disabled" {
-          value 0;
-          description
-            "Auto Negotiation disabled";
-        }
-      }
-      default "enabled";
-      description
-        "Set Auto Negotiation: Enabled/Disabled.";
-    }
-    leaf curr-speed {
-      config false;
-      type string;
-      description
-        "speed (UNKNOWN/AUTO/10/100/1000/10000) corresponding to the interface";
-    }
-    leaf curr-duplex {
-      config false;
-      type string;
-      description
-        "duplex (HALF/FULL) corresponding to the interface";
-    }
-  }
-
-  grouping ethernet-container {
-    container ethernet {
-      description
-        "Ethernet Interfaces";
-      uses eth-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:ethernetCsmacd'";
-    uses ethernet-container;
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-interfaces@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-interfaces@2016-10-14.yang
deleted file mode 100644 (file)
index acd74fe..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-module org-openroadm-interfaces {
-  namespace "http://org/openroadm/interfaces";
-  prefix openROADM-if;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility interfaces.
-     Reused ietf-interfaces and some interface-type defined in iana-if-type.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity interface-type {
-    description
-      "Base identity from which specific interface types are
-       derived.";
-  }
-
-  identity ethernetCsmacd {
-    base interface-type;
-    description
-      "For all Ethernet-like interfaces, regardless of speed,
-       as per RFC 3635.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-
-  identity ip {
-    base interface-type;
-    description
-      "IP (for APPN HPR in IP networks).";
-  }
-
-  identity opticalChannel {
-    base interface-type;
-    description
-      "Optical Channel.";
-  }
-
-  identity opticalTransport {
-    base interface-type;
-    description
-      "Optical Transport.";
-  }
-
-  identity otnOdu {
-    base interface-type;
-    description
-      "OTN Optical Data Unit.";
-  }
-
-  identity otnOtu {
-    base interface-type;
-    description
-      "OTN Optical channel Transport Unit.";
-  }
-
-  identity openROADMOpticalMultiplex {
-    base interface-type;
-    description
-      "Optical Transport Multiplex type for openROADM";
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-layerRate@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-layerRate@2016-10-14.yang
deleted file mode 100644 (file)
index e9c7eb0..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-module org-openroadm-layerRate {
-  namespace "http://org/openroadm/layerRate";
-  prefix org-openroadm-layerRate;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of layer rates.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping layer-rate {
-    description
-      "Set list of layer rates, plus the ability to report layer rates not yet in set list.";
-    leaf type {
-      type layer-rate-enum;
-      mandatory true;
-    }
-    leaf extension {
-      type string;
-      mandatory false;
-    }
-  }
-
-  typedef layer-rate-enum {
-    type enumeration {
-      enum "vendorExtension" {
-        value 1;
-        description
-          "vendor extension";
-      }
-      enum "layer2" {
-        value 2;
-        description
-          "2";
-      }
-      enum "layer3" {
-        value 3;
-        description
-          "3";
-      }
-      enum "layer4" {
-        value 4;
-        description
-          "4";
-      }
-      enum "layer5" {
-        value 5;
-        description
-          "5";
-      }
-      enum "layer6" {
-        value 6;
-        description
-          "6";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-lldp@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-lldp@2016-10-14.yang
deleted file mode 100644 (file)
index d781330..0000000
+++ /dev/null
@@ -1,302 +0,0 @@
-module org-openroadm-lldp {
-  namespace "http://org/openroadm/lldp";
-  prefix org-openroadm-lldp;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-  }
-  import iana-afn-safi {
-    prefix ianaaf;
-  }
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-  }
-  import ietf-yang-types {
-    prefix yang;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for lldp protocol.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-  grouping nbr-info-grp {
-    description
-      "Display LLDP Neighbour ";
-
-    leaf remoteSysName {
-      type string;
-      description
-        "remote neighbour system name";
-    }
-    leaf remoteMgmtAddressSubType {
-      type ianaaf:address-family;
-      description
-        "remote neighbour Management Address Subtype Enumeration";
-    }
-    leaf remoteMgmtAddress {
-      type inet:ip-address;
-      description
-        "remote neighbour management address";
-    }
-    leaf remotePortIdSubType {
-      type enumeration {
-        enum "other" {
-          value 0;
-          description
-            "reserved";
-        }
-        enum "ifalias" {
-          value 1;
-          description
-            "Interface Alias (IfAlias - IETF RFC 2863) ";
-        }
-        enum "portcomponent" {
-          value 2;
-          description
-            "Port component (EntPhysicalAlias IETF RFC 4133)";
-        }
-        enum "macaddress" {
-          value 3;
-          description
-            "MAC address (IEEE Std 802) ";
-        }
-        enum "networkaddress" {
-          value 4;
-          description
-            "Network Address";
-        }
-        enum "ifname" {
-          value 5;
-          description
-            "Interface Name (ifName - IETF RFC 2863)";
-        }
-        enum "agentcircuitid" {
-          value 6;
-          description
-            "Agent Circuit Id (IETF RFC 3046)";
-        }
-        enum "local" {
-          value 7;
-          description
-            "Locally assigned";
-        }
-      }
-      description
-        "remote neighbour Port ID Subtype Enumeration";
-    }
-    leaf remotePortId {
-      type string;
-      description
-        "remote neighbour port Id";
-    }
-    leaf remoteChassisIdSubType {
-      type enumeration {
-        enum "reserved" {
-          value 0;
-          description
-            "reserved";
-        }
-        enum "chassiscomponent" {
-          value 1;
-          description
-            "Chassis component (EntPhysicalAlias IETF RFC 4133)";
-        }
-        enum "ifalias" {
-          value 2;
-          description
-            "Interface Alias (IfAlias - IETF RFC 2863) ";
-        }
-        enum "portcomponent" {
-          value 3;
-          description
-            "Port component (EntPhysicalAlias IETF RFC 4133)";
-        }
-        enum "macaddress" {
-          value 4;
-          description
-            "MAC address (IEEE Std 802) ";
-        }
-        enum "networkaddress" {
-          value 5;
-          description
-            "Network Address";
-        }
-        enum "ifname" {
-          value 6;
-          description
-            "Interface Name (ifName - IETF RFC 2863)";
-        }
-        enum "local" {
-          value 7;
-          description
-            "Locally assigned";
-        }
-      }
-      description
-        "Chassis ID Subtype Enumeration";
-    }
-    leaf remoteChassisId {
-      type string;
-      description
-        "remote neighbour Chassis Id";
-    }
-  }
-
-  grouping lldp-container {
-    container lldp {
-      description
-        "LLDP configurable and retrievable";
-      container global-config {
-        description
-          "LLDP global configurations";
-        leaf adminStatus {
-          type enumeration {
-            enum "disable" {
-              value 0;
-              description
-                "Disable the LLDP feature per NE";
-            }
-            enum "enable" {
-              value 1;
-              description
-                "Enable the LLDP feature per NE";
-            }
-          }
-          description
-            "LLDP feature Enable/Disable per NE";
-          default "enable";
-        }
-        leaf msgTxInterval {
-          type uint16 {
-            range "5..32768";
-          }
-          description
-            "LLDP frame Retransmit Interval in seconds";
-          default "30";
-        }
-        leaf msgTxHoldMultiplier {
-          type uint8 {
-            range "2..10";
-          }
-          description
-            "TTL value for the TLVs transmitter over wire in seconds";
-          default "4";
-        }
-      }
-      list port-config {
-        description
-          "LLDP port configurations";
-        key "ifName";
-        leaf ifName {
-          type leafref {
-            path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
-          }
-          description
-            "Ethernet interface name where LLDP runs";
-        }
-        leaf adminStatus {
-          type enumeration {
-            enum "disable" {
-              value 0;
-              description
-                "Disables the LLDP frames transmit and receive on specific interface";
-            }
-            enum "txandrx" {
-              value 1;
-              description
-                "Enable Transmit and Receive LLDP frames on specific interface";
-            }
-          }
-          description
-            "LLDP enable per port basis";
-          default "txandrx";
-        }
-      }
-      container nbr-list {
-        description
-          "LLDP Oper data - Neighbour List information";
-        config false;
-        list if-name {
-          key "ifName";
-          leaf ifName {
-            type string;
-            description
-              "Ethernet interface name where LLDP runs";
-          }
-          uses nbr-info-grp;
-        }
-      }
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:protocols" {
-    when "/org-openroadm-device:org-openroadm-device/org-openroadm-device:info/org-openroadm-device:node-type='rdm'";
-    uses lldp-container;
-  }
-
-  notification lldp-nbr-info-change {
-    description "LLDP: Neighbor Information Changed
-            remoteSysName
-            remoteSysMgmtAddressSubType
-            remoteSysMgmtAddress
-            remotePortIdSubType
-            remotePortId
-            remoteChassisIdSubType
-            remoteChassisId
-            All of the above attributes are sent in event";
-    leaf notification-type {
-      type org-openroadm-resource-types:resource-notification-type;
-    }
-    leaf resource-type {
-      type org-openroadm-resource-types:resource-type-enum;
-      description
-        "resource-type for this notification is interface";
-    }
-    leaf resource {
-      type string;
-      description
-        "resource interface-name";
-    }
-    container nbr-info {
-      uses nbr-info-grp;
-    }
-    leaf event-time {
-      type yang:date-and-time;
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-maintenance-loopback@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-maintenance-loopback@2016-10-14.yang
deleted file mode 100644 (file)
index 4f50786..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-module org-openroadm-maintenance-loopback {
-  namespace "http://org/openroadm/maintenance-loopback";
-  prefix org-openroadm-maint-loopback;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for maintenance loopback.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping maint-loopback {
-    container maint-loopback {
-      leaf enabled {
-        type boolean;
-        default "false";
-        description
-          "loopback operation enable flag";
-      }
-      leaf type {
-        when "../enabled = 'true'";
-        type enumeration {
-          enum "fac" {
-            value 0;
-            description
-              "pre-FEC Loopback in the facility direction";
-          }
-          enum "term" {
-            value 1;
-            description
-              "Loopback in the terminal direction";
-          }
-          enum "fac2" {
-            value 2;
-            description
-              "post-FEC Loopback in the facility direction";
-          }
-        }
-        default "fac";
-        description
-          "Set Loopback type (or direction).";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-maintenance-testsignal@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-maintenance-testsignal@2016-10-14.yang
deleted file mode 100644 (file)
index 67d980b..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-module org-openroadm-maintenance-testsignal {
-  namespace "http://org/openroadm/maintenance-testsignal";
-  prefix org-openroadm-maint-testsignal;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for maintenance testsignal.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping maint-testsignal {
-    container maint-testsignal {
-      leaf enabled {
-        type boolean;
-        default "false";
-        description
-          "testsignal enabled flag";
-      }
-      leaf testPattern {
-        when "../enabled = 'true'";
-        type enumeration {
-          enum "PRBS" {
-            value 0;
-            description
-              "Unframed, inverted PN-31 pattern or PRBS31 pattern per IEEE 802.3 clause 50.3.8.2 (inverted PN-31at line rate)";
-          }
-          enum "PRBS31" {
-            value 1;
-            description
-              "PRBS31 with standard mapping per G.709";
-          }
-          enum "PRBS23" {
-            value 2;
-            description
-              "SONET/SDH Framed,inverted PN-23 pattern.";
-          }
-          enum "PRZEROS" {
-            value 3;
-            description
-              "pseudo-random with zeros data pattern per IEEE 802.3 clause 49.2.8";
-          }
-          enum "IDLE" {
-            value 4;
-            description
-              "Scrambled IDLE test-pattern per IEEE 802.3ba";
-          }
-        }
-        description
-          "Set test signal pattern";
-      }
-      leaf type {
-        when "../enabled = 'true'";
-        type enumeration {
-          enum "fac" {
-            value 0;
-            description
-              "test signal in the facility direction";
-          }
-          enum "term" {
-            value 1;
-            description
-              "test signal in the terminal direction";
-          }
-        }
-        default "fac";
-        description
-          "Set test signal type (or direction).";
-      }
-      leaf bitErrors {
-        when "../enabled = 'true' and ../type = 'fac'";
-        type uint32 {
-          range "0..4294967295";
-        }
-        config false;
-        description
-          "bit errors for test signal in facility direction.";
-      }
-      leaf bitErrorsTerminal {
-        when "../enabled = 'true' and ../type = 'term'";
-        type uint32 {
-          range "0..4294967295";
-        }
-        config false;
-        description
-          "bit errors for test signal in terminal direction.";
-      }
-      leaf syncSeconds {
-        when "../enabled = 'true' and ../type = 'fac'";
-        type string;
-        config false;
-        description
-          "number of seconds the received facility test signal is in sync.";
-      }
-      leaf syncSecondsTerminal {
-        when "../enabled = 'true' and ../type = 'term'";
-        type string;
-        config false;
-        description
-          "number of seconds the received terminal test signal is in sync.";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-maintenance@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-maintenance@2016-10-14.yang
deleted file mode 100644 (file)
index 5c6e1ff..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-module org-openroadm-maintenance {
-  namespace "http://org/openroadm/maintenance";
-  prefix org-openroadm-mainteance;
-
-  import org-openroadm-resource {
-    prefix org-openroadm-resource;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of maintenace operations.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping maintenance {
-    leaf id {
-      description
-        "Uniquely identify maintenance activity";
-      type string;
-      mandatory true;
-    }
-    container resource {
-      description
-        "Resource under maintenance";
-      uses org-openroadm-resource:resource;
-    }
-    leaf operation {
-      type maintenance-operation;
-    }
-  }
-
-  container maintenance-list {
-    description
-      "A list of active maintenance operations. Adding an entry to this list creates an active maintenance operation.  Removing an entry from this terminates a maintenance activity";
-    list maintenance {
-      key "id";
-      uses maintenance;
-    }
-  }
-
-  typedef maintenance-operation {
-    description
-      "Maintenance Operation.";
-    type enumeration {
-      enum "terminalLoopback" {
-        value 1;
-      }
-      enum "facilityLoopback" {
-        value 2;
-      }
-      enum "testSignal" {
-        value 3;
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-optical-channel-interfaces@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-optical-channel-interfaces@2016-10-14.yang
deleted file mode 100644 (file)
index 563596b..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-module org-openroadm-optical-channel-interfaces {
-  namespace "http://org/openroadm/optical-channel-interfaces";
-  prefix org-openroadm-optical-channel-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility och interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity rate-identity {
-    description
-      "A unique rate identification";
-  }
-
-  identity R200G {
-    base rate-identity;
-    description
-      "Identity for 200G Rate";
-  }
-
-  identity R100G {
-    base rate-identity;
-    description
-      "Identity for 100G Rate";
-  }
-
-  identity R10.7G {
-    base rate-identity;
-    description
-      "Identity for 10.7G Rate";
-  }
-
-  identity R11.1G {
-    base rate-identity;
-    description
-      "Identity for 11.1G Rate";
-  }
-
-  grouping och-attributes {
-    description
-      "Optical Channel attributes";
-    leaf rate {
-      type identityref {
-        base rate-identity;
-      }
-      description
-        "rate";
-    }
-    leaf wavelength-number {
-      type uint32;
-    }
-    leaf modulation-format {
-      type enumeration {
-        enum "bpsk" {
-          value 0;
-          description
-            "binary phase-shift keying";
-        }
-        enum "dc-dp-bpsk" {
-          value 1;
-          description
-            "DC dual-polarization binary phase-shift keying";
-        }
-        enum "qpsk" {
-          value 2;
-          description
-            "quadrature phase-shift keying";
-        }
-        enum "dp-qpsk" {
-          value 3;
-          description
-            "dual-polarization binary phase-shift keying";
-        }
-        enum "qam16" {
-          value 4;
-          description
-            "quadrature amplitude modulation 16";
-        }
-        enum "dp-qam16" {
-          value 5;
-          description
-            "dual-polarization quadrature amplitude modulation 16";
-        }
-        enum "dc-dp-qam16" {
-          value 6;
-          description
-            "DC dual-polarization quadrature amplitude modulation 16";
-        }
-        enum "qam8" {
-          value 7;
-          description
-            "quadrature amplitude modulation 8";
-        }
-        enum "dp-qam8" {
-          value 8;
-          description
-            "dual-polarization quadrature amplitude modulation 8";
-        }
-        enum "dc-dp-qam8" {
-          value 9;
-          description
-            "DC dual-polarization quadrature amplitude modulation 8";
-        }
-      }
-      description
-        "modulation format";
-    }
-    leaf transmit-power {
-      type org-openroadm-common-types:power-dBm;
-      description
-        "The target transmit power for this channel. When set, the xponder will work to ensure that port-current-power reaches this level. Applicable only to channel on top of xpdr-network port";
-    }
-  }
-
-  grouping och-container {
-    container och {
-      description
-        "Optical Channel (OCh):
-         Models the optical channel interfaces for an Optical White Box.";
-      uses och-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:opticalChannel'";
-    uses och-container;
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-optical-multiplex-interfaces@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-optical-multiplex-interfaces@2016-10-14.yang
deleted file mode 100644 (file)
index 5503241..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-module org-openroadm-optical-multiplex-interfaces {
-  namespace "http://org/openroadm/optical-multiplex-interfaces";
-  prefix org-openroadm-optical-multiplex-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "This module contains YANG definitions
-     for the Optical multiplex Interfaces (OMS).
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    description
-      "Optical Multiplex Section (OMS)
-       allow setting of OMS in the openROADM interfaces tree.";
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-optical-transport-interfaces@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-optical-transport-interfaces@2016-10-14.yang
deleted file mode 100644 (file)
index 060e4d7..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-module org-openroadm-optical-transport-interfaces {
-  namespace "http://org/openroadm/optical-transport-interfaces";
-  prefix org-openroadm-optical-transport-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "This module contains YANG definitions
-     for the Optical Transport Interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping ots-attributes {
-    description
-      "Optical Transport Section (OTS) attributes";
-    leaf fiber-type {
-      type enumeration {
-        enum "smf" {
-          value 0;
-          description
-            "Single Mode Fiber";
-        }
-        enum "eleaf" {
-          value 1;
-          description
-            "ELEAF";
-        }
-        enum "oleaf" {
-          value 2;
-          description
-            "OLEAF";
-        }
-        enum "dsf" {
-          value 3;
-          description
-            "DSF";
-        }
-        enum "truewave" {
-          value 4;
-          description
-            "TRUEWAVE Reduced Slope";
-        }
-        enum "truewavec" {
-          value 5;
-          description
-            "TRUEWAVE Classic";
-        }
-        enum "nz-dsf" {
-          value 6;
-          description
-            "NZ-DSF";
-        }
-        enum "ull" {
-          value 7;
-          description
-            "Ultra Low Loss (ULL)";
-        }
-      }
-      default "smf";
-      description
-        "fiber type
-         Default    : SMF ";
-    }
-    leaf span-loss-receive {
-      description
-        "Span loss on the receiver side. Set by the controller and used by device to set AMP gain.";
-      type org-openroadm-common-types:ratio-dB;
-    }
-    leaf span-loss-transmit {
-      description
-        "Span loss on the transmitter side. Set by the controller and used by device to configure MSA compliant channel launch power";
-      type org-openroadm-common-types:ratio-dB;
-    }
-  }
-
-  grouping ots-container {
-    container ots {
-      description
-        "Optical Transport Section (OTS):
-          Models the optical interfaces for an Optical White Box.
-          The network side is represented by the OTS/OMS.";
-      uses ots-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:opticalTransport'";
-    uses ots-container;
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-otn-odu-interfaces@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-otn-odu-interfaces@2016-10-14.yang
deleted file mode 100644 (file)
index 3b49eff..0000000
+++ /dev/null
@@ -1,387 +0,0 @@
-module org-openroadm-otn-odu-interfaces {
-  namespace "http://org/openroadm/otn-odu-interfaces";
-  prefix org-openroadm-otn-odu-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-  }
-  import org-openroadm-maintenance-testsignal {
-    prefix org-openroadm-maint-testsignal;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility otnodu interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity odu-rate-identity {
-    description
-      "A unique rate identification of the ODUk.";
-  }
-
-  identity ODU4 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU4";
-  }
-
-  identity ODU3 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU3";
-  }
-
-  identity ODU2 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU2";
-  }
-
-  identity ODU2e {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU2e";
-  }
-
-  identity ODU1 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU1";
-  }
-
-  identity ODU0 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU0";
-  }
-
-  identity ODUflex {
-    base odu-rate-identity;
-    description
-      "Identity for an ODUflex";
-  }
-
-  identity odtu-type-identity {
-    description
-      "A unique identification for the MSI odtu type.";
-  }
-
-  identity ODTU4.ts-Allocated {
-    base odtu-type-identity;
-    description
-      "OPU4 MSI - ODTU4.ts, TS is occupied/allocated";
-  }
-
-  identity ODTU4.1 {
-    base odtu-type-identity;
-    description
-      "ODTU4.1 MSI type";
-  }
-
-  identity ODTU4.2 {
-    base odtu-type-identity;
-    description
-      "ODTU4.2 MSI type";
-  }
-
-  identity ODTU4.8 {
-    base odtu-type-identity;
-    description
-      "ODTU4.8 MSI type";
-  }
-
-  identity ODTU4.31 {
-    base odtu-type-identity;
-    description
-      "ODTU4.31 MSI type";
-  }
-
-  identity ODTU01 {
-    base odtu-type-identity;
-    description
-      "ODTU01 MSI type";
-  }
-
-  identity ODTU12 {
-    base odtu-type-identity;
-    description
-      "ODTU12 MSI type";
-  }
-
-  identity ODTU13 {
-    base odtu-type-identity;
-    description
-      "ODTU13 MSI type";
-  }
-
-  identity ODTU23 {
-    base odtu-type-identity;
-    description
-      "ODTU23 MSI type";
-  }
-
-  identity ODTU2.ts {
-    base odtu-type-identity;
-    description
-      "ODTU2.ts MSI type";
-  }
-
-  identity ODTU3.ts {
-    base odtu-type-identity;
-    description
-      "ODTU3.ts MSI type";
-  }
-
-  identity unallocated {
-    base odtu-type-identity;
-    description
-      "Unallocated MSI type";
-  }
-
-  grouping msi-entry {
-    leaf trib-slot {
-      type uint16;
-      description
-        "tributary slot (TS)";
-    }
-    leaf odtu-type {
-      type identityref {
-        base odtu-type-identity;
-      }
-      description
-        "ODTU type, part of the MSI (Multiplex Structure Identifier)";
-    }
-    leaf trib-port {
-      type uint8;
-      description
-        "Tributray Port Number (0-based), part of the MSI";
-    }
-    leaf trib-port-payload {
-      type string;
-      description
-        "interface name being mapped to trib-port";
-    }
-  }
-
-  grouping odu-attributes {
-    description
-      "ODU attributes";
-    leaf rate {
-      type identityref {
-        base odu-rate-identity;
-      }
-      description
-        "rate identity of the ODU. 'identityref' is used
-         to allow to extend for future higher rates";
-    }
-    leaf monitoring-mode {
-      type enumeration {
-        enum "not-terminated" {
-          description
-            "Not Terminated: no detection or generation.
-             Overhead is passed through the interface transparently in receive direction";
-        }
-        enum "terminated" {
-          description
-            "Terminated: detection and generation enabled.
-             Overhead is erased (replaced with all zeros) in receive direction";
-        }
-        enum "monitored" {
-          description
-            "Monitored: detection enabled.
-             Overhead is passed through the interface transparently in receive direction";
-        }
-      }
-      description
-        "Monitoring mode of the ODU Overhead";
-    }
-    leaf proactive-delay-measurement-enabled {
-      type boolean;
-      description
-        "enable/disable proactive Delay Measurement";
-    }
-    list tcm {
-      key "layer";
-      uses tcm-attributes;
-      max-elements "6";
-      description
-        "Tandem Connection Management";
-    }
-    uses opu;
-  }
-
-  grouping opu {
-    container opu {
-      when "../monitoring-mode = 'terminated' or ../monitoring-mode = 'monitored'";
-      description
-        "Optical Channel Payload Unit (OPU)";
-      leaf payload-type {
-        type string {
-          length "2";
-          pattern "[0-9a-fA-F]*";
-        }
-        description
-          "Payload Type";
-      }
-      leaf rx-payload-type {
-        type string {
-          length "2";
-          pattern "[0-9a-fA-F]*";
-        }
-        description
-          "Received Payload Type";
-      }
-      leaf exp-payload-type {
-        type string {
-          length "2";
-          pattern "[0-9a-fA-F]*";
-        }
-        description
-          "Expected Payload Type";
-      }
-      leaf payload-interface {
-        type string;
-        description
-          "Expected Payload of OPU. It designates client interface name";
-      }
-      container msi {
-        when "../payload-type = '20' or ../payload-type = '21'";
-        list tx-msi {
-          key "trib-slot";
-          uses msi-entry;
-          description
-            "Transmit MSI";
-        }
-        list rx-msi {
-          key "trib-slot";
-          uses msi-entry;
-          description
-            "Receive MSI";
-        }
-        list exp-msi {
-          key "trib-slot";
-          uses msi-entry;
-          description
-            "Expected MSI";
-        }
-      }
-    }
-  }
-
-  grouping tcm-attributes {
-    description
-      "Tandem Connection Monitoring (TCM) attributes";
-    leaf layer {
-      type uint8 {
-        range "1..6";
-      }
-      description
-        "TCM layer";
-    }
-    leaf monitoring-mode {
-      type enumeration {
-        enum "not-terminated" {
-          description
-            "Not Terminated: no detection or generation.
-             Overhead is passed through the interface transparently in receive direction
-             unless extension is set for erase";
-        }
-        enum "terminated" {
-          description
-            "Terminated: detection and generation enabled.
-             Overhead is erased (replaced with all zeros) in receive direction, unless
-             extension is set to passthrough";
-        }
-        enum "monitored" {
-          description
-            "Monitored: detection enabled.
-             Overhead is passed through the interface transparently in receive direction
-             unless extension is set for erase";
-        }
-      }
-      description
-        "Monitoring mode of the TCM layer";
-    }
-    leaf ltc-act-enabled {
-      type boolean;
-      description
-        "enable/disable alarm transfer on detection of Loss of Tandem Connection (LTC)";
-    }
-    leaf proactive-delay-measurement-enabled {
-      type boolean;
-      description
-        "enable/disable proactive Delay Measurement";
-    }
-  }
-
-  grouping odu-container {
-    container odu {
-      presence "Attribute Nodes for Optical Data Unit (ODU)";
-      description
-        "Optical Channel Data Unit (ODU)";
-      uses odu-attributes {
-        refine "opu/rx-payload-type" {
-          config false;
-        }
-        refine "opu/msi" {
-          config false;
-        }
-      }
-      uses org-openroadm-maint-testsignal:maint-testsignal;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:otnOdu'";
-    uses odu-container;
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-otn-otu-interfaces@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-otn-otu-interfaces@2016-10-14.yang
deleted file mode 100644 (file)
index 4fe3bb3..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-module org-openroadm-otn-otu-interfaces {
-  namespace "http://org/openroadm/otn-otu-interfaces";
-  prefix org-openroadm-otn-otu-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-  }
-  import org-openroadm-maintenance-loopback {
-    prefix org-openroadm-maint-loopback;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility otnotu interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity otu-rate-identity {
-    description
-      "A unique rate identification of the OTU.";
-  }
-
-  identity OTU4 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU4";
-  }
-
-  identity OTU3 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU3";
-  }
-
-  identity OTU2 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU2";
-  }
-
-  identity OTU2e {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU2e";
-  }
-
-  identity OTU1 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU1";
-  }
-
-  identity OTU0 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU0";
-  }
-
-  identity OTUflex {
-    base otu-rate-identity;
-    description
-      "Identity for an OTUflex";
-  }
-
-  grouping otu-attributes {
-    description
-      "OTU attributes";
-    leaf rate {
-      type identityref {
-        base otu-rate-identity;
-      }
-      description
-        "rate identity of the OTU. 'identityref' is used
-         to allow to extend for future higher rates";
-    }
-    leaf fec {
-      type enumeration {
-        enum "off" {
-          value 0;
-          description
-            "fec off";
-        }
-        enum "rsfec" {
-          value 1;
-          description
-            "rsfec";
-        }
-        enum "sdfeca1" {
-          value 2;
-          description
-            "Clariphy SDFEC";
-        }
-        enum "efec" {
-          value 3;
-          description
-            "G.975.1 I.4";
-        }
-        enum "ufec" {
-          value 4;
-          description
-            "G.975.1 I.7";
-        }
-        enum "sdfec" {
-          value 5;
-          description
-            "Soft decision FEC";
-        }
-        enum "sdfecb1" {
-          value 6;
-          description
-            "SDFEC with SCFEC";
-        }
-        enum "scfec" {
-          value 7;
-          description
-            "Stair case FEC";
-        }
-      }
-      description
-        "Forward Error Correction";
-    }
-  }
-
-  grouping otu-container {
-    container otu {
-      description
-        "Optical Channel Transport Unit (OTU)";
-      uses otu-attributes;
-      uses org-openroadm-maint-loopback:maint-loopback;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:otnOtu'";
-    uses otu-container;
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-physical-types@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-physical-types@2016-10-14.yang
deleted file mode 100644 (file)
index 4251018..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-module org-openroadm-physical-types {
-  namespace "http://org/openroadm/physical/types";
-  prefix org-openroadm-physical-types;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-  }
-  import ietf-yang-types {
-    prefix yang;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of physical types.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping node-info {
-    description
-      "Physical inventory data used by the node";
-    leaf vendor {
-      description
-        "Vendor of the equipment";
-      type string;
-      config false;
-      mandatory true;
-    }
-    leaf model {
-      type string;
-      description
-        "Physical resource model information.";
-      config false;
-      mandatory true;
-    }
-    leaf serial-id {
-      description
-        "Product Code for this physical resource";
-      type string;
-      config false;
-      mandatory true;
-    }
-  }
-
-  grouping common-info {
-    description
-      "Physical inventory data used by all other entities";
-    uses node-info;
-    leaf type {
-      description
-        "The specific type of this physical resource - ie the type of
-         shelf, type of circuit-pack, etc.";
-      type string;
-      config false;
-    }
-    leaf product-code {
-      description
-        "Product Code for this physical resource";
-      type string;
-      config false;
-    }
-    leaf manufacture-date {
-      description
-        "Manufactor date of physical resource";
-      type yang:date-and-time;
-      config false;
-    }
-    leaf clei {
-      description
-        "CLEI for this physical resource";
-      type string;
-      config false;
-    }
-    leaf hardware-version {
-      description
-        "The version of the hardware.";
-      type string;
-      config false;
-    }
-    leaf operational-state {
-      description
-        "Operational state of the physical resource";
-      type org-openroadm-common-types:state;
-      config false;
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-pm-types@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-pm-types@2016-10-14.yang
deleted file mode 100644 (file)
index 3a70362..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-module org-openroadm-pm-types {
-  namespace "http://org/openroadm/pm-types";
-  prefix org-openroadm-pm-types;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-   revision-date 2016-10-14;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of performance management types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef pm-granularity {
-    description
-      "Granularity of PM bin";
-    type enumeration {
-      enum "notApplicable" {
-        description
-          "This is for total statistic counters on devices that support
-              them.";
-        value 1;
-      }
-      enum "15min" {
-        value 2;
-      }
-      enum "24Hour" {
-        value 3;
-      }
-    }
-  }
-
-  typedef pm-data-type {
-    type union {
-      type uint64;
-      type decimal64 {
-        fraction-digits 2;
-      }
-      type decimal64 {
-        fraction-digits 17;
-      }
-    }
-  }
-
-  grouping pm-measurement {
-    description
-      "Set of parameters related to a PM Measurement";
-    container pmParameterName {
-      uses pm-names;
-    }
-    leaf pmParameterValue {
-      type pm-data-type;
-      mandatory true;
-      config false;
-    }
-    leaf pmParameterUnit {
-      description
-        "Unit PM parameter has been measured - frames, packets, u, etc";
-      type string;
-      mandatory false;
-    }
-    leaf location {
-      description
-        "Location PM parameter measurement";
-      type enumeration {
-        enum "notApplicable" {
-          value 1;
-        }
-        enum "nearEnd" {
-          value 2;
-        }
-        enum "farEnd" {
-          value 3;
-        }
-      }
-      mandatory false;
-    }
-    leaf direction {
-      description
-        "Direction PM parameter measurement";
-      type org-openroadm-common-types:pm-direction;
-      mandatory false;
-    }
-    leaf validity {
-      description
-        "Validity of data";
-      type enumeration {
-        enum "complete" {
-          value 1;
-        }
-        enum "partial" {
-          value 2;
-        }
-        enum "suspect" {
-          value 3;
-        }
-      }
-      mandatory false;
-      config false;
-    }
-  }
-
-  grouping pm-names {
-    description
-      "Name of PM parameter. Consisists of a set list of parameters,
-       plus an extension field to support addition parameters.";
-    leaf type {
-      type pm-names-enum;
-      mandatory true;
-    }
-    leaf extension {
-      description
-        "name of parameter, when enum value set to vendorExtension because
-         name not found in pm-names-enum";
-      type string;
-      mandatory false;
-    }
-  }
-
-  typedef pm-names-enum {
-    type enumeration {
-      enum "vendorExtension" {
-        value 1;
-        description
-          "vendor extension";
-      }
-      enum "bitErrorRate" {
-        value 2;
-        description
-          "Bit error rate (BER)";
-      }
-      enum "opticalPowerOutput" {
-        value 3;
-        description
-          "Optical Power Output (OPOUT-OTS). Total optical power includes Variable Optical Attenuator (VOA) attenuation";
-      }
-      enum "opticalReturnLoss" {
-        value 4;
-        description
-          "Optical Return Loss (ORL-OTS) - at MW port(s) B";
-      }
-      enum "opticalPowerInput" {
-        value 5;
-        description
-          "Optical Power Input (OPIN-OTS). Total optical power";
-      }
-      enum "opticalPower" {
-        value 6;
-        description
-          "Optical Power Receive (OPR-OTS); Optical Power Transmit (OPT-OSC)";
-      }
-      enum "opticalChannelPowerTransmit" {
-        value 7;
-        description
-          "Optical Channel Power Transmit (OPT-OCH). Individual channel power includes Variable Optical Attenuator (VOA) attenuation";
-      }
-      enum "codeViolations" {
-        value 8;
-        description
-          "Code Violations (CV-PCS). 8B/10B errors";
-        reference "IEEE 802.3ah, Section 45.2.1.44";
-      }
-      enum "erroredSecondsSection" {
-        value 9;
-        description
-          "Errored Seconds Section (ES-PCS)";
-        reference "IEEE 802.3ah, Section 45.2.1.46";
-      }
-      enum "severlyErrorSeconds" {
-        value 10;
-        description
-          "Severely Errored Seconds (SES-PCS)";
-        reference "IEEE 802.3ah, Section 45.2.1.48";
-      }
-      enum "unavailableSecondsPCS" {
-        value 11;
-        description
-          "Unavailable Seconds PCS (UAS-PCS)";
-        reference "IEEE 802.3ah, Section 45.2.1.52";
-      }
-      enum "inFrames" {
-        value 12;
-        description
-          "In frames (INFRAMES-E)";
-      }
-      enum "inFramesErrored" {
-        value 13;
-        description
-          "In frames errored (INFRAMESERR-E)";
-      }
-      enum "outFrames" {
-        value 14;
-        description
-          "Out frames (OUTFRAMES-E)";
-      }
-      enum "erroredSecondsEthernet" {
-        value 15;
-        description
-          "Errored Seconds Ethernet (ES-E)";
-        reference "IEEE 802.3ah, Section 45.2.1.46";
-      }
-      enum "severelyErroredSecondsEthernet" {
-        value 16;
-        description
-          "Severly Errored Seconds, Ethernet (SES-E)";
-        reference "IEEE 802.3ah, Section 45.2.1.48";
-      }
-      enum "unavailableSecondsEthernet" {
-        value 17;
-        description
-          "Unavailable Seconds, Ethernet (UAS-E)";
-        reference "IEEE 802.3ah, Section 45.2.1.52";
-      }
-      enum "erroredBlockCount" {
-        value 18;
-        description
-          "Errored block count";
-        reference "G.798 : 6.5.1.1";
-      }
-      enum "delay" {
-        value 19;
-        description
-          "Number of frames between a DMValue toggle event and the received DMp signal value toggle event";
-        reference "G.798";
-      }
-      enum "defectSeconds" {
-        value 20;
-        description
-          "Defect Seconds (DS)";
-        reference "";
-      }
-      enum "backwardIncomingAlignmentError" {
-        value 21;
-        description
-          "Backward Incoming Alignment Error (BIAE)";
-        reference "Ref: G.798: 14.5.1.1.2";
-      }
-      enum "incomingAlignmentError" {
-        value 22;
-        description
-          "Incoming Alignment Error (IAE)";
-        reference "Ref: G.798: 14.5.1.1.2";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-pm@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-pm@2016-10-14.yang
deleted file mode 100644 (file)
index 8a75c58..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-module org-openroadm-pm {
-  namespace "http://org/openroadm/pm";
-  prefix org-openroadm-pm;
-
-  import ietf-yang-types {
-    prefix yang;
-  }
-  import org-openroadm-resource {
-    prefix org-openroadm-resource;
-  }
-  import org-openroadm-layerRate {
-    prefix org-openroadm-layerRate;
-  }
-  import org-openroadm-pm-types {
-    prefix org-openroadm-pm-types;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of performance management.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping current-pm {
-    description
-      "PM Data with current values - both realtime (granularity=notApplicable) and binned (granularity=15 minute, 24h))";
-    leaf id {
-      type string;
-      mandatory true;
-      config false;
-    }
-    container resource {
-      uses org-openroadm-resource:resource;
-    }
-    container layerRate {
-      uses org-openroadm-layerRate:layer-rate;
-    }
-    list measurements {
-      container measurement {
-        uses org-openroadm-pm-types:pm-measurement;
-      }
-    }
-    leaf retrievalTime {
-      type yang:date-and-time;
-      mandatory true;
-      config false;
-    }
-    leaf granularity {
-      type org-openroadm-pm-types:pm-granularity;
-    }
-  }
-
-  container currentPmlist {
-    description
-      "List of current PMs.";
-    list currentPm {
-      key "id";
-      uses current-pm;
-    }
-    config false;
-  }
-
-  grouping historical-pm {
-    description
-      "PM Data with historical values - binned (granularity=15 minute, 24h))";
-    leaf id {
-      type string;
-      mandatory true;
-      config false;
-    }
-    container resource {
-      uses org-openroadm-resource:resource;
-    }
-    container layerRate {
-      uses org-openroadm-layerRate:layer-rate;
-    }
-    list binned-pm {
-      key "bin-number";
-      uses bin-pm;
-    }
-    leaf granularity {
-      type org-openroadm-pm-types:pm-granularity;
-    }
-  }
-
-  grouping bin-pm {
-    description
-      "PM Data with historical values";
-    leaf bin-number {
-      type uint16 {
-        range "1..max";
-      }
-      mandatory true;
-      config false;
-    }
-    list measurements {
-      container measurement {
-        uses org-openroadm-pm-types:pm-measurement;
-      }
-    }
-    leaf completionTime {
-      type yang:date-and-time;
-      mandatory true;
-      config false;
-    }
-  }
-
-  container historicalPmlist {
-    description
-      "List of historical PM";
-    list historicalPm {
-      key "id";
-      uses historical-pm;
-    }
-    config false;
-  }
-  rpc clear-pm {
-    description "Command to initialize PM data";
-    input {
-      uses org-openroadm-resource:resource;
-      leaf pm-type {
-        default "current";
-        type enumeration {
-          enum "current" {
-            value 1;
-          }
-          enum "all" {
-            value 2;
-          }
-        }
-      }
-      leaf granularity {
-        default "15min";
-        type org-openroadm-pm-types:pm-granularity;
-      }
-    }
-    output {
-      leaf status {
-        type enumeration {
-          enum "Successful" {
-            value 1;
-          }
-          enum "Failed" {
-            value 2;
-          }
-        }
-        mandatory true;
-        description
-          "Successful or Failed";
-      }
-      leaf status-message {
-        type string;
-        description
-          "Gives a more detailed reason for success / failure";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-port-types@2017-09-29.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-port-types@2017-09-29.yang
deleted file mode 100644 (file)
index fdae1d8..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-module org-openroadm-port-types {
-  namespace "http://org/openroadm/port/types";
-  prefix org-openroadm-port-types;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2017-09-29;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for port types.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity supported-if-capability {
-    description
-      "Base identity from which specific supported interfaces are derived";
-  }
-
-  identity if-100GE {
-    base supported-if-capability;
-  }
-
-  identity if-OMS {
-    base supported-if-capability;
-  }
-
-  identity if-OTS {
-    base supported-if-capability;
-  }
-
-  identity if-OCH {
-    base supported-if-capability;
-  }
-
-  identity if-1GE {
-    base supported-if-capability;
-  }
-
-  identity if-10GE {
-    base supported-if-capability;
-  }
-
-  identity if-40GE {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU1-ODU1 {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU2-ODU2 {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU2E-ODU2E {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU3-ODU3 {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU4-ODU4 {
-    base supported-if-capability;
-  }
-
-  identity if-OTU4-ODU4 {
-    base supported-if-capability;
-  }
-
-  identity supported-xpdr-capability {
-    description
-      "Base identity from which specific supported xponder are derived";
-  }
-
-  identity Transponder {
-    base supported-xpdr-capability;
-  }
-
-  identity Regen {
-    base supported-xpdr-capability;
-  }
-
-  typedef port-wavelength-types {
-    type enumeration {
-      enum "wavelength" {
-        value 1;
-        description
-          "Port on a transponder or ROADM SRG add drop";
-      }
-      enum "multi-wavelength" {
-        value 2;
-        description
-          "External port connecting to other roadm.";
-      }
-    }
-    description
-      "Port types.";
-  }
-
-  grouping common-port {
-    leaf port-power-capability-min-rx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the minimum power in the system spec for this port to
-         provide optimum function in rx direction";
-    }
-    leaf port-power-capability-min-tx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the minimum power in the system spec for this port to
-         provide optimum function in tx direction.";
-    }
-    leaf port-power-capability-max-rx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the maximum power in the system spec for this port to
-         provide optimum function in rx direction.";
-    }
-    leaf port-power-capability-max-tx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the maximum power in the system spec for this port to
-         provide optimum function in tx direction.";
-    }
-  }
-
-  grouping roadm-port {
-    uses common-port;
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-resource-types@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-resource-types@2016-10-14.yang
deleted file mode 100644 (file)
index bb6a80a..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-module org-openroadm-resource-types {
-  namespace "http://org/openroadm/resource/types";
-  prefix org-openroadm-resource-types;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of common resource types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping resource-type {
-    leaf type {
-      type resource-type-enum;
-      mandatory true;
-    }
-    leaf extension {
-      type string;
-      mandatory false;
-    }
-  }
-
-  typedef resource-type-enum {
-    type enumeration {
-      enum "other" {
-        value 1;
-        description
-          "Resource of type not found in list.";
-      }
-      enum "device" {
-        value 2;
-        description
-          "device - ROAMD, Xponder, etc";
-      }
-      enum "degree" {
-        value 3;
-        description
-          "degree";
-      }
-      enum "shared-risk-group" {
-        value 4;
-        description
-          "shared-risk-group";
-      }
-      enum "connection" {
-        value 5;
-        description
-          "connection";
-      }
-      enum "connection-map" {
-        value 6;
-        description
-          "connection-map";
-      }
-      enum "port" {
-        value 7;
-        description
-          "port";
-      }
-      enum "circuit-pack" {
-        value 8;
-        description
-          "circuit pack";
-      }
-      enum "internal-link" {
-        value 9;
-        description
-          "internal-link";
-      }
-      enum "physical-link" {
-        value 10;
-        description
-          "physical-link";
-      }
-      enum "interface" {
-        value 11;
-        description
-          "interface";
-      }
-      enum "shelf" {
-        value 12;
-        description
-          "shelf";
-      }
-      enum "service" {
-        value 13;
-        description
-          "service";
-      }
-    }
-  }
-
-  grouping device-id {
-    description
-      "Device identifier. Unique within the Controller.";
-    leaf node-id {
-      description
-        "Node Id is a globally unique identifier for a device.
-         Same as leafref value in model, if applicable.";
-      type string;
-    }
-  }
-
-  grouping circuit-pack-name {
-    leaf circuit-pack-name {
-      description
-        "Circuit-Pack identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-      type string;
-      mandatory true;
-    }
-  }
-
-  grouping port-name {
-    uses circuit-pack-name;
-    leaf port-name {
-      description
-        "Port identifier. Unique within the context of a circuit-pack.
-         Same as leafref value in model, if applicable.";
-      type string;
-    }
-  }
-
-  grouping physical-link-name {
-    leaf physical-link-name {
-      description
-        "Physical Link identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-      type string;
-      mandatory true;
-    }
-  }
-
-  grouping internal-link-name {
-    leaf internal-link-name {
-      description
-        "Internal Link identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-      type string;
-      mandatory true;
-    }
-  }
-
-  grouping connection-number {
-    leaf connection-number {
-      description
-        "Connection identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-      type string;
-    }
-  }
-
-  grouping degree-number {
-    leaf degree-number {
-      description
-        "Degree identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-      type uint16;
-    }
-  }
-
-  grouping srg-number {
-    leaf srg-number {
-      description
-        "Shared Risk Group identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-      type uint16;
-    }
-  }
-
-  grouping shelf-name {
-    leaf shelf-name {
-      description
-        "Shelf-id identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-      type string;
-      mandatory true;
-    }
-  }
-
-  grouping service-name {
-    leaf service-name {
-      description
-        "Service identifier. Unique within the context of a network.
-         Same as leafref value in model, if applicable.";
-      type string;
-      mandatory true;
-    }
-  }
-
-  grouping interface-name {
-    leaf interface-name {
-      description
-        "Interface identifier.";
-      type string;
-      mandatory true;
-    }
-  }
-
-  typedef resource-notification-type {
-    description
-      "Type of notification about a resource";
-    type enumeration {
-      enum "resourceCreation" {
-        value 1;
-        description
-          "A new instance of a resource has been created.";
-      }
-      enum "resourceModification" {
-        value 2;
-        description
-          "An exhisting instance of a resource has been modified. This shall be triggered by changes in configuration, state, status etc.
-           It shall not be triggered by changes in performance measurements, power and temperature readings or any other data that is highlyvolatile. ";
-      }
-      enum "resourceDeletion" {
-        value 3;
-        description
-          "An exhisting instance of a resource has been removed.";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-resource@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-resource@2016-10-14.yang
deleted file mode 100644 (file)
index 25cb9f1..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-module org-openroadm-resource {
-  namespace "http://org/openroadm/resource";
-  prefix org-openroadm-resource;
-
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of resources.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping resource {
-    description
-      "This resource identifier is intended to provide a generic identifer
-       for any resource that can be used without specific knowledge of
-       the resource.";
-    container device {
-      description
-        "Device of the resource, used only when the system using this
-         model report on more than one device. ";
-      uses org-openroadm-resource-types:device-id;
-    }
-    container resource {
-      choice resource {
-        case circuit-pack {
-          uses org-openroadm-resource-types:circuit-pack-name;
-        }
-        case port {
-          container port {
-            uses org-openroadm-resource-types:port-name;
-          }
-        }
-        case connection {
-          uses org-openroadm-resource-types:connection-number {
-            refine connection-number {
-              mandatory true;
-            }
-          }
-        }
-        case physical-link {
-          uses org-openroadm-resource-types:physical-link-name;
-        }
-        case internal-link {
-          uses org-openroadm-resource-types:internal-link-name;
-        }
-        case shelf {
-          uses org-openroadm-resource-types:shelf-name;
-        }
-        case srg {
-          uses org-openroadm-resource-types:srg-number {
-            refine srg-number {
-              mandatory true;
-            }
-          }
-        }
-        case degree {
-          uses org-openroadm-resource-types:degree-number {
-            refine degree-number {
-              mandatory true;
-            }
-          }
-        }
-        case service {
-          uses org-openroadm-resource-types:service-name;
-        }
-        case interface {
-          uses org-openroadm-resource-types:interface-name;
-        }
-      }
-    }
-    container resourceType {
-      uses org-openroadm-resource-types:resource-type;
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-swdl@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-swdl@2016-10-14.yang
deleted file mode 100644 (file)
index 0fdcdb6..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-module org-openroadm-swdl {
-  namespace "http://org/openroadm/de/swdl";
-  prefix org-openroadm-swdl;
-
-  import ietf-yang-types {
-    prefix yang;
-  }
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-  }
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "Yang definitions for System Management.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping sw-bank {
-    leaf sw-version {
-      type string;
-      description
-        "Gissue of the SW in this bank";
-    }
-    leaf sw-validation-timer {
-      type string {
-        pattern "(([0-1][0-9]|2[0-3])-([0-5][0-9])-([0-5][0-9]))";
-      }
-      description
-        "value of validation timer in hh-mm-ss";
-    }
-    leaf activation-date-time {
-      type yang:date-and-time;
-      description
-        "activation date and time: The date load was activated";
-    }
-  }
-
-  rpc sw-stage {
-    description
-      "SW stage - copies the SW from repo to staging bank";
-    input {
-      leaf filename {
-        type string {
-          length "10..255";
-        }
-        description
-          "file name which has the load";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc sw-activate {
-    description
-      "Activate new load";
-    input {
-      leaf version {
-        type string;
-        description
-          " software version of the new load which is being activated";
-      }
-      leaf validationTimer {
-        type string;
-        description
-          "validation timer hh-mm-ss";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc cancel-validation-timer {
-    description
-      "Cancel validation timer which user provisioned as part of activate command";
-    input {
-      leaf accept {
-        type boolean;
-        default "true";
-        description
-          " TRUE means  validation timer is cancelled and new load is accepted";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-user-mgmt@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-user-mgmt@2016-10-14.yang
deleted file mode 100644 (file)
index fb5fa6d..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-module org-openroadm-user-mgmt {
-  namespace "http://org/openroadm/user-mgmt";
-  prefix org-openroadm-user-mgmt;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of user managements.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping user-profile {
-    list user {
-      key "name";
-      description
-        "The list of local users configured on this device.";
-      leaf name {
-        type string;
-        description
-          "The user name string identifying this entry.";
-      }
-      leaf password {
-        type string;
-        description
-          "The password for this entry. This shouldn't be in clear text";
-      }
-      leaf group {
-        type enumeration {
-          enum "sudo";
-        }
-        description
-          "The group to which the user is associated to.";
-      }
-    }
-  }
-
-  rpc chg-password {
-    input {
-      leaf currentPassword {
-        type string;
-        description
-          "provide the current password";
-        mandatory true;
-      }
-      leaf newPassword {
-        type string;
-        description
-          "provide a new password";
-        mandatory true;
-      }
-      leaf newPasswordConfirm {
-        type string;
-        description
-          "re-enter the new password ";
-        mandatory true;
-      }
-    }
-    output {
-      leaf status {
-        type enumeration {
-          enum "Successful" {
-            value 1;
-          }
-          enum "Failed" {
-            value 2;
-          }
-        }
-        mandatory true;
-        description
-          "Successful or Failed";
-      }
-      leaf status-message {
-        type string;
-        description
-          "Gives a more detailed reason for success / failure";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-wavelength-map@2016-10-14.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-wavelength-map@2016-10-14.yang
deleted file mode 100644 (file)
index 451cae6..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-module org-openroadm-wavelength-map {
-  namespace "http://org/openroadm/wavelength-map";
-  prefix org-openroadm-wavelength-map;
-
-  organization "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for mapping wavelength-number to center frequency and wavelength value.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping wavelength-map-g {
-    list wavelengths {
-      key "wavelength-number";
-      leaf wavelength-number {
-        type uint32;
-      }
-      config false;
-      leaf center-frequency {
-        type decimal64 {
-          fraction-digits 3;
-          range "191.350..196.100";
-        }
-        units "THz";
-        description
-          "Frequency of the transmit optical channel
-           Domain range:  191.350THz .. 196.100THz ";
-      }
-      leaf wavelength {
-        type decimal64 {
-          fraction-digits 2;
-          range "1528.77..1566.72";
-        }
-        units "nm";
-        description
-          "Lambda corresponding to transmit frequency
-           Domain range:  1528.72nm .. 1566.72nm ";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-alarm-types@2018-01-16.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-alarm-types@2018-01-16.yang
deleted file mode 100644 (file)
index 7ec8665..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-module openconfig-alarm-types {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/alarms/types";
-
-  prefix "oc-alarm-types";
-
-  // import some basic types
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines operational state data related to alarms
-    that the device is reporting.
-
-    This model reuses some data items defined in the draft IETF
-    YANG Alarm Module:
-    https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02
-
-    Portions of this code were derived from the draft IETF YANG Alarm
-    Module. Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "0.2.0";
-
-  revision "2018-01-16" {
-    description
-      "Moved alarm identities into separate types module";
-    reference "0.2.0";
-  }
-
-  // identity statements
-  identity OPENCONFIG_ALARM_TYPE_ID {
-    description
-      "Base identity for alarm type ID profiles";
-  }
-
-  identity AIS {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines an alarm indication signal type of alarm";
-  }
-
-  identity EQPT {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines an equipment related type of alarm that is specific
-       to the physical hardware";
-  }
-
-  identity LOS {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines a loss of signal type of alarm";
-  }
-
-  identity OTS {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines a optical transport signal type of alarm";
-  }
-
-  identity OPENCONFIG_ALARM_SEVERITY {
-    description
-      "Base identity for alarm severity profiles. Derived
-      identities are based on contents of the draft
-      IETF YANG Alarm Module";
-    reference
-      "IETF YANG Alarm Module: Draft - typedef severity
-      https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-
-  }
-
-  identity UNKNOWN {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates that the severity level could not be determined.
-      This level SHOULD be avoided.";
-  }
-
-  identity MINOR {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates the existence of a non-service affecting fault
-      condition and that corrective action should be taken in
-      order to prevent a more serious (for example, service
-      affecting) fault. Such a severity can be reported, for
-      example, when the detected alarm condition is not currently
-      degrading the capacity of the resource";
-  }
-
-  identity WARNING {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates the detection of a potential or impending service
-      affecting fault, before any significant effects have been felt.
-      Action should be taken to further diagnose (if necessary) and
-      correct the problem in order to prevent it from becoming a more
-      serious service affecting fault.";
-  }
-
-  identity MAJOR {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates that a service affecting condition has developed
-      and an urgent corrective action is required. Such a severity
-      can be reported, for example, when there is a severe
-      degradation in the capability of the resource and its full
-      capability must be restored.";
-  }
-
-  identity CRITICAL {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates that a service affecting condition has occurred
-      and an immediate corrective action is required. Such a
-      severity can be reported, for example, when a resource becomes
-      totally out of service and its capability must be restored.";
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-alarms@2018-01-16.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-alarms@2018-01-16.yang
deleted file mode 100644 (file)
index 4824e34..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-module openconfig-alarms {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/alarms";
-
-  prefix "oc-alarms";
-
-  // import some basic types
-  import openconfig-alarm-types { prefix oc-alarm-types; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-platform { prefix oc-platform; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines operational state data related to alarms
-    that the device is reporting.
-
-    This model reuses some data items defined in the draft IETF
-    YANG Alarm Module:
-    https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02
-
-    Portions of this code were derived from the draft IETF YANG Alarm
-    Module. Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "0.3.0";
-
-  revision "2018-01-16" {
-      description
-        "Moved alarm identities into separate types module";
-      reference "0.3.0";
-  }
-
-  revision "2018-01-10" {
-    description
-      "Make alarms list read only";
-    reference "0.2.0";
-  }
-
-  revision "2017-08-24" {
-    description
-      "Initial public release";
-    reference "0.1.0";
-  }
-
-
-  // grouping statements
-
-  grouping alarm-state {
-    description
-      "Operational state data for device alarms";
-
-    leaf id {
-      type string;
-      description
-        "Unique ID for the alarm -- this will not be a
-        configurable parameter on many implementations";
-    }
-
-    leaf resource {
-      type string;
-      description
-        "The item that is under alarm within the device. The
-        resource may be a reference to an item which is
-        defined elsewhere in the model. For example, it
-        may be a platform/component, interfaces/interface,
-        terminal-device/logical-channels/channel, etc. In this
-        case the system should match the name of the referenced
-        item exactly. The referenced item could alternatively be
-        the path of the item within the model.";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef resource
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-
-    leaf text {
-      type string;
-      description
-        "The string used to inform operators about the alarm. This
-         MUST contain enough information for an operator to be able
-         to understand the problem. If this string contains structure,
-         this format should be clearly documented for programs to be
-         able to parse that information";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef alarm-text
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-
-    leaf time-created {
-      type oc-types:timeticks64;
-      description
-        "The time at which the alarm was raised by the system.
-        This value is expressed as nanoseconds since the Unix Epoch";
-    }
-
-    leaf severity {
-      type identityref {
-        base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY;
-      }
-      description
-        "The severity level indicating the criticality and impact
-        of the alarm";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef severity
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-
-    leaf type-id {
-      type union {
-        type string;
-        type identityref {
-          base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID;
-        }
-      }
-      description
-        "The abbreviated name of the alarm, for example LOS,
-        EQPT, or OTS. Also referred to in different systems as
-        condition type, alarm identifier, or alarm mnemonic. It
-        is recommended to use the OPENCONFIG_ALARM_TYPE_ID
-        identities where possible and only use the string type
-        when the desired identityref is not yet defined";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef alarm-type-id
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-  }
-
-  grouping alarm-config {
-    description
-      "Configuration data for device alarms";
-  }
-
-  grouping alarms-top {
-    description
-      "Top-level grouping for device alarms";
-
-    container alarms {
-      description
-        "Top-level container for device alarms";
-
-      config false;
-
-      list alarm {
-        key "id";
-        description
-          "List of alarms, keyed by a unique id";
-
-        leaf id {
-          type leafref {
-            path "../state/id";
-          }
-
-          description
-            "References the unique alarm id";
-        }
-
-        container config {
-          description
-            "Configuration data for each alarm";
-
-          uses alarm-config;
-        }
-
-        container state {
-          config false;
-
-          description
-            "Operational state data for a device alarm";
-
-          uses alarm-config;
-          uses alarm-state;
-        }
-      }
-    }
-  }
-
-
-  // augments
-
-  augment "/oc-platform:components/oc-platform:component/oc-platform:state" {
-    description
-      "Adds specific alarms related to a component.";
-
-    leaf equipment-failure {
-      type boolean;
-      default "false";
-      description
-        "If true, the hardware indicates that the component's physical equipment
-        has failed";
-    }
-
-    leaf equipment-mismatch {
-      type boolean;
-      default "false";
-      description
-        "If true, the hardware indicates that the component inserted into the
-        affected component's physical location is of a different type than what
-        is configured";
-    }
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-extensions@2017-04-11.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-extensions@2017-04-11.yang
deleted file mode 100644 (file)
index f39ecf6..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-module openconfig-extensions {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/openconfig-ext";
-
-  prefix "oc-ext";
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module provides extensions to the YANG language to allow
-    OpenConfig specific functionality and meta-data to be defined.";
-
-  revision "2017-04-11" {
-    description
-      "rename password type to 'hashed' and clarify description";
-    reference "0.3.0";
-  }
-
-  revision "2017-01-29" {
-    description
-      "Added extension for annotating encrypted values.";
-    reference "0.2.0";
-  }
-
-  revision "2015-10-09" {
-    description
-      "Initial OpenConfig public release";
-    reference "0.1.0";
-  }
-
-
-  // extension statements
-  extension openconfig-version {
-    argument "semver" {
-      yin-element false;
-    }
-    description
-      "The OpenConfig version number for the module. This is
-      expressed as a semantic version number of the form:
-        x.y.z
-      where:
-        * x corresponds to the major version,
-        * y corresponds to a minor version,
-        * z corresponds to a patch version.
-      This version corresponds to the model file within which it is
-      defined, and does not cover the whole set of OpenConfig models.
-      Where several modules are used to build up a single block of
-      functionality, the same module version is specified across each
-      file that makes up the module.
-
-      A major version number of 0 indicates that this model is still
-      in development (whether within OpenConfig or with industry
-      partners), and is potentially subject to change.
-
-      Following a release of major version 1, all modules will
-      increment major revision number where backwards incompatible
-      changes to the model are made.
-
-      The minor version is changed when features are added to the
-      model that do not impact current clients use of the model.
-
-      The patch-level version is incremented when non-feature changes
-      (such as bugfixes or clarifications to human-readable
-      descriptions that do not impact model functionality) are made
-      that maintain backwards compatibility.
-
-      The version number is stored in the module meta-data.";
-  }
-
-  extension openconfig-hashed-value {
-    description
-      "This extension provides an annotation on schema nodes to
-      indicate that the corresponding value should be stored and
-      reported in hashed form.
-
-      Hash algorithms are by definition not reversible. Clients
-      reading the configuration or applied configuration for the node
-      should expect to receive only the hashed value. Values written
-      in cleartext will be hashed. This annotation may be used on
-      nodes such as secure passwords in which the device never reports
-      a cleartext value, even if the input is provided as cleartext.";
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-if-ethernet@2018-01-05.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-if-ethernet@2018-01-05.yang
deleted file mode 100644 (file)
index 354fb2d..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-module openconfig-if-ethernet {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/interfaces/ethernet";
-
-  prefix "oc-eth";
-
-  // import some basic types
-  import openconfig-interfaces { prefix oc-if; }
-  import iana-if-type { prefix ift; }
-  import openconfig-yang-types { prefix oc-yang; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "Model for managing Ethernet interfaces -- augments the OpenConfig
-    model for interface configuration and state.";
-
-  oc-ext:openconfig-version "2.3.0";
-
-  revision "2018-01-05" {
-    description
-      "Add logical loopback to interface.";
-    reference "2.3.0";
-  }
-
-  revision "2017-12-21" {
-    description
-      "Added IPv6 router advertisement configuration.";
-    reference "2.1.0";
-  }
-
-  revision "2017-07-14" {
-    description
-      "Added Ethernet/IP state data; Add dhcp-client;
-      migrate to OpenConfig types modules; Removed or
-      renamed opstate values";
-    reference "2.0.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes to Ethernet interfaces model";
-    reference "1.1.0";
-  }
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  identity ETHERNET_SPEED {
-    description "base type to specify available Ethernet link
-    speeds";
-  }
-
-  identity SPEED_10MB {
-    base ETHERNET_SPEED;
-    description "10 Mbps Ethernet";
-  }
-
-  identity SPEED_100MB {
-    base ETHERNET_SPEED;
-    description "100 Mbps Ethernet";
-  }
-
-  identity SPEED_1GB {
-    base ETHERNET_SPEED;
-    description "1 GBps Ethernet";
-  }
-
-  identity SPEED_10GB {
-    base ETHERNET_SPEED;
-    description "10 GBps Ethernet";
-  }
-
-  identity SPEED_25GB {
-    base ETHERNET_SPEED;
-    description "25 GBps Ethernet";
-  }
-
-  identity SPEED_40GB {
-    base ETHERNET_SPEED;
-    description "40 GBps Ethernet";
-  }
-
-  identity SPEED_50GB {
-    base ETHERNET_SPEED;
-    description "50 GBps Ethernet";
-  }
-
-  identity SPEED_100GB {
-    base ETHERNET_SPEED;
-    description "100 GBps Ethernet";
-  }
-
-  identity SPEED_UNKNOWN {
-    base ETHERNET_SPEED;
-    description
-      "Interface speed is unknown.  Systems may report
-      speed UNKNOWN when an interface is down or unpopuplated (e.g.,
-      pluggable not present).";
-  }
-
-  // typedef statements
-
-
-  // grouping statements
-
-  grouping ethernet-interface-config {
-    description "Configuration items for Ethernet interfaces";
-
-    leaf mac-address {
-      type oc-yang:mac-address;
-      description
-        "Assigns a MAC address to the Ethernet interface.  If not
-        specified, the corresponding operational state leaf is
-        expected to show the system-assigned MAC address.";
-    }
-
-    leaf auto-negotiate {
-      type boolean;
-      default true;
-      description
-        "Set to TRUE to request the interface to auto-negotiate
-        transmission parameters with its peer interface.  When
-        set to FALSE, the transmission parameters are specified
-        manually.";
-      reference
-        "IEEE 802.3-2012 auto-negotiation transmission parameters";
-    }
-
-    leaf duplex-mode {
-      type enumeration {
-        enum FULL {
-          description "Full duplex mode";
-        }
-        enum HALF {
-          description "Half duplex mode";
-        }
-      }
-      description
-        "When auto-negotiate is TRUE, this optionally sets the
-        duplex mode that will be advertised to the peer.  If
-        unspecified, the interface should negotiate the duplex mode
-        directly (typically full-duplex).  When auto-negotiate is
-        FALSE, this sets the duplex mode on the interface directly.";
-    }
-
-    leaf port-speed {
-      type identityref {
-        base ETHERNET_SPEED;
-      }
-      description
-        "When auto-negotiate is TRUE, this optionally sets the
-        port-speed mode that will be advertised to the peer for
-        negotiation.  If unspecified, it is expected that the
-        interface will select the highest speed available based on
-        negotiation.  When auto-negotiate is set to FALSE, sets the
-        link speed to a fixed value -- supported values are defined
-        by ETHERNET_SPEED identities";
-    }
-
-    leaf enable-flow-control {
-      type boolean;
-      default false;
-      description
-        "Enable or disable flow control for this interface.
-        Ethernet flow control is a mechanism by which a receiver
-        may send PAUSE frames to a sender to stop transmission for
-        a specified time.
-
-        This setting should override auto-negotiated flow control
-        settings.  If left unspecified, and auto-negotiate is TRUE,
-        flow control mode is negotiated with the peer interface.";
-      reference
-        "IEEE 802.3x";
-    }
-  }
-
-  grouping ethernet-interface-state-counters {
-    description
-      "Ethernet-specific counters and statistics";
-
-    // ingress counters
-
-    leaf in-mac-control-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer control frames received on the interface";
-    }
-
-    leaf in-mac-pause-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer PAUSE frames received on the interface";
-    }
-
-    leaf in-oversize-frames {
-      type oc-yang:counter64;
-      description
-        "Number of oversize frames received on the interface";
-    }
-
-    leaf in-jabber-frames {
-      type oc-yang:counter64;
-      description
-        "Number of jabber frames received on the
-        interface.  Jabber frames are typically defined as oversize
-        frames which also have a bad CRC.  Implementations may use
-        slightly different definitions of what constitutes a jabber
-        frame.  Often indicative of a NIC hardware problem.";
-    }
-
-    leaf in-fragment-frames {
-      type oc-yang:counter64;
-      description
-        "Number of fragment frames received on the interface.";
-    }
-
-    leaf in-8021q-frames {
-      type oc-yang:counter64;
-      description
-        "Number of 802.1q tagged frames received on the interface";
-    }
-
-    leaf in-crc-errors {
-      type oc-yang:counter64;
-      description
-        "Number of receive error events due to FCS/CRC check
-        failure";
-    }
-
-    // egress counters
-
-    leaf out-mac-control-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer control frames sent on the interface";
-    }
-
-    leaf out-mac-pause-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer PAUSE frames sent on the interface";
-    }
-
-    leaf out-8021q-frames {
-      type oc-yang:counter64;
-      description
-        "Number of 802.1q tagged frames sent on the interface";
-    }
-  }
-
-  grouping ethernet-interface-state {
-    description
-      "Grouping for defining Ethernet-specific operational state";
-
-    leaf hw-mac-address {
-      type oc-yang:mac-address;
-      description
-        "Represenets the 'burned-in',  or system-assigned, MAC
-        address for the Ethernet interface.";
-    }
-
-    leaf negotiated-duplex-mode {
-      type enumeration {
-        enum FULL {
-          description "Full duplex mode";
-        }
-        enum HALF {
-          description "Half duplex mode";
-        }
-      }
-      description
-        "When auto-negotiate is set to TRUE, and the interface has
-        completed auto-negotiation with the remote peer, this value
-        shows the duplex mode that has been negotiated.";
-    }
-
-    leaf negotiated-port-speed {
-      type identityref {
-        base ETHERNET_SPEED;
-      }
-      description
-        "When auto-negotiate is set to TRUE, and the interface has
-        completed auto-negotiation with the remote peer, this value
-        shows the interface speed that has been negotiated.";
-    }
-
-    container counters {
-      description "Ethernet interface counters";
-
-      uses ethernet-interface-state-counters;
-
-    }
-
-  }
-
-  // data definition statements
-
-  grouping ethernet-top {
-    description "top-level Ethernet config and state containers";
-
-    container ethernet {
-      description
-        "Top-level container for ethernet configuration
-        and state";
-
-      container config {
-        description "Configuration data for ethernet interfaces";
-
-        uses ethernet-interface-config;
-
-      }
-
-      container state {
-
-        config false;
-        description "State variables for Ethernet interfaces";
-
-        uses ethernet-interface-config;
-        uses ethernet-interface-state;
-
-      }
-
-    }
-  }
-
-  // augment statements
-
-  augment "/oc-if:interfaces/oc-if:interface" {
-    description "Adds addtional Ethernet-specific configuration to
-    interfaces model";
-
-    uses ethernet-top {
-      when "oc-if:state/oc-if:type = 'ift:ethernetCsmacd'" {
-      description "Additional interface configuration parameters when
-      the interface type is Ethernet";
-      }
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-interfaces@2018-01-05.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-interfaces@2018-01-05.yang
deleted file mode 100644 (file)
index 2c95ea4..0000000
+++ /dev/null
@@ -1,992 +0,0 @@
-module openconfig-interfaces {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/interfaces";
-
-  prefix "oc-if";
-
-  // import some basic types
-  import ietf-interfaces { prefix ietf-if; }
-  import openconfig-yang-types { prefix oc-yang; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "Model for managing network interfaces and subinterfaces.  This
-    module also defines convenience types / groupings for other
-    models to create references to interfaces:
-
-      base-interface-ref (type) -  reference to a base interface
-      interface-ref (grouping) -  container for reference to a
-        interface + subinterface
-      interface-ref-state (grouping) - container for read-only
-        (opstate) reference to interface + subinterface
-
-    This model reuses data items defined in the IETF YANG model for
-    interfaces described by RFC 7223 with an alternate structure
-    (particularly for operational state data) and with
-    additional configuration items.
-
-    Portions of this code were derived from IETF RFC 7223.
-    Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "2.3.0";
-
-  revision "2018-01-05" {
-    description
-      "Add logical loopback to interface.";
-    reference "2.3.0";
-  }
-
-  revision "2017-12-22" {
-    description
-      "Add IPv4 proxy ARP configuration.";
-    reference "2.2.0";
-  }
-
-  revision "2017-12-21" {
-    description
-      "Added IPv6 router advertisement configuration.";
-    reference "2.1.0";
-  }
-
-  revision "2017-07-14" {
-    description
-      "Added Ethernet/IP state data; Add dhcp-client;
-      migrate to OpenConfig types modules; Removed or
-      renamed opstate values";
-    reference "2.0.0";
-  }
-
-  revision "2017-04-03" {
-    description
-      "Update copyright notice.";
-    reference "1.1.1";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes to Ethernet interfaces model";
-    reference "1.1.0";
-  }
-
-
-  // typedef statements
-
-  typedef base-interface-ref {
-    type leafref {
-      path "/oc-if:interfaces/oc-if:interface/oc-if:name";
-    }
-    description
-      "Reusable type for by-name reference to a base interface.
-      This type may be used in cases where ability to reference
-      a subinterface is not required.";
-  }
-
-  typedef interface-id {
-    type string;
-    description
-      "User-defined identifier for an interface, generally used to
-      name a interface reference.  The id can be arbitrary but a
-      useful convention is to use a combination of base interface
-      name and subinterface index.";
-  }
-
-  // grouping statements
-
-  grouping interface-ref-common {
-    description
-      "Reference leafrefs to interface / subinterface";
-
-    leaf interface {
-      type leafref {
-        path "/oc-if:interfaces/oc-if:interface/oc-if:name";
-      }
-      description
-        "Reference to a base interface.  If a reference to a
-        subinterface is required, this leaf must be specified
-        to indicate the base interface.";
-    }
-
-    leaf subinterface {
-      type leafref {
-        path "/oc-if:interfaces/" +
-          "oc-if:interface[oc-if:name=current()/../interface]/" +
-          "oc-if:subinterfaces/oc-if:subinterface/oc-if:index";
-      }
-      description
-        "Reference to a subinterface -- this requires the base
-        interface to be specified using the interface leaf in
-        this container.  If only a reference to a base interface
-        is requuired, this leaf should not be set.";
-    }
-  }
-
-  grouping interface-ref-state-container {
-    description
-      "Reusable opstate w/container for a reference to an
-      interface or subinterface";
-
-    container state {
-      config false;
-      description
-        "Operational state for interface-ref";
-
-      uses interface-ref-common;
-    }
-  }
-
-  grouping interface-ref {
-    description
-      "Reusable definition for a reference to an interface or
-      subinterface";
-
-    container interface-ref {
-      description
-        "Reference to an interface or subinterface";
-
-      container config {
-        description
-          "Configured reference to interface / subinterface";
-
-        uses interface-ref-common;
-      }
-
-      uses interface-ref-state-container;
-    }
-  }
-
-  grouping interface-ref-state {
-    description
-      "Reusable opstate w/container for a reference to an
-      interface or subinterface";
-
-    container interface-ref {
-      description
-        "Reference to an interface or subinterface";
-
-      uses interface-ref-state-container;
-    }
-  }
-
-  grouping base-interface-ref-state {
-    description
-      "Reusable opstate w/container for a reference to a
-      base interface (no subinterface).";
-
-      container state {
-        config false;
-        description
-          "Operational state for base interface reference";
-
-        leaf interface {
-          type base-interface-ref;
-          description
-            "Reference to a base interface.";
-        }
-      }
-  }
-
-
-  grouping interface-common-config {
-    description
-      "Configuration data data nodes common to physical interfaces
-      and subinterfaces";
-
-    leaf description {
-      type string;
-      description
-        "A textual description of the interface.
-
-        A server implementation MAY map this leaf to the ifAlias
-        MIB object.  Such an implementation needs to use some
-        mechanism to handle the differences in size and characters
-        allowed between this leaf and ifAlias.  The definition of
-        such a mechanism is outside the scope of this document.
-
-        Since ifAlias is defined to be stored in non-volatile
-        storage, the MIB implementation MUST map ifAlias to the
-        value of 'description' in the persistently stored
-        datastore.
-
-        Specifically, if the device supports ':startup', when
-        ifAlias is read the device MUST return the value of
-        'description' in the 'startup' datastore, and when it is
-        written, it MUST be written to the 'running' and 'startup'
-        datastores.  Note that it is up to the implementation to
-
-        decide whether to modify this single leaf in 'startup' or
-        perform an implicit copy-config from 'running' to
-        'startup'.
-
-        If the device does not support ':startup', ifAlias MUST
-        be mapped to the 'description' leaf in the 'running'
-        datastore.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAlias";
-    }
-
-    leaf enabled {
-      type boolean;
-      default "true";
-      description
-        "This leaf contains the configured, desired state of the
-        interface.
-
-        Systems that implement the IF-MIB use the value of this
-        leaf in the 'running' datastore to set
-        IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
-        has been initialized, as described in RFC 2863.
-
-        Changes in this leaf in the 'running' datastore are
-        reflected in ifAdminStatus, but if ifAdminStatus is
-        changed over SNMP, this leaf is not affected.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-    }
-
-  }
-
-  grouping interface-phys-config {
-    description
-      "Configuration data for physical interfaces";
-
-    leaf name {
-      type string;
-      description
-        "The name of the interface.
-
-        A device MAY restrict the allowed values for this leaf,
-        possibly depending on the type of the interface.
-        For system-controlled interfaces, this leaf is the
-        device-specific name of the interface.  The 'config false'
-        list interfaces/interface[name]/state contains the currently
-        existing interfaces on the device.
-
-        If a client tries to create configuration for a
-        system-controlled interface that is not present in the
-        corresponding state list, the server MAY reject
-        the request if the implementation does not support
-        pre-provisioning of interfaces or if the name refers to
-        an interface that can never exist in the system.  A
-        NETCONF server MUST reply with an rpc-error with the
-        error-tag 'invalid-value' in this case.
-
-        The IETF model in RFC 7223 provides YANG features for the
-        following (i.e., pre-provisioning and arbitrary-names),
-        however they are omitted here:
-
-          If the device supports pre-provisioning of interface
-          configuration, the 'pre-provisioning' feature is
-          advertised.
-
-          If the device allows arbitrarily named user-controlled
-          interfaces, the 'arbitrary-names' feature is advertised.
-
-        When a configured user-controlled interface is created by
-        the system, it is instantiated with the same name in the
-        /interfaces/interface[name]/state list.";
-    }
-
-    leaf type {
-      type identityref {
-        base ietf-if:interface-type;
-      }
-      mandatory true;
-      description
-        "The type of the interface.
-
-        When an interface entry is created, a server MAY
-        initialize the type leaf with a valid value, e.g., if it
-        is possible to derive the type from the name of the
-        interface.
-
-        If a client tries to set the type of an interface to a
-        value that can never be used by the system, e.g., if the
-        type is not supported or if the type does not match the
-        name of the interface, the server MUST reject the request.
-        A NETCONF server MUST reply with an rpc-error with the
-        error-tag 'invalid-value' in this case.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifType";
-    }
-
-    leaf mtu {
-      type uint16;
-      description
-        "Set the max transmission unit size in octets
-        for the physical interface.  If this is not set, the mtu is
-        set to the operational default -- e.g., 1514 bytes on an
-        Ethernet interface.";
-    }
-
-    leaf loopback-mode {
-      type boolean;
-      default false;
-      description
-        "When set to true, the interface is logically looped back,
-        such that packets that are forwarded via the interface
-        are received on the same interface.";
-    }
-
-    uses interface-common-config;
-  }
-
-  grouping interface-phys-holdtime-config {
-    description
-      "Configuration data for interface hold-time settings --
-      applies to physical interfaces.";
-
-    leaf up {
-      type uint32;
-      units milliseconds;
-      default 0;
-      description
-        "Dampens advertisement when the interface
-        transitions from down to up.  A zero value means dampening
-        is turned off, i.e., immediate notification.";
-    }
-
-    leaf down {
-      type uint32;
-      units milliseconds;
-      default 0;
-      description
-        "Dampens advertisement when the interface transitions from
-        up to down.  A zero value means dampening is turned off,
-        i.e., immediate notification.";
-    }
-  }
-
-  grouping interface-phys-holdtime-state {
-    description
-      "Operational state data for interface hold-time.";
-  }
-
-  grouping interface-phys-holdtime-top {
-    description
-      "Top-level grouping for setting link transition
-      dampening on physical and other types of interfaces.";
-
-    container hold-time {
-      description
-        "Top-level container for hold-time settings to enable
-        dampening advertisements of interface transitions.";
-
-      container config {
-        description
-          "Configuration data for interface hold-time settings.";
-
-        uses interface-phys-holdtime-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for interface hold-time.";
-
-        uses interface-phys-holdtime-config;
-        uses interface-phys-holdtime-state;
-      }
-    }
-  }
-
-  grouping interface-common-state {
-    description
-      "Operational state data (in addition to intended configuration)
-      at the global level for this interface";
-
-    leaf ifindex {
-      type uint32;
-      description
-        "System assigned number for each interface.  Corresponds to
-        ifIndex object in SNMP Interface MIB";
-      reference
-        "RFC 2863 - The Interfaces Group MIB";
-    }
-
-    leaf admin-status {
-      type enumeration {
-        enum UP {
-          description
-            "Ready to pass packets.";
-        }
-        enum DOWN {
-          description
-            "Not ready to pass packets and not in some test mode.";
-        }
-        enum TESTING {
-          //TODO: This is generally not supported as a configured
-          //admin state, though it's in the standard interfaces MIB.
-          //Consider removing it.
-          description
-            "In some test mode.";
-        }
-      }
-      //TODO:consider converting to an identity to have the
-      //flexibility to remove some values defined by RFC 7223 that
-      //are not used or not implemented consistently.
-      mandatory true;
-      description
-        "The desired state of the interface.  In RFC 7223 this leaf
-        has the same read semantics as ifAdminStatus.  Here, it
-        reflects the administrative state as set by enabling or
-        disabling the interface.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-    }
-
-    leaf oper-status {
-      type enumeration {
-        enum UP {
-          value 1;
-          description
-            "Ready to pass packets.";
-        }
-        enum DOWN {
-          value 2;
-          description
-            "The interface does not pass any packets.";
-        }
-        enum TESTING {
-          value 3;
-          description
-            "In some test mode.  No operational packets can
-             be passed.";
-        }
-        enum UNKNOWN {
-          value 4;
-          description
-            "Status cannot be determined for some reason.";
-        }
-        enum DORMANT {
-          value 5;
-          description
-            "Waiting for some external event.";
-        }
-        enum NOT_PRESENT {
-          value 6;
-          description
-            "Some component (typically hardware) is missing.";
-        }
-        enum LOWER_LAYER_DOWN {
-          value 7;
-          description
-            "Down due to state of lower-layer interface(s).";
-        }
-      }
-      //TODO:consider converting to an identity to have the
-      //flexibility to remove some values defined by RFC 7223 that
-      //are not used or not implemented consistently.
-      mandatory true;
-      description
-        "The current operational state of the interface.
-
-         This leaf has the same semantics as ifOperStatus.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifOperStatus";
-    }
-
-    leaf last-change {
-      type oc-types:timeticks64;
-      units nanoseconds;
-      description
-        "This timestamp indicates the time of the last state change
-        of the interface (e.g., up-to-down transition). This
-        corresponds to the ifLastChange object in the standard
-        interface MIB.
-
-        The value is the timestamp in nanoseconds relative to
-        the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifLastChange";
-    }
-
-  }
-
-
-  grouping interface-counters-state {
-    description
-      "Operational state representing interface counters
-      and statistics.";
-
-      //TODO: we may need to break this list of counters into those
-      //that would appear for physical vs. subinterface or logical
-      //interfaces.  For now, just replicating the full stats
-      //grouping to both interface and subinterface.
-
-    container counters {
-      description
-        "A collection of interface-related statistics objects.";
-
-      leaf in-octets {
-        type oc-yang:counter64;
-        description
-          "The total number of octets received on the interface,
-          including framing characters.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
-      }
-
-      leaf in-unicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The number of packets, delivered by this sub-layer to a
-          higher (sub-)layer, that were not addressed to a
-          multicast or broadcast address at this sub-layer.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
-      }
-
-      leaf in-broadcast-pkts {
-        type oc-yang:counter64;
-        description
-          "The number of packets, delivered by this sub-layer to a
-          higher (sub-)layer, that were addressed to a broadcast
-          address at this sub-layer.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCInBroadcastPkts";
-      }
-
-      leaf in-multicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The number of packets, delivered by this sub-layer to a
-          higher (sub-)layer, that were addressed to a multicast
-          address at this sub-layer.  For a MAC-layer protocol,
-          this includes both Group and Functional addresses.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCInMulticastPkts";
-      }
-
-      leaf in-discards {
-        type oc-yang:counter64;
-        description
-          "The number of inbound packets that were chosen to be
-          discarded even though no errors had been detected to
-          prevent their being deliverable to a higher-layer
-          protocol.  One possible reason for discarding such a
-          packet could be to free up buffer space.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-
-
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInDiscards";
-      }
-
-      leaf in-errors {
-        type oc-yang:counter64;
-        description
-          "For packet-oriented interfaces, the number of inbound
-          packets that contained errors preventing them from being
-          deliverable to a higher-layer protocol.  For character-
-          oriented or fixed-length interfaces, the number of
-          inbound transmission units that contained errors
-          preventing them from being deliverable to a higher-layer
-          protocol.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInErrors";
-      }
-
-      leaf in-unknown-protos {
-        type oc-yang:counter64;
-        description
-          "For packet-oriented interfaces, the number of packets
-          received via the interface that were discarded because
-          of an unknown or unsupported protocol.  For
-          character-oriented or fixed-length interfaces that
-          support protocol multiplexing, the number of
-          transmission units received via the interface that were
-          discarded because of an unknown or unsupported protocol.
-          For any interface that does not support protocol
-          multiplexing, this counter is not present.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
-      }
-
-      leaf in-fcs-errors {
-        type oc-yang:counter64;
-        description
-          "Number of received packets which had errors in the
-          frame check sequence (FCS), i.e., framing errors.
-
-          Discontinuities in the value of this counter can occur
-          when the device is re-initialization as indicated by the
-          value of 'last-clear'.";
-      }
-
-      leaf out-octets {
-        type oc-yang:counter64;
-        description
-          "The total number of octets transmitted out of the
-          interface, including framing characters.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
-      }
-
-      leaf out-unicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets that higher-level protocols
-          requested be transmitted, and that were not addressed
-          to a multicast or broadcast address at this sub-layer,
-          including those that were discarded or not sent.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
-      }
-
-      leaf out-broadcast-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets that higher-level protocols
-          requested be transmitted, and that were addressed to a
-          broadcast address at this sub-layer, including those
-          that were discarded or not sent.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCOutBroadcastPkts";
-      }
-
-
-      leaf out-multicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets that higher-level protocols
-          requested be transmitted, and that were addressed to a
-          multicast address at this sub-layer, including those
-          that were discarded or not sent.  For a MAC-layer
-          protocol, this includes both Group and Functional
-          addresses.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCOutMulticastPkts";
-      }
-
-      leaf out-discards {
-        type oc-yang:counter64;
-        description
-          "The number of outbound packets that were chosen to be
-          discarded even though no errors had been detected to
-          prevent their being transmitted.  One possible reason
-          for discarding such a packet could be to free up buffer
-          space.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
-      }
-
-      leaf out-errors {
-        type oc-yang:counter64;
-        description
-          "For packet-oriented interfaces, the number of outbound
-          packets that could not be transmitted because of errors.
-          For character-oriented or fixed-length interfaces, the
-          number of outbound transmission units that could not be
-          transmitted because of errors.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOutErrors";
-      }
-
-      leaf carrier-transitions {
-        type oc-yang:counter64;
-        description
-          "Number of times the interface state has transitioned
-          between up and down since the time the device restarted
-          or the last-clear time, whichever is most recent.";
-      }
-
-      leaf last-clear {
-        type oc-types:timeticks64;
-        units nanoseconds;
-        description
-          "Timestamp of the last time the interface counters were
-          cleared.
-
-          The value is the timestamp in nanoseconds relative to
-          the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-      }
-    }
-  }
-
-  // data definition statements
-
-  grouping sub-unnumbered-config {
-    description
-      "Configuration data for unnumbered subinterfaces";
-
-    leaf enabled {
-      type boolean;
-      default false;
-      description
-        "Indicates that the subinterface is unnumbered.  By default
-        the subinterface is numbered, i.e., expected to have an
-        IP address configuration.";
-    }
-  }
-
-  grouping sub-unnumbered-state {
-    description
-      "Operational state data unnumbered subinterfaces";
-  }
-
-  grouping sub-unnumbered-top {
-    description
-      "Top-level grouping unnumbered subinterfaces";
-
-    container unnumbered {
-      description
-        "Top-level container for setting unnumbered interfaces.
-        Includes reference the interface that provides the
-        address information";
-
-      container config {
-        description
-          "Configuration data for unnumbered interface";
-
-        uses sub-unnumbered-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for unnumbered interfaces";
-
-        uses sub-unnumbered-config;
-        uses sub-unnumbered-state;
-      }
-
-      uses oc-if:interface-ref;
-    }
-  }
-
-  grouping subinterfaces-config {
-    description
-      "Configuration data for subinterfaces";
-
-    leaf index {
-      type uint32;
-      default 0;
-      description
-        "The index of the subinterface, or logical interface number.
-        On systems with no support for subinterfaces, or not using
-        subinterfaces, this value should default to 0, i.e., the
-        default subinterface.";
-    }
-
-    uses interface-common-config;
-
-  }
-
-  grouping subinterfaces-state {
-    description
-      "Operational state data for subinterfaces";
-
-    leaf name {
-      type string;
-      description
-        "The system-assigned name for the sub-interface.  This MAY
-        be a combination of the base interface name and the
-        subinterface index, or some other convention used by the
-        system.";
-    }
-
-    uses interface-common-state;
-    uses interface-counters-state;
-  }
-
-  grouping subinterfaces-top {
-    description
-      "Subinterface data for logical interfaces associated with a
-      given interface";
-
-    container subinterfaces {
-      description
-        "Enclosing container for the list of subinterfaces associated
-        with a physical interface";
-
-      list subinterface {
-        key "index";
-
-        description
-          "The list of subinterfaces (logical interfaces) associated
-          with a physical interface";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "The index number of the subinterface -- used to address
-            the logical interface";
-        }
-
-        container config {
-          description
-            "Configurable items at the subinterface level";
-
-          uses subinterfaces-config;
-        }
-
-        container state {
-
-          config false;
-          description
-            "Operational state data for logical interfaces";
-
-          uses subinterfaces-config;
-          uses subinterfaces-state;
-        }
-      }
-    }
-  }
-
-  grouping interfaces-top {
-    description
-      "Top-level grouping for interface configuration and
-      operational state data";
-
-    container interfaces {
-      description
-        "Top level container for interfaces, including configuration
-        and state data.";
-
-
-      list interface {
-        key "name";
-
-        description
-          "The list of named interfaces on the device.";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "References the configured name of the interface";
-            //TODO: need to consider whether this should actually
-            //reference the name in the state subtree, which
-            //presumably would be the system-assigned name, or the
-            //configured name.  Points to the config/name now
-            //because of YANG 1.0 limitation that the list
-            //key must have the same "config" as the list, and
-            //also can't point to a non-config node.
-        }
-
-        container config {
-          description
-            "Configurable items at the global, physical interface
-            level";
-
-          uses interface-phys-config;
-        }
-
-        container state {
-
-          config false;
-          description
-            "Operational state data at the global interface level";
-
-          uses interface-phys-config;
-          uses interface-common-state;
-          uses interface-counters-state;
-        }
-
-        uses interface-phys-holdtime-top;
-        uses subinterfaces-top;
-      }
-    }
-  }
-
-  uses interfaces-top;
-
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-linecard@2017-08-03.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-linecard@2017-08-03.yang
deleted file mode 100644 (file)
index b041fb8..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-module openconfig-platform-linecard {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform/linecard";
-
-  prefix "oc-linecard";
-
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-platform-types { prefix oc-platform-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines data related to LINECARD components in the openconfig-platform model";
-
-  oc-ext:openconfig-version "0.1.0";
-
-  revision "2017-08-03" {
-    description
-      "Initial revision";
-    reference "0.1.0";
-  }
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  // typedef statements
-
-  // grouping statements
-
-  grouping linecard-config {
-    description
-      "Configuration data for linecard components";
-
-    leaf power-admin-state {
-      type oc-platform-types:component-power-type;
-      default POWER_ENABLED;
-      description
-        "Enable or disable power to the linecard";
-    }
-  }
-
-  grouping linecard-state {
-    description
-      "Operational state data for linecard components";
-
-    leaf slot-id {
-      type string;
-      description
-        "Identifier for the slot or chassis position in which the
-        linecard is installed";
-    }
-  }
-
-  grouping linecard-top {
-    description
-      "Top-level grouping for linecard data";
-
-    container linecard {
-      description
-        "Top-level container for linecard data";
-
-      container config {
-        description
-          "Configuration data for linecards";
-
-        uses linecard-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for linecards";
-
-        uses linecard-config;
-        uses linecard-state;
-      }
-    }
-  }
-
-  // data definition statements
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    description
-      "Adding linecard data to physical inventory";
-
-    uses linecard-top {
-      when "current()/oc-platform:state/" +
-        "oc-platform:type = 'LINECARD'" {
-        description
-          "Augment is active when component is of type LINECARD";
-      }
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
-
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-port@2018-01-20.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-port@2018-01-20.yang
deleted file mode 100644 (file)
index 2039a8e..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-module openconfig-platform-port {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform/port";
-
-  prefix "oc-port";
-
-  // import some basic types
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-interfaces { prefix oc-if; }
-  import openconfig-if-ethernet { prefix oc-eth; }
-  import openconfig-extensions { prefix oc-ext; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines data related to PORT components in the openconfig-platform model";
-
-  oc-ext:openconfig-version "0.3.0";
-
-  revision "2018-01-20" {
-    description
-      "Added augmentation for interface-to-port reference";
-    reference "0.3.0";
-  }
-
-  revision "2017-11-17" {
-    description
-      "Corrected augmentation path for port data";
-    reference "0.2.0";
-  }
-
-  revision "2016-10-24" {
-    description
-      "Initial revision";
-    reference "0.1.0";
-  }
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  // typedef statements
-
-  // grouping statements
-
-  grouping port-breakout-config {
-    description
-      "Configuration data for the port breakout mode";
-
-    leaf num-channels {
-      type uint8;
-      description
-        "Sets the number of channels to 'breakout' on a port
-        capable of channelization";
-    }
-
-    leaf channel-speed {
-      type identityref {
-        base oc-eth:ETHERNET_SPEED;
-      }
-      description
-        "Sets the channel speed on each channel -- the
-        supported values are defined by the
-        ETHERNET_SPEED identity";
-    }
-  }
-
-  grouping port-breakout-state {
-    description
-      "Operational state data for the port breakout mode ";
-  }
-
-  grouping port-breakout-top {
-    description
-      "Top-level grouping for port breakout data";
-
-    container breakout-mode {
-      description
-        "Top-level container for port breakout data";
-
-      container config {
-        description
-          "Configuration data for port breakout";
-
-        uses port-breakout-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for port breakout";
-
-        uses port-breakout-config;
-        uses port-breakout-state;
-      }
-    }
-  }
-
-  // data definition statements
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component/" +
-    "oc-platform:port" {
-    description
-      "Adding port breakout data to physical platform data";
-
-    uses port-breakout-top {
-      when "./state/type = 'PORT'" {
-        description
-          "This data is valid only for PORT components";
-      }
-    }
-  }
-
-  augment "/oc-if:interfaces/oc-if:interface/oc-if:state" {
-    description
-      "Adds a reference from the base interface to the corresponding
-      port component in the device inventory.";
-
-    leaf hardware-port {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-platform:name";
-      }
-      description
-        "For non-channelized interfaces, references the hardware port
-        corresponding to the base interface.";
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-transceiver@2018-01-22.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-transceiver@2018-01-22.yang
deleted file mode 100644 (file)
index 6bb9bd9..0000000
+++ /dev/null
@@ -1,497 +0,0 @@
-module openconfig-platform-transceiver {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform/transceiver";
-
-  prefix "oc-transceiver";
-
-  // import some basic types
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-platform-port { prefix oc-port; }
-  import openconfig-interfaces { prefix oc-if; }
-  import openconfig-transport-types { prefix oc-opt-types; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-yang-types { prefix oc-yang; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines configuration and operational state data
-    for transceivers (i.e., pluggable optics).  The module should be
-    used in conjunction with the platform model where other
-    physical entity data are represented.
-
-    In the platform model, a component of type=TRANSCEIVER is
-    expected to be a subcomponent of a PORT component.  This
-    module defines a concrete schema for the associated data for
-    components with type=TRANSCEIVER.";
-
-  oc-ext:openconfig-version "0.4.1";
-
-  revision "2018-01-22" {
-    description
-      "Fixed physical-channel path reference";
-    reference "0.4.1";
-  }
-
-  revision "2017-09-18" {
-    description
-      "Use openconfig-yang-types module";
-    reference "0.4.0";
-  }
-
-  revision "2017-07-08" {
-    description
-      "Adds clarification on aggregate power measurement data";
-    reference "0.3.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Adds preconfiguration data and clarified units";
-    reference "0.2.0";
-  }
-
-  // identity statements
-
-  // typedef statements
-
-  // grouping statements
-
-  grouping optical-power-state {
-    description
-      "Reusable leaves related to optical power state -- these
-      are read-only state values. If avg/min/max statistics are
-      not supported, the target is expected to just supply the
-      instant value";
-
-    container output-power {
-      description
-        "The output optical power of a physical channel in units
-        of 0.01dBm, which may be associated with individual
-        physical channels, or an aggregate of multiple physical
-        channels (i.e., for the overall transceiver). For an
-        aggregate, this may be a measurement from a photodetector
-        or a a calculation performed on the device by summing up
-        all of the related individual physical channels.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container input-power {
-      description
-        "The input optical power of a physical channel in units
-        of 0.01dBm, which may be associated with individual
-        physical channels, or an aggregate of multiple physical
-        channels (i.e., for the overall transceiver). For an
-        aggregate, this may be a measurement from a photodetector
-        or a a calculation performed on the device by summing up
-        all of the related individual physical channels.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container laser-bias-current {
-      description
-        "The current applied by the system to the transmit laser to
-        achieve the output power. The current is expressed in mA
-        with up to two decimal precision. Values include the
-        instantaneous, average, minimum, and maximum statistics.
-        If avg/min/max statistics are not supported, the target is
-        expected to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-mA;
-    }
-  }
-
-  grouping output-optical-frequency {
-    description
-      "Reusable leaves related to optical output power -- this is
-      typically configurable on line side and read-only on the
-      client-side";
-
-    leaf output-frequency {
-      type oc-opt-types:frequency-type;
-      description
-        "The frequency in MHz of the individual physical channel
-        (e.g. ITU C50 - 195.0THz and would be reported as
-        195,000,000 MHz in this model). This attribute is not
-        configurable on most client ports.";
-    }
-  }
-
-
-  grouping physical-channel-config {
-    description
-      "Configuration data for physical client channels";
-
-    leaf index {
-      type uint16 {
-        range 0..max;
-      }
-      description
-        "Index of the physical channnel or lane within a physical
-        client port";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Text description for the client physical channel";
-    }
-
-    leaf tx-laser {
-      type boolean;
-      description
-        "Enable (true) or disable (false) the transmit label for the
-        channel";
-    }
-
-    leaf target-output-power {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "Target output optical power level of the optical channel,
-        expressed in increments of 0.01 dBm (decibel-milliwats)";
-    }
-  }
-
-  grouping physical-channel-state {
-    description
-      "Operational state data for client channels.";
-
-    uses output-optical-frequency;
-    uses optical-power-state;
-  }
-
-  grouping physical-channel-top {
-    description
-      "Top-level grouping for physical client channels";
-
-    container physical-channels {
-      description
-        "Enclosing container for client channels";
-
-      list channel {
-        key "index";
-        description
-          "List of client channels, keyed by index within a physical
-          client port.  A physical port with a single channel would
-          have a single zero-indexed element";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index number of the channel";
-        }
-
-        container config {
-          description
-            "Configuration data for physical channels";
-
-          uses physical-channel-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for channels";
-
-          uses physical-channel-config;
-          uses physical-channel-state;
-        }
-      }
-    }
-  }
-
-
-  grouping port-transceiver-config {
-    description
-      "Configuration data for client port transceivers";
-
-    leaf enabled {
-      type boolean;
-      description
-        "Turns power on / off to the transceiver -- provides a means
-        to power on/off the transceiver (in the case of SFP, SFP+,
-        QSFP,...) or enable high-power mode (in the case of CFP,
-        CFP2, CFP4) and is optionally supported (device can choose to
-        always enable).  True = power on / high power, False =
-        powered off";
-    }
-
-    leaf form-factor-preconf {
-      type identityref {
-        base oc-opt-types:TRANSCEIVER_FORM_FACTOR_TYPE;
-      }
-      description
-        "Indicates the type of optical transceiver used on this
-        port.  If the client port is built into the device and not
-        pluggable, then non-pluggable is the corresponding state. If
-        a device port supports multiple form factors (e.g. QSFP28
-        and QSFP+, then the value of the transceiver installed shall
-        be reported. If no transceiver is present, then the value of
-        the highest rate form factor shall be reported
-        (QSFP28, for example).
-
-        The form factor is included in configuration data to allow
-        pre-configuring a device with the expected type of
-        transceiver ahead of deployment.  The corresponding state
-        leaf should reflect the actual transceiver type plugged into
-        the system.";
-    }
-
-    leaf ethernet-pmd-preconf {
-      type identityref {
-        base oc-opt-types:ETHERNET_PMD_TYPE;
-      }
-      description
-        "The Ethernet PMD is a property of the optical transceiver
-        used on the port, indicating the type of physical connection.
-        It is included in configuration data to allow pre-configuring
-        a port/transceiver with the expected PMD.  The actual PMD is
-        indicated by the ethernet-pmd state leaf.";
-    }
-  }
-
-  grouping port-transceiver-state {
-    description
-      "Operational state data for client port transceivers";
-
-    leaf present {
-      type enumeration {
-        enum PRESENT {
-          description
-            "Transceiver is present on the port";
-        }
-        enum NOT_PRESENT {
-          description
-            "Transceiver is not present on the port";
-        }
-      }
-      description
-        "Indicates whether a transceiver is present in
-        the specified client port.";
-    }
-
-    leaf form-factor {
-      type identityref {
-        base oc-opt-types:TRANSCEIVER_FORM_FACTOR_TYPE;
-      }
-      description
-        "Indicates the type of optical transceiver used on this
-        port.  If the client port is built into the device and not
-        pluggable, then non-pluggable is the corresponding state. If
-        a device port supports multiple form factors (e.g. QSFP28
-        and QSFP+, then the value of the transceiver installed shall
-        be reported. If no transceiver is present, then the value of
-        the highest rate form factor shall be reported
-        (QSFP28, for example).";
-    }
-
-    leaf connector-type {
-      type identityref {
-        base oc-opt-types:FIBER_CONNECTOR_TYPE;
-      }
-      description
-        "Connector type used on this port";
-    }
-
-    leaf internal-temp {
-    // TODO: this should probably be removed if we add temperature
-    // as a top-level component property, i.e., transceiver temp
-    // should be reported there.
-      type int16 {
-        range -40..125;
-      }
-      description
-        "Internally measured temperature in degrees Celsius. MSA
-        valid range is between -40 and +125C. Accuracy shall be
-        better than +/- 3 degC over the whole temperature range.";
-    }
-
-    leaf vendor {
-      type string {
-        length 1..16;
-      }
-      description
-        "Full name of transceiver vendor. 16-octet field that
-        contains ASCII characters, left-aligned and padded on the
-        right with ASCII spaces (20h)";
-    }
-
-    leaf vendor-part {
-      type string {
-        length 1..16;
-      }
-      description
-        "Transceiver vendor's part number. 16-octet field that
-        contains ASCII characters, left-aligned and padded on the
-        right with ASCII spaces (20h). If part number is undefined,
-        all 16 octets = 0h";
-    }
-
-    leaf vendor-rev {
-      type string {
-        length 1..2;
-      }
-      description
-        "Transceiver vendor's revision number. 2-octet field that
-        contains ASCII characters, left-aligned and padded on the
-        right with ASCII spaces (20h)";
-    }
-
-    //TODO: these compliance code leaves should be active based on
-    //the type of port
-    leaf ethernet-pmd {
-      type identityref {
-        base oc-opt-types:ETHERNET_PMD_TYPE;
-      }
-      description
-        "Ethernet PMD (physical medium dependent sublayer) that the
-        transceiver supports. The SFF/QSFP MSAs have registers for
-        this and CFP MSA has similar.";
-    }
-
-    leaf sonet-sdh-compliance-code {
-      type identityref {
-        base oc-opt-types:SONET_APPLICATION_CODE;
-      }
-      description
-        "SONET/SDH application code supported by the port";
-    }
-
-    leaf otn-compliance-code {
-      type identityref {
-        base oc-opt-types:OTN_APPLICATION_CODE;
-      }
-      description
-        "OTN application code supported by the port";
-    }
-
-    leaf serial-no {
-      type string {
-        length 1..16;
-      }
-      description
-        "Transceiver serial number. 16-octet field that contains
-        ASCII characters, left-aligned and padded on the right with
-        ASCII spaces (20h). If part serial number is undefined, all
-        16 octets = 0h";
-    }
-
-    leaf date-code {
-      type oc-yang:date-and-time;
-      description
-        "Representation of the transceiver date code, typically
-        stored as YYMMDD.  The time portion of the value is
-        undefined and not intended to be read.";
-    }
-
-    leaf fault-condition {
-      type boolean;
-      description
-        "Indicates if a fault condition exists in the transceiver";
-    }
-
-    uses optical-power-state;
-
-  }
-
-  grouping port-transceiver-top {
-    description
-      "Top-level grouping for client port transceiver data";
-
-    container transceiver {
-      description
-        "Top-level container for client port transceiver data";
-
-      container config {
-        description
-          "Configuration data for client port transceivers";
-
-        uses port-transceiver-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for client port transceivers";
-
-        uses port-transceiver-config;
-        uses port-transceiver-state;
-      }
-      // physical channels are associated with a transceiver
-      // component
-      uses physical-channel-top;
-    }
-  }
-
-  // data definition statements
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    description
-      "Adding transceiver data to physical inventory";
-
-    uses port-transceiver-top {
-      when "current()/oc-platform:state/" +
-        "oc-platform:type = 'TRANSCEIVER'" {
-        description
-          "Augment is active when component is of type TRANSCEIVER";
-      }
-    }
-  }
-
-  augment "/oc-if:interfaces/oc-if:interface/oc-if:state" {
-    //TODO: add 'when' or other condition to make sure this
-    //leafref points to a component of type TRANSCEIVER.
-    description
-      "Adds a reference from the base interface to its corresponding
-      physical channels.";
-
-    leaf-list physical-channel {
-      type leafref {
-        path "/oc-platform:components/" +
-          "oc-platform:component[oc-platform:name=current()/../oc-port:hardware-port]/" +
-          "oc-transceiver:transceiver/" +
-          "oc-transceiver:physical-channels/oc-transceiver:channel/" +
-          "oc-transceiver:index";
-      }
-      description
-        "For a channelized interface, list of references to the
-        physical channels (lanes) corresponding to the interface.";
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-types@2018-01-16.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-types@2018-01-16.yang
deleted file mode 100644 (file)
index 5ef3209..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-module openconfig-platform-types {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform-types";
-
-  prefix "oc-platform-types";
-
-  import openconfig-types { prefix oc-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines data types (e.g., YANG identities)
-    to support the OpenConfig component inventory model.";
-
-  oc-ext:openconfig-version "0.8.0";
-
-  revision "2018-01-16" {
-    description
-      "Added new per-component common data; add temp alarm";
-    reference "0.8.0";
-  }
-
-  revision "2017-12-14" {
-    description
-      "Added anchor containers for component data, added new
-      component types";
-    reference "0.7.0";
-  }
-
-  revision "2017-08-16" {
-    description
-      "Added power state enumerated type";
-    reference "0.6.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Added temperature state variable to component";
-    reference "0.5.0";
-  }
-
-  // grouping statements
-
-  grouping avg-min-max-instant-stats-precision1-celsius {
-    description
-      "Common grouping for recording temperature values in
-      Celsius with 1 decimal precision. Values include the
-      instantaneous, average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    leaf interval {
-      type oc-types:stat-interval;
-      description
-        "The time interval over which the min/max/average statistics
-        are computed by the system.";
-    }
-  }
-
-  // identity statements
-
-  identity OPENCONFIG_HARDWARE_COMPONENT {
-    description
-      "Base identity for hardware related components in a managed
-      device.  Derived identities are partially based on contents
-      of the IANA Entity MIB.";
-    reference
-      "IANA Entity MIB and RFC 6933";
-  }
-
-
-  identity OPENCONFIG_SOFTWARE_COMPONENT {
-    description
-      "Base identity for software-related components in a managed
-      device";
-  }
-
-  // hardware types
-
-  identity CHASSIS {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Chassis component, typically with multiple slots / shelves";
-  }
-
-  identity BACKPLANE {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Backplane component for aggregating traffic, typically
-      contained in a chassis component";
-  }
-
-  identity FABRIC {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Interconnect between ingress and egress ports on the
-      device (e.g., a crossbar switch).";
-  }
-
-  identity POWER_SUPPLY {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Component that is supplying power to the device";
-  }
-
-  identity FAN {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Cooling fan, or could be some other heat-reduction component";
-  }
-
-  identity SENSOR {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Physical sensor, e.g., a temperature sensor in a chassis";
-  }
-
-  identity FRU {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Replaceable hardware component that does not have a more
-      specific defined schema.";
-  }
-
-  identity LINECARD {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Linecard component, typically inserted into a chassis slot";
-  }
-
-  identity PORT {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Physical port, e.g., for attaching pluggables and networking
-      cables";
-  }
-
-  identity TRANSCEIVER {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Pluggable module present in a port";
-  }
-
-  identity CPU {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Processing unit, e.g., a management processor";
-  }
-
-  identity STORAGE {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "A storage subsystem on the device (disk, SSD, etc.)";
-  }
-
-  identity INTEGRATED_CIRCUIT {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "A special purpose processing unit, typically for traffic
-      switching/forwarding (e.g., switching ASIC, NPU, forwarding
-      chip, etc.)";
-  }
-
-  identity OPERATING_SYSTEM {
-    base OPENCONFIG_SOFTWARE_COMPONENT;
-    description
-      "Operating system running on a component";
-  }
-
-
-  identity COMPONENT_OPER_STATUS {
-    description
-      "Current operational status of a platform component";
-  }
-
-  identity ACTIVE {
-    base COMPONENT_OPER_STATUS;
-    description
-      "Component is enabled and active (i.e., up)";
-  }
-
-  identity INACTIVE {
-    base COMPONENT_OPER_STATUS;
-    description
-      "Component is enabled but inactive (i.e., down)";
-  }
-
-  identity DISABLED {
-    base COMPONENT_OPER_STATUS;
-    description
-      "Component is administratively disabled.";
-  }
-
-  // typedef statements
-
-  typedef component-power-type {
-    type enumeration {
-      enum POWER_ENABLED {
-        description
-          "Enable power on the component";
-      }
-      enum POWER_DISABLED {
-        description
-          "Disable power on the component";
-      }
-    }
-    description
-      "A generic type reflecting whether a hardware component
-      is powered on or off";
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform@2018-01-30.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform@2018-01-30.yang
deleted file mode 100644 (file)
index 5930278..0000000
+++ /dev/null
@@ -1,695 +0,0 @@
-module openconfig-platform {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform";
-
-  prefix "oc-platform";
-
-  import openconfig-platform-types { prefix oc-platform-types; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-alarm-types { prefix oc-alarm-types; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines a data model for representing a system
-    component inventory, which can include hardware or software
-    elements arranged in an arbitrary structure. The primary
-    relationship supported by the model is containment, e.g.,
-    components containing subcomponents.
-
-    It is expected that this model reflects every field replacable
-    unit on the device at a minimum (i.e., additional information
-    may be supplied about non-replacable components).
-
-    Every element in the inventory is termed a 'component' with each
-    component expected to have a unique name and type, and optionally
-    a unique system-assigned identifier and FRU number.  The
-    uniqueness is guaranteed by the system within the device.
-
-    Components may have properties defined by the system that are
-    modeled as a list of key-value pairs. These may or may not be
-    user-configurable.  The model provides a flag for the system
-    to optionally indicate which properties are user configurable.
-
-    Each component also has a list of 'subcomponents' which are
-    references to other components. Appearance in a list of
-    subcomponents indicates a containment relationship as described
-    above.  For example, a linecard component may have a list of
-    references to port components that reside on the linecard.
-
-    This schema is generic to allow devices to express their own
-    platform-specific structure.  It may be augmented by additional
-    component type-specific schemas that provide a common structure
-    for well-known component types.  In these cases, the system is
-    expected to populate the common component schema, and may
-    optionally also represent the component and its properties in the
-    generic structure.
-
-    The properties for each component may include dynamic values,
-    e.g., in the 'state' part of the schema.  For example, a CPU
-    component may report its utilization, temperature, or other
-    physical properties.  The intent is to capture all platform-
-    specific physical data in one location, including inventory
-    (presence or absence of a component) and state (physical
-    attributes or status).";
-
-  oc-ext:openconfig-version "0.9.0";
-
-  revision "2018-01-30" {
-    description
-      "Amended approach for modelling CPU - rather than having
-      a local CPU utilisation state variable, a component with
-      a CPU should create a subcomponent of type CPU to report
-      statistics.";
-    reference "0.9.0";
-  }
-
-  revision "2018-01-16" {
-    description
-      "Added new per-component common data; add temp alarm;
-      moved hardware-port reference to port model";
-    reference "0.8.0";
-  }
-
-  revision "2017-12-14" {
-    description
-      "Added anchor containers for component data, added new
-      component types";
-    reference "0.7.0";
-  }
-
-  revision "2017-08-16" {
-    description
-      "Added power state enumerated type";
-    reference "0.6.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Added temperature state variable to component";
-    reference "0.5.0";
-  }
-
-  // grouping statements
-
-
-  grouping platform-component-properties-config {
-    description
-      "System-defined configuration data for component properties";
-
-    leaf name {
-      type string;
-      description
-        "System-supplied name of the property -- this is typically
-        non-configurable";
-    }
-
-    leaf value {
-      type union {
-        type string;
-        // type boolean;
-        type int64;
-        type uint64;
-        type decimal64 {
-          fraction-digits 2;
-        }
-      }
-      description
-        "Property values can take on a variety of types.  Signed and
-        unsigned integer types may be provided in smaller sizes,
-        e.g., int8, uint16, etc.";
-    }
-  }
-
-  grouping platform-component-properties-state {
-    description
-      "Operational state data for component properties";
-
-    leaf configurable {
-      type boolean;
-      description
-        "Indication whether the property is user-configurable";
-    }
-  }
-
-  grouping platform-component-properties-top {
-    description
-      "Top-level grouping ";
-
-    container properties {
-      description
-        "Enclosing container ";
-
-      list property {
-        key "name";
-        description
-          "List of system properties for the component";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "Reference to the property name.";
-        }
-
-        container config {
-          description
-            "Configuration data for each property";
-
-          uses platform-component-properties-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for each property";
-
-          uses platform-component-properties-config;
-          uses platform-component-properties-state;
-        }
-      }
-    }
-  }
-
-  grouping platform-subcomponent-ref-config {
-    description
-      "Configuration data for subcomponent references";
-
-    leaf name {
-        type string;
-//      type leafref {
-//        path "../../config/name";
-//      }
-      description
-        "Reference to the name of the subcomponent";
-    }
-  }
-
-  grouping platform-subcomponent-ref-state {
-    description
-      "Operational state data for subcomponent references";
-
-  }
-
-  grouping platform-subcomponent-ref-top {
-    description
-      "Top-level grouping for list of subcomponent references";
-
-    container subcomponents {
-      description
-        "Enclosing container for subcomponent references";
-
-      list subcomponent {
-        key "name";
-        description
-          "List of subcomponent references";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "Reference to the name list key";
-        }
-
-        container config {
-          description
-            "Configuration data for the subcomponent";
-
-          uses platform-subcomponent-ref-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for the subcomponent";
-
-          uses platform-subcomponent-ref-config;
-          uses platform-subcomponent-ref-state;
-        }
-      }
-    }
-  }
-
-  grouping platform-component-config {
-    description
-      "Configuration data for components";
-
-    leaf name {
-      type string;
-      description
-        "Device name for the component -- this will not be a
-        configurable parameter on many implementations";
-    }
-  }
-
-  grouping platform-component-state {
-    description
-      "Operational state data for device components.";
-
-    leaf type {
-      type union {
-        type identityref {
-          base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT;
-        }
-        type identityref {
-          base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT;
-        }
-      }
-      description
-        "Type of component as identified by the system";
-    }
-
-    leaf id {
-      type string;
-      description
-        "Unique identifier assigned by the system for the
-        component";
-    }
-
-    leaf description {
-      type string;
-      description
-        "System-supplied description of the component";
-    }
-
-    leaf mfg-name {
-      type string;
-      description
-        "System-supplied identifier for the manufacturer of the
-        component.  This data is particularly useful when a
-        component manufacturer is different than the overall
-        device vendor.";
-    }
-
-    leaf hardware-version {
-      type string;
-      description
-        "For hardware components, this is the hardware revision of
-        the component.";
-    }
-
-    leaf firmware-version {
-      type string;
-      description
-        "For hardware components, this is the version of associated
-        firmware that is running on the component, if applicable.";
-    }
-
-    leaf software-version {
-      type string;
-      description
-        "For software components such as operating system or other
-        software module, this is the version of the currently
-        running software.";
-    }
-
-    leaf serial-no {
-      type string;
-      description
-        "System-assigned serial number of the component.";
-    }
-
-    leaf part-no {
-      type string;
-      description
-        "System-assigned part number for the component.  This should
-        be present in particular if the component is also an FRU
-        (field replacable unit)";
-    }
-
-    leaf oper-status {
-      type identityref {
-        base oc-platform-types:COMPONENT_OPER_STATUS;
-      }
-      description
-        "If applicable, this reports the current operational status
-        of the component.";
-    }
-  }
-
-  grouping platform-component-temp-alarm-state {
-    description
-      "Temperature alarm data for platform components";
-
-    // TODO(aashaikh): consider if these leaves could be in a
-    // reusable grouping (not temperature-specific); threshold
-    // may always need to be units specific.
-
-    leaf alarm-status {
-      type boolean;
-      description
-        "A value of true indicates the alarm has been raised or
-        asserted.  The value should be false when the alarm is
-        cleared.";
-    }
-
-    leaf alarm-threshold {
-      type uint32;
-      description
-        "The threshold value that was crossed for this alarm.";
-    }
-
-    leaf alarm-severity {
-      type identityref {
-        base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY;
-      }
-      description
-        "The severity of the current alarm.";
-    }
-  }
-
-  grouping platform-component-power-state {
-    description
-      "Power-related operational state for device components.";
-
-    leaf allocated-power {
-      type uint32;
-      units watts;
-      description
-        "Power allocated by the system for the component.";
-    }
-
-    leaf used-power {
-      type uint32;
-      units watts;
-      description
-        "Actual power used by the component.";
-    }
-  }
-
-  grouping platform-component-temp-state {
-    description
-      "Temperature state data for device components";
-
-    container temperature {
-      description
-        "Temperature in degrees Celsius of the component. Values include
-        the instantaneous, average, minimum, and maximum statistics. If
-        avg/min/max statistics are not supported, the target is expected
-        to just supply the instant value";
-
-      uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius;
-      uses platform-component-temp-alarm-state;
-    }
-  }
-
-  grouping platform-component-memory-state {
-    description
-      "Per-component memory statistics";
-
-    container memory {
-      description
-        "For components that have associated memory, these values
-        report information about available and utilized memory.";
-
-      leaf available {
-        type uint64;
-        units bytes;
-        description
-          "The available memory physically installed, or logically
-          allocated to the component.";
-      }
-
-      // TODO(aashaikh): consider if this needs to be a
-      // min/max/avg statistic
-      leaf utilized {
-        type uint64;
-        units bytes;
-        description
-          "The memory currently in use by processes running on
-          the component, not considering reserved memory that is
-          not available for use.";
-      }
-    }
-  }
-
-  grouping platform-anchors-top {
-    description
-      "This grouping is used to add containers for components that
-      are common across systems, but do not have a defined schema
-      within the openconfig-platform module.  Containers should be
-      added to this grouping for components that are expected to
-      exist in multiple systems, with corresponding modules
-      augmenting the config/state containers directly.";
-
-    container chassis {
-      description
-        "Data for chassis components";
-
-      container config {
-        description
-          "Configuration data for chassis components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for chassis components";
-      }
-    }
-
-// TODO(aashaikh): linecard container is already defined in
-// openconfig-platform-linecard; will move to this module
-// in future.
-  /*
-    container linecard {
-      description
-        "Data for linecard components";
-
-      container config {
-        description
-          "Configuration data for linecard components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for linecard components";
-      }
-    }
-  */
-
-    container port {
-      description
-        "Data for physical port components";
-
-      container config {
-        description
-          "Configuration data for physical port components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for physical port components";
-      }
-    }
-
-// TODO(aashaikh): transceiver container is already defined in
-// openconfig-platform-transceiver; will move to this module
-// in future.
-  /*
-    container transceiver {
-      description
-        "Data for transceiver components";
-
-      container config {
-        description
-          "Configuration data for transceiver components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for transceiver components";
-      }
-    }
-  */
-
-    container power-supply {
-      description
-        "Data for power supply components";
-
-      container config {
-        description
-          "Configuration data for power supply components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for power supply components";
-      }
-    }
-
-    container fan {
-      description
-        "Data for fan components";
-
-      container config {
-        description
-          "Configuration data for fan components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for fan components";
-      }
-    }
-
-    container fabric {
-      description
-        "Data for fabric components";
-
-      container config {
-        description
-          "Configuration data for fabric components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for fabric components";
-      }
-    }
-
-    container storage {
-      description
-        "Data for storage components";
-
-      container config {
-        description
-          "Configuration data for storage components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for storage components";
-      }
-    }
-
-    container cpu {
-      description
-        "Data for cpu components";
-
-      container config {
-        description
-          "Configuration data for cpu components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for cpu components";
-      }
-    }
-
-    container integrated-circuit {
-      description
-        "Data for chip components, such as ASIC, NPUs, etc.";
-
-      container config {
-        description
-          "Configuration data for chip components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for chip components";
-      }
-    }
-
-    container backplane {
-      description
-        "Data for backplane components";
-
-      container config {
-        description
-          "Configuration data for backplane components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for backplane components";
-      }
-    }
-  }
-
-  grouping platform-component-top {
-    description
-      "Top-level grouping for components in the device inventory";
-
-    container components {
-      description
-        "Enclosing container for the components in the system.";
-
-      list component {
-        key "name";
-        description
-          "List of components, keyed by component name.";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "References the component name";
-        }
-
-        container config {
-          description
-            "Configuration data for each component";
-
-          uses platform-component-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for each component";
-
-          uses platform-component-config;
-          uses platform-component-state;
-          uses platform-component-temp-state;
-          uses platform-component-memory-state;
-          uses platform-component-power-state;
-        }
-
-        uses platform-component-properties-top;
-        uses platform-subcomponent-ref-top;
-        uses platform-anchors-top;
-      }
-    }
-  }
-
-
-  // data definition statements
-
-  uses platform-component-top;
-
-
-  // augments
-
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-terminal-device@2017-07-08.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-terminal-device@2017-07-08.yang
deleted file mode 100644 (file)
index 0319a6c..0000000
+++ /dev/null
@@ -1,1141 +0,0 @@
-module openconfig-terminal-device {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/terminal-device";
-
-  prefix "oc-opt-term";
-
-  import openconfig-types { prefix oc-types; }
-  import openconfig-transport-types { prefix oc-opt-types; }
-  import openconfig-if-ethernet { prefix oc-eth; }
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-platform-transceiver { prefix oc-transceiver; }
-  import openconfig-extensions { prefix oc-ext; }
-  import ietf-yang-types { prefix yang; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module describes a terminal optics device model for
-    managing the terminal systems (client and line side) in a
-    DWDM transport network.
-
-    Elements of the model:
-
-    physical port: corresponds to a physical, pluggable client
-    port on the terminal device. Examples includes 10G, 40G, 100G
-    (e.g., 10x10G, 4x25G or 1x100G) and 400G/1T in the future.
-    Physical client ports will have associated operational state or
-    PMs.
-
-    physical channel: a physical lane or channel in the
-    physical client port.  Each physical client port has 1 or more
-    channels. An example is 100GBASE-LR4 client physical port having
-    4x25G channels. Channels have their own optical PMs and can be
-    monitored independently within a client physical port (e.g.,
-    channel power).  Physical client channels are defined in the
-    model as part of a physical client port, and are modeled
-    primarily for reading their PMs.
-
-    logical channel: a logical grouping of logical grooming elements
-    that may be assigned to subsequent grooming stages for
-    multiplexing / de-multiplexing, or to an optical channel for
-    line side transmission.  The logical channels can represent, for
-    example, an ODU/OTU logical packing of the client
-    data onto the line side.  Tributaries are similarly logical
-    groupings of demand that can be represented in this structure and
-    assigned to an optical channel.  Note that different types of
-    logical channels may be present, each with their corresponding
-    PMs.
-
-    optical channel:  corresponds to an optical carrier and is
-    assigned a wavelength/frequency.  Optical channels have PMs
-    such as power, BER, and operational mode.
-
-    Directionality:
-
-    To maintain simplicity in the model, the configuration is
-    described from client-to-line direction.  The assumption is that
-    equivalent reverse configuration is implicit, resulting in
-    the same line-to-client configuration.
-
-    Physical layout:
-
-    The model does not assume a particular physical layout of client
-    and line ports on the terminal device (e.g., such as number of
-    ports per linecard, separate linecards for client and line ports,
-    etc.).";
-
-  oc-ext:openconfig-version "1.0.0";
-
-  revision "2017-07-08" {
-    description
-      "Adds test-signal";
-    reference "1.0.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes and additions to terminal optics model";
-    reference "0.4.0";
-  }
-
-
-  grouping terminal-input-optical-power {
-    description
-      "Reusable leaves related to input optical power";
-
-    leaf input-power {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The input optical power of this port in units of 0.01dBm.
-        If the port is an aggregate of multiple physical channels,
-        this attribute is the total power or sum of all channels.";
-    }
-  }
-
-  grouping terminal-ethernet-protocol-config {
-    description
-      "Configuration data for logical channels with Ethernet
-      framing";
-
-    //TODO:currently a empty container
-  }
-
-  grouping terminal-ethernet-protocol-state {
-    description
-      "Ethernet-specific counters when logical channel
-      is using Ethernet protocol framing, e.g., 10GE, 100GE";
-
-      uses oc-eth:ethernet-interface-state-counters;
-  }
-
-  grouping terminal-ethernet-protocol-top {
-    description
-      "Top-level grouping for data related to Ethernet protocol
-      framing on logical channels";
-
-    container ethernet {
-      description
-        "Top level container for data related to Ethernet framing
-        for the logical channel";
-
-      container config {
-        description
-          "Configuration data for Ethernet protocol framing on
-          logical channels";
-
-        uses terminal-ethernet-protocol-config;
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for Ethernet protocol framing
-          on logical channels";
-
-        uses terminal-ethernet-protocol-state;
-      }
-    }
-  }
-
-  grouping terminal-otn-protocol-config {
-    description
-      "OTU configuration when logical channel
-      framing is using an OTU protocol, e.g., OTU1, OTU3, etc.";
-
-    leaf tti-msg-transmit {
-      type string;
-      description
-        "Trail trace identifier (TTI) message transmitted";
-    }
-
-    leaf tti-msg-expected {
-      type string;
-      description
-        "Trail trace identifier (TTI) message expected";
-    }
-
-    leaf tti-msg-auto {
-      type boolean;
-      description
-        "Trail trace identifier (TTI) transmit message automatically
-        created.  If true, then setting a custom transmit message
-        would be invalid.";
-    }
-  }
-
-  grouping terminal-otn-protocol-counter-stats {
-    description
-      "Counter based statistics containers for logical channels
-      using OTN framing";
-
-    leaf errored-seconds {
-      type yang:counter64;
-      description
-        "The number of seconds that at least one errored blocks
-        occurs, at least one code violation occurs, loss of sync is
-        detected or loss of signal is detected";
-    }
-
-    leaf severely-errored-seconds {
-      type yang:counter64;
-      description
-        "The number of seconds that loss of frame is detected OR
-        the number of errored blocks, code violations, loss of sync
-        or loss of signal is detected exceeds a predefined
-        threshold";
-    }
-
-    leaf unavailable-seconds {
-      type yang:counter64;
-      description
-        "The number of seconds during which the link is unavailable";
-    }
-
-    leaf code-violations {
-      type yang:counter64;
-      description
-        "For ethernet or fiberchannel links, the number of 8b/10b
-        coding violations. For SONET/SDH, the number of BIP (bit
-        interleaved parity) errors";
-    }
-
-    leaf fec-uncorrectable-words {
-      type yang:counter64;
-      description
-        "The number words that were uncorrectable by the FEC";
-    }
-
-    leaf fec-corrected-bytes {
-      type yang:counter64;
-      description
-        "The number of bytes that were corrected by the FEC";
-    }
-
-    leaf fec-corrected-bits {
-      type yang:counter64;
-      description
-        "The number of bits that were corrected by the FEC";
-    }
-
-    leaf background-block-errors {
-      type yang:counter64;
-      description
-        "The number of background block errors";
-    }
-  }
-
-  grouping terminal-otn-protocol-multi-stats {
-    description
-      "Multi-value statistics containers for logical channels using
-      OTN framing (e.g., max, min, avg, instant)";
-
-    container pre-fec-ber {
-      description
-        "Bit error rate before forward error correction -- computed
-        value with 18 decimal precision. Note that decimal64
-        supports values as small as i x 10^-18 where i is an
-        integer. Values smaller than this should be reported as 0
-        to inidicate error free or near error free performance.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision18-ber;
-    }
-
-    container post-fec-ber {
-      description
-        "Bit error rate after forward error correction -- computed
-        value with 18 decimal precision. Note that decimal64
-        supports values as small as i x 10^-18 where i is an
-        integer. Values smaller than this should be reported as 0
-        to inidicate error free or near error free performance.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision18-ber;
-    }
-
-    container q-value {
-      description
-        "Quality value (factor) in dB of a channel with two
-        decimal precision. Values include the instantaneous,
-        average, minimum, and maximum statistics. If avg/min/max
-        statistics are not supported, the target is expected
-        to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dB;
-    }
-
-    container esnr {
-      description
-        "Electrical signal to noise ratio. Baud rate
-        normalized signal to noise ratio based on
-        error vector magnitude in dB with two decimal
-        precision. Values include the instantaneous, average,
-        minimum, and maximum statistics. If avg/min/max
-        statistics are not supported, the target is expected
-        to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dB;
-    }
-  }
-
-  grouping terminal-otn-protocol-state {
-    description
-      "OTU operational state when logical channel
-      framing is using an OTU protocol, e.g., OTU1, OTU3, etc.";
-
-
-      leaf tti-msg-recv {
-        type string;
-        description
-          "Trail trace identifier (TTI) message received";
-      }
-
-      leaf rdi-msg {
-        type string;
-        description
-          "Remote defect indication (RDI) message received";
-      }
-      uses terminal-otn-protocol-counter-stats;
-      uses terminal-otn-protocol-multi-stats;
-  }
-
-  grouping terminal-otn-protocol-top {
-    description
-      "Top-level grouping for data related to OTN protocol framing";
-
-    container otn {
-      description
-        "Top level container for OTU configuration when logical
-        channel framing is using an OTU protocol, e.g., OTU1, OTU3,
-        etc.";
-
-      container config {
-        description
-          "Configuration data for OTN protocol framing";
-
-        uses terminal-otn-protocol-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for OTN protocol PMs, statistics,
-          etc.";
-
-        uses terminal-otn-protocol-config;
-        uses terminal-otn-protocol-state;
-      }
-    }
-  }
-
-  grouping terminal-client-port-assignment-config {
-    description
-      "Configuration data for assigning physical client ports to
-      logical channels";
-
-    leaf index {
-      type uint32;
-      description
-        "Index of the client port assignment";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Descriptive name for the client port-to-logical channel
-        mapping";
-    }
-
-    leaf logical-channel {
-      type leafref {
-        path "/oc-opt-term:terminal-device/oc-opt-term:logical-channels" +
-          "/oc-opt-term:channel/oc-opt-term:index";
-      }
-      description
-        "Reference to the logical channel for this
-        assignment";
-    }
-
-    leaf allocation {
-      type decimal64 {
-        fraction-digits 3;
-      }
-      units Gbps;
-      description
-        "Allocation of the client physical port to the assigned
-        logical channel expressed in Gbps.  In most cases,
-        the full client physical port rate is assigned to a single
-        logical channel.";
-    }
-
-  }
-
-  grouping terminal-client-port-assignment-state {
-    description
-      "Operational state data for assigning physical client ports
-      to logical channels";
-  }
-
-  grouping terminal-client-port-assignment-top {
-    description
-      "Top-level grouping for the assigment of client physical ports
-      to logical channels";
-    //TODO: this grouping could be removed, instead reusing a common
-    //grouping for logical client assignment pointers
-
-    container logical-channel-assignments {
-      description
-        "Enclosing container for client port to logical client
-        mappings";
-
-      list assignment {
-        key "index";
-        description
-          "List of assignments to logical clients";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index of this logical client
-            assignment";
-        }
-
-        container config {
-          description
-            "Configuration data for the logical client assignment";
-
-          uses terminal-client-port-assignment-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for the logical client
-            assignment";
-
-          uses terminal-client-port-assignment-config;
-          uses terminal-client-port-assignment-state;
-        }
-      }
-    }
-  }
-
-
-  grouping terminal-logical-chan-assignment-config {
-    description
-      "Configuration data for assigning client logical channels
-      to line-side tributaries";
-
-    leaf index {
-      type uint32;
-      description
-        "Index of the current logical client channel to tributary
-        mapping";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Name assigned to the logical client channel";
-    }
-
-    leaf assignment-type {
-      type enumeration {
-        enum LOGICAL_CHANNEL {
-          description
-            "Subsequent channel is a logical channel";
-        }
-        enum OPTICAL_CHANNEL {
-          description
-            "Subsequent channel is a optical channel / carrier";
-        }
-      }
-      description
-        "Each logical channel element may be assigned to subsequent
-        stages of logical elements to implement further grooming, or
-        can be assigned to a line-side optical channel for
-        transmission.  Each assignment also has an associated
-        bandwidth allocation.";
-    }
-
-    leaf logical-channel {
-      type leafref {
-        path "/oc-opt-term:terminal-device/" +
-          "oc-opt-term:logical-channels/oc-opt-term:channel/" +
-          "oc-opt-term:index";
-      }
-      must "../assignment-type = 'LOGICAL_CHANNEL'" {
-        description
-          "The assignment-type must be set to LOGICAL_CHANNEL for
-          this leaf to be valid";
-      }
-      description
-         "Reference to another stage of logical channel elements.";
-    }
-
-    leaf optical-channel {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-platform:name";
-      }
-      must "../assignment-type = 'OPTICAL_CHANNEL'" {
-        description
-          "The assignment-type must be set to OPTICAL_CHANNEL for
-          this leaf to be valid";
-      }
-      description
-        "Reference to the line-side optical channel that should
-        carry the current logical channel element.  Use this
-        reference to exit the logical element stage.";
-    }
-
-    leaf allocation {
-      type decimal64 {
-        fraction-digits 3;
-      }
-      units Gbps;
-      description
-        "Allocation of the logical client channel to the tributary
-        or sub-channel, expressed in Gbps";
-    }
-
-  }
-
-  grouping terminal-logical-chan-assignment-state {
-    description
-      "Operational state data for the assignment of logical client
-      channel to line-side tributary";
-  }
-
-  grouping terminal-logical-chan-assignment-top {
-    description
-      "Top-level grouping for the list of logical client channel-to-
-      tributary assignments";
-
-    container logical-channel-assignments {
-      //TODO: we need a commonly understood name for this logical
-      //channel structure
-      description
-        "Enclosing container for tributary assignments";
-
-      list assignment {
-        key "index";
-        description
-          "Logical channel elements may be assigned directly to
-          optical channels for line-side transmission, or can be
-          further groomed into additional stages of logical channel
-          elements.  The grooming can multiplex (i.e., split the
-          current element into multiple elements in the subsequent
-          stage) or de-multiplex (i.e., combine the current element
-          with other elements into the same element in the subsequent
-          stage) logical elements in each stage.
-
-          Note that to support the ability to groom the logical
-          elements, the list of logical channel elements should be
-          populated with an entry for the logical elements at
-          each stage, starting with the initial assignment from the
-          respective client physical port.
-
-          Each logical element assignment consists of a pointer to
-          an element in the next stage, or to an optical channel,
-          along with a bandwidth allocation for the corresponding
-          assignment (e.g., to split or combine signal).";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index for the current tributary
-            assignment";
-        }
-
-        container config {
-          description
-            "Configuration data for tributary assignments";
-
-          uses terminal-logical-chan-assignment-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for tributary assignments";
-
-          uses terminal-logical-chan-assignment-config;
-          uses terminal-logical-chan-assignment-state;
-        }
-      }
-    }
-  }
-
-  grouping terminal-logical-channel-ingress-config {
-    description
-      "Configuration data for ingress signal to logical channel";
-
-    leaf transceiver {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-        "oc-platform:name";
-      }
-      description
-        "Reference to the transceiver carrying the input signal
-        for the logical channel.  If specific physical channels
-        are mapped to the logical channel (as opposed to all
-        physical channels carried by the transceiver), they can be
-        specified in the list of physical channel references.";
-    }
-
-    leaf-list physical-channel {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-transceiver:transceiver/" +
-          "oc-transceiver:physical-channels/" +
-          "oc-transceiver:channel/oc-transceiver:index";
-      }
-      description
-        "This list should be populated with references
-        to the client physical channels that feed this logical
-        channel from the transceiver specified in the 'transceiver'
-        leaf, which must be specified.  If this leaf-list is empty,
-        all physical channels in the transceiver are assumed to be
-        mapped to the logical channel.";
-    }
-  }
-
-  grouping terminal-logical-channel-ingress-state {
-    description
-      "Operational state data for ingress signal to logical channel";
-  }
-
-  grouping terminal-logical-channel-ingress-top {
-    description
-      "Top-level grouping for ingress signal to logical channel";
-
-    container ingress {
-      description
-        "Top-level container for specifying references to the
-        source of signal for the logical channel, either a
-        transceiver or individual physical channels";
-
-      container config {
-        description
-          "Configuration data for the signal source for the
-          logical channel";
-
-        uses terminal-logical-channel-ingress-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for the signal source for the
-          logical channel";
-
-        uses terminal-logical-channel-ingress-config;
-        uses terminal-logical-channel-ingress-state;
-      }
-    }
-  }
-
-  grouping terminal-logical-channel-config {
-    description
-      "Configuration data for logical channels";
-
-    leaf index {
-      type uint32;
-      description
-        "Index of the current logical channel";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Description of the logical channel";
-    }
-
-    leaf admin-state {
-      type oc-opt-types:admin-state-type;
-      description
-          "Sets the admin state of the logical channel";
-    }
-
-    leaf rate-class {
-      type identityref {
-        base oc-opt-types:TRIBUTARY_RATE_CLASS_TYPE;
-      }
-      description
-        "Rounded bit rate of the tributary signal. Exact bit rate
-        will be refined by protocol selection.";
-    }
-
-    leaf trib-protocol {
-      type identityref {
-        base oc-opt-types:TRIBUTARY_PROTOCOL_TYPE;
-      }
-      description
-        "Protocol framing of the tributary signal. If this
-        LogicalChannel is directly connected to a Client-Port or
-        Optical-Channel, this is the protocol of the associated port.
-        If the LogicalChannel is connected to other LogicalChannels,
-        the TributaryProtocol of the LogicalChannels will define a
-        specific mapping/demapping or multiplexing/demultiplexing
-        function.
-
-        Not all protocols are valid, depending on the value
-        of trib-rate-class.  The expectation is that the NMS
-        will validate that a correct combination of rate class
-        and protocol are specfied.  Basic combinations are:
-
-        rate class: 1G
-        protocols: 1GE
-
-        rate class: 2.5G
-        protocols: OC48, STM16
-
-        rate class: 10G
-        protocols:  10GE LAN, 10GE WAN, OC192, STM64, OTU2, OTU2e,
-                    OTU1e, ODU2, ODU2e, ODU1e
-
-        rate class: 40G
-        protocols:  40GE, OC768, STM256, OTU3, ODU3
-
-        rate class: 100G
-        protocols:  100GE, 100G MLG, OTU4, OTUCn, ODU4";
-    }
-
-    leaf logical-channel-type {
-      type identityref {
-        base oc-opt-types:LOGICAL_ELEMENT_PROTOCOL_TYPE;
-      }
-      description
-        "The type / stage of the logical element determines the
-        configuration and operational state parameters (PMs)
-        available for the logical element";
-    }
-
-    leaf loopback-mode {
-      type oc-opt-types:loopback-mode-type;
-      description
-        "Sets the loopback type on the logical channel. Setting the
-        mode to something besides NONE activates the loopback in
-        the specified mode.";
-    }
-
-    leaf test-signal {
-      type boolean;
-      description
-        "When enabled the logical channel's DSP will generate a pseudo
-        randmon bit stream (PRBS) which can be used during testing.";
-    }
-  }
-
-
-  grouping terminal-logical-channel-state {
-    description
-      "Operational state data for logical client channels";
-
-    leaf link-state {
-      type enumeration {
-        enum UP {
-          description
-            "Logical channel is operationally up";
-        }
-        enum DOWN {
-          description
-            "Logical channel is operationally down";
-        }
-      }
-      description
-        "Link-state of the Ethernet protocol on the logical channel,
-        SONET / SDH framed signal, etc.";
-    }
-
-  }
-
-  grouping terminal-logical-channel-top {
-    description
-      "Top-level grouping for logical channels";
-
-    container logical-channels {
-      description
-        "Enclosing container the list of logical channels";
-
-      list channel {
-        key "index";
-        description
-          "List of logical channels";
-        //TODO: naming for this list of logical elements should be
-        //revisited.
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index of the logical channel";
-        }
-
-        container config {
-          description
-            "Configuration data for logical channels";
-
-          uses terminal-logical-channel-config;
-
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for logical channels";
-
-          uses terminal-logical-channel-config;
-          uses terminal-logical-channel-state;
-        }
-
-        uses terminal-otn-protocol-top {
-          when "config/logical-channel-type = 'PROT_OTN'" {
-            description
-              "Include the OTN protocol data only when the
-              channel is using OTN framing.";
-          }
-        }
-        uses terminal-ethernet-protocol-top {
-          when "config/logical-channel-type = 'PROT_ETHERNET'" {
-            description
-              "Include the Ethernet protocol statistics only when the
-              protocol used by the link is Ethernet.";
-          }
-        }
-        uses terminal-logical-channel-ingress-top;
-        uses terminal-logical-chan-assignment-top;
-      }
-    }
-  }
-
-
-  grouping terminal-optical-channel-config {
-    description
-      "Configuration data for describing optical channels";
-
-    leaf frequency {
-      type oc-opt-types:frequency-type;
-      description
-        "Frequency of the optical channel, expressed in MHz";
-    }
-
-    leaf target-output-power {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "Target output optical power level of the optical channel,
-        expressed in increments of 0.01 dBm (decibel-milliwats)";
-    }
-
-    leaf operational-mode {
-      type uint16;
-      description
-        "Vendor-specific mode identifier -- sets the operational
-        mode for the channel.  The specified operational mode must
-        exist in the list of supported operational modes supplied
-        by the device";
-      //
-      // Ideally, this leaf should be a leafref to the supported
-      // operational modes, but YANG 1.0 does not allow a r/w
-      // leaf to be a leafref to a r/o leaf.
-    }
-
-
-    leaf line-port {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-platform:name";
-      }
-      description
-        "Reference to the line-side physical port that carries
-        this optical channel.  The target port should be
-        a component in the physical inventory data model.";
-    }
-  }
-
-  grouping terminal-optical-channel-state {
-    description
-      "Operational state data for optical channels";
-
-    leaf group-id {
-      type uint32;
-      description
-        "If the device places constraints on which optical
-        channels must be managed together (e.g., transmitted on the
-        same line port), it can indicate that by setting the group-id
-        to the same value across related optical channels.";
-    }
-
-    uses oc-transceiver:optical-power-state;
-
-    container chromatic-dispersion {
-      description
-        "Chromatic Dispersion of an optical channel in
-        picoseconds / nanometer (ps/nm) as reported by receiver
-        with two decimal precision. Values include the instantaneous,
-        average, minimum, and maximum statistics. If avg/min/max
-        statistics are not supported, the target is expected to just
-        supply the instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision2-ps-nm;
-    }
-
-    container polarization-mode-dispersion {
-      description
-        "Polarization Mode Dispersion of an optical channel
-        in picosends (ps) as reported by receiver with two decimal
-        precision. Values include the instantaneous, average,
-        minimum, and maximum statistics. If avg/min/max statistics
-        are not supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision2-ps;
-    }
-
-    container second-order-polarization-mode-dispersion {
-      description
-        "Second Order Polarization Mode Dispersion of an optical
-        channel in picoseconds squared (ps^2) as reported by
-        receiver with two decimal precision. Values include the
-        instantaneous, average, minimum, and maximum statistics.
-        If avg/min/max statistics are not supported, the target
-        is expected to just supply the instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision2-ps2;
-    }
-
-    container polarization-dependent-loss {
-      description
-        "Polarization Dependent Loss of an optical channel
-        in dB as reported by receiver with two decimal precision.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dB;
-    }
-  }
-
-  grouping terminal-optical-channel-top {
-    description
-      "Top-level grouping for optical channel data";
-
-    container optical-channel {
-      description
-        "Enclosing container for the list of optical channels";
-
-      container config {
-        description
-          "Configuration data for optical channels";
-
-        uses terminal-optical-channel-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for optical channels";
-
-        uses terminal-optical-channel-config;
-        uses terminal-optical-channel-state;
-      }
-    }
-  }
-
-  grouping terminal-operational-mode-config {
-    description
-      "Configuration data for vendor-supported operational modes";
-  }
-
-  grouping terminal-operational-mode-state {
-    description
-      "Operational state data for vendor-supported operational
-      modes";
-
-      leaf mode-id {
-        type uint16;
-        description
-          "Two-octet encoding of the vendor-defined operational
-          mode";
-      }
-
-      leaf description {
-        type string;
-        description
-          "Vendor-supplied textual description of the characteristics
-          of this operational mode to enable operators to select the
-          appropriate mode for the application.";
-      }
-
-      //TODO: examples of the kind of info that would be useful to
-      //report in the operational mode:
-      //Symbol rate (32G, 40G, 43G, 64G, etc.)
-      //Modulation (QPSK, 8-QAM, 16-QAM, etc.)
-      //Differential encoding (on, off/pilot symbol, etc)
-      //State of polarization tracking mode (default, med.
-      //high-speed, etc.)
-      //Pulse shaping (RRC, RC, roll-off factor)
-      //FEC mode (SD, HD, % OH)
-
-      leaf vendor-id {
-        type string;
-        description
-          "Identifier to represent the vendor / supplier of the
-          platform and the associated operational mode information";
-      }
-  }
-
-  grouping terminal-operational-mode-top {
-    description
-      "Top-level grouping for vendor-supported operational modes";
-
-    container operational-modes {
-      description
-        "Enclosing container for list of operational modes";
-
-      list mode {
-        key "mode-id";
-        config false;
-        description
-          "List of operational modes supported by the platform.
-          The operational mode provides a platform-defined summary
-          of information such as symbol rate, modulation, pulse
-          shaping, etc.";
-
-        leaf mode-id {
-          type leafref {
-            path "../state/mode-id";
-          }
-          description
-            "Reference to mode-id";
-        }
-
-        container config {
-          description
-            "Configuration data for operational mode";
-
-          uses terminal-operational-mode-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for the platform-defined
-            operational mode";
-
-          uses terminal-operational-mode-config;
-          uses terminal-operational-mode-state;
-        }
-      }
-    }
-  }
-
-
-  grouping terminal-device-config {
-    description
-      "Configuration data for transport terminal devices at a
-      device-wide level";
-  }
-
-  grouping terminal-device-state {
-    description
-      "Operational state data for transport terminal devices at a
-      device-wide level";
-  }
-
-  grouping terminal-device-top {
-    description
-      "Top-level grouping for data for terminal devices";
-
-    container terminal-device {
-      description
-        "Top-level container for the terminal device";
-
-      container config {
-        description
-          "Configuration data for global terminal-device";
-
-        uses terminal-device-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for global terminal device";
-
-        uses terminal-device-config;
-        uses terminal-device-state;
-      }
-
-      uses terminal-logical-channel-top;
-      uses terminal-operational-mode-top;
-
-    }
-  }
-
-  // data definition statements
-
-  uses terminal-device-top;
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    when "/oc-platform:components/oc-platform:component/" +
-      "oc-platform:state/oc-platform:type = 'OPTICAL_CHANNEL'" {
-      description
-        "Augment is active when component is of type
-        OPTICAL_CHANNEL";
-    }
-    description
-      "Adding optical channel data to physical inventory";
-
-    uses terminal-optical-channel-top {
-    }
-  }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-transport-line-common@2017-09-08.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-transport-line-common@2017-09-08.yang
deleted file mode 100644 (file)
index 813ffa6..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-module openconfig-transport-line-common {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/transport-line-common";
-
-  prefix "oc-line-com";
-
-  // import some basic types
-  import iana-if-type { prefix ift; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-interfaces { prefix oc-if; }
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-transport-types { prefix oc-opt-types; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines common data elements for OpenConfig data
-    models for optical transport line system elements, such as
-    amplifiers and ROADMs (wavelength routers).";
-
-  oc-ext:openconfig-version "0.3.1";
-
-  revision "2017-09-08" {
-    description
-      "Correct bug with OSC interfaces";
-    reference "0.3.1";
-  }
-
-  revision "2017-07-08" {
-    description
-      "Add monitor port type and refs to hw ports, ";
-    reference "0.3.0";
-  }
-
-  revision "2017-03-28" {
-    description
-      "Added min/max/avg stats, status for media channels, OCM, APS";
-    reference "0.2.0";
-  }
-
-  revision "2016-03-31" {
-    description
-      "Initial public release";
-    reference "0.1.0";
-  }
-
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  identity OPTICAL_LINE_PORT_TYPE {
-    description
-      "Type definition for optical node port types";
-  }
-
-  identity INGRESS {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Ingress port, corresponding to a signal entering
-      a line device such as an amplifier or wavelength
-      router.";
-  }
-
-  identity EGRESS {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Egress port, corresponding to a signal exiting
-      a line device such as an amplifier or wavelength
-      router.";
-  }
-
-  identity ADD {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Add port, corresponding to a signal injected
-      at a wavelength router.";
-  }
-
-  identity DROP {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Drop port, corresponding to a signal dropped
-      at a wavelength router.";
-  }
-
-  identity MONITOR {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Monitor port, corresponding to a signal used by an optical
-      channel monitor. This is used to represent the connection
-      that a channel monitor port is connected to. This
-      connection may be via physical cable and faceplate ports or
-      internal to the device";
-  }
-
-  // typedef statements
-
-  // grouping statements
-
-   grouping optical-osc-config {
-    description
-      "Configuration data for OSC interfaces";
-
-    leaf interface {
-      type oc-if:base-interface-ref;
-      description
-        "Reference to an OSC interface";
-    }
-  }
-
-  grouping optical-osc-state {
-    description
-      "Operational state data for OSC interfaces";
-
-    container input-power {
-      description
-        "The input optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        the target is expected to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container output-power {
-      description
-        "The output optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        the target is expected to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container laser-bias-current {
-      description
-        "The current applied by the system to the transmit laser to
-        achieve the output power. The current is expressed in mA
-        with up to one decimal precision. If avg/min/max statistics
-        are not supported, the target is expected to just supply
-        the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-mA;
-    }
-  }
-
-
-
-  grouping optical-osc-top {
-    description
-      "Top-level grouping for configuration and operational state
-      data for optical supervisory channels (OSC) for amplifiers,
-      WSS/ROADM, nodes, etc.";
-
-    container config {
-      description
-        "Configuration data for OSCs";
-
-      uses optical-osc-config;
-    }
-
-    container state {
-
-      config false;
-
-      description
-        "Operational state data for OSCs";
-
-      uses optical-osc-config;
-      uses optical-osc-state;
-    }
-  }
-
-
-  grouping transport-line-common-port-config {
-    description
-      "Configuration data for optical line ports";
-
-    leaf admin-state {
-      type oc-opt-types:admin-state-type;
-      description
-          "Sets the admin state of the optical-port";
-    }
-  }
-
-  grouping transport-line-common-port-state {
-    description
-      "Operational state data describing optical line ports";
-
-    leaf optical-port-type {
-      type identityref {
-        base OPTICAL_LINE_PORT_TYPE;
-      }
-      description
-        "Indicates the type of transport line port.  This is an
-        informational field that should be made available by the
-        device (e.g., in the openconfig-platform model).";
-    }
-
-    container input-power {
-      description
-        "The total input optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container output-power {
-      description
-        "The total output optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-  }
-
-  grouping transport-line-common-port-top {
-    description
-      "Top-level grouping ";
-
-    container optical-port {
-      description
-        "Top-level container ";
-
-      container config {
-
-        description
-          "Operational config data for optical line ports";
-
-        uses transport-line-common-port-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for optical line ports";
-
-        uses transport-line-common-port-config;
-        uses transport-line-common-port-state;
-      }
-    }
-  }
-
-
-
-  // data definition statements
-
-  // uses optical-osc-top;
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    description
-      "Adding optical line port data to platform model";
-
-    uses transport-line-common-port-top {
-      when "/oc-platform:components/oc-platform:component/" +
-        "oc-platform:state/oc-platform:type = 'PORT'" {
-        description
-          "Augment is active when component is of type
-          PORT";
-      }
-    }
-  }
-
-  //TODO:this is placeholder until SONET model is added
-  //to interfaces model
-  augment "/oc-if:interfaces/oc-if:interface" {
-    when "oc-if:config/oc-if:type = 'ift:sonet'" {
-      description "Additional interface configuration parameters when
-      the interface type is SONET/SDH";
-    }
-    description "Adds additional SONET/SDH-specific data to
-    osc model";
-
-    container sonet {
-      description
-        "Data related to SONET/SDH interfaces";
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-transport-types@2017-08-16.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-transport-types@2017-08-16.yang
deleted file mode 100644 (file)
index 276f24b..0000000
+++ /dev/null
@@ -1,800 +0,0 @@
-module openconfig-transport-types {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/transport-types";
-
-  prefix "oc-opt-types";
-
-  import openconfig-platform-types { prefix oc-platform-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module contains general type definitions and identities
-    for optical transport models.";
-
-  oc-ext:openconfig-version "0.5.0";
-
-  revision "2017-08-16" {
-    description
-      "Added ODU Cn protocol type";
-    reference "0.5.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes and additions for terminal optics model";
-    reference "0.4.0";
-  }
-
-  // typedef statements
-
-  typedef frequency-type {
-    type uint64;
-    units "MHz";
-    description
-      "Type for optical spectrum frequency values";
-  }
-
-  typedef admin-state-type {
-    type enumeration {
-      enum ENABLED {
-        description
-        "Sets the channel admin state to enabled";
-      }
-      enum DISABLED {
-        description
-        "Sets the channel admin state to disabled";
-      }
-      enum MAINT {
-        description
-        "Sets the channel to maintenance / diagnostic mode";
-      }
-    }
-    description "Administrative state modes for
-    logical channels in the transponder model.";
-  }
-
-  typedef loopback-mode-type {
-    type enumeration {
-      enum NONE {
-        description
-          "No loopback is applied";
-      }
-      enum FACILITY {
-        description
-          "A loopback which directs traffic normally transmitted
-          on the port back to the device as if received on the same
-          port from an external source.";
-      }
-      enum TERMINAL {
-        description
-          "A loopback which directs traffic received from an external
-          source on the port back out the transmit side of the same
-          port.";
-      }
-    }
-    default NONE;
-    description
-      "Loopback modes for transponder logical channels";
-  }
-
-  // grouping statements
-
-  grouping avg-min-max-instant-stats-precision2-ps-nm {
-    description
-      "Common grouping for recording picosecond per nanometer
-      values with 2 decimal precision. Values include the
-      instantaneous, average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  grouping avg-min-max-instant-stats-precision2-ps {
-    description
-      "Common grouping for recording picosecond values with
-      2 decimal precision. Values include the instantaneous,
-      average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  grouping avg-min-max-instant-stats-precision2-ps2 {
-    description
-      "Common grouping for recording picosecond^2 values with
-      2 decimal precision. Values include the instantaneous,
-      average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  grouping avg-min-max-instant-stats-precision18-ber {
-    description
-      "Common grouping for recording bit error rate (BER) values
-      with 18 decimal precision. Note that decimal64 supports
-      values as small as i x 10^-18 where i is an integer. Values
-      smaller than this should be reported as 0 to inidicate error
-      free or near error free performance. Values include the
-      instantaneous, average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  // identity statements
-
-  identity TRIBUTARY_PROTOCOL_TYPE {
-    description
-      "Base identity for protocol framing used by tributary
-      signals.";
-  }
-
-  identity PROT_1GE {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "1G Ethernet protocol";
-  }
-
-  identity PROT_OC48 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OC48 protocol";
-  }
-
-  identity PROT_STM16 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "STM 16 protocol";
-  }
-
-  identity PROT_10GE_LAN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "10G Ethernet LAN protocol";
-  }
-
-  identity PROT_10GE_WAN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "10G Ethernet WAN protocol";
-  }
-
-  identity PROT_OC192 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OC 192 (9.6GB) port protocol";
-  }
-
-  identity PROT_STM64 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "STM 64 protocol";
-  }
-
-  identity PROT_OTU2 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 2 protocol";
-  }
-
-  identity PROT_OTU2E {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 2e protocol";
-  }
-
-  identity PROT_OTU1E {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 1e protocol";
-  }
-
-  identity PROT_ODU2 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 2 protocol";
-  }
-
-  identity PROT_ODU2E {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 2e protocol";
-  }
-
-  identity PROT_40GE {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "40G Ethernet port protocol";
-  }
-
-  identity PROT_OC768 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OC 768 protocol";
-  }
-
-  identity PROT_STM256 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "STM 256 protocol";
-  }
-
-  identity PROT_OTU3 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 3 protocol";
-  }
-
-  identity PROT_ODU3 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 3 protocol";
-  }
-
-  identity PROT_100GE {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "100G Ethernet protocol";
-  }
-
-  identity PROT_100G_MLG {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "100G MLG protocol";
-  }
-
-  identity PROT_OTU4 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU4 signal protocol (112G) for transporting
-    100GE signal";
-  }
-
-  identity PROT_OTUCN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU Cn protocol";
-  }
-
-  identity PROT_ODUCN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU Cn protocol";
-  }
-
-  identity PROT_ODU4 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 4 protocol";
-  }
-
-  identity TRANSCEIVER_FORM_FACTOR_TYPE {
-    description
-      "Base identity for identifying the type of pluggable optic
-      transceiver (i.e,. form factor) used in a port.";
-  }
-
-  identity CFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "C form-factor pluggable, that can support up to a
-      100 Gb/s signal with 10x10G or 4x25G physical channels";
-  }
-
-  identity CFP2 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "1/2 C form-factor pluggable, that can support up to a
-      200 Gb/s signal with 10x10G, 4x25G, or 8x25G physical
-      channels";
-  }
-
-  identity CFP2_ACO {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "CFP2 analog coherent optics transceiver, supporting
-      100 Gb, 200Gb, and 250 Gb/s signal.";
-  }
-
-  identity CFP4 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "1/4 C form-factor pluggable, that can support up to a
-      100 Gb/s signal with 10x10G or 4x25G physical channels";
-  }
-
-  identity QSFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "OriginalQuad Small Form-factor Pluggable transceiver that can
-      support 4x1G physical channels.  Not commonly used.";
-  }
-
-  identity QSFP_PLUS {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Quad Small Form-factor Pluggable transceiver that can support
-      up to 4x10G physical channels.";
-  }
-
-  identity QSFP28 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "QSFP pluggable optic with support for up to 4x28G physical
-      channels";
-  }
-
-  identity CPAK {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Cisco CPAK transceiver supporting 100 Gb/s.";
-  }
-
-  identity SFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Small form-factor pluggable transceiver supporting up to
-      10 Gb/s signal";
-  }
-
-  identity SFP_PLUS {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Enhanced small form-factor pluggable transceiver supporting
-      up to 16 Gb/s signals, including 10 GbE and OTU2";
-  }
-
-  identity XFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "10 Gigabit small form factor pluggable transceiver supporting
-      10 GbE and OTU2";
-  }
-
-  identity X2 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "10 Gigabit small form factor pluggable transceiver supporting
-      10 GbE using a XAUI inerface and 4 data channels.";
-  }
-
-  identity NON_PLUGGABLE {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Represents a port that does not require a pluggable optic,
-      e.g., with on-board optics like COBO";
-  }
-
-  identity OTHER {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Represents a transceiver form factor not otherwise listed";
-  }
-
-  identity FIBER_CONNECTOR_TYPE {
-    description
-      "Type of optical fiber connector";
-  }
-
-  identity SC_CONNECTOR {
-    base FIBER_CONNECTOR_TYPE;
-    description
-      "SC type fiber connector";
-  }
-
-  identity LC_CONNECTOR {
-    base FIBER_CONNECTOR_TYPE;
-    description
-      "LC type fiber connector";
-  }
-
-  identity MPO_CONNECTOR {
-    base FIBER_CONNECTOR_TYPE;
-    description
-      "MPO (multi-fiber push-on/pull-off) type fiber connector
-      1x12 fibers";
-  }
-
-  identity ETHERNET_PMD_TYPE {
-    description
-      "Ethernet compliance codes (PMD) supported by transceivers";
-  }
-
-  identity ETH_10GBASE_LRM {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_LRM";
-  }
-
-  identity ETH_10GBASE_LR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_LR";
-  }
-
-  identity ETH_10GBASE_ZR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_ZR";
-  }
-
-  identity ETH_10GBASE_ER {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_ER";
-  }
-
-  identity ETH_10GBASE_SR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_SR";
-  }
-
-  identity ETH_40GBASE_CR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_CR4";
-  }
-
-  identity ETH_40GBASE_SR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_SR4";
-  }
-
-  identity ETH_40GBASE_LR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_LR4";
-  }
-
-  identity ETH_40GBASE_ER4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_ER4";
-  }
-
-  identity ETH_40GBASE_PSM4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_PSM4";
-  }
-
-  identity ETH_4X10GBASE_LR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 4x10GBASE_LR";
-  }
-
-  identity ETH_4X10GBASE_SR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 4x10GBASE_SR";
-  }
-
-  identity ETH_100G_AOC {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100G_AOC";
-  }
-
-  identity ETH_100G_ACC {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100G_ACC";
-  }
-
-  identity ETH_100GBASE_SR10 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_SR10";
-  }
-
-  identity ETH_100GBASE_SR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_SR4";
-  }
-
-  identity ETH_100GBASE_LR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_LR4";
-  }
-
-  identity ETH_100GBASE_ER4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_ER4";
-  }
-
-  identity ETH_100GBASE_CWDM4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_CWDM4";
-  }
-
-  identity ETH_100GBASE_CLR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_CLR4";
-  }
-
-  identity ETH_100GBASE_PSM4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_PSM4";
-  }
-
-  identity ETH_100GBASE_CR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_CR4";
-  }
-
-  identity ETH_UNDEFINED {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: undefined";
-  }
-
-  identity SONET_APPLICATION_CODE {
-    description
-      "Supported SONET/SDH application codes";
-  }
-
-  identity VSR2000_3R2 {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: VSR2000_3R2";
-  }
-
-  identity VSR2000_3R3 {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: VSR2000_3R3";
-  }
-
-  identity VSR2000_3R5 {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: VSR2000_3R5";
-  }
-
-  identity SONET_UNDEFINED {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: undefined";
-  }
-
-  identity OTN_APPLICATION_CODE {
-    description
-      "Supported OTN application codes";
-  }
-
-  identity P1L1_2D1 {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: P1L1_2D1";
-  }
-
-  identity P1S1_2D2 {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: P1S1_2D2";
-  }
-
-  identity P1L1_2D2 {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: P1L1_2D2";
-  }
-
-  identity OTN_UNDEFINED {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: undefined";
-  }
-
-  identity TRIBUTARY_RATE_CLASS_TYPE {
-    description
-      "Rate of tributary signal _- identities will typically reflect
-      rounded bit rate.";
-  }
-
-  identity TRIB_RATE_1G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "1G tributary signal rate";
-  }
-
-  identity TRIB_RATE_2.5G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "2.5G tributary signal rate";
-  }
-
-  identity TRIB_RATE_10G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "10G tributary signal rate";
-  }
-
-  identity TRIB_RATE_40G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "40G tributary signal rate";
-  }
-
-  identity TRIB_RATE_100G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "100G tributary signal rate";
-  }
-
-  identity TRIB_RATE_150G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "150G tributary signal rate";
-  }
-
-  identity TRIB_RATE_200G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "200G tributary signal rate";
-  }
-
-  identity TRIB_RATE_250G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "250G tributary signal rate";
-  }
-
-  identity TRIB_RATE_300G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "300G tributary signal rate";
-  }
-
-  identity TRIB_RATE_400G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "400G tributary signal rate";
-  }
-
-  identity LOGICAL_ELEMENT_PROTOCOL_TYPE {
-    description
-      "Type of protocol framing used on the logical channel or
-      tributary";
-  }
-
-  identity PROT_ETHERNET {
-    base LOGICAL_ELEMENT_PROTOCOL_TYPE;
-    description
-      "Ethernet protocol framing";
-  }
-
-  identity PROT_OTN {
-    base LOGICAL_ELEMENT_PROTOCOL_TYPE;
-    description
-      "OTN protocol framing";
-  }
-
-  identity OPTICAL_CHANNEL {
-    base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Optical channels act as carriers for transport traffic
-      directed over a line system.  They are represented as
-      physical components in the physical inventory model.";
-  }
-
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-types@2018-01-16.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-types@2018-01-16.yang
deleted file mode 100644 (file)
index 94eb65d..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-module openconfig-types {
-  yang-version "1";
-
-  namespace "http://openconfig.net/yang/openconfig-types";
-
-  prefix "oc-types";
-
-  // import statements
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization
-    "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "This module contains a set of general type definitions that
-    are used across OpenConfig models. It can be imported by modules
-    that make use of these types.";
-
-  oc-ext:openconfig-version "0.4.0";
-
-  revision "2018-01-16" {
-    description
-      "Add interval to min/max/avg stats; add percentage stat";
-    reference "0.4.0";
-  }
-
-  revision "2017-08-16" {
-    description
-      "Apply fix for ieetfloat32 length parameter";
-    reference "0.3.3";
-  }
-
-  revision "2017-01-13" {
-    description
-      "Add ADDRESS_FAMILY identity";
-    reference "0.3.2";
-  }
-
-  revision "2016-11-14" {
-    description
-      "Correct length of ieeefloat32";
-    reference "0.3.1";
-  }
-
-  revision "2016-11-11" {
-    description
-      "Additional types - ieeefloat32 and routing-password";
-    reference "0.3.0";
-  }
-
-  revision "2016-05-31" {
-    description
-      "OpenConfig public release";
-    reference "0.2.0";
-  }
-
-  typedef percentage {
-    type uint8 {
-      range "0..100";
-    }
-    description
-      "Integer indicating a percentage value";
-  }
-
-  typedef std-regexp {
-    type string;
-    description
-      "This type definition is a placeholder for a standard
-      definition of a regular expression that can be utilised in
-      OpenConfig models. Further discussion is required to
-      consider the type of regular expressions that are to be
-      supported. An initial proposal is POSIX compatible.";
-  }
-
-  typedef timeticks64 {
-    type uint64;
-    description
-     "This type is based on the timeticks type defined in
-     RFC 6991, but with 64-bit width.  It represents the time,
-     modulo 2^64, in hundredths of a second between two epochs.";
-    reference
-      "RFC 6991 - Common YANG Data Types";
-  }
-
-  typedef ieeefloat32 {
-    type binary {
-      length "4";
-    }
-    description
-      "An IEEE 32-bit floating point number. The format of this number
-      is of the form:
-        1-bit  sign
-        8-bit  exponent
-        23-bit fraction
-      The floating point value is calculated using:
-        (-1)**S * 2**(Exponent-127) * (1+Fraction)";
-  }
-
-  typedef routing-password {
-    type string;
-    description
-      "This type is indicative of a password that is used within
-      a routing protocol which can be returned in plain text to the
-      NMS by the local system. Such passwords are typically stored
-      as encrypted strings. Since the encryption used is generally
-      well known, it is possible to extract the original value from
-      the string - and hence this format is not considered secure.
-      Leaves specified with this type should not be modified by
-      the system, and should be returned to the end-user in plain
-      text. This type exists to differentiate passwords, which
-      may be sensitive, from other string leaves. It could, for
-      example, be used by the NMS to censor this data when
-      viewed by particular users.";
-  }
-
-  typedef stat-interval {
-    type uint64;
-    units nanoseconds;
-    description
-      "A time interval over which a set of statistics is computed.
-      A common usage is to report the interval over which
-      avg/min/max stats are computed and reported.";
-  }
-
-  grouping stat-interval-state {
-    description
-      "Reusable leaf definition for stats computation interval";
-
-    leaf interval {
-      type oc-types:stat-interval;
-      description
-        "The time interval over which the min/max/average statistics
-        are computed by the system.";
-    }
-  }
-
-  grouping avg-min-max-stats-precision1 {
-    description
-      "Common nodes for recording average, minimum, and
-      maximum values for a statistic.  These values all have
-      fraction-digits set to 1.";
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The maximum value of the statitic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-precision1 {
-    description
-      "Common grouping for recording an instantaneous statistic value
-      in addition to avg-min-max stats";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    uses avg-min-max-stats-precision1;
-  }
-
-  grouping avg-min-max-instant-stats-precision2-dB {
-    description
-      "Common grouping for recording dB values with 2 decimal
-      precision. Values include the instantaneous, average,
-      minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-precision2-dBm {
-    description
-      "Common grouping for recording dBm values with 2 decimal
-      precision. Values include the instantaneous, average,
-      minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-precision2-mA {
-    description
-      "Common grouping for recording mA values with 2 decimal
-      precision. Values include the instantaneous, average,
-      minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-pct {
-    description
-      "Common grouping for percentage statistics.";
-
-    leaf instant {
-      type oc-types:percentage;
-      description
-        "The instantaneous percentage value.";
-    }
-
-    leaf avg {
-      type oc-types:percentage;
-      description
-        "The arithmetic mean value of the percentage measure of the
-        statistic over the sampling period.";
-    }
-
-    leaf min {
-      type oc-types:percentage;
-      description
-        "The minimum value of the percentage measure of the
-        statistic over the sampling period";
-    }
-
-    leaf max {
-      type oc-types:percentage;
-      description
-        "The maximum value of the percentage measure of the
-        statistic over the sampling period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  identity ADDRESS_FAMILY {
-    description
-      "A base identity for all address families";
-  }
-
-  identity IPV4 {
-    base ADDRESS_FAMILY;
-    description
-      "The IPv4 address family";
-  }
-
-  identity IPV6 {
-    base ADDRESS_FAMILY;
-    description
-      "The IPv6 address family";
-  }
-
-  identity MPLS {
-    base ADDRESS_FAMILY;
-    description
-      "The MPLS address family";
-  }
-
-  identity L2_ETHERNET {
-    base ADDRESS_FAMILY;
-    description
-      "The 802.3 Ethernet address family";
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-yang-types@2017-07-30.yang b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-yang-types@2017-07-30.yang
deleted file mode 100644 (file)
index 749fac4..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-module openconfig-yang-types {
-
-  yang-version "1";
-  namespace "http://openconfig.net/yang/types/yang";
-  prefix "oc-yang";
-
-  import openconfig-extensions { prefix "oc-ext"; }
-
-  organization
-    "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module contains a set of extension types to the
-    YANG builtin types that are used across multiple
-    OpenConfig models.
-
-    Portions of this code were derived from IETF RFC 6021.
-    Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "0.1.2";
-
-  revision 2017-07-30 {
-    description
-      "Fixed unprintable character";
-    reference "0.1.2";
-  }
-
-  revision 2017-04-03 {
-    description
-      "Update copyright notice.";
-    reference "0.1.1";
-  }
-
-  revision 2017-01-26 {
-    description
-      "Initial module for inet types";
-    reference "0.1.0";
-  }
-
-  typedef dotted-quad {
-    type string {
-      pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|'       +
-              '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' +
-              '[0-9]|25[0-5])$';
-    }
-    description
-      "An unsigned 32-bit integer expressed as a dotted quad. The
-      format is four octets written as decimal numbers separated
-      with a period character.";
-  }
-
-  typedef hex-string {
-    type string {
-      pattern '^[0-9a-fA-F]*$';
-    }
-    description
-      "A string consisting of a hexadecimal characters.";
-  }
-
-  typedef counter32 {
-    type uint32;
-    description
-
-      "A 32-bit counter. A counter value is a monotonically increasing
-      value which is used to express a count of a number of
-      occurrences of a particular event or entity. When the counter
-      reaches its maximum value, in this case 2^32-1, it wraps to 0.
-
-      Discontinuities in the counter are generally triggered only when
-      the counter is reset to zero.";
-  }
-
-  typedef counter64 {
-    type uint64;
-    description
-
-      "A 64-bit counter. A counter value is a monotonically increasing
-      value which is used to express a count of a number of
-      occurrences of a particular event or entity. When a counter64
-      reaches its maximum value, 2^64-1, it loops to zero.
-      Discontinuities in a counter are generally triggered only when
-      the counter is reset to zero, through operator or system
-      intervention.";
-  }
-
-  typedef date-and-time {
-    type string {
-      pattern
-        '^[0-9]{4}\-[0-9]{2}\-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}' +
-        '(\.[0-9]+)?Z[+-][0-9]{2}:[0-9]{2}$';
-    }
-    description
-      "A date and time, expressed in the format described in RFC3339.
-      That is to say:
-
-      YYYY-MM-DDTHH:MM:SSZ+-hh:mm
-
-      where YYYY is the year, MM is the month expressed as a two-digit
-      month (zero padding if required), DD is the day of the month,
-      expressed as a two digit value. T is the literal character 'T',
-      HH is the hour of the day expressed as a two digit number, using
-      the 24-hour clock, MM is the minute of the hour expressed as a
-      two digit number. Z is the literal character 'Z', followed by a
-      timezone offset expressed in hours (hh) and minutes (mm), both
-      expressed as two digit numbers. The time offset is specified as
-      a positive or negative offset to UTC using the '+' or '-'
-      character preceding the offset.
-
-      Optionally, fractional seconds can be expressed after the minute
-      of the hour as a decimal number of unspecified precision
-      reflecting fractions of a second.";
-    reference
-      "RFC3339 - Date and Time on the Internet: Timestamps";
-  }
-
-  typedef gauge64 {
-    type uint64;
-    description
-      "A gauge value may increase or decrease - and reflects a value
-      at a particular point in time. If the value of the variable
-      being modeled using the gauge exceeds its maximum - 2^64-1 in
-      this case - the gauge is set to its maximum value.";
-  }
-
-  typedef phys-address {
-    type string {
-      pattern '^([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?$';
-    }
-    description
-      "A physical layer address, expressed as a series of pairs of
-      hexadecimal digits.";
-  }
-
-  typedef mac-address {
-    type string {
-      pattern '^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$';
-    }
-    description
-      "An IEEE 802 MAC address";
-  }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/CreateDeviceFromXMLFileTest.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/CreateDeviceFromXMLFileTest.java
deleted file mode 100644 (file)
index a3f5ebb..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.test;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultDeviceFactory;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Test to create {@link OrgOpenroadmDevice} object
- * from xml file or String using Yangtools
- *
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-@RunWith(Parameterized.class)
-public class CreateDeviceFromXMLFileTest {
-    private static final Logger LOG = LoggerFactory.getLogger(CreateDeviceFromXMLFileTest.class);
-    private static final String DEVICE_OPER_IN = "src/test/resources/oper-ROADMA.xml";
-    private String xml;
-
-
-    public CreateDeviceFromXMLFileTest(String xmlData) {
-        this.xml = xmlData;
-    }
-
-    @Parameterized.Parameters
-    public static Collection<Object[]> stringXML() {
-        return Arrays.asList(new Object[][]{
-            {DeviceOperToConfig.getDeviceFromXML(DeviceOperToConfig.operToConfig())}
-//                {DeviceOperToConfig.operToConfig()}
-
-        });
-    }
-
-    /**
-     * This test  create instance of
-     * {@link OrgOpenroadmDevice} with String xml
-     * from {@link DeviceOperToConfig#operToConfig()}
-     * function as parameters.
-     *
-     * @throws NullPointerException
-     */
-    @Test
-    public void createDeviceFromString() throws NullPointerException {
-        OrgOpenroadmDevice result = null;
-        LOG.info("Parameterized string is : {}", xml);
-        DataStoreContext dataStoreContextUtil = new DataStoreContextImpl();
-        DefaultDeviceFactory defaultDeviceFactory = new DefaultDeviceFactory();
-        result = defaultDeviceFactory.createDefaultDevice(dataStoreContextUtil,xml);
-        if (result != null) {
-            LOG.info("result info : {}", result.getInfo().getNodeId());
-            Assert.assertEquals("ROADMA", result.getInfo().getNodeId());
-        }
-        LOG.info("Test Succeed");
-    }
-
-
-    /**
-     * This test create Device from File
-     * located at {@link CreateDeviceFromXMLFileTest#DEVICE_OPER_IN}.
-     *
-     * @throws NullPointerException
-     */
-    @Test
-    public void createDeviceFromFile() throws NullPointerException{
-        LOG.info("test createDeviceFromFile ...");
-        OrgOpenroadmDevice result = null;
-        result = null;
-        File device_data = new File(DEVICE_OPER_IN);
-        DataStoreContext dataStoreContextUtil = new DataStoreContextImpl();
-        DefaultDeviceFactory defaultDeviceFactory = new DefaultDeviceFactory();
-        result = defaultDeviceFactory.createDefaultDevice(dataStoreContextUtil,device_data);
-        if (result != null) {
-            LOG.info("result info : {}", result.getInfo().getNodeId());
-            Assert.assertEquals("ROADMA", result.getInfo().getNodeId());
-        }
-        LOG.info("Test Succeed");
-    }
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/CreatePmListFromXMLFileTest.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/CreatePmListFromXMLFileTest.java
deleted file mode 100644 (file)
index db910f6..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.test;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultPmListFactory;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-
-import java.io.File;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.CurrentPmlist;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Test to create {@link CurrentPmlist} object
- * from xml file or String using Yangtools
- *
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public class CreatePmListFromXMLFileTest {
-    private static final Logger LOG = LoggerFactory.getLogger(CreatePmListFromXMLFileTest.class);
-    private static final String PM_LIST_OPER_IN = "src/test/resources/oper-ROADMA-cpm.xml";
-
-    /**
-     * This test create Device from File
-     * located at {@link CreatePmListFromXMLFileTest#DEVICE_OPER_IN}.
-     *
-     * @throws NullPointerException
-     */
-    @Test
-    public void createPmListFromFile() throws NullPointerException{
-        LOG.info("test createPmListFromFile ...");
-        CurrentPmlist result = null;
-        File pm_list_data = new File(PM_LIST_OPER_IN);
-        DataStoreContext dataStoreContextUtil = new DataStoreContextImpl();
-        DefaultPmListFactory defaultPmListFactory = new DefaultPmListFactory();
-        result = defaultPmListFactory.createDefaultPmList(dataStoreContextUtil,pm_list_data);
-        if (result != null) {
-            LOG.info("result pm list size : {}", result.getCurrentPm());
-            Assert.assertEquals("result pm list size should be 4",4, result.getCurrentPm().size());
-        }
-        LOG.info("Test Succeed");
-    }
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/DeviceOperToConfig.java b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/DeviceOperToConfig.java
deleted file mode 100644 (file)
index bed8949..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.test;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultDeviceFactory;
-import io.fd.honeycomb.transportpce.device.tools.DefaultPmListFactory;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-
-import java.io.File;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.CurrentPmlist;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Converts XML Data operation file  to Configuration file.
- *
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public class DeviceOperToConfig {
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceOperToConfig.class);
-    private static final String DEVICE_OPER = "src/test/resources/oper-ROADMA.xml";
-    private static final String PM_LIST_OPER = "src/test/resources/oper-ROADMA-cpm.xml";
-    private static final String CONFIG_XSL = "src/main/resources/honeycomb-minimal-resources/config/device/config.xsl";
-    private static final String DEVICE_XSL = "src/main/resources/honeycomb-minimal-resources/config/device/OperToConfig.xsl";
-
-
-
-    /**
-     * Convert data xml to config xml device.
-     *
-     * @return String result
-     */
-    public static String operToConfig() {
-        String result =null;
-        LOG.info("process to transform xml file {}",DEVICE_OPER);
-        TransformerFactory factory = TransformerFactory.newInstance();
-        Source xslt = new StreamSource(new File(DEVICE_XSL));
-        try {
-            StringWriter tmpwriter = new StringWriter();
-            LOG.info("transforming xml data to config device ...");
-            Transformer transformer = factory.newTransformer(xslt);
-            Source text = new StreamSource(new File(DEVICE_OPER));
-            transformer.transform(text, new StreamResult(tmpwriter));
-            result = tmpwriter.toString();
-        } catch (TransformerException e) {
-            LOG.error("Transformer failed ", e);
-        }
-        return result;
-    }
-
-    public static String getDeviceFromXML(String xml) {
-        String config_result =null;
-        LOG.info("process to transform xml file to config data");
-        TransformerFactory factory = TransformerFactory.newInstance();
-        Source xslt = new StreamSource(new File(CONFIG_XSL));
-        Transformer transformer;
-        Source text;
-        StringWriter device_config = new StringWriter();
-        try {
-            LOG.info("transforming xml string to config device ...");
-            transformer = factory.newTransformer(xslt);
-            text = new StreamSource(new StringReader(xml));
-            transformer.transform(text, new StreamResult(device_config));
-            config_result = device_config.toString();
-            LOG.info(config_result);
-        } catch (TransformerException e) {
-            LOG.error("Transformer failed ");
-        }
-        return config_result;
-    }
-
-    public static void createDeviceFromString(String xml) throws NullPointerException {
-        OrgOpenroadmDevice result = null;
-        LOG.info("Parameterized string is : {}", xml);
-        DataStoreContext dataStoreContextUtil = new DataStoreContextImpl();
-        DefaultDeviceFactory defaultDeviceFactory = new DefaultDeviceFactory();
-        result = defaultDeviceFactory.createDefaultDevice(dataStoreContextUtil,xml);
-        if (result != null) {
-            LOG.info("result info : {}", result.getInfo().getNodeId());
-        } else {
-            LOG.error("failed !");
-        }
-
-    }
-
-    public static void createPmListFromFile() throws NullPointerException {
-        CurrentPmlist result = null;
-        DataStoreContext dataStoreContextUtil = new DataStoreContextImpl();
-        DefaultPmListFactory defaultDeviceFactory = new DefaultPmListFactory();
-        result = defaultDeviceFactory.createDefaultPmList(dataStoreContextUtil,new File(PM_LIST_OPER));
-        if (result != null) {
-            LOG.info("result pm list size : {}", result.getCurrentPm().size());
-        } else {
-            LOG.error("failed !");
-        }
-
-    }
-
-    public static void main(String[] args) {
-        DeviceOperToConfig.createPmListFromFile();
-
-    }
-}
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA-cpm.xml b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA-cpm.xml
deleted file mode 100644 (file)
index a2c543b..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-<currentPmlist xmlns="http://org/openroadm/pm">
-  <currentPm>
-    <id>18</id>
-    <retrievalTime>2018-06-07T13:22:58+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.7</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.3</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>49.9</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>19</id>
-    <retrievalTime>2018-06-07T13:23:00+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.7</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.3</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>50.2</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>10</id>
-    <retrievalTime>2018-06-07T13:23:02+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>5.4</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-6.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>44.4</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>11</id>
-    <retrievalTime>2018-06-07T13:23:04+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>5.4</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-6.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>44.4</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-</currentPmlist>
-</data>
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA-full.xml b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA-full.xml
deleted file mode 100644 (file)
index 90dce35..0000000
+++ /dev/null
@@ -1,4015 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <netconf xmlns="urn:ietf:params:xml:ns:netmod:notification">
-      <streams>
-          <stream>
-              <name>OPENROADM</name>
-          </stream>
-    </streams>
-  </netconf>
-  <org-openroadm-device xmlns="http://org/openroadm/device">
-    <info>
-      <node-id>ROADMA</node-id>
-      <node-number>2</node-number>
-      <node-type>rdm</node-type>
-      <clli>NodeA</clli>
-      <vendor>vendorA</vendor>
-      <model>2</model>
-      <serial-id>0002</serial-id>
-      <ipAddress>127.0.0.12</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.12</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <current-defaultGateway>127.0.0.20</current-defaultGateway>
-      <macAddress>aa:aa:aa:aa:aa:aa</macAddress>
-      <softwareVersion>1</softwareVersion>
-      <max-degrees>2</max-degrees>
-      <max-srgs>9</max-srgs>
-    </info>
-    <users>
-      <user>
-        <name>openroadm</name>
-        <password>openroadm</password>
-        <group>sudo</group>
-      </user>
-    </users>
-    <pending-sw>
-      <sw-version>1</sw-version>
-    </pending-sw>
-    <shelves>
-      <shelf-name>sdegE</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>2</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00002</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degE</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>2/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <shelves>
-      <shelf-name>sdegW</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>3</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00003</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>3/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-        <shelves>
-      <shelf-name>ssrg</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>4</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00004</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>srgW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>4/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <circuit-packs>
-      <circuit-pack-name>2/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss1</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>2/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>2/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHE</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss2</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>3/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>3/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHW</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>4/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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-CP-TXRX</logical-connection-point>
-      </ports>
-    </circuit-packs>
-    <interface>
-      <name>eth-2/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>2/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-    <interface>
-      <name>eth-3/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>3/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-    <protocols>
-      <lldp xmlns="http://org/openroadm/lldp">
-        <global-config>
-          <adminStatus>enable</adminStatus>
-          <msgTxInterval>20</msgTxInterval>
-          <msgTxHoldMultiplier>4</msgTxHoldMultiplier>
-        </global-config>
-        <port-config>
-          <ifName>eth-2/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-        <port-config>
-          <ifName>eth-3/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-        <nbr-list>
-          <if-name>
-            <ifName>eth-2/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMC</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-3/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-          <if-name>
-            <ifName>eth-3/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMB</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-2/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-        </nbr-list>
-      </lldp>
-    </protocols>
-    <wavelength-map>
-      <wavelengths>
-        <wavelength-number>1</wavelength-number>
-        <center-frequency>196.1</center-frequency>
-        <wavelength>1528.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>2</wavelength-number>
-        <center-frequency>196.05</center-frequency>
-        <wavelength>1529.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>3</wavelength-number>
-        <center-frequency>196.0</center-frequency>
-        <wavelength>1529.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>4</wavelength-number>
-        <center-frequency>195.95</center-frequency>
-        <wavelength>1529.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>5</wavelength-number>
-        <center-frequency>195.9</center-frequency>
-        <wavelength>1530.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>6</wavelength-number>
-        <center-frequency>195.85</center-frequency>
-        <wavelength>1530.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>7</wavelength-number>
-        <center-frequency>195.8</center-frequency>
-        <wavelength>1531.11</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>8</wavelength-number>
-        <center-frequency>195.75</center-frequency>
-        <wavelength>1531.5</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>9</wavelength-number>
-        <center-frequency>195.7</center-frequency>
-        <wavelength>1531.89</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>10</wavelength-number>
-        <center-frequency>195.65</center-frequency>
-        <wavelength>1532.28</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>11</wavelength-number>
-        <center-frequency>195.6</center-frequency>
-        <wavelength>1532.67</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>12</wavelength-number>
-        <center-frequency>195.55</center-frequency>
-        <wavelength>1533.06</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>13</wavelength-number>
-        <center-frequency>195.5</center-frequency>
-        <wavelength>1533.45</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>14</wavelength-number>
-        <center-frequency>195.45</center-frequency>
-        <wavelength>1533.84</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>15</wavelength-number>
-        <center-frequency>195.4</center-frequency>
-        <wavelength>1534.23</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>16</wavelength-number>
-        <center-frequency>195.35</center-frequency>
-        <wavelength>1534.62</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>17</wavelength-number>
-        <center-frequency>195.3</center-frequency>
-        <wavelength>1535.01</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>18</wavelength-number>
-        <center-frequency>195.25</center-frequency>
-        <wavelength>1535.4</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>19</wavelength-number>
-        <center-frequency>195.2</center-frequency>
-        <wavelength>1535.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>20</wavelength-number>
-        <center-frequency>195.15</center-frequency>
-        <wavelength>1536.18</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>21</wavelength-number>
-        <center-frequency>195.1</center-frequency>
-        <wavelength>1536.57</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>22</wavelength-number>
-        <center-frequency>195.05</center-frequency>
-        <wavelength>1536.96</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>23</wavelength-number>
-        <center-frequency>195.0</center-frequency>
-        <wavelength>1537.35</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>24</wavelength-number>
-        <center-frequency>194.95</center-frequency>
-        <wavelength>1537.74</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>25</wavelength-number>
-        <center-frequency>194.9</center-frequency>
-        <wavelength>1538.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>26</wavelength-number>
-        <center-frequency>194.85</center-frequency>
-        <wavelength>1538.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>27</wavelength-number>
-        <center-frequency>194.8</center-frequency>
-        <wavelength>1538.91</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>28</wavelength-number>
-        <center-frequency>194.75</center-frequency>
-        <wavelength>1539.3</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>29</wavelength-number>
-        <center-frequency>194.7</center-frequency>
-        <wavelength>1539.69</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>30</wavelength-number>
-        <center-frequency>194.65</center-frequency>
-        <wavelength>1540.08</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>31</wavelength-number>
-        <center-frequency>194.6</center-frequency>
-        <wavelength>1540.47</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>32</wavelength-number>
-        <center-frequency>194.55</center-frequency>
-        <wavelength>1540.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>33</wavelength-number>
-        <center-frequency>194.5</center-frequency>
-        <wavelength>1541.25</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>34</wavelength-number>
-        <center-frequency>194.45</center-frequency>
-        <wavelength>1541.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>35</wavelength-number>
-        <center-frequency>194.4</center-frequency>
-        <wavelength>1542.03</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>36</wavelength-number>
-        <center-frequency>194.35</center-frequency>
-        <wavelength>1542.42</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>37</wavelength-number>
-        <center-frequency>194.3</center-frequency>
-        <wavelength>1542.81</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>38</wavelength-number>
-        <center-frequency>194.25</center-frequency>
-        <wavelength>1543.2</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>39</wavelength-number>
-        <center-frequency>194.2</center-frequency>
-        <wavelength>1543.59</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>40</wavelength-number>
-        <center-frequency>194.15</center-frequency>
-        <wavelength>1543.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>41</wavelength-number>
-        <center-frequency>194.1</center-frequency>
-        <wavelength>1544.37</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>42</wavelength-number>
-        <center-frequency>194.05</center-frequency>
-        <wavelength>1544.76</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>43</wavelength-number>
-        <center-frequency>194.0</center-frequency>
-        <wavelength>1545.15</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>44</wavelength-number>
-        <center-frequency>193.95</center-frequency>
-        <wavelength>1545.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>45</wavelength-number>
-        <center-frequency>193.9</center-frequency>
-        <wavelength>1545.93</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>46</wavelength-number>
-        <center-frequency>193.85</center-frequency>
-        <wavelength>1546.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>47</wavelength-number>
-        <center-frequency>193.8</center-frequency>
-        <wavelength>1546.71</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>48</wavelength-number>
-        <center-frequency>193.75</center-frequency>
-        <wavelength>1547.1</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>49</wavelength-number>
-        <center-frequency>193.7</center-frequency>
-        <wavelength>1547.49</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>50</wavelength-number>
-        <center-frequency>193.65</center-frequency>
-        <wavelength>1547.88</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>51</wavelength-number>
-        <center-frequency>193.6</center-frequency>
-        <wavelength>1548.27</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>52</wavelength-number>
-        <center-frequency>193.55</center-frequency>
-        <wavelength>1548.66</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>53</wavelength-number>
-        <center-frequency>193.5</center-frequency>
-        <wavelength>1549.05</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>54</wavelength-number>
-        <center-frequency>193.45</center-frequency>
-        <wavelength>1549.44</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>55</wavelength-number>
-        <center-frequency>193.4</center-frequency>
-        <wavelength>1549.83</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>56</wavelength-number>
-        <center-frequency>193.35</center-frequency>
-        <wavelength>1550.22</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>57</wavelength-number>
-        <center-frequency>193.3</center-frequency>
-        <wavelength>1550.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>58</wavelength-number>
-        <center-frequency>193.25</center-frequency>
-        <wavelength>1551.0</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>59</wavelength-number>
-        <center-frequency>193.2</center-frequency>
-        <wavelength>1551.39</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>60</wavelength-number>
-        <center-frequency>193.15</center-frequency>
-        <wavelength>1551.78</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>61</wavelength-number>
-        <center-frequency>193.1</center-frequency>
-        <wavelength>1552.17</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>62</wavelength-number>
-        <center-frequency>193.05</center-frequency>
-        <wavelength>1552.56</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>63</wavelength-number>
-        <center-frequency>193.0</center-frequency>
-        <wavelength>1552.95</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>64</wavelength-number>
-        <center-frequency>192.95</center-frequency>
-        <wavelength>1553.34</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>65</wavelength-number>
-        <center-frequency>192.9</center-frequency>
-        <wavelength>1553.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>66</wavelength-number>
-        <center-frequency>192.85</center-frequency>
-        <wavelength>1554.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>67</wavelength-number>
-        <center-frequency>192.8</center-frequency>
-        <wavelength>1554.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>68</wavelength-number>
-        <center-frequency>192.75</center-frequency>
-        <wavelength>1554.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>69</wavelength-number>
-        <center-frequency>192.7</center-frequency>
-        <wavelength>1555.29</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>70</wavelength-number>
-        <center-frequency>192.65</center-frequency>
-        <wavelength>1555.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>71</wavelength-number>
-        <center-frequency>192.6</center-frequency>
-        <wavelength>1556.07</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>72</wavelength-number>
-        <center-frequency>192.55</center-frequency>
-        <wavelength>1556.46</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>73</wavelength-number>
-        <center-frequency>192.5</center-frequency>
-        <wavelength>1556.85</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>74</wavelength-number>
-        <center-frequency>192.45</center-frequency>
-        <wavelength>1557.24</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>75</wavelength-number>
-        <center-frequency>192.4</center-frequency>
-        <wavelength>1557.63</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>76</wavelength-number>
-        <center-frequency>192.35</center-frequency>
-        <wavelength>1558.02</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>77</wavelength-number>
-        <center-frequency>192.3</center-frequency>
-        <wavelength>1558.41</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>78</wavelength-number>
-        <center-frequency>192.25</center-frequency>
-        <wavelength>1558.8</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>79</wavelength-number>
-        <center-frequency>192.2</center-frequency>
-        <wavelength>1559.19</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>80</wavelength-number>
-        <center-frequency>192.15</center-frequency>
-        <wavelength>1559.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>81</wavelength-number>
-        <center-frequency>192.1</center-frequency>
-        <wavelength>1559.97</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>82</wavelength-number>
-        <center-frequency>192.05</center-frequency>
-        <wavelength>1560.36</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>83</wavelength-number>
-        <center-frequency>192.0</center-frequency>
-        <wavelength>1560.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>84</wavelength-number>
-        <center-frequency>191.95</center-frequency>
-        <wavelength>1561.14</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>85</wavelength-number>
-        <center-frequency>191.9</center-frequency>
-        <wavelength>1561.53</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>86</wavelength-number>
-        <center-frequency>191.85</center-frequency>
-        <wavelength>1561.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>87</wavelength-number>
-        <center-frequency>191.8</center-frequency>
-        <wavelength>1562.31</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>88</wavelength-number>
-        <center-frequency>191.75</center-frequency>
-        <wavelength>1562.7</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>89</wavelength-number>
-        <center-frequency>191.7</center-frequency>
-        <wavelength>1563.09</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>90</wavelength-number>
-        <center-frequency>191.65</center-frequency>
-        <wavelength>1563.48</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>91</wavelength-number>
-        <center-frequency>191.6</center-frequency>
-        <wavelength>1563.87</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>92</wavelength-number>
-        <center-frequency>191.55</center-frequency>
-        <wavelength>1564.26</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>93</wavelength-number>
-        <center-frequency>191.5</center-frequency>
-        <wavelength>1564.65</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>94</wavelength-number>
-        <center-frequency>191.45</center-frequency>
-        <wavelength>1565.04</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>95</wavelength-number>
-        <center-frequency>191.4</center-frequency>
-        <wavelength>1565.43</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>96</wavelength-number>
-        <center-frequency>191.35</center-frequency>
-        <wavelength>1565.82</wavelength>
-      </wavelengths>
-    </wavelength-map>
-    <internal-link>
-      <internal-link-name>2/0/C1-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C2-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C3-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C4-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C5-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C6-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C7-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C8-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C9-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C1-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C2-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C3-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C4-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C5-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C6-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C7-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C8-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C9-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <physical-link>
-      <physical-link-name>phylink-1</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-2</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-3</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-4</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-5</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-6</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <degree>
-      <degree-number>1</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <degree>
-      <degree-number>2</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <shared-risk-group>
-      <srg-number>1</srg-number>
-      <max-add-drop-ports>16</max-add-drop-ports>
-      <wavelengthDuplication>onePerSRG</wavelengthDuplication>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>4/0</circuit-pack-name>
-      </circuit-packs>
-    </shared-risk-group>
-    <connection-map>
-      <connection-map-number>1</connection-map-number>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>2</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>3</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>4</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>5</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>6</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>7</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>8</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>9</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>10</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>11</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>12</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>13</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>14</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>15</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>16</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>17</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>18</connection-map-number>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>19</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>20</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>21</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>22</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>23</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>24</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>25</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>26</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>27</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>28</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>29</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>30</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>31</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>32</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>33</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>34</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-  </org-openroadm-device>
-  <currentPmlist xmlns="http://org/openroadm/pm">
-  <currentPm>
-    <id>18</id>
-    <retrievalTime>2018-06-07T13:22:58+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.7</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.3</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>49.9</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>19</id>
-    <retrievalTime>2018-06-07T13:23:00+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.7</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.3</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>50.2</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>10</id>
-    <retrievalTime>2018-06-07T13:23:02+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>5.4</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-6.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>44.4</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>11</id>
-    <retrievalTime>2018-06-07T13:23:04+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>5.4</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-6.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>44.4</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-</currentPmlist>
-</data>
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA.xml b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA.xml
deleted file mode 100644 (file)
index fac7a35..0000000
+++ /dev/null
@@ -1,3810 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <org-openroadm-device xmlns="http://org/openroadm/device">
-    <info>
-      <node-id>ROADMA</node-id>
-      <node-number>2</node-number>
-      <node-type>rdm</node-type>
-      <clli>NodeA</clli>
-      <vendor>vendorA</vendor>
-      <model>2</model>
-      <serial-id>0002</serial-id>
-      <ipAddress>127.0.0.12</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.12</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <current-defaultGateway>127.0.0.20</current-defaultGateway>
-      <macAddress>aa:aa:aa:aa:aa:aa</macAddress>
-      <softwareVersion>1</softwareVersion>
-      <max-degrees>2</max-degrees>
-      <max-srgs>9</max-srgs>
-    </info>
-    <users>
-      <user>
-        <name>openroadm</name>
-        <password>openroadm</password>
-        <group>sudo</group>
-      </user>
-    </users>
-    <pending-sw>
-      <sw-version>1</sw-version>
-    </pending-sw>
-    <shelves>
-      <shelf-name>sdegE</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>2</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00002</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degE</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>2/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <shelves>
-      <shelf-name>sdegW</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>3</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00003</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>3/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-        <shelves>
-      <shelf-name>ssrg</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>4</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00004</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>srgW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>4/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <circuit-packs>
-      <circuit-pack-name>2/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss1</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>2/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-  <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>2/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-<circuit-packs>
-      <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHE</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-  <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss2</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>3/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-  <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>3/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-<circuit-packs>
-      <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHW</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-  <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>4/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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-CP-TXRX</logical-connection-point>
-      </ports>
-    </circuit-packs>
-<interface>
-      <name>eth-2/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>2/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-    <interface>
-      <name>eth-3/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>3/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-<protocols>
-      <lldp xmlns="http://org/openroadm/lldp">
-        <global-config>
-          <adminStatus>enable</adminStatus>
-          <msgTxInterval>20</msgTxInterval>
-          <msgTxHoldMultiplier>4</msgTxHoldMultiplier>
-        </global-config>
-        <port-config>
-          <ifName>eth-2/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-<port-config>
-          <ifName>eth-3/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-        <nbr-list>
-          <if-name>
-            <ifName>eth-2/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMC</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-3/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-          <if-name>
-            <ifName>eth-3/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMB</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-2/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-        </nbr-list>
-      </lldp>
-    </protocols>
-    <wavelength-map>
-      <wavelengths>
-        <wavelength-number>1</wavelength-number>
-        <center-frequency>196.1</center-frequency>
-        <wavelength>1528.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>2</wavelength-number>
-        <center-frequency>196.05</center-frequency>
-        <wavelength>1529.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>3</wavelength-number>
-        <center-frequency>196.0</center-frequency>
-        <wavelength>1529.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>4</wavelength-number>
-        <center-frequency>195.95</center-frequency>
-        <wavelength>1529.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>5</wavelength-number>
-        <center-frequency>195.9</center-frequency>
-        <wavelength>1530.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>6</wavelength-number>
-        <center-frequency>195.85</center-frequency>
-        <wavelength>1530.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>7</wavelength-number>
-        <center-frequency>195.8</center-frequency>
-        <wavelength>1531.11</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>8</wavelength-number>
-        <center-frequency>195.75</center-frequency>
-        <wavelength>1531.5</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>9</wavelength-number>
-        <center-frequency>195.7</center-frequency>
-        <wavelength>1531.89</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>10</wavelength-number>
-        <center-frequency>195.65</center-frequency>
-        <wavelength>1532.28</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>11</wavelength-number>
-        <center-frequency>195.6</center-frequency>
-        <wavelength>1532.67</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>12</wavelength-number>
-        <center-frequency>195.55</center-frequency>
-        <wavelength>1533.06</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>13</wavelength-number>
-        <center-frequency>195.5</center-frequency>
-        <wavelength>1533.45</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>14</wavelength-number>
-        <center-frequency>195.45</center-frequency>
-        <wavelength>1533.84</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>15</wavelength-number>
-        <center-frequency>195.4</center-frequency>
-        <wavelength>1534.23</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>16</wavelength-number>
-        <center-frequency>195.35</center-frequency>
-        <wavelength>1534.62</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>17</wavelength-number>
-        <center-frequency>195.3</center-frequency>
-        <wavelength>1535.01</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>18</wavelength-number>
-        <center-frequency>195.25</center-frequency>
-        <wavelength>1535.4</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>19</wavelength-number>
-        <center-frequency>195.2</center-frequency>
-        <wavelength>1535.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>20</wavelength-number>
-        <center-frequency>195.15</center-frequency>
-        <wavelength>1536.18</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>21</wavelength-number>
-        <center-frequency>195.1</center-frequency>
-        <wavelength>1536.57</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>22</wavelength-number>
-        <center-frequency>195.05</center-frequency>
-        <wavelength>1536.96</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>23</wavelength-number>
-        <center-frequency>195.0</center-frequency>
-        <wavelength>1537.35</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>24</wavelength-number>
-        <center-frequency>194.95</center-frequency>
-        <wavelength>1537.74</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>25</wavelength-number>
-        <center-frequency>194.9</center-frequency>
-        <wavelength>1538.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>26</wavelength-number>
-        <center-frequency>194.85</center-frequency>
-        <wavelength>1538.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>27</wavelength-number>
-        <center-frequency>194.8</center-frequency>
-        <wavelength>1538.91</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>28</wavelength-number>
-        <center-frequency>194.75</center-frequency>
-        <wavelength>1539.3</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>29</wavelength-number>
-        <center-frequency>194.7</center-frequency>
-        <wavelength>1539.69</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>30</wavelength-number>
-        <center-frequency>194.65</center-frequency>
-        <wavelength>1540.08</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>31</wavelength-number>
-        <center-frequency>194.6</center-frequency>
-        <wavelength>1540.47</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>32</wavelength-number>
-        <center-frequency>194.55</center-frequency>
-        <wavelength>1540.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>33</wavelength-number>
-        <center-frequency>194.5</center-frequency>
-        <wavelength>1541.25</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>34</wavelength-number>
-        <center-frequency>194.45</center-frequency>
-        <wavelength>1541.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>35</wavelength-number>
-        <center-frequency>194.4</center-frequency>
-        <wavelength>1542.03</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>36</wavelength-number>
-        <center-frequency>194.35</center-frequency>
-        <wavelength>1542.42</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>37</wavelength-number>
-        <center-frequency>194.3</center-frequency>
-        <wavelength>1542.81</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>38</wavelength-number>
-        <center-frequency>194.25</center-frequency>
-        <wavelength>1543.2</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>39</wavelength-number>
-        <center-frequency>194.2</center-frequency>
-        <wavelength>1543.59</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>40</wavelength-number>
-        <center-frequency>194.15</center-frequency>
-        <wavelength>1543.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>41</wavelength-number>
-        <center-frequency>194.1</center-frequency>
-        <wavelength>1544.37</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>42</wavelength-number>
-        <center-frequency>194.05</center-frequency>
-        <wavelength>1544.76</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>43</wavelength-number>
-        <center-frequency>194.0</center-frequency>
-        <wavelength>1545.15</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>44</wavelength-number>
-        <center-frequency>193.95</center-frequency>
-        <wavelength>1545.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>45</wavelength-number>
-        <center-frequency>193.9</center-frequency>
-        <wavelength>1545.93</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>46</wavelength-number>
-        <center-frequency>193.85</center-frequency>
-        <wavelength>1546.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>47</wavelength-number>
-        <center-frequency>193.8</center-frequency>
-        <wavelength>1546.71</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>48</wavelength-number>
-        <center-frequency>193.75</center-frequency>
-        <wavelength>1547.1</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>49</wavelength-number>
-        <center-frequency>193.7</center-frequency>
-        <wavelength>1547.49</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>50</wavelength-number>
-        <center-frequency>193.65</center-frequency>
-        <wavelength>1547.88</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>51</wavelength-number>
-        <center-frequency>193.6</center-frequency>
-        <wavelength>1548.27</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>52</wavelength-number>
-        <center-frequency>193.55</center-frequency>
-        <wavelength>1548.66</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>53</wavelength-number>
-        <center-frequency>193.5</center-frequency>
-        <wavelength>1549.05</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>54</wavelength-number>
-        <center-frequency>193.45</center-frequency>
-        <wavelength>1549.44</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>55</wavelength-number>
-        <center-frequency>193.4</center-frequency>
-        <wavelength>1549.83</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>56</wavelength-number>
-        <center-frequency>193.35</center-frequency>
-        <wavelength>1550.22</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>57</wavelength-number>
-        <center-frequency>193.3</center-frequency>
-        <wavelength>1550.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>58</wavelength-number>
-        <center-frequency>193.25</center-frequency>
-        <wavelength>1551.0</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>59</wavelength-number>
-        <center-frequency>193.2</center-frequency>
-        <wavelength>1551.39</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>60</wavelength-number>
-        <center-frequency>193.15</center-frequency>
-        <wavelength>1551.78</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>61</wavelength-number>
-        <center-frequency>193.1</center-frequency>
-        <wavelength>1552.17</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>62</wavelength-number>
-        <center-frequency>193.05</center-frequency>
-        <wavelength>1552.56</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>63</wavelength-number>
-        <center-frequency>193.0</center-frequency>
-        <wavelength>1552.95</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>64</wavelength-number>
-        <center-frequency>192.95</center-frequency>
-        <wavelength>1553.34</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>65</wavelength-number>
-        <center-frequency>192.9</center-frequency>
-        <wavelength>1553.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>66</wavelength-number>
-        <center-frequency>192.85</center-frequency>
-        <wavelength>1554.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>67</wavelength-number>
-        <center-frequency>192.8</center-frequency>
-        <wavelength>1554.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>68</wavelength-number>
-        <center-frequency>192.75</center-frequency>
-        <wavelength>1554.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>69</wavelength-number>
-        <center-frequency>192.7</center-frequency>
-        <wavelength>1555.29</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>70</wavelength-number>
-        <center-frequency>192.65</center-frequency>
-        <wavelength>1555.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>71</wavelength-number>
-        <center-frequency>192.6</center-frequency>
-        <wavelength>1556.07</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>72</wavelength-number>
-        <center-frequency>192.55</center-frequency>
-        <wavelength>1556.46</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>73</wavelength-number>
-        <center-frequency>192.5</center-frequency>
-        <wavelength>1556.85</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>74</wavelength-number>
-        <center-frequency>192.45</center-frequency>
-        <wavelength>1557.24</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>75</wavelength-number>
-        <center-frequency>192.4</center-frequency>
-        <wavelength>1557.63</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>76</wavelength-number>
-        <center-frequency>192.35</center-frequency>
-        <wavelength>1558.02</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>77</wavelength-number>
-        <center-frequency>192.3</center-frequency>
-        <wavelength>1558.41</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>78</wavelength-number>
-        <center-frequency>192.25</center-frequency>
-        <wavelength>1558.8</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>79</wavelength-number>
-        <center-frequency>192.2</center-frequency>
-        <wavelength>1559.19</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>80</wavelength-number>
-        <center-frequency>192.15</center-frequency>
-        <wavelength>1559.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>81</wavelength-number>
-        <center-frequency>192.1</center-frequency>
-        <wavelength>1559.97</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>82</wavelength-number>
-        <center-frequency>192.05</center-frequency>
-        <wavelength>1560.36</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>83</wavelength-number>
-        <center-frequency>192.0</center-frequency>
-        <wavelength>1560.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>84</wavelength-number>
-        <center-frequency>191.95</center-frequency>
-        <wavelength>1561.14</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>85</wavelength-number>
-        <center-frequency>191.9</center-frequency>
-        <wavelength>1561.53</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>86</wavelength-number>
-        <center-frequency>191.85</center-frequency>
-        <wavelength>1561.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>87</wavelength-number>
-        <center-frequency>191.8</center-frequency>
-        <wavelength>1562.31</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>88</wavelength-number>
-        <center-frequency>191.75</center-frequency>
-        <wavelength>1562.7</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>89</wavelength-number>
-        <center-frequency>191.7</center-frequency>
-        <wavelength>1563.09</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>90</wavelength-number>
-        <center-frequency>191.65</center-frequency>
-        <wavelength>1563.48</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>91</wavelength-number>
-        <center-frequency>191.6</center-frequency>
-        <wavelength>1563.87</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>92</wavelength-number>
-        <center-frequency>191.55</center-frequency>
-        <wavelength>1564.26</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>93</wavelength-number>
-        <center-frequency>191.5</center-frequency>
-        <wavelength>1564.65</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>94</wavelength-number>
-        <center-frequency>191.45</center-frequency>
-        <wavelength>1565.04</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>95</wavelength-number>
-        <center-frequency>191.4</center-frequency>
-        <wavelength>1565.43</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>96</wavelength-number>
-        <center-frequency>191.35</center-frequency>
-        <wavelength>1565.82</wavelength>
-      </wavelengths>
-    </wavelength-map>
-    <internal-link>
-      <internal-link-name>2/0/C1-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C2-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C3-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C4-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C5-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C6-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C7-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C8-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C9-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C1-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C2-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C3-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C4-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C5-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C6-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C7-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C8-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C9-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <physical-link>
-      <physical-link-name>phylink-1</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-2</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-3</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-4</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-5</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-6</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <degree>
-      <degree-number>1</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <degree>
-      <degree-number>2</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <shared-risk-group>
-      <srg-number>1</srg-number>
-      <max-add-drop-ports>16</max-add-drop-ports>
-      <wavelengthDuplication>onePerSRG</wavelengthDuplication>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>4/0</circuit-pack-name>
-      </circuit-packs>
-    </shared-risk-group>
-    <connection-map>
-      <connection-map-number>1</connection-map-number>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>2</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>3</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>4</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>5</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>6</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>7</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>8</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>9</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>10</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>11</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>12</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>13</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>14</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>15</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>16</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>17</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>18</connection-map-number>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>19</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>20</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>21</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>22</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>23</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>24</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>25</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>26</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>27</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>28</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>29</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>30</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>31</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>32</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>33</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>34</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-  </org-openroadm-device>
-</data>
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC-cpm.xml b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC-cpm.xml
deleted file mode 100644 (file)
index fd40c61..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-<currentPmlist xmlns="http://org/openroadm/pm">
-  <currentPm>
-    <id>18</id>
-    <retrievalTime>2018-06-07T13:43:16+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>4.6</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-15.1</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>49.1</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>19</id>
-    <retrievalTime>2018-06-07T13:43:20+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>4.6</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-15.1</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>49.2</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>10</id>
-    <retrievalTime>2018-06-07T13:43:20+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>48.8</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>11</id>
-    <retrievalTime>2018-06-07T13:43:24+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>48.9</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-</currentPmlist>
-</data>
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC-full.xml b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC-full.xml
deleted file mode 100644 (file)
index 615995f..0000000
+++ /dev/null
@@ -1,4015 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <netconf xmlns="urn:ietf:params:xml:ns:netmod:notification">
-      <streams>
-          <stream>
-              <name>OPENROADM</name>
-          </stream>
-    </streams>
-  </netconf>
-  <org-openroadm-device xmlns="http://org/openroadm/device">
-    <info>
-      <node-id>ROADMC</node-id>
-      <node-number>2</node-number>
-      <node-type>rdm</node-type>
-      <clli>NodeC</clli>
-      <vendor>vendorA</vendor>
-      <model>2</model>
-      <serial-id>0002</serial-id>
-      <ipAddress>127.0.0.14</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.14</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <current-defaultGateway>127.0.0.20</current-defaultGateway>
-      <macAddress>cc:cc:cc:cc:cc:cc</macAddress>
-      <softwareVersion>1</softwareVersion>
-      <max-degrees>2</max-degrees>
-      <max-srgs>9</max-srgs>
-    </info>
-    <users>
-      <user>
-        <name>openroadm</name>
-        <password>openroadm</password>
-        <group>sudo</group>
-      </user>
-    </users>
-    <pending-sw>
-      <sw-version>1</sw-version>
-    </pending-sw>
-    <shelves>
-      <shelf-name>sdegE</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>2</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00002</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degE</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>2/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <shelves>
-      <shelf-name>sdegW</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>3</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00003</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>3/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <shelves>
-      <shelf-name>ssrg</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>4</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00004</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>srgW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>4/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <circuit-packs>
-      <circuit-pack-name>2/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss1</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>2/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>2/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHE</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss2</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>3/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>3/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHW</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>4/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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-CP-TXRX</logical-connection-point>
-      </ports>
-    </circuit-packs>
-    <interface>
-      <name>eth-2/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>2/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-    <interface>
-      <name>eth-3/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>3/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-    <protocols>
-      <lldp xmlns="http://org/openroadm/lldp">
-        <global-config>
-          <adminStatus>enable</adminStatus>
-          <msgTxInterval>20</msgTxInterval>
-          <msgTxHoldMultiplier>4</msgTxHoldMultiplier>
-        </global-config>
-        <port-config>
-          <ifName>eth-2/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-        <port-config>
-          <ifName>eth-3/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-        <nbr-list>
-          <if-name>
-            <ifName>eth-3/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMA</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-2/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-          <if-name>
-            <ifName>eth-2/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMB</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-3/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-        </nbr-list>
-      </lldp>
-    </protocols>
-    <wavelength-map>
-      <wavelengths>
-        <wavelength-number>1</wavelength-number>
-        <center-frequency>196.1</center-frequency>
-        <wavelength>1528.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>2</wavelength-number>
-        <center-frequency>196.05</center-frequency>
-        <wavelength>1529.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>3</wavelength-number>
-        <center-frequency>196.0</center-frequency>
-        <wavelength>1529.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>4</wavelength-number>
-        <center-frequency>195.95</center-frequency>
-        <wavelength>1529.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>5</wavelength-number>
-        <center-frequency>195.9</center-frequency>
-        <wavelength>1530.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>6</wavelength-number>
-        <center-frequency>195.85</center-frequency>
-        <wavelength>1530.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>7</wavelength-number>
-        <center-frequency>195.8</center-frequency>
-        <wavelength>1531.11</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>8</wavelength-number>
-        <center-frequency>195.75</center-frequency>
-        <wavelength>1531.5</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>9</wavelength-number>
-        <center-frequency>195.7</center-frequency>
-        <wavelength>1531.89</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>10</wavelength-number>
-        <center-frequency>195.65</center-frequency>
-        <wavelength>1532.28</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>11</wavelength-number>
-        <center-frequency>195.6</center-frequency>
-        <wavelength>1532.67</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>12</wavelength-number>
-        <center-frequency>195.55</center-frequency>
-        <wavelength>1533.06</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>13</wavelength-number>
-        <center-frequency>195.5</center-frequency>
-        <wavelength>1533.45</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>14</wavelength-number>
-        <center-frequency>195.45</center-frequency>
-        <wavelength>1533.84</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>15</wavelength-number>
-        <center-frequency>195.4</center-frequency>
-        <wavelength>1534.23</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>16</wavelength-number>
-        <center-frequency>195.35</center-frequency>
-        <wavelength>1534.62</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>17</wavelength-number>
-        <center-frequency>195.3</center-frequency>
-        <wavelength>1535.01</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>18</wavelength-number>
-        <center-frequency>195.25</center-frequency>
-        <wavelength>1535.4</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>19</wavelength-number>
-        <center-frequency>195.2</center-frequency>
-        <wavelength>1535.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>20</wavelength-number>
-        <center-frequency>195.15</center-frequency>
-        <wavelength>1536.18</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>21</wavelength-number>
-        <center-frequency>195.1</center-frequency>
-        <wavelength>1536.57</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>22</wavelength-number>
-        <center-frequency>195.05</center-frequency>
-        <wavelength>1536.96</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>23</wavelength-number>
-        <center-frequency>195.0</center-frequency>
-        <wavelength>1537.35</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>24</wavelength-number>
-        <center-frequency>194.95</center-frequency>
-        <wavelength>1537.74</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>25</wavelength-number>
-        <center-frequency>194.9</center-frequency>
-        <wavelength>1538.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>26</wavelength-number>
-        <center-frequency>194.85</center-frequency>
-        <wavelength>1538.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>27</wavelength-number>
-        <center-frequency>194.8</center-frequency>
-        <wavelength>1538.91</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>28</wavelength-number>
-        <center-frequency>194.75</center-frequency>
-        <wavelength>1539.3</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>29</wavelength-number>
-        <center-frequency>194.7</center-frequency>
-        <wavelength>1539.69</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>30</wavelength-number>
-        <center-frequency>194.65</center-frequency>
-        <wavelength>1540.08</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>31</wavelength-number>
-        <center-frequency>194.6</center-frequency>
-        <wavelength>1540.47</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>32</wavelength-number>
-        <center-frequency>194.55</center-frequency>
-        <wavelength>1540.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>33</wavelength-number>
-        <center-frequency>194.5</center-frequency>
-        <wavelength>1541.25</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>34</wavelength-number>
-        <center-frequency>194.45</center-frequency>
-        <wavelength>1541.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>35</wavelength-number>
-        <center-frequency>194.4</center-frequency>
-        <wavelength>1542.03</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>36</wavelength-number>
-        <center-frequency>194.35</center-frequency>
-        <wavelength>1542.42</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>37</wavelength-number>
-        <center-frequency>194.3</center-frequency>
-        <wavelength>1542.81</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>38</wavelength-number>
-        <center-frequency>194.25</center-frequency>
-        <wavelength>1543.2</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>39</wavelength-number>
-        <center-frequency>194.2</center-frequency>
-        <wavelength>1543.59</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>40</wavelength-number>
-        <center-frequency>194.15</center-frequency>
-        <wavelength>1543.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>41</wavelength-number>
-        <center-frequency>194.1</center-frequency>
-        <wavelength>1544.37</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>42</wavelength-number>
-        <center-frequency>194.05</center-frequency>
-        <wavelength>1544.76</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>43</wavelength-number>
-        <center-frequency>194.0</center-frequency>
-        <wavelength>1545.15</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>44</wavelength-number>
-        <center-frequency>193.95</center-frequency>
-        <wavelength>1545.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>45</wavelength-number>
-        <center-frequency>193.9</center-frequency>
-        <wavelength>1545.93</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>46</wavelength-number>
-        <center-frequency>193.85</center-frequency>
-        <wavelength>1546.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>47</wavelength-number>
-        <center-frequency>193.8</center-frequency>
-        <wavelength>1546.71</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>48</wavelength-number>
-        <center-frequency>193.75</center-frequency>
-        <wavelength>1547.1</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>49</wavelength-number>
-        <center-frequency>193.7</center-frequency>
-        <wavelength>1547.49</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>50</wavelength-number>
-        <center-frequency>193.65</center-frequency>
-        <wavelength>1547.88</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>51</wavelength-number>
-        <center-frequency>193.6</center-frequency>
-        <wavelength>1548.27</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>52</wavelength-number>
-        <center-frequency>193.55</center-frequency>
-        <wavelength>1548.66</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>53</wavelength-number>
-        <center-frequency>193.5</center-frequency>
-        <wavelength>1549.05</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>54</wavelength-number>
-        <center-frequency>193.45</center-frequency>
-        <wavelength>1549.44</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>55</wavelength-number>
-        <center-frequency>193.4</center-frequency>
-        <wavelength>1549.83</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>56</wavelength-number>
-        <center-frequency>193.35</center-frequency>
-        <wavelength>1550.22</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>57</wavelength-number>
-        <center-frequency>193.3</center-frequency>
-        <wavelength>1550.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>58</wavelength-number>
-        <center-frequency>193.25</center-frequency>
-        <wavelength>1551.0</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>59</wavelength-number>
-        <center-frequency>193.2</center-frequency>
-        <wavelength>1551.39</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>60</wavelength-number>
-        <center-frequency>193.15</center-frequency>
-        <wavelength>1551.78</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>61</wavelength-number>
-        <center-frequency>193.1</center-frequency>
-        <wavelength>1552.17</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>62</wavelength-number>
-        <center-frequency>193.05</center-frequency>
-        <wavelength>1552.56</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>63</wavelength-number>
-        <center-frequency>193.0</center-frequency>
-        <wavelength>1552.95</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>64</wavelength-number>
-        <center-frequency>192.95</center-frequency>
-        <wavelength>1553.34</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>65</wavelength-number>
-        <center-frequency>192.9</center-frequency>
-        <wavelength>1553.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>66</wavelength-number>
-        <center-frequency>192.85</center-frequency>
-        <wavelength>1554.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>67</wavelength-number>
-        <center-frequency>192.8</center-frequency>
-        <wavelength>1554.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>68</wavelength-number>
-        <center-frequency>192.75</center-frequency>
-        <wavelength>1554.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>69</wavelength-number>
-        <center-frequency>192.7</center-frequency>
-        <wavelength>1555.29</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>70</wavelength-number>
-        <center-frequency>192.65</center-frequency>
-        <wavelength>1555.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>71</wavelength-number>
-        <center-frequency>192.6</center-frequency>
-        <wavelength>1556.07</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>72</wavelength-number>
-        <center-frequency>192.55</center-frequency>
-        <wavelength>1556.46</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>73</wavelength-number>
-        <center-frequency>192.5</center-frequency>
-        <wavelength>1556.85</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>74</wavelength-number>
-        <center-frequency>192.45</center-frequency>
-        <wavelength>1557.24</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>75</wavelength-number>
-        <center-frequency>192.4</center-frequency>
-        <wavelength>1557.63</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>76</wavelength-number>
-        <center-frequency>192.35</center-frequency>
-        <wavelength>1558.02</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>77</wavelength-number>
-        <center-frequency>192.3</center-frequency>
-        <wavelength>1558.41</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>78</wavelength-number>
-        <center-frequency>192.25</center-frequency>
-        <wavelength>1558.8</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>79</wavelength-number>
-        <center-frequency>192.2</center-frequency>
-        <wavelength>1559.19</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>80</wavelength-number>
-        <center-frequency>192.15</center-frequency>
-        <wavelength>1559.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>81</wavelength-number>
-        <center-frequency>192.1</center-frequency>
-        <wavelength>1559.97</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>82</wavelength-number>
-        <center-frequency>192.05</center-frequency>
-        <wavelength>1560.36</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>83</wavelength-number>
-        <center-frequency>192.0</center-frequency>
-        <wavelength>1560.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>84</wavelength-number>
-        <center-frequency>191.95</center-frequency>
-        <wavelength>1561.14</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>85</wavelength-number>
-        <center-frequency>191.9</center-frequency>
-        <wavelength>1561.53</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>86</wavelength-number>
-        <center-frequency>191.85</center-frequency>
-        <wavelength>1561.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>87</wavelength-number>
-        <center-frequency>191.8</center-frequency>
-        <wavelength>1562.31</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>88</wavelength-number>
-        <center-frequency>191.75</center-frequency>
-        <wavelength>1562.7</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>89</wavelength-number>
-        <center-frequency>191.7</center-frequency>
-        <wavelength>1563.09</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>90</wavelength-number>
-        <center-frequency>191.65</center-frequency>
-        <wavelength>1563.48</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>91</wavelength-number>
-        <center-frequency>191.6</center-frequency>
-        <wavelength>1563.87</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>92</wavelength-number>
-        <center-frequency>191.55</center-frequency>
-        <wavelength>1564.26</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>93</wavelength-number>
-        <center-frequency>191.5</center-frequency>
-        <wavelength>1564.65</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>94</wavelength-number>
-        <center-frequency>191.45</center-frequency>
-        <wavelength>1565.04</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>95</wavelength-number>
-        <center-frequency>191.4</center-frequency>
-        <wavelength>1565.43</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>96</wavelength-number>
-        <center-frequency>191.35</center-frequency>
-        <wavelength>1565.82</wavelength>
-      </wavelengths>
-    </wavelength-map>
-    <internal-link>
-      <internal-link-name>2/0/C1-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C2-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C3-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C4-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C5-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C6-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C7-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C8-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C9-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C1-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C2-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C3-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C4-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C5-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C6-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C7-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C8-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C9-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <physical-link>
-      <physical-link-name>phylink-1</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-2</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-3</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-4</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-5</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-6</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <degree>
-      <degree-number>1</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <degree>
-      <degree-number>2</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <shared-risk-group>
-      <srg-number>1</srg-number>
-      <max-add-drop-ports>16</max-add-drop-ports>
-      <wavelengthDuplication>onePerSRG</wavelengthDuplication>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>4/0</circuit-pack-name>
-      </circuit-packs>
-    </shared-risk-group>
-    <connection-map>
-      <connection-map-number>1</connection-map-number>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>2</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>3</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>4</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>5</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>6</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>7</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>8</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>9</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>10</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>11</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>12</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>13</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>14</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>15</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>16</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>17</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>18</connection-map-number>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>19</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>20</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>21</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>22</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>23</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>24</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>25</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>26</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>27</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>28</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>29</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>30</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>31</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>32</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>33</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>34</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-  </org-openroadm-device>
-  <currentPmlist xmlns="http://org/openroadm/pm">
-  <currentPm>
-    <id>18</id>
-    <retrievalTime>2018-06-07T13:43:16+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>4.6</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-15.1</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>49.1</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>19</id>
-    <retrievalTime>2018-06-07T13:43:20+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>4.6</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-15.1</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>49.2</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>10</id>
-    <retrievalTime>2018-06-07T13:43:20+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>48.8</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>11</id>
-    <retrievalTime>2018-06-07T13:43:24+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>48.9</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-</currentPmlist>
-</data>
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC.xml b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC.xml
deleted file mode 100644 (file)
index 78dc8da..0000000
+++ /dev/null
@@ -1,3810 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <org-openroadm-device xmlns="http://org/openroadm/device">
-    <info>
-      <node-id>ROADMC</node-id>
-      <node-number>2</node-number>
-      <node-type>rdm</node-type>
-      <clli>NodeC</clli>
-      <vendor>vendorA</vendor>
-      <model>2</model>
-      <serial-id>0002</serial-id>
-      <ipAddress>127.0.0.14</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.14</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <current-defaultGateway>127.0.0.20</current-defaultGateway>
-      <macAddress>cc:cc:cc:cc:cc:cc</macAddress>
-      <softwareVersion>1</softwareVersion>
-      <max-degrees>2</max-degrees>
-      <max-srgs>9</max-srgs>
-    </info>
-    <users>
-      <user>
-        <name>openroadm</name>
-        <password>openroadm</password>
-        <group>sudo</group>
-      </user>
-    </users>
-    <pending-sw>
-      <sw-version>1</sw-version>
-    </pending-sw>
-    <shelves>
-      <shelf-name>sdegE</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>2</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00002</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degE</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>2/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <shelves>
-      <shelf-name>sdegW</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>3</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00003</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>3/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <shelves>
-      <shelf-name>ssrg</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>4</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00004</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>srgW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>4/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <circuit-packs>
-      <circuit-pack-name>2/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss1</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>2/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-  <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>2/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-<circuit-packs>
-      <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHE</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-  <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-</circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss2</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>3/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-  <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>3/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-<circuit-packs>
-      <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHW</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-  <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>4/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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-CP-TXRX</logical-connection-point>
-      </ports>
-    </circuit-packs>
-<interface>
-      <name>eth-2/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>2/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-    <interface>
-      <name>eth-3/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>3/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-<protocols>
-      <lldp xmlns="http://org/openroadm/lldp">
-        <global-config>
-          <adminStatus>enable</adminStatus>
-          <msgTxInterval>20</msgTxInterval>
-          <msgTxHoldMultiplier>4</msgTxHoldMultiplier>
-        </global-config>
-        <port-config>
-          <ifName>eth-2/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-<port-config>
-          <ifName>eth-3/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-        <nbr-list>
-          <if-name>
-            <ifName>eth-3/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMA</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-2/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-          <if-name>
-            <ifName>eth-2/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMB</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-3/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-        </nbr-list>
-      </lldp>
-    </protocols>
-    <wavelength-map>
-      <wavelengths>
-        <wavelength-number>1</wavelength-number>
-        <center-frequency>196.1</center-frequency>
-        <wavelength>1528.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>2</wavelength-number>
-        <center-frequency>196.05</center-frequency>
-        <wavelength>1529.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>3</wavelength-number>
-        <center-frequency>196.0</center-frequency>
-        <wavelength>1529.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>4</wavelength-number>
-        <center-frequency>195.95</center-frequency>
-        <wavelength>1529.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>5</wavelength-number>
-        <center-frequency>195.9</center-frequency>
-        <wavelength>1530.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>6</wavelength-number>
-        <center-frequency>195.85</center-frequency>
-        <wavelength>1530.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>7</wavelength-number>
-        <center-frequency>195.8</center-frequency>
-        <wavelength>1531.11</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>8</wavelength-number>
-        <center-frequency>195.75</center-frequency>
-        <wavelength>1531.5</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>9</wavelength-number>
-        <center-frequency>195.7</center-frequency>
-        <wavelength>1531.89</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>10</wavelength-number>
-        <center-frequency>195.65</center-frequency>
-        <wavelength>1532.28</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>11</wavelength-number>
-        <center-frequency>195.6</center-frequency>
-        <wavelength>1532.67</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>12</wavelength-number>
-        <center-frequency>195.55</center-frequency>
-        <wavelength>1533.06</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>13</wavelength-number>
-        <center-frequency>195.5</center-frequency>
-        <wavelength>1533.45</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>14</wavelength-number>
-        <center-frequency>195.45</center-frequency>
-        <wavelength>1533.84</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>15</wavelength-number>
-        <center-frequency>195.4</center-frequency>
-        <wavelength>1534.23</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>16</wavelength-number>
-        <center-frequency>195.35</center-frequency>
-        <wavelength>1534.62</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>17</wavelength-number>
-        <center-frequency>195.3</center-frequency>
-        <wavelength>1535.01</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>18</wavelength-number>
-        <center-frequency>195.25</center-frequency>
-        <wavelength>1535.4</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>19</wavelength-number>
-        <center-frequency>195.2</center-frequency>
-        <wavelength>1535.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>20</wavelength-number>
-        <center-frequency>195.15</center-frequency>
-        <wavelength>1536.18</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>21</wavelength-number>
-        <center-frequency>195.1</center-frequency>
-        <wavelength>1536.57</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>22</wavelength-number>
-        <center-frequency>195.05</center-frequency>
-        <wavelength>1536.96</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>23</wavelength-number>
-        <center-frequency>195.0</center-frequency>
-        <wavelength>1537.35</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>24</wavelength-number>
-        <center-frequency>194.95</center-frequency>
-        <wavelength>1537.74</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>25</wavelength-number>
-        <center-frequency>194.9</center-frequency>
-        <wavelength>1538.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>26</wavelength-number>
-        <center-frequency>194.85</center-frequency>
-        <wavelength>1538.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>27</wavelength-number>
-        <center-frequency>194.8</center-frequency>
-        <wavelength>1538.91</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>28</wavelength-number>
-        <center-frequency>194.75</center-frequency>
-        <wavelength>1539.3</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>29</wavelength-number>
-        <center-frequency>194.7</center-frequency>
-        <wavelength>1539.69</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>30</wavelength-number>
-        <center-frequency>194.65</center-frequency>
-        <wavelength>1540.08</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>31</wavelength-number>
-        <center-frequency>194.6</center-frequency>
-        <wavelength>1540.47</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>32</wavelength-number>
-        <center-frequency>194.55</center-frequency>
-        <wavelength>1540.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>33</wavelength-number>
-        <center-frequency>194.5</center-frequency>
-        <wavelength>1541.25</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>34</wavelength-number>
-        <center-frequency>194.45</center-frequency>
-        <wavelength>1541.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>35</wavelength-number>
-        <center-frequency>194.4</center-frequency>
-        <wavelength>1542.03</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>36</wavelength-number>
-        <center-frequency>194.35</center-frequency>
-        <wavelength>1542.42</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>37</wavelength-number>
-        <center-frequency>194.3</center-frequency>
-        <wavelength>1542.81</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>38</wavelength-number>
-        <center-frequency>194.25</center-frequency>
-        <wavelength>1543.2</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>39</wavelength-number>
-        <center-frequency>194.2</center-frequency>
-        <wavelength>1543.59</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>40</wavelength-number>
-        <center-frequency>194.15</center-frequency>
-        <wavelength>1543.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>41</wavelength-number>
-        <center-frequency>194.1</center-frequency>
-        <wavelength>1544.37</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>42</wavelength-number>
-        <center-frequency>194.05</center-frequency>
-        <wavelength>1544.76</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>43</wavelength-number>
-        <center-frequency>194.0</center-frequency>
-        <wavelength>1545.15</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>44</wavelength-number>
-        <center-frequency>193.95</center-frequency>
-        <wavelength>1545.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>45</wavelength-number>
-        <center-frequency>193.9</center-frequency>
-        <wavelength>1545.93</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>46</wavelength-number>
-        <center-frequency>193.85</center-frequency>
-        <wavelength>1546.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>47</wavelength-number>
-        <center-frequency>193.8</center-frequency>
-        <wavelength>1546.71</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>48</wavelength-number>
-        <center-frequency>193.75</center-frequency>
-        <wavelength>1547.1</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>49</wavelength-number>
-        <center-frequency>193.7</center-frequency>
-        <wavelength>1547.49</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>50</wavelength-number>
-        <center-frequency>193.65</center-frequency>
-        <wavelength>1547.88</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>51</wavelength-number>
-        <center-frequency>193.6</center-frequency>
-        <wavelength>1548.27</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>52</wavelength-number>
-        <center-frequency>193.55</center-frequency>
-        <wavelength>1548.66</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>53</wavelength-number>
-        <center-frequency>193.5</center-frequency>
-        <wavelength>1549.05</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>54</wavelength-number>
-        <center-frequency>193.45</center-frequency>
-        <wavelength>1549.44</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>55</wavelength-number>
-        <center-frequency>193.4</center-frequency>
-        <wavelength>1549.83</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>56</wavelength-number>
-        <center-frequency>193.35</center-frequency>
-        <wavelength>1550.22</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>57</wavelength-number>
-        <center-frequency>193.3</center-frequency>
-        <wavelength>1550.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>58</wavelength-number>
-        <center-frequency>193.25</center-frequency>
-        <wavelength>1551.0</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>59</wavelength-number>
-        <center-frequency>193.2</center-frequency>
-        <wavelength>1551.39</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>60</wavelength-number>
-        <center-frequency>193.15</center-frequency>
-        <wavelength>1551.78</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>61</wavelength-number>
-        <center-frequency>193.1</center-frequency>
-        <wavelength>1552.17</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>62</wavelength-number>
-        <center-frequency>193.05</center-frequency>
-        <wavelength>1552.56</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>63</wavelength-number>
-        <center-frequency>193.0</center-frequency>
-        <wavelength>1552.95</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>64</wavelength-number>
-        <center-frequency>192.95</center-frequency>
-        <wavelength>1553.34</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>65</wavelength-number>
-        <center-frequency>192.9</center-frequency>
-        <wavelength>1553.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>66</wavelength-number>
-        <center-frequency>192.85</center-frequency>
-        <wavelength>1554.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>67</wavelength-number>
-        <center-frequency>192.8</center-frequency>
-        <wavelength>1554.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>68</wavelength-number>
-        <center-frequency>192.75</center-frequency>
-        <wavelength>1554.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>69</wavelength-number>
-        <center-frequency>192.7</center-frequency>
-        <wavelength>1555.29</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>70</wavelength-number>
-        <center-frequency>192.65</center-frequency>
-        <wavelength>1555.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>71</wavelength-number>
-        <center-frequency>192.6</center-frequency>
-        <wavelength>1556.07</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>72</wavelength-number>
-        <center-frequency>192.55</center-frequency>
-        <wavelength>1556.46</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>73</wavelength-number>
-        <center-frequency>192.5</center-frequency>
-        <wavelength>1556.85</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>74</wavelength-number>
-        <center-frequency>192.45</center-frequency>
-        <wavelength>1557.24</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>75</wavelength-number>
-        <center-frequency>192.4</center-frequency>
-        <wavelength>1557.63</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>76</wavelength-number>
-        <center-frequency>192.35</center-frequency>
-        <wavelength>1558.02</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>77</wavelength-number>
-        <center-frequency>192.3</center-frequency>
-        <wavelength>1558.41</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>78</wavelength-number>
-        <center-frequency>192.25</center-frequency>
-        <wavelength>1558.8</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>79</wavelength-number>
-        <center-frequency>192.2</center-frequency>
-        <wavelength>1559.19</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>80</wavelength-number>
-        <center-frequency>192.15</center-frequency>
-        <wavelength>1559.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>81</wavelength-number>
-        <center-frequency>192.1</center-frequency>
-        <wavelength>1559.97</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>82</wavelength-number>
-        <center-frequency>192.05</center-frequency>
-        <wavelength>1560.36</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>83</wavelength-number>
-        <center-frequency>192.0</center-frequency>
-        <wavelength>1560.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>84</wavelength-number>
-        <center-frequency>191.95</center-frequency>
-        <wavelength>1561.14</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>85</wavelength-number>
-        <center-frequency>191.9</center-frequency>
-        <wavelength>1561.53</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>86</wavelength-number>
-        <center-frequency>191.85</center-frequency>
-        <wavelength>1561.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>87</wavelength-number>
-        <center-frequency>191.8</center-frequency>
-        <wavelength>1562.31</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>88</wavelength-number>
-        <center-frequency>191.75</center-frequency>
-        <wavelength>1562.7</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>89</wavelength-number>
-        <center-frequency>191.7</center-frequency>
-        <wavelength>1563.09</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>90</wavelength-number>
-        <center-frequency>191.65</center-frequency>
-        <wavelength>1563.48</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>91</wavelength-number>
-        <center-frequency>191.6</center-frequency>
-        <wavelength>1563.87</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>92</wavelength-number>
-        <center-frequency>191.55</center-frequency>
-        <wavelength>1564.26</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>93</wavelength-number>
-        <center-frequency>191.5</center-frequency>
-        <wavelength>1564.65</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>94</wavelength-number>
-        <center-frequency>191.45</center-frequency>
-        <wavelength>1565.04</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>95</wavelength-number>
-        <center-frequency>191.4</center-frequency>
-        <wavelength>1565.43</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>96</wavelength-number>
-        <center-frequency>191.35</center-frequency>
-        <wavelength>1565.82</wavelength>
-      </wavelengths>
-    </wavelength-map>
-    <internal-link>
-      <internal-link-name>2/0/C1-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C2-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C3-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C4-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C5-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C6-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C7-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C8-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C9-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C1-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C2-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C3-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C4-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C5-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C6-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C7-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C8-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C9-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <physical-link>
-      <physical-link-name>phylink-1</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-2</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-3</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-4</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-5</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-6</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <degree>
-      <degree-number>1</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <degree>
-      <degree-number>2</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <shared-risk-group>
-      <srg-number>1</srg-number>
-      <max-add-drop-ports>16</max-add-drop-ports>
-      <wavelengthDuplication>onePerSRG</wavelengthDuplication>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>4/0</circuit-pack-name>
-      </circuit-packs>
-    </shared-risk-group>
-    <connection-map>
-      <connection-map-number>1</connection-map-number>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>2</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>3</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>4</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>5</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>6</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>7</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>8</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>9</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>10</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>11</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>12</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>13</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>14</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>15</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>16</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>17</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>18</connection-map-number>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>19</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>20</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>21</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>22</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>23</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>24</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>25</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>26</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>27</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>28</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>29</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>30</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>31</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>32</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>33</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>34</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-  </org-openroadm-device>
-</data>
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRA-OCbidouille.xml b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRA-OCbidouille.xml
deleted file mode 100644 (file)
index 4a468dc..0000000
+++ /dev/null
@@ -1,3039 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <netconf xmlns="urn:ietf:params:xml:ns:netmod:notification" />
-  <org-openroadm-device xmlns="http://org/openroadm/device">
-    <info>
-      <node-id>XPDRA</node-id>
-      <node-number>1</node-number>
-      <node-type>xpdr</node-type>
-      <clli>NodeA</clli>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00001</serial-id>
-      <ipAddress>127.0.0.10</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.10</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <macAddress>aa:aa:aa:aa:aa:aa</macAddress>
-      <softwareVersion>1.0</softwareVersion>
-      <template>TPCE-XPDR001</template>
-      <current-datetime>2017-08-29T15:58:01+00:00</current-datetime>
-      <geoLocation>
-        <latitude>33</latitude>
-        <longitude>-96</longitude>
-      </geoLocation>
-    </info>
-    <users>
-      <user>
-        <name>openroadm</name>
-        <password>openroadm</password>
-        <group>sudo</group>
-      </user>
-    </users>
-    <shelves>
-      <shelf-name>1</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>1</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>0001</serial-id>
-      <type>pizza</type>
-      <product-code>zzz</product-code>
-      <manufacture-date>2017-04-01T00:00:00+00:00</manufacture-date>
-      <clei>www</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2017-02-24T15:56:10+00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>1/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <circuit-packs>
-      <circuit-pack-name>1/0</circuit-pack-name>
-      <circuit-pack-type>TSP100G</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VendorA</vendor>
-      <model>WDM80</model>
-      <serial-id>aaaaa</serial-id>
-      <type>TSP</type>
-      <product-code>TSP100G1</product-code>
-      <manufacture-date>2017-04-01T00:00:00+00:00</manufacture-date>
-      <clei>xxx</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <circuit-pack-category>
-        <type>circuitPack</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>0</subSlot>
-      <due-date>2017-04-12T15:56:10+00:00</due-date>
-      <cp-slots>
-        <slot-name>1</slot-name>
-        <label>1</label>
-        <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-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>
-      <circuit-pack-name>1/0/1-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>1</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>1</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>1</port-name>
-        <port-type>CFP2</port-type>
-        <port-qual>xpdr-network</port-qual>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>XPDRA-NETWORK</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <logical-connection-point>XPDR1-NETWORK1</logical-connection-point>
-        <transponder-port>
-            <port-power-capability-min-tx>-10</port-power-capability-min-tx>
-            <port-power-capability-max-tx>0</port-power-capability-max-tx>
-            <port-power-capability-min-rx>-10</port-power-capability-min-rx>
-            <port-power-capability-max-rx>0</port-power-capability-max-rx>
-        </transponder-port>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <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>1</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>
-            <port-power-capability-min-tx>-10</port-power-capability-min-tx>
-            <port-power-capability-max-tx>0</port-power-capability-max-tx>
-            <port-power-capability-min-rx>-10</port-power-capability-min-rx>
-            <port-power-capability-max-rx>0</port-power-capability-max-rx>
-        </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>
-      <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>C1</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>QSFP28</port-type>
-        <port-qual>xpdr-client</port-qual>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>XPDRA-CLIENT1</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/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>
-        <center-frequency>196.1</center-frequency>
-        <wavelength>1528.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>2</wavelength-number>
-        <center-frequency>196.05</center-frequency>
-        <wavelength>1529.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>3</wavelength-number>
-        <center-frequency>196.0</center-frequency>
-        <wavelength>1529.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>4</wavelength-number>
-        <center-frequency>195.95</center-frequency>
-        <wavelength>1529.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>5</wavelength-number>
-        <center-frequency>195.9</center-frequency>
-        <wavelength>1530.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>6</wavelength-number>
-        <center-frequency>195.85</center-frequency>
-        <wavelength>1530.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>7</wavelength-number>
-        <center-frequency>195.8</center-frequency>
-        <wavelength>1531.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>8</wavelength-number>
-        <center-frequency>195.75</center-frequency>
-        <wavelength>1531.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>9</wavelength-number>
-        <center-frequency>195.7</center-frequency>
-        <wavelength>1531.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>10</wavelength-number>
-        <center-frequency>195.65</center-frequency>
-        <wavelength>1532.29</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>11</wavelength-number>
-        <center-frequency>195.6</center-frequency>
-        <wavelength>1532.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>12</wavelength-number>
-        <center-frequency>195.55</center-frequency>
-        <wavelength>1533.07</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>13</wavelength-number>
-        <center-frequency>195.5</center-frequency>
-        <wavelength>1533.47</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>14</wavelength-number>
-        <center-frequency>195.45</center-frequency>
-        <wavelength>1533.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>15</wavelength-number>
-        <center-frequency>195.4</center-frequency>
-        <wavelength>1534.25</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>16</wavelength-number>
-        <center-frequency>195.35</center-frequency>
-        <wavelength>1534.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>17</wavelength-number>
-        <center-frequency>195.3</center-frequency>
-        <wavelength>1535.04</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>18</wavelength-number>
-        <center-frequency>195.25</center-frequency>
-        <wavelength>1535.43</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>19</wavelength-number>
-        <center-frequency>195.2</center-frequency>
-        <wavelength>1535.82</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>20</wavelength-number>
-        <center-frequency>195.15</center-frequency>
-        <wavelength>1536.22</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>21</wavelength-number>
-        <center-frequency>195.1</center-frequency>
-        <wavelength>1536.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>22</wavelength-number>
-        <center-frequency>195.05</center-frequency>
-        <wavelength>1537.0</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>23</wavelength-number>
-        <center-frequency>195.0</center-frequency>
-        <wavelength>1537.4</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>24</wavelength-number>
-        <center-frequency>194.95</center-frequency>
-        <wavelength>1537.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>25</wavelength-number>
-        <center-frequency>194.9</center-frequency>
-        <wavelength>1538.19</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>26</wavelength-number>
-        <center-frequency>194.85</center-frequency>
-        <wavelength>1538.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>27</wavelength-number>
-        <center-frequency>194.8</center-frequency>
-        <wavelength>1538.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>28</wavelength-number>
-        <center-frequency>194.75</center-frequency>
-        <wavelength>1539.37</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>29</wavelength-number>
-        <center-frequency>194.7</center-frequency>
-        <wavelength>1539.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>30</wavelength-number>
-        <center-frequency>194.65</center-frequency>
-        <wavelength>1540.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>31</wavelength-number>
-        <center-frequency>194.6</center-frequency>
-        <wavelength>1540.56</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>32</wavelength-number>
-        <center-frequency>194.55</center-frequency>
-        <wavelength>1540.95</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>33</wavelength-number>
-        <center-frequency>194.5</center-frequency>
-        <wavelength>1541.35</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>34</wavelength-number>
-        <center-frequency>194.45</center-frequency>
-        <wavelength>1541.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>35</wavelength-number>
-        <center-frequency>194.4</center-frequency>
-        <wavelength>1542.14</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>36</wavelength-number>
-        <center-frequency>194.35</center-frequency>
-        <wavelength>1542.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>37</wavelength-number>
-        <center-frequency>194.3</center-frequency>
-        <wavelength>1542.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>38</wavelength-number>
-        <center-frequency>194.25</center-frequency>
-        <wavelength>1543.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>39</wavelength-number>
-        <center-frequency>194.2</center-frequency>
-        <wavelength>1543.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>40</wavelength-number>
-        <center-frequency>194.15</center-frequency>
-        <wavelength>1544.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>41</wavelength-number>
-        <center-frequency>194.1</center-frequency>
-        <wavelength>1544.53</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>42</wavelength-number>
-        <center-frequency>194.05</center-frequency>
-        <wavelength>1544.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>43</wavelength-number>
-        <center-frequency>194.0</center-frequency>
-        <wavelength>1545.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>44</wavelength-number>
-        <center-frequency>193.95</center-frequency>
-        <wavelength>1545.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>45</wavelength-number>
-        <center-frequency>193.9</center-frequency>
-        <wavelength>1546.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>46</wavelength-number>
-        <center-frequency>193.85</center-frequency>
-        <wavelength>1546.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>47</wavelength-number>
-        <center-frequency>193.8</center-frequency>
-        <wavelength>1546.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>48</wavelength-number>
-        <center-frequency>193.75</center-frequency>
-        <wavelength>1547.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>49</wavelength-number>
-        <center-frequency>193.7</center-frequency>
-        <wavelength>1547.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>50</wavelength-number>
-        <center-frequency>193.65</center-frequency>
-        <wavelength>1548.11</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>51</wavelength-number>
-        <center-frequency>193.6</center-frequency>
-        <wavelength>1548.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>52</wavelength-number>
-        <center-frequency>193.55</center-frequency>
-        <wavelength>1548.91</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>53</wavelength-number>
-        <center-frequency>193.5</center-frequency>
-        <wavelength>1549.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>54</wavelength-number>
-        <center-frequency>193.45</center-frequency>
-        <wavelength>1549.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>55</wavelength-number>
-        <center-frequency>193.4</center-frequency>
-        <wavelength>1550.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>56</wavelength-number>
-        <center-frequency>193.35</center-frequency>
-        <wavelength>1550.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>57</wavelength-number>
-        <center-frequency>193.3</center-frequency>
-        <wavelength>1550.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>58</wavelength-number>
-        <center-frequency>193.25</center-frequency>
-        <wavelength>1551.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>59</wavelength-number>
-        <center-frequency>193.2</center-frequency>
-        <wavelength>1551.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>60</wavelength-number>
-        <center-frequency>193.15</center-frequency>
-        <wavelength>1552.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>61</wavelength-number>
-        <center-frequency>193.1</center-frequency>
-        <wavelength>1552.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>62</wavelength-number>
-        <center-frequency>193.05</center-frequency>
-        <wavelength>1552.93</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>63</wavelength-number>
-        <center-frequency>193.0</center-frequency>
-        <wavelength>1553.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>64</wavelength-number>
-        <center-frequency>192.95</center-frequency>
-        <wavelength>1553.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>65</wavelength-number>
-        <center-frequency>192.9</center-frequency>
-        <wavelength>1554.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>66</wavelength-number>
-        <center-frequency>192.85</center-frequency>
-        <wavelength>1554.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>67</wavelength-number>
-        <center-frequency>192.8</center-frequency>
-        <wavelength>1554.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>68</wavelength-number>
-        <center-frequency>192.75</center-frequency>
-        <wavelength>1555.34</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>69</wavelength-number>
-        <center-frequency>192.7</center-frequency>
-        <wavelength>1555.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>70</wavelength-number>
-        <center-frequency>192.65</center-frequency>
-        <wavelength>1556.15</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>71</wavelength-number>
-        <center-frequency>192.6</center-frequency>
-        <wavelength>1556.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>72</wavelength-number>
-        <center-frequency>192.55</center-frequency>
-        <wavelength>1556.96</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>73</wavelength-number>
-        <center-frequency>192.5</center-frequency>
-        <wavelength>1557.36</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>74</wavelength-number>
-        <center-frequency>192.45</center-frequency>
-        <wavelength>1557.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>75</wavelength-number>
-        <center-frequency>192.4</center-frequency>
-        <wavelength>1558.17</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>76</wavelength-number>
-        <center-frequency>192.35</center-frequency>
-        <wavelength>1558.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>77</wavelength-number>
-        <center-frequency>192.3</center-frequency>
-        <wavelength>1558.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>78</wavelength-number>
-        <center-frequency>192.25</center-frequency>
-        <wavelength>1559.39</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>79</wavelength-number>
-        <center-frequency>192.2</center-frequency>
-        <wavelength>1559.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>80</wavelength-number>
-        <center-frequency>192.15</center-frequency>
-        <wavelength>1560.2</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>81</wavelength-number>
-        <center-frequency>192.1</center-frequency>
-        <wavelength>1560.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>82</wavelength-number>
-        <center-frequency>192.05</center-frequency>
-        <wavelength>1561.01</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>83</wavelength-number>
-        <center-frequency>192.0</center-frequency>
-        <wavelength>1561.42</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>84</wavelength-number>
-        <center-frequency>191.95</center-frequency>
-        <wavelength>1561.83</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>85</wavelength-number>
-        <center-frequency>191.9</center-frequency>
-        <wavelength>1562.23</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>86</wavelength-number>
-        <center-frequency>191.85</center-frequency>
-        <wavelength>1562.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>87</wavelength-number>
-        <center-frequency>191.8</center-frequency>
-        <wavelength>1563.05</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>88</wavelength-number>
-        <center-frequency>191.75</center-frequency>
-        <wavelength>1563.45</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>89</wavelength-number>
-        <center-frequency>191.7</center-frequency>
-        <wavelength>1563.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>90</wavelength-number>
-        <center-frequency>191.65</center-frequency>
-        <wavelength>1564.27</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>91</wavelength-number>
-        <center-frequency>191.6</center-frequency>
-        <wavelength>1564.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>92</wavelength-number>
-        <center-frequency>191.55</center-frequency>
-        <wavelength>1565.09</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>93</wavelength-number>
-        <center-frequency>191.5</center-frequency>
-        <wavelength>1565.5</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>94</wavelength-number>
-        <center-frequency>191.45</center-frequency>
-        <wavelength>1565.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>95</wavelength-number>
-        <center-frequency>191.4</center-frequency>
-        <wavelength>1566.31</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>96</wavelength-number>
-        <center-frequency>191.35</center-frequency>
-        <wavelength>1566.72</wavelength>
-      </wavelengths>
-    </wavelength-map>
-    <internal-link>
-      <internal-link-name>1/0/C1-PLUG-CLIENT-to-1/0/1-PLUG-NET
-      </internal-link-name>
-      <source>
-        <circuit-pack-name>1/0/C1-PLUG-CLIENT</circuit-pack-name>
-        <port-name>1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>1/0/1-PLUG-NET</circuit-pack-name>
-        <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/C1-PLUG-CLIENT</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>1/0/1-PLUG-NET</circuit-pack-name>
-        <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>C1</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>C3</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>C3</port-name>
-      </destination>
-    </connection-map>
-  </org-openroadm-device>
-
-
-
-
-  <components xmlns="http://openconfig.net/yang/platform">
-    <component>
-    <name>TRANSCEIVER-1-2-49</name>
-    <state>
-    <mfg-name></mfg-name>
-        <id>/1-2-49</id>
-        <serial-no></serial-no>
-        <name>TRANSCEIVER-1-2-49</name>
-        <equipment-failure xmlns="http://openconfig.net/yang/alarms">true</equipment-failure>
-        <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-        <!--type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type-->
-        <temperature>
-        <alarm-status>false</alarm-status>
-        </temperature>
-        <hardware-version></hardware-version>
-        <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-49</name>
-    </config>
-<subcomponents></subcomponents>
-<transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-<nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-<config>
-<input-power-thresholds>
-<absolute-threshold>99.99</absolute-threshold>
-<delta-threshold>0.0</delta-threshold>
-</input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-      <output-power>
-      <avg>0.0</avg>
-         <min>-40.0</min>
-         <interval>10000000000</interval>
-        <instant>-40.0</instant>
-        <max>-40.0</max>
-        </output-power>
-        <input-power>
-        <avg>0.0</avg>
-        <min>-40.0</min>
-            <interval>10000000000</interval>
-            <instant>-40.0</instant>
-            <max>-40.0</max>
-        </input-power>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-    </state>
-    <physical-channels></physical-channels>
-</transceiver>
-</component>
-<component>
-    <name>PORT-1-2-33</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/33</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/33</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property xmlns:oc-platform="http://openconfig.net/yang/platform">
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value></value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-33</id>
-      <description></description>
-      <name>PORT-1-2-33</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-33</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-33</name>
-        <state>
-          <name>TRANSCEIVER-1-2-33</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-33</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-
-
-  <!--component>
-    <name>PORT-1-2-13</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/13</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/13</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-13</id>
-      <description></description>
-      <name>PORT-1-2-13</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-13</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-13</name>
-        <state>
-          <name>TRANSCEIVER-1-2-13</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-13</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-
-
-  <component>
-    <name>TRANSCEIVER-1-2-45</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-45</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-45</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-45</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-
-
-  <component>
-    <name>TRANSCEIVER-1-2-25</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-25</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-25</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-25</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>PORT-1-2-37</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/37</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/37</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-37</id>
-      <description></description>
-      <name>PORT-1-2-37</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-37</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-37</name>
-        <state>
-          <name>TRANSCEIVER-1-2-37</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-37</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>PORT-1-2-4</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/4</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/4</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-4</id>
-      <description></description>
-      <name>PORT-1-2-4</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-4</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-4</name>
-        <state>
-          <name>OCH-1-2-4</name>
-        </state>
-        <config>
-          <name>OCH-1-2-4</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>PORT-1-2-17</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/17</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/17</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-17</id>
-      <description></description>
-      <name>PORT-1-2-17</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-17</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-17</name>
-        <state>
-          <name>TRANSCEIVER-1-2-17</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-17</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>PORT-1-2-9</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/9</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/9</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>100GIGE_LANETH/1-2-9</id>
-      <description></description>
-      <name>PORT-1-2-9</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>DISABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>DISABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-9</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-9</name>
-        <state>
-          <name>TRANSCEIVER-1-2-9</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-9</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>TRANSCEIVER-1-2-9</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-9</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-9</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-9</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <output-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </output-power>
-        <input-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </input-power>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>TRANSCEIVER-1-2-41</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-41</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-41</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-41</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>TRANSCEIVER-1-2-21</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-21</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-21</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-21</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>SYSTEM-SOFTWARE</name>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:OPERATING_SYSTEM</type>
-      <description>Nokia 1830 PSI v2.0 SONET ADM</description>
-      <software-version>1830PSS-19.27-20</software-version>
-      <name>SYSTEM-SOFTWARE</name>
-    </state>
-    <config>
-      <name>SYSTEM-SOFTWARE</name>
-    </config>
-  </component>
-  <component>
-    <name>TRANSCEIVER-1-2-17</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-17</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-17</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-17</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>PORT-1-2-21</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/21</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/21</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-21</id>
-      <description></description>
-      <name>PORT-1-2-21</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-21</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-21</name>
-        <state>
-          <name>TRANSCEIVER-1-2-21</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-21</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>PORT-1-2-45</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/45</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/45</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-45</id>
-      <description></description>
-      <name>PORT-1-2-45</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-45</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-45</name>
-        <state>
-          <name>TRANSCEIVER-1-2-45</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-45</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>TRANSCEIVER-1-2-13</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-13</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-13</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-13</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>PORT-1-2-25</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/25</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/25</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-25</id>
-      <description></description>
-      <name>PORT-1-2-25</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-25</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-25</name>
-        <state>
-          <name>TRANSCEIVER-1-2-25</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-25</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>TRANSCEIVER-1-2-37</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-37</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-37</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-37</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>PORT-1-2-49</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/49</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/49</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>100GIGE_LANETH/1-2-49</id>
-      <description></description>
-      <name>PORT-1-2-49</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-49</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-49</name>
-        <state>
-          <name>TRANSCEIVER-1-2-49</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-49</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>OCH-1-2-2</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>OTU4/1-2-2</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-2</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <target-output-power>-20.0</target-output-power>
-        <input-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </input-power>
-        <chromatic-dispersion>
-          <max>100.0</max>
-          <instant>100.0</instant>
-          <avg>100.0</avg>
-          <min>100.0</min>
-        </chromatic-dispersion>
-        <operational-mode>34</operational-mode>
-        <output-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </output-power>
-        <line-port>PORT-1-2-2</line-port>
-        <frequency>0</frequency>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-          <differential-group-delay>
-            <instant>20.0</instant>
-            <max>20.0</max>
-            <avg>20.0</avg>
-            <min>20.0</min>
-          </differential-group-delay>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>34</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-2</name>
-    </config>
-  </component>
-  <component>
-    <name>OCH-1-2-1</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>OTU4/1-2-1</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-1</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <target-output-power>-10.0</target-output-power>
-        <input-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </input-power>
-        <chromatic-dispersion>
-          <max>100.0</max>
-          <instant>100.0</instant>
-          <avg>100.0</avg>
-          <min>100.0</min>
-        </chromatic-dispersion>
-        <operational-mode>34</operational-mode>
-        <output-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </output-power>
-        <line-port>PORT-1-2-1</line-port>
-        <frequency>191700000</frequency>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-          <differential-group-delay>
-            <instant>20.0</instant>
-            <max>20.0</max>
-            <avg>20.0</avg>
-            <min>20.0</min>
-          </differential-group-delay>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>191700000</frequency>
-        <target-output-power>-10.0</target-output-power>
-        <operational-mode>34</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-1</name>
-    </config>
-  </component>
-  <component>
-    <name>OCH-1-2-4</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>UNASSIGNED/1-2-4</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-4</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <line-port>PORT-1-2-4</line-port>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-4</name>
-    </config>
-  </component>
-  <component>
-    <name>OCH-1-2-3</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>UNASSIGNED/1-2-3</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-3</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <line-port>PORT-1-2-3</line-port>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-3</name>
-    </config>
-  </component>
-  <component>
-    <name>PORT-1-2-1</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/1</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/1</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>OTU4/1-2-1</id>
-      <description></description>
-      <name>PORT-1-2-1</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-1</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-1</name>
-        <state>
-          <name>OCH-1-2-1</name>
-        </state>
-        <config>
-          <name>OCH-1-2-1</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>CARD-1-2</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Card-1-2</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Card-1-2</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <linecard xmlns="http://openconfig.net/yang/platform/linecard">
-      <state>
-        <power-admin-state>POWER_ENABLED</power-admin-state>
-        <slot-id>2</slot-id>
-      </state>
-      <config>
-        <power-admin-state>POWER_ENABLED</power-admin-state>
-      </config>
-    </linecard>
-    <properties>
-      <property>
-        <name>CardMode</name>
-        <state>
-          <configurable>true</configurable>
-          <name>CardMode</name>
-          <value>ETH_100G</value>
-        </state>
-        <config>
-          <name>CardMode</name>
-          <value>ETH_100G</value>
-        </config>
-      </property>
-      <property>
-        <name>InterworkingMode</name>
-        <state>
-          <configurable>true</configurable>
-          <name>InterworkingMode</name>
-          <value>LEGACY</value>
-        </state>
-        <config>
-          <name>InterworkingMode</name>
-          <value>LEGACY</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <mfg-name>NOK</mfg-name>
-      <id>Card-1-2</id>
-      <serial-no>MV12345678</serial-no>
-      <name>CARD-1-2</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:LINECARD</type>
-      <temperature>
-        <instant>0.0</instant>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <description></description>
-      <hardware-version>OTLCI2000</hardware-version>
-      <part-no>8DG59339AAAA01</part-no>
-    </state>
-    <config>
-      <name>CARD-1-2</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>PORT-1-2-4</name>
-        <state>
-          <name>PORT-1-2-4</name>
-        </state>
-        <config>
-          <name>PORT-1-2-4</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-9</name>
-        <state>
-          <name>PORT-1-2-9</name>
-        </state>
-        <config>
-          <name>PORT-1-2-9</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-41</name>
-        <state>
-          <name>PORT-1-2-41</name>
-        </state>
-        <config>
-          <name>PORT-1-2-41</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-17</name>
-        <state>
-          <name>PORT-1-2-17</name>
-        </state>
-        <config>
-          <name>PORT-1-2-17</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-33</name>
-        <state>
-          <name>PORT-1-2-33</name>
-        </state>
-        <config>
-          <name>PORT-1-2-33</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-45</name>
-        <state>
-          <name>PORT-1-2-45</name>
-        </state>
-        <config>
-          <name>PORT-1-2-45</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-21</name>
-        <state>
-          <name>PORT-1-2-21</name>
-        </state>
-        <config>
-          <name>PORT-1-2-21</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-1</name>
-        <state>
-          <name>PORT-1-2-1</name>
-        </state>
-        <config>
-          <name>PORT-1-2-1</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-37</name>
-        <state>
-          <name>PORT-1-2-37</name>
-        </state>
-        <config>
-          <name>PORT-1-2-37</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-49</name>
-        <state>
-          <name>PORT-1-2-49</name>
-        </state>
-        <config>
-          <name>PORT-1-2-49</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-3</name>
-        <state>
-          <name>PORT-1-2-3</name>
-        </state>
-        <config>
-          <name>PORT-1-2-3</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-13</name>
-        <state>
-          <name>PORT-1-2-13</name>
-        </state>
-        <config>
-          <name>PORT-1-2-13</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-2</name>
-        <state>
-          <name>PORT-1-2-2</name>
-        </state>
-        <config>
-          <name>PORT-1-2-2</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-25</name>
-        <state>
-          <name>PORT-1-2-25</name>
-        </state>
-        <config>
-          <name>PORT-1-2-25</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>PORT-1-2-2</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/2</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/2</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>OTU4/1-2-2</id>
-      <description></description>
-      <name>PORT-1-2-2</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-2</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-2</name>
-        <state>
-          <name>OCH-1-2-2</name>
-        </state>
-        <config>
-          <name>OCH-1-2-2</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>PORT-1-2-3</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/3</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/3</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-3</id>
-      <description></description>
-      <name>PORT-1-2-3</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-3</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-3</name>
-        <state>
-          <name>OCH-1-2-3</name>
-        </state>
-        <config>
-          <name>OCH-1-2-3</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>TRANSCEIVER-1-2-33</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-33</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-33</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-33</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>CHASSIS-1</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>Master Shelf</id>
-      <serial-no></serial-no>
-      <name>CHASSIS-1</name>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:CHASSIS</type>
-      <description></description>
-      <hardware-version>PSI2T</hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>CHASSIS-1</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>CARD-1-2</name>
-        <state>
-          <name>CARD-1-2</name>
-        </state>
-        <config>
-          <name>CARD-1-2</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Master Shelf</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Master Shelf</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-  </component>
-  <component>
-    <name>PORT-1-2-41</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/41</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/41</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-41</id>
-      <description></description>
-      <name>PORT-1-2-41</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-41</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-41</name>
-        <state>
-          <name>TRANSCEIVER-1-2-41</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-41</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component-->
-
-
-</components>
-
-<currentPmlist xmlns="http://org/openroadm/pm">
-<currentPm>
-    <id>18</id>
-    <retrievalTime>2018-06-07T13:22:58+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>2.5</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>3</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>49.9</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-</currentPm>
-</currentPmlist>
-</data>
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRA.xml b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRA.xml
deleted file mode 100644 (file)
index ac31d67..0000000
+++ /dev/null
@@ -1,673 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <org-openroadm-device xmlns="http://org/openroadm/device">
-    <info>
-      <node-id>XPDRA</node-id>
-      <node-number>1</node-number>
-      <node-type>xpdr</node-type>
-      <clli>NodeA</clli>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00001</serial-id>
-      <ipAddress>127.0.0.10</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.10</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <macAddress>aa:aa:aa:aa:aa:aa</macAddress>
-      <softwareVersion>1.0</softwareVersion>
-      <template>TPCE-XPDR001</template>
-      <current-datetime>2017-08-29T15:58:01+00:00</current-datetime>
-      <geoLocation>
-        <latitude>33</latitude>
-        <longitude>-96</longitude>
-      </geoLocation>
-    </info>
-    <users>
-      <user>
-        <name>openroadm</name>
-        <password>openroadm</password>
-        <group>sudo</group>
-      </user>
-    </users>
-    <shelves>
-      <shelf-name>1</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>1</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>0001</serial-id>
-      <type>pizza</type>
-      <product-code>zzz</product-code>
-      <manufacture-date>2017-04-01T00:00:00+00:00</manufacture-date>
-      <clei>www</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2017-02-24T15:56:10+00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>1/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <circuit-packs>
-      <circuit-pack-name>1/0</circuit-pack-name>
-      <circuit-pack-type>TSP100G</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VendorA</vendor>
-      <model>WDM80</model>
-      <serial-id>aaaaa</serial-id>
-      <type>TSP</type>
-      <product-code>TSP100G1</product-code>
-      <manufacture-date>2017-04-01T00:00:00+00:00</manufacture-date>
-      <clei>xxx</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <circuit-pack-category>
-        <type>circuitPack</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>0</subSlot>
-      <due-date>2017-04-12T15:56:10+00:00</due-date>
-      <cp-slots>
-        <slot-name>1</slot-name>
-        <label>1</label>
-        <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>
-      </cp-slots>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>1/0/1-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>1</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>1</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>1</port-name>
-        <port-type>CFP2</port-type>
-        <port-qual>xpdr-network</port-qual>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>XPDRA-NETWORK</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <logical-connection-point>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-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>2</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>1</port-name>
-        <port-type>QSFP28</port-type>
-        <port-qual>xpdr-client</port-qual>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>XPDRA-CLIENT</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <logical-connection-point>CLIENT1</logical-connection-point>
-        <transponder-port>
-        </transponder-port>
-      </ports>
-    </circuit-packs>
-    <wavelength-map>
-      <wavelengths>
-        <wavelength-number>1</wavelength-number>
-        <center-frequency>196.1</center-frequency>
-        <wavelength>1528.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>2</wavelength-number>
-        <center-frequency>196.05</center-frequency>
-        <wavelength>1529.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>3</wavelength-number>
-        <center-frequency>196.0</center-frequency>
-        <wavelength>1529.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>4</wavelength-number>
-        <center-frequency>195.95</center-frequency>
-        <wavelength>1529.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>5</wavelength-number>
-        <center-frequency>195.9</center-frequency>
-        <wavelength>1530.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>6</wavelength-number>
-        <center-frequency>195.85</center-frequency>
-        <wavelength>1530.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>7</wavelength-number>
-        <center-frequency>195.8</center-frequency>
-        <wavelength>1531.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>8</wavelength-number>
-        <center-frequency>195.75</center-frequency>
-        <wavelength>1531.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>9</wavelength-number>
-        <center-frequency>195.7</center-frequency>
-        <wavelength>1531.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>10</wavelength-number>
-        <center-frequency>195.65</center-frequency>
-        <wavelength>1532.29</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>11</wavelength-number>
-        <center-frequency>195.6</center-frequency>
-        <wavelength>1532.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>12</wavelength-number>
-        <center-frequency>195.55</center-frequency>
-        <wavelength>1533.07</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>13</wavelength-number>
-        <center-frequency>195.5</center-frequency>
-        <wavelength>1533.47</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>14</wavelength-number>
-        <center-frequency>195.45</center-frequency>
-        <wavelength>1533.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>15</wavelength-number>
-        <center-frequency>195.4</center-frequency>
-        <wavelength>1534.25</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>16</wavelength-number>
-        <center-frequency>195.35</center-frequency>
-        <wavelength>1534.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>17</wavelength-number>
-        <center-frequency>195.3</center-frequency>
-        <wavelength>1535.04</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>18</wavelength-number>
-        <center-frequency>195.25</center-frequency>
-        <wavelength>1535.43</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>19</wavelength-number>
-        <center-frequency>195.2</center-frequency>
-        <wavelength>1535.82</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>20</wavelength-number>
-        <center-frequency>195.15</center-frequency>
-        <wavelength>1536.22</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>21</wavelength-number>
-        <center-frequency>195.1</center-frequency>
-        <wavelength>1536.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>22</wavelength-number>
-        <center-frequency>195.05</center-frequency>
-        <wavelength>1537.0</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>23</wavelength-number>
-        <center-frequency>195.0</center-frequency>
-        <wavelength>1537.4</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>24</wavelength-number>
-        <center-frequency>194.95</center-frequency>
-        <wavelength>1537.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>25</wavelength-number>
-        <center-frequency>194.9</center-frequency>
-        <wavelength>1538.19</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>26</wavelength-number>
-        <center-frequency>194.85</center-frequency>
-        <wavelength>1538.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>27</wavelength-number>
-        <center-frequency>194.8</center-frequency>
-        <wavelength>1538.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>28</wavelength-number>
-        <center-frequency>194.75</center-frequency>
-        <wavelength>1539.37</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>29</wavelength-number>
-        <center-frequency>194.7</center-frequency>
-        <wavelength>1539.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>30</wavelength-number>
-        <center-frequency>194.65</center-frequency>
-        <wavelength>1540.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>31</wavelength-number>
-        <center-frequency>194.6</center-frequency>
-        <wavelength>1540.56</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>32</wavelength-number>
-        <center-frequency>194.55</center-frequency>
-        <wavelength>1540.95</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>33</wavelength-number>
-        <center-frequency>194.5</center-frequency>
-        <wavelength>1541.35</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>34</wavelength-number>
-        <center-frequency>194.45</center-frequency>
-        <wavelength>1541.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>35</wavelength-number>
-        <center-frequency>194.4</center-frequency>
-        <wavelength>1542.14</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>36</wavelength-number>
-        <center-frequency>194.35</center-frequency>
-        <wavelength>1542.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>37</wavelength-number>
-        <center-frequency>194.3</center-frequency>
-        <wavelength>1542.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>38</wavelength-number>
-        <center-frequency>194.25</center-frequency>
-        <wavelength>1543.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>39</wavelength-number>
-        <center-frequency>194.2</center-frequency>
-        <wavelength>1543.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>40</wavelength-number>
-        <center-frequency>194.15</center-frequency>
-        <wavelength>1544.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>41</wavelength-number>
-        <center-frequency>194.1</center-frequency>
-        <wavelength>1544.53</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>42</wavelength-number>
-        <center-frequency>194.05</center-frequency>
-        <wavelength>1544.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>43</wavelength-number>
-        <center-frequency>194.0</center-frequency>
-        <wavelength>1545.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>44</wavelength-number>
-        <center-frequency>193.95</center-frequency>
-        <wavelength>1545.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>45</wavelength-number>
-        <center-frequency>193.9</center-frequency>
-        <wavelength>1546.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>46</wavelength-number>
-        <center-frequency>193.85</center-frequency>
-        <wavelength>1546.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>47</wavelength-number>
-        <center-frequency>193.8</center-frequency>
-        <wavelength>1546.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>48</wavelength-number>
-        <center-frequency>193.75</center-frequency>
-        <wavelength>1547.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>49</wavelength-number>
-        <center-frequency>193.7</center-frequency>
-        <wavelength>1547.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>50</wavelength-number>
-        <center-frequency>193.65</center-frequency>
-        <wavelength>1548.11</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>51</wavelength-number>
-        <center-frequency>193.6</center-frequency>
-        <wavelength>1548.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>52</wavelength-number>
-        <center-frequency>193.55</center-frequency>
-        <wavelength>1548.91</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>53</wavelength-number>
-        <center-frequency>193.5</center-frequency>
-        <wavelength>1549.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>54</wavelength-number>
-        <center-frequency>193.45</center-frequency>
-        <wavelength>1549.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>55</wavelength-number>
-        <center-frequency>193.4</center-frequency>
-        <wavelength>1550.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>56</wavelength-number>
-        <center-frequency>193.35</center-frequency>
-        <wavelength>1550.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>57</wavelength-number>
-        <center-frequency>193.3</center-frequency>
-        <wavelength>1550.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>58</wavelength-number>
-        <center-frequency>193.25</center-frequency>
-        <wavelength>1551.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>59</wavelength-number>
-        <center-frequency>193.2</center-frequency>
-        <wavelength>1551.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>60</wavelength-number>
-        <center-frequency>193.15</center-frequency>
-        <wavelength>1552.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>61</wavelength-number>
-        <center-frequency>193.1</center-frequency>
-        <wavelength>1552.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>62</wavelength-number>
-        <center-frequency>193.05</center-frequency>
-        <wavelength>1552.93</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>63</wavelength-number>
-        <center-frequency>193.0</center-frequency>
-        <wavelength>1553.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>64</wavelength-number>
-        <center-frequency>192.95</center-frequency>
-        <wavelength>1553.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>65</wavelength-number>
-        <center-frequency>192.9</center-frequency>
-        <wavelength>1554.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>66</wavelength-number>
-        <center-frequency>192.85</center-frequency>
-        <wavelength>1554.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>67</wavelength-number>
-        <center-frequency>192.8</center-frequency>
-        <wavelength>1554.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>68</wavelength-number>
-        <center-frequency>192.75</center-frequency>
-        <wavelength>1555.34</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>69</wavelength-number>
-        <center-frequency>192.7</center-frequency>
-        <wavelength>1555.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>70</wavelength-number>
-        <center-frequency>192.65</center-frequency>
-        <wavelength>1556.15</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>71</wavelength-number>
-        <center-frequency>192.6</center-frequency>
-        <wavelength>1556.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>72</wavelength-number>
-        <center-frequency>192.55</center-frequency>
-        <wavelength>1556.96</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>73</wavelength-number>
-        <center-frequency>192.5</center-frequency>
-        <wavelength>1557.36</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>74</wavelength-number>
-        <center-frequency>192.45</center-frequency>
-        <wavelength>1557.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>75</wavelength-number>
-        <center-frequency>192.4</center-frequency>
-        <wavelength>1558.17</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>76</wavelength-number>
-        <center-frequency>192.35</center-frequency>
-        <wavelength>1558.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>77</wavelength-number>
-        <center-frequency>192.3</center-frequency>
-        <wavelength>1558.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>78</wavelength-number>
-        <center-frequency>192.25</center-frequency>
-        <wavelength>1559.39</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>79</wavelength-number>
-        <center-frequency>192.2</center-frequency>
-        <wavelength>1559.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>80</wavelength-number>
-        <center-frequency>192.15</center-frequency>
-        <wavelength>1560.2</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>81</wavelength-number>
-        <center-frequency>192.1</center-frequency>
-        <wavelength>1560.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>82</wavelength-number>
-        <center-frequency>192.05</center-frequency>
-        <wavelength>1561.01</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>83</wavelength-number>
-        <center-frequency>192.0</center-frequency>
-        <wavelength>1561.42</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>84</wavelength-number>
-        <center-frequency>191.95</center-frequency>
-        <wavelength>1561.83</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>85</wavelength-number>
-        <center-frequency>191.9</center-frequency>
-        <wavelength>1562.23</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>86</wavelength-number>
-        <center-frequency>191.85</center-frequency>
-        <wavelength>1562.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>87</wavelength-number>
-        <center-frequency>191.8</center-frequency>
-        <wavelength>1563.05</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>88</wavelength-number>
-        <center-frequency>191.75</center-frequency>
-        <wavelength>1563.45</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>89</wavelength-number>
-        <center-frequency>191.7</center-frequency>
-        <wavelength>1563.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>90</wavelength-number>
-        <center-frequency>191.65</center-frequency>
-        <wavelength>1564.27</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>91</wavelength-number>
-        <center-frequency>191.6</center-frequency>
-        <wavelength>1564.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>92</wavelength-number>
-        <center-frequency>191.55</center-frequency>
-        <wavelength>1565.09</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>93</wavelength-number>
-        <center-frequency>191.5</center-frequency>
-        <wavelength>1565.5</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>94</wavelength-number>
-        <center-frequency>191.45</center-frequency>
-        <wavelength>1565.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>95</wavelength-number>
-        <center-frequency>191.4</center-frequency>
-        <wavelength>1566.31</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>96</wavelength-number>
-        <center-frequency>191.35</center-frequency>
-        <wavelength>1566.72</wavelength>
-      </wavelengths>
-    </wavelength-map>
-    <internal-link>
-      <internal-link-name>1/0/2-PLUG-CLIENT-to-1/0/1-PLUG-NET
-      </internal-link-name>
-      <source>
-        <circuit-pack-name>1/0/2-PLUG-CLIENT</circuit-pack-name>
-        <port-name>1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>1/0/1-PLUG-NET</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>
-        <port-name>1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>1/0/1-PLUG-NET</circuit-pack-name>
-        <port-name>1</port-name>
-      </destination>
-    </connection-map>
-  </org-openroadm-device>
-</data>
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRC.xml b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRC.xml
deleted file mode 100644 (file)
index 080954b..0000000
+++ /dev/null
@@ -1,673 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <org-openroadm-device xmlns="http://org/openroadm/device">
-    <info>
-      <node-id>XPDRC</node-id>
-      <node-number>1</node-number>
-      <node-type>xpdr</node-type>
-      <clli>NodeC</clli>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00001</serial-id>
-      <ipAddress>127.0.0.12</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.11</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <macAddress>aa:aa:aa:aa:aa:aa</macAddress>
-      <softwareVersion>1.0</softwareVersion>
-      <template>TPCE-XPDR001</template>
-      <current-datetime>2017-08-29T15:58:01+00:00</current-datetime>
-      <geoLocation>
-        <latitude>33</latitude>
-        <longitude>-96</longitude>
-      </geoLocation>
-    </info>
-    <users>
-      <user>
-        <name>openroadm</name>
-        <password>openroadm</password>
-        <group>sudo</group>
-      </user>
-    </users>
-    <shelves>
-      <shelf-name>1</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>1</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>0001</serial-id>
-      <type>pizza</type>
-      <product-code>zzz</product-code>
-      <manufacture-date>2017-04-01T00:00:00+00:00</manufacture-date>
-      <clei>www</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2017-02-24T15:56:10+00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>1/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <circuit-packs>
-      <circuit-pack-name>1/0</circuit-pack-name>
-      <circuit-pack-type>TSP100G</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VendorA</vendor>
-      <model>WDM80</model>
-      <serial-id>aaaaa</serial-id>
-      <type>TSP</type>
-      <product-code>TSP100G1</product-code>
-      <manufacture-date>2017-04-01T00:00:00+00:00</manufacture-date>
-      <clei>xxx</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <circuit-pack-category>
-        <type>circuitPack</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>0</subSlot>
-      <due-date>2017-04-12T15:56:10+00:00</due-date>
-      <cp-slots>
-        <slot-name>1</slot-name>
-        <label>1</label>
-        <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>
-      </cp-slots>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>1/0/1-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>1</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>1</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>1</port-name>
-        <port-type>CFP2</port-type>
-        <port-qual>xpdr-network</port-qual>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>XPDRC-NETWORK</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <logical-connection-point>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-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>2</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>1</port-name>
-        <port-type>QSFP28</port-type>
-        <port-qual>xpdr-client</port-qual>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>XPDRC-CLIENT</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <logical-connection-point>CLIENT1</logical-connection-point>
-        <transponder-port>
-        </transponder-port>
-      </ports>
-    </circuit-packs>
-    <wavelength-map>
-      <wavelengths>
-        <wavelength-number>1</wavelength-number>
-        <center-frequency>196.1</center-frequency>
-        <wavelength>1528.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>2</wavelength-number>
-        <center-frequency>196.05</center-frequency>
-        <wavelength>1529.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>3</wavelength-number>
-        <center-frequency>196.0</center-frequency>
-        <wavelength>1529.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>4</wavelength-number>
-        <center-frequency>195.95</center-frequency>
-        <wavelength>1529.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>5</wavelength-number>
-        <center-frequency>195.9</center-frequency>
-        <wavelength>1530.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>6</wavelength-number>
-        <center-frequency>195.85</center-frequency>
-        <wavelength>1530.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>7</wavelength-number>
-        <center-frequency>195.8</center-frequency>
-        <wavelength>1531.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>8</wavelength-number>
-        <center-frequency>195.75</center-frequency>
-        <wavelength>1531.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>9</wavelength-number>
-        <center-frequency>195.7</center-frequency>
-        <wavelength>1531.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>10</wavelength-number>
-        <center-frequency>195.65</center-frequency>
-        <wavelength>1532.29</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>11</wavelength-number>
-        <center-frequency>195.6</center-frequency>
-        <wavelength>1532.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>12</wavelength-number>
-        <center-frequency>195.55</center-frequency>
-        <wavelength>1533.07</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>13</wavelength-number>
-        <center-frequency>195.5</center-frequency>
-        <wavelength>1533.47</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>14</wavelength-number>
-        <center-frequency>195.45</center-frequency>
-        <wavelength>1533.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>15</wavelength-number>
-        <center-frequency>195.4</center-frequency>
-        <wavelength>1534.25</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>16</wavelength-number>
-        <center-frequency>195.35</center-frequency>
-        <wavelength>1534.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>17</wavelength-number>
-        <center-frequency>195.3</center-frequency>
-        <wavelength>1535.04</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>18</wavelength-number>
-        <center-frequency>195.25</center-frequency>
-        <wavelength>1535.43</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>19</wavelength-number>
-        <center-frequency>195.2</center-frequency>
-        <wavelength>1535.82</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>20</wavelength-number>
-        <center-frequency>195.15</center-frequency>
-        <wavelength>1536.22</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>21</wavelength-number>
-        <center-frequency>195.1</center-frequency>
-        <wavelength>1536.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>22</wavelength-number>
-        <center-frequency>195.05</center-frequency>
-        <wavelength>1537.0</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>23</wavelength-number>
-        <center-frequency>195.0</center-frequency>
-        <wavelength>1537.4</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>24</wavelength-number>
-        <center-frequency>194.95</center-frequency>
-        <wavelength>1537.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>25</wavelength-number>
-        <center-frequency>194.9</center-frequency>
-        <wavelength>1538.19</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>26</wavelength-number>
-        <center-frequency>194.85</center-frequency>
-        <wavelength>1538.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>27</wavelength-number>
-        <center-frequency>194.8</center-frequency>
-        <wavelength>1538.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>28</wavelength-number>
-        <center-frequency>194.75</center-frequency>
-        <wavelength>1539.37</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>29</wavelength-number>
-        <center-frequency>194.7</center-frequency>
-        <wavelength>1539.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>30</wavelength-number>
-        <center-frequency>194.65</center-frequency>
-        <wavelength>1540.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>31</wavelength-number>
-        <center-frequency>194.6</center-frequency>
-        <wavelength>1540.56</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>32</wavelength-number>
-        <center-frequency>194.55</center-frequency>
-        <wavelength>1540.95</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>33</wavelength-number>
-        <center-frequency>194.5</center-frequency>
-        <wavelength>1541.35</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>34</wavelength-number>
-        <center-frequency>194.45</center-frequency>
-        <wavelength>1541.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>35</wavelength-number>
-        <center-frequency>194.4</center-frequency>
-        <wavelength>1542.14</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>36</wavelength-number>
-        <center-frequency>194.35</center-frequency>
-        <wavelength>1542.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>37</wavelength-number>
-        <center-frequency>194.3</center-frequency>
-        <wavelength>1542.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>38</wavelength-number>
-        <center-frequency>194.25</center-frequency>
-        <wavelength>1543.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>39</wavelength-number>
-        <center-frequency>194.2</center-frequency>
-        <wavelength>1543.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>40</wavelength-number>
-        <center-frequency>194.15</center-frequency>
-        <wavelength>1544.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>41</wavelength-number>
-        <center-frequency>194.1</center-frequency>
-        <wavelength>1544.53</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>42</wavelength-number>
-        <center-frequency>194.05</center-frequency>
-        <wavelength>1544.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>43</wavelength-number>
-        <center-frequency>194.0</center-frequency>
-        <wavelength>1545.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>44</wavelength-number>
-        <center-frequency>193.95</center-frequency>
-        <wavelength>1545.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>45</wavelength-number>
-        <center-frequency>193.9</center-frequency>
-        <wavelength>1546.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>46</wavelength-number>
-        <center-frequency>193.85</center-frequency>
-        <wavelength>1546.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>47</wavelength-number>
-        <center-frequency>193.8</center-frequency>
-        <wavelength>1546.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>48</wavelength-number>
-        <center-frequency>193.75</center-frequency>
-        <wavelength>1547.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>49</wavelength-number>
-        <center-frequency>193.7</center-frequency>
-        <wavelength>1547.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>50</wavelength-number>
-        <center-frequency>193.65</center-frequency>
-        <wavelength>1548.11</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>51</wavelength-number>
-        <center-frequency>193.6</center-frequency>
-        <wavelength>1548.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>52</wavelength-number>
-        <center-frequency>193.55</center-frequency>
-        <wavelength>1548.91</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>53</wavelength-number>
-        <center-frequency>193.5</center-frequency>
-        <wavelength>1549.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>54</wavelength-number>
-        <center-frequency>193.45</center-frequency>
-        <wavelength>1549.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>55</wavelength-number>
-        <center-frequency>193.4</center-frequency>
-        <wavelength>1550.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>56</wavelength-number>
-        <center-frequency>193.35</center-frequency>
-        <wavelength>1550.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>57</wavelength-number>
-        <center-frequency>193.3</center-frequency>
-        <wavelength>1550.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>58</wavelength-number>
-        <center-frequency>193.25</center-frequency>
-        <wavelength>1551.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>59</wavelength-number>
-        <center-frequency>193.2</center-frequency>
-        <wavelength>1551.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>60</wavelength-number>
-        <center-frequency>193.15</center-frequency>
-        <wavelength>1552.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>61</wavelength-number>
-        <center-frequency>193.1</center-frequency>
-        <wavelength>1552.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>62</wavelength-number>
-        <center-frequency>193.05</center-frequency>
-        <wavelength>1552.93</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>63</wavelength-number>
-        <center-frequency>193.0</center-frequency>
-        <wavelength>1553.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>64</wavelength-number>
-        <center-frequency>192.95</center-frequency>
-        <wavelength>1553.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>65</wavelength-number>
-        <center-frequency>192.9</center-frequency>
-        <wavelength>1554.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>66</wavelength-number>
-        <center-frequency>192.85</center-frequency>
-        <wavelength>1554.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>67</wavelength-number>
-        <center-frequency>192.8</center-frequency>
-        <wavelength>1554.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>68</wavelength-number>
-        <center-frequency>192.75</center-frequency>
-        <wavelength>1555.34</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>69</wavelength-number>
-        <center-frequency>192.7</center-frequency>
-        <wavelength>1555.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>70</wavelength-number>
-        <center-frequency>192.65</center-frequency>
-        <wavelength>1556.15</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>71</wavelength-number>
-        <center-frequency>192.6</center-frequency>
-        <wavelength>1556.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>72</wavelength-number>
-        <center-frequency>192.55</center-frequency>
-        <wavelength>1556.96</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>73</wavelength-number>
-        <center-frequency>192.5</center-frequency>
-        <wavelength>1557.36</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>74</wavelength-number>
-        <center-frequency>192.45</center-frequency>
-        <wavelength>1557.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>75</wavelength-number>
-        <center-frequency>192.4</center-frequency>
-        <wavelength>1558.17</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>76</wavelength-number>
-        <center-frequency>192.35</center-frequency>
-        <wavelength>1558.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>77</wavelength-number>
-        <center-frequency>192.3</center-frequency>
-        <wavelength>1558.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>78</wavelength-number>
-        <center-frequency>192.25</center-frequency>
-        <wavelength>1559.39</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>79</wavelength-number>
-        <center-frequency>192.2</center-frequency>
-        <wavelength>1559.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>80</wavelength-number>
-        <center-frequency>192.15</center-frequency>
-        <wavelength>1560.2</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>81</wavelength-number>
-        <center-frequency>192.1</center-frequency>
-        <wavelength>1560.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>82</wavelength-number>
-        <center-frequency>192.05</center-frequency>
-        <wavelength>1561.01</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>83</wavelength-number>
-        <center-frequency>192.0</center-frequency>
-        <wavelength>1561.42</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>84</wavelength-number>
-        <center-frequency>191.95</center-frequency>
-        <wavelength>1561.83</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>85</wavelength-number>
-        <center-frequency>191.9</center-frequency>
-        <wavelength>1562.23</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>86</wavelength-number>
-        <center-frequency>191.85</center-frequency>
-        <wavelength>1562.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>87</wavelength-number>
-        <center-frequency>191.8</center-frequency>
-        <wavelength>1563.05</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>88</wavelength-number>
-        <center-frequency>191.75</center-frequency>
-        <wavelength>1563.45</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>89</wavelength-number>
-        <center-frequency>191.7</center-frequency>
-        <wavelength>1563.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>90</wavelength-number>
-        <center-frequency>191.65</center-frequency>
-        <wavelength>1564.27</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>91</wavelength-number>
-        <center-frequency>191.6</center-frequency>
-        <wavelength>1564.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>92</wavelength-number>
-        <center-frequency>191.55</center-frequency>
-        <wavelength>1565.09</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>93</wavelength-number>
-        <center-frequency>191.5</center-frequency>
-        <wavelength>1565.5</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>94</wavelength-number>
-        <center-frequency>191.45</center-frequency>
-        <wavelength>1565.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>95</wavelength-number>
-        <center-frequency>191.4</center-frequency>
-        <wavelength>1566.31</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>96</wavelength-number>
-        <center-frequency>191.35</center-frequency>
-        <wavelength>1566.72</wavelength>
-      </wavelengths>
-    </wavelength-map>
-    <internal-link>
-      <internal-link-name>1/0/2-PLUG-CLIENT-to-1/0/1-PLUG-NET
-      </internal-link-name>
-      <source>
-        <circuit-pack-name>1/0/2-PLUG-CLIENT</circuit-pack-name>
-        <port-name>1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>1/0/1-PLUG-NET</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>
-        <port-name>1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>1/0/1-PLUG-NET</circuit-pack-name>
-        <port-name>1</port-name>
-      </destination>
-    </connection-map>
-  </org-openroadm-device>
-</data>
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-psi2t-platform-terminal-device.xml b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/oper-psi2t-platform-terminal-device.xml
deleted file mode 100644 (file)
index ff48b8b..0000000
+++ /dev/null
@@ -1,2753 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <components xmlns="http://openconfig.net/yang/platform">
-    <component>
-    <name>TRANSCEIVER-1-2-49</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-49</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-49</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">true</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-49</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <output-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </output-power>
-        <input-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </input-power>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-33</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/33</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/33</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-33</id>
-      <description/>
-      <name>PORT-1-2-33</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-33</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-33</name>
-        <state>
-          <name>TRANSCEIVER-1-2-33</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-33</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-13</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/13</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/13</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-13</id>
-      <description/>
-      <name>PORT-1-2-13</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-13</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-13</name>
-        <state>
-          <name>TRANSCEIVER-1-2-13</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-13</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-45</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-45</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-45</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-45</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-25</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-25</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-25</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-25</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-37</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/37</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/37</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-37</id>
-      <description/>
-      <name>PORT-1-2-37</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-37</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-37</name>
-        <state>
-          <name>TRANSCEIVER-1-2-37</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-37</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-4</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/4</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/4</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-4</id>
-      <description/>
-      <name>PORT-1-2-4</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-4</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-4</name>
-        <state>
-          <name>OCH-1-2-4</name>
-        </state>
-        <config>
-          <name>OCH-1-2-4</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-17</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/17</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/17</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-17</id>
-      <description/>
-      <name>PORT-1-2-17</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-17</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-17</name>
-        <state>
-          <name>TRANSCEIVER-1-2-17</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-17</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-9</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/9</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/9</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>100GIGE_LANETH/1-2-9</id>
-      <description/>
-      <name>PORT-1-2-9</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>DISABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>DISABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-9</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-9</name>
-        <state>
-          <name>TRANSCEIVER-1-2-9</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-9</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-9</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-9</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-9</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-9</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <output-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </output-power>
-        <input-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </input-power>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-41</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-41</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-41</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-41</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-21</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-21</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-21</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-21</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>SYSTEM-SOFTWARE</name>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:OPERATING_SYSTEM</type>
-      <description>Nokia 1830 PSI v2.0 SONET ADM</description>
-      <software-version>1830PSS-19.27-20</software-version>
-      <name>SYSTEM-SOFTWARE</name>
-    </state>
-    <config>
-      <name>SYSTEM-SOFTWARE</name>
-    </config>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-17</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-17</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-17</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-17</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-21</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/21</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/21</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-21</id>
-      <description/>
-      <name>PORT-1-2-21</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-21</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-21</name>
-        <state>
-          <name>TRANSCEIVER-1-2-21</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-21</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-45</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/45</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/45</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-45</id>
-      <description/>
-      <name>PORT-1-2-45</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-45</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-45</name>
-        <state>
-          <name>TRANSCEIVER-1-2-45</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-45</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-13</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-13</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-13</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-13</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-25</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/25</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/25</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-25</id>
-      <description/>
-      <name>PORT-1-2-25</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-25</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-25</name>
-        <state>
-          <name>TRANSCEIVER-1-2-25</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-25</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-37</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-37</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-37</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-37</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-49</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/49</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/49</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>100GIGE_LANETH/1-2-49</id>
-      <description/>
-      <name>PORT-1-2-49</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-49</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-49</name>
-        <state>
-          <name>TRANSCEIVER-1-2-49</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-49</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>OCH-1-2-2</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>OTU4/1-2-2</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-2</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <target-output-power>-20.0</target-output-power>
-        <input-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </input-power>
-        <chromatic-dispersion>
-          <max>100.0</max>
-          <instant>100.0</instant>
-          <avg>100.0</avg>
-          <min>100.0</min>
-        </chromatic-dispersion>
-        <operational-mode>34</operational-mode>
-        <output-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </output-power>
-        <line-port>PORT-1-2-2</line-port>
-        <frequency>0</frequency>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-          <differential-group-delay>
-            <instant>20.0</instant>
-            <max>20.0</max>
-            <avg>20.0</avg>
-            <min>20.0</min>
-          </differential-group-delay>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>34</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-2</name>
-    </config>
-  </component>
-    <component>
-    <name>OCH-1-2-1</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>OTU4/1-2-1</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-1</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <target-output-power>-10.0</target-output-power>
-        <input-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </input-power>
-        <chromatic-dispersion>
-          <max>100.0</max>
-          <instant>100.0</instant>
-          <avg>100.0</avg>
-          <min>100.0</min>
-        </chromatic-dispersion>
-        <operational-mode>34</operational-mode>
-        <output-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </output-power>
-        <line-port>PORT-1-2-1</line-port>
-        <frequency>191700000</frequency>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-          <differential-group-delay>
-            <instant>20.0</instant>
-            <max>20.0</max>
-            <avg>20.0</avg>
-            <min>20.0</min>
-          </differential-group-delay>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>191700000</frequency>
-        <target-output-power>-10.0</target-output-power>
-        <operational-mode>34</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-1</name>
-    </config>
-  </component>
-    <component>
-    <name>OCH-1-2-4</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>UNASSIGNED/1-2-4</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-4</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <line-port>PORT-1-2-4</line-port>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-4</name>
-    </config>
-  </component>
-    <component>
-    <name>OCH-1-2-3</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>UNASSIGNED/1-2-3</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-3</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <line-port>PORT-1-2-3</line-port>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-3</name>
-    </config>
-  </component>
-    <component>
-    <name>PORT-1-2-1</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/1</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/1</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>OTU4/1-2-1</id>
-      <description/>
-      <name>PORT-1-2-1</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-1</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-1</name>
-        <state>
-          <name>OCH-1-2-1</name>
-        </state>
-        <config>
-          <name>OCH-1-2-1</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>CARD-1-2</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Card-1-2</name>
-        <description/>
-      </state>
-      <config>
-        <name>Card-1-2</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <linecard xmlns="http://openconfig.net/yang/platform/linecard">
-      <state>
-        <power-admin-state>POWER_ENABLED</power-admin-state>
-        <slot-id>2</slot-id>
-      </state>
-      <config>
-        <power-admin-state>POWER_ENABLED</power-admin-state>
-      </config>
-    </linecard>
-    <properties>
-      <property>
-        <name>CardMode</name>
-        <state>
-          <configurable>true</configurable>
-          <name>CardMode</name>
-          <value>ETH_100G</value>
-        </state>
-        <config>
-          <name>CardMode</name>
-          <value>ETH_100G</value>
-        </config>
-      </property>
-      <property>
-        <name>InterworkingMode</name>
-        <state>
-          <configurable>true</configurable>
-          <name>InterworkingMode</name>
-          <value>LEGACY</value>
-        </state>
-        <config>
-          <name>InterworkingMode</name>
-          <value>LEGACY</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <mfg-name>NOK</mfg-name>
-      <id>Card-1-2</id>
-      <serial-no>MV12345678</serial-no>
-      <name>CARD-1-2</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:LINECARD</type>
-      <temperature>
-        <instant>0.0</instant>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <description/>
-      <hardware-version>OTLCI2000</hardware-version>
-      <part-no>8DG59339AAAA01</part-no>
-    </state>
-    <config>
-      <name>CARD-1-2</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>PORT-1-2-4</name>
-        <state>
-          <name>PORT-1-2-4</name>
-        </state>
-        <config>
-          <name>PORT-1-2-4</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-9</name>
-        <state>
-          <name>PORT-1-2-9</name>
-        </state>
-        <config>
-          <name>PORT-1-2-9</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-41</name>
-        <state>
-          <name>PORT-1-2-41</name>
-        </state>
-        <config>
-          <name>PORT-1-2-41</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-17</name>
-        <state>
-          <name>PORT-1-2-17</name>
-        </state>
-        <config>
-          <name>PORT-1-2-17</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-33</name>
-        <state>
-          <name>PORT-1-2-33</name>
-        </state>
-        <config>
-          <name>PORT-1-2-33</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-45</name>
-        <state>
-          <name>PORT-1-2-45</name>
-        </state>
-        <config>
-          <name>PORT-1-2-45</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-21</name>
-        <state>
-          <name>PORT-1-2-21</name>
-        </state>
-        <config>
-          <name>PORT-1-2-21</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-1</name>
-        <state>
-          <name>PORT-1-2-1</name>
-        </state>
-        <config>
-          <name>PORT-1-2-1</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-37</name>
-        <state>
-          <name>PORT-1-2-37</name>
-        </state>
-        <config>
-          <name>PORT-1-2-37</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-49</name>
-        <state>
-          <name>PORT-1-2-49</name>
-        </state>
-        <config>
-          <name>PORT-1-2-49</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-3</name>
-        <state>
-          <name>PORT-1-2-3</name>
-        </state>
-        <config>
-          <name>PORT-1-2-3</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-13</name>
-        <state>
-          <name>PORT-1-2-13</name>
-        </state>
-        <config>
-          <name>PORT-1-2-13</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-2</name>
-        <state>
-          <name>PORT-1-2-2</name>
-        </state>
-        <config>
-          <name>PORT-1-2-2</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-25</name>
-        <state>
-          <name>PORT-1-2-25</name>
-        </state>
-        <config>
-          <name>PORT-1-2-25</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-2</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/2</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/2</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>OTU4/1-2-2</id>
-      <description/>
-      <name>PORT-1-2-2</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-2</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-2</name>
-        <state>
-          <name>OCH-1-2-2</name>
-        </state>
-        <config>
-          <name>OCH-1-2-2</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-3</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/3</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/3</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-3</id>
-      <description/>
-      <name>PORT-1-2-3</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-3</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-3</name>
-        <state>
-          <name>OCH-1-2-3</name>
-        </state>
-        <config>
-          <name>OCH-1-2-3</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-33</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-33</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-33</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-33</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>CHASSIS-1</name>
-    <state>
-      <mfg-name/>
-      <id>Master Shelf</id>
-      <serial-no/>
-      <name>CHASSIS-1</name>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:CHASSIS</type>
-      <description/>
-      <hardware-version>PSI2T</hardware-version>
-      <part-no/>
-    </state>
-    <config>
-      <name>CHASSIS-1</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>CARD-1-2</name>
-        <state>
-          <name>CARD-1-2</name>
-        </state>
-        <config>
-          <name>CARD-1-2</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Master Shelf</name>
-        <description/>
-      </state>
-      <config>
-        <name>Master Shelf</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-  </component>
-    <component>
-    <name>PORT-1-2-41</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/41</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/41</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-41</id>
-      <description/>
-      <name>PORT-1-2-41</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-41</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-41</name>
-        <state>
-          <name>TRANSCEIVER-1-2-41</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-41</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  </components>
-
-
-  <terminal-device xmlns="http://openconfig.net/yang/terminal-device">
-  <config></config>
-  <state></state>
-  <logical-channels>
-    <channel>
-      <index>1010201111</index>
-      <config>
-        <loopback-mode>NONE</loopback-mode>
-        <index>1010201111</index>
-      </config>
-      <state>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <loopback-mode>NONE</loopback-mode>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <link-state>UP</link-state>
-        <index>1010201111</index>
-      </state>
-      <otn>
-        <state>
-          <post-fec-ber>
-            <max>3.0367817636E-8</max>
-            <instant>3.0367817636E-8</instant>
-            <avg>3.0367817636E-8</avg>
-            <min>3.0367817636E-8</min>
-          </post-fec-ber>
-          <pre-fec-ber>
-            <max>7.591954409E-9</max>
-            <instant>7.591954409E-9</instant>
-            <avg>7.591954409E-9</avg>
-            <min>7.591954409E-9</min>
-          </pre-fec-ber>
-        </state>
-        <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-          <config>
-            <post-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </post-fec-ber-thresholds>
-            <pre-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </pre-fec-ber-thresholds>
-          </config>
-          <state>
-            <post-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </post-fec-ber-thresholds>
-            <pre-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </pre-fec-ber-thresholds>
-          </state>
-        </nokia-telemetry-ext>
-      </otn>
-      <logical-channel-assignments>
-        <assignment>
-          <index>1010201110</index>
-          <config>
-            <index>1010201110</index>
-          </config>
-          <state>
-            <optical-channel>OCH-1-2-1</optical-channel>
-            <assignment-type>OPTICAL_CHANNEL</assignment-type>
-            <index>1010201110</index>
-          </state>
-        </assignment>
-      </logical-channel-assignments>
-    </channel>
-    <channel>
-      <index>1010268209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010268209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010268209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-    <channel>
-      <index>1010272209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010272209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010272209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-    <channel>
-      <index>1010249117</index>
-      <config>
-        <loopback-mode>NONE</loopback-mode>
-        <test-signal>false</test-signal>
-        <index>1010249117</index>
-      </config>
-      <ingress>
-        <state>
-          <transceiver>TRANSCEIVER-1-2-49</transceiver>
-        </state>
-        <config></config>
-      </ingress>
-      <state>
-        <test-signal>false</test-signal>
-        <trib-protocol xmlns:x="http://nokia.com/yang/nokia-openconfig-exttypes">x:PROT_100GE_LAN</trib-protocol>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <loopback-mode>NONE</loopback-mode>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_ETHERNET</logical-channel-type>
-        <link-state>DOWN</link-state>
-        <index>1010249117</index>
-      </state>
-      <ethernet>
-        <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-          <config>
-            <errored-seconds-thresholds>
-              <absolute-threshold>0</absolute-threshold>
-              <delta-threshold>1</delta-threshold>
-            </errored-seconds-thresholds>
-          </config>
-          <state>
-            <errored-seconds>2</errored-seconds>
-            <errored-seconds-thresholds>
-              <absolute-threshold>0</absolute-threshold>
-              <delta-threshold>1</delta-threshold>
-            </errored-seconds-thresholds>
-          </state>
-        </nokia-telemetry-ext>
-      </ethernet>
-      <logical-channel-assignments>
-        <assignment>
-          <index>1010274209</index>
-          <config>
-            <logical-channel>1010274209</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010274209</index>
-          </config>
-          <state>
-            <logical-channel>1010274209</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010274209</index>
-          </state>
-        </assignment>
-      </logical-channel-assignments>
-    </channel>
-    <channel>
-      <index>1010209117</index>
-      <config>
-        <loopback-mode>NONE</loopback-mode>
-        <test-signal>false</test-signal>
-        <index>1010209117</index>
-      </config>
-      <ingress>
-        <state>
-          <transceiver>TRANSCEIVER-1-2-9</transceiver>
-        </state>
-        <config></config>
-      </ingress>
-      <state>
-        <test-signal>false</test-signal>
-        <trib-protocol xmlns:x="http://nokia.com/yang/nokia-openconfig-exttypes">x:PROT_100GE_LAN</trib-protocol>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <loopback-mode>NONE</loopback-mode>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_ETHERNET</logical-channel-type>
-        <link-state>DOWN</link-state>
-        <index>1010209117</index>
-      </state>
-      <ethernet>
-        <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-          <config>
-            <errored-seconds-thresholds>
-              <absolute-threshold>0</absolute-threshold>
-              <delta-threshold>1</delta-threshold>
-            </errored-seconds-thresholds>
-          </config>
-          <state>
-            <errored-seconds>3</errored-seconds>
-            <errored-seconds-thresholds>
-              <absolute-threshold>0</absolute-threshold>
-              <delta-threshold>1</delta-threshold>
-            </errored-seconds-thresholds>
-          </state>
-        </nokia-telemetry-ext>
-      </ethernet>
-      <logical-channel-assignments>
-        <assignment>
-          <index>1010265209</index>
-          <config>
-            <logical-channel>1010265209</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010265209</index>
-          </config>
-          <state>
-            <logical-channel>1010265209</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010265209</index>
-          </state>
-        </assignment>
-      </logical-channel-assignments>
-    </channel>
-    <channel>
-      <index>1010202111</index>
-      <config>
-        <loopback-mode>NONE</loopback-mode>
-        <index>1010202111</index>
-      </config>
-      <state>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <loopback-mode>NONE</loopback-mode>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <link-state>UP</link-state>
-        <index>1010202111</index>
-      </state>
-      <otn>
-        <state>
-          <post-fec-ber>
-            <max>3.0367817636E-8</max>
-            <instant>3.0367817636E-8</instant>
-            <avg>3.0367817636E-8</avg>
-            <min>3.0367817636E-8</min>
-          </post-fec-ber>
-          <pre-fec-ber>
-            <max>7.591954409E-9</max>
-            <instant>7.591954409E-9</instant>
-            <avg>7.591954409E-9</avg>
-            <min>7.591954409E-9</min>
-          </pre-fec-ber>
-        </state>
-        <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-          <config>
-            <post-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </post-fec-ber-thresholds>
-            <pre-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </pre-fec-ber-thresholds>
-          </config>
-          <state>
-            <post-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </post-fec-ber-thresholds>
-            <pre-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </pre-fec-ber-thresholds>
-          </state>
-        </nokia-telemetry-ext>
-      </otn>
-      <logical-channel-assignments>
-        <assignment>
-          <index>1010202110</index>
-          <config>
-            <index>1010202110</index>
-          </config>
-          <state>
-            <optical-channel>OCH-1-2-2</optical-channel>
-            <assignment-type>OPTICAL_CHANNEL</assignment-type>
-            <index>1010202110</index>
-          </state>
-        </assignment>
-      </logical-channel-assignments>
-    </channel>
-    <channel>
-      <index>1010265209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010265209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010265209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-      <logical-channel-assignments>
-        <assignment>
-          <index>1010201111</index>
-          <config>
-            <logical-channel>1010201111</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010201111</index>
-          </config>
-          <state>
-            <logical-channel>1010201111</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010201111</index>
-          </state>
-        </assignment>
-      </logical-channel-assignments>
-    </channel>
-    <channel>
-      <index>1010269209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010269209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010269209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-    <channel>
-      <index>1010273209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010273209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010273209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-    <channel>
-      <index>1010266209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010266209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010266209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-    <channel>
-      <index>1010270209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010270209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010270209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-    <channel>
-      <index>1010274209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010274209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010274209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-    <channel>
-      <index>1010267209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010267209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010267209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-      <logical-channel-assignments>
-        <assignment>
-          <index>1010202111</index>
-          <config>
-            <logical-channel>1010202111</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010202111</index>
-          </config>
-          <state>
-            <logical-channel>1010202111</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010202111</index>
-          </state>
-        </assignment>
-      </logical-channel-assignments>
-    </channel>
-    <channel>
-      <index>1010271209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010271209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010271209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-  </logical-channels>
-  <operational-modes>
-    <mode>
-      <mode-id>0</mode-id>
-      <config></config>
-      <state>
-        <description>Unknown/invalid operational-mode</description>
-        <mode-id>0</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>32</mode-id>
-      <config></config>
-      <state>
-        <description>QPSK/50GHz/AFEC/100G/Differential</description>
-        <mode-id>32</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>31</mode-id>
-      <config></config>
-      <state>
-        <description>QPSK/50GHz/SDFEC/100G/Differential</description>
-        <mode-id>31</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>36</mode-id>
-      <config></config>
-      <state>
-        <description>SP-QPSK/62.5GHz/SDFEC-G2/100G/Absolute</description>
-        <mode-id>36</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>35</mode-id>
-      <config></config>
-      <state>
-        <description>SP-QPSK/62.5GHz/SDFEC-G2/100G/Differential</description>
-        <mode-id>35</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>34</mode-id>
-      <config></config>
-      <state>
-        <description>QPSK/50GHz/SDFEC-G2/100G/Absolute</description>
-        <mode-id>34</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>33</mode-id>
-      <config></config>
-      <state>
-        <description>QPSK/50GHz/SDFEC-G2/100G/Differential</description>
-        <mode-id>33</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>38</mode-id>
-      <config></config>
-      <state>
-        <description>QPSK/50GHz/SCFEC/100G/Differential</description>
-        <mode-id>38</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>37</mode-id>
-      <config></config>
-      <state>
-        <description>QPSK/50GHz/SDFEC-ACC/100G/Absolute</description>
-        <mode-id>37</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>44</mode-id>
-      <config></config>
-      <state>
-        <description>16QAM/50GHz/SDFEC-G2/200G/Absolute</description>
-        <mode-id>44</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>43</mode-id>
-      <config></config>
-      <state>
-        <description>16QAM/50GHz/SDFEC-G2/200G/Differential</description>
-        <mode-id>43</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>42</mode-id>
-      <config></config>
-      <state>
-        <description>16QAM/50GHz/SDFEC/200G/Absolute</description>
-        <mode-id>42</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>41</mode-id>
-      <config></config>
-      <state>
-        <description>16QAM/50GHz/SDFEC/200G/Differential</description>
-        <mode-id>41</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>47</mode-id>
-      <config></config>
-      <state>
-        <description>16QAM/50GHz/SDFEC-ACC/200G/Absolute</description>
-        <mode-id>47</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>46</mode-id>
-      <config></config>
-      <state>
-        <description>8QAM/62.5GHz/SDFEC-G2/200G/Absolute</description>
-        <mode-id>46</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>45</mode-id>
-      <config></config>
-      <state>
-        <description>8QAM/62.5GHz/SDFEC-G2/200G/Differential</description>
-        <mode-id>45</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>52</mode-id>
-      <config></config>
-      <state>
-        <description>16QAM-250/62.5GHz/SDFEC-G2/250G/Absolute</description>
-        <mode-id>52</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>51</mode-id>
-      <config></config>
-      <state>
-        <description>16QAM-250/62.5GHz/SDFEC-G2/250G/Differential</description>
-        <mode-id>51</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>22</mode-id>
-      <config></config>
-      <state>
-        <description>BPSK/50GHz/SDFEC-G2/50G/Absolute</description>
-        <mode-id>22</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>21</mode-id>
-      <config></config>
-      <state>
-        <description>BPSK/50GHz/SDFEC-G2/50G/Differential</description>
-        <mode-id>21</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-  </operational-modes>
-</terminal-device>
-</data>
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/psi-2t-operational-data.xml b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/psi-2t-operational-data.xml
deleted file mode 100644 (file)
index 54268b1..0000000
+++ /dev/null
@@ -1,2203 +0,0 @@
-<data>
-    <components xmlns="http://openconfig.net/yang/platform">
-      <component>
-        <name>SYSTEM-SOFTWARE</name>
-        <config>
-          <name>SYSTEM-SOFTWARE</name>
-        </config>
-        <state>
-          <name>SYSTEM-SOFTWARE</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:OPERATING_SYSTEM</type>
-          <description>Nokia 1830 PSI v2.0 SONET ADM</description>
-          <software-version>1830PSI-2.0-0</software-version>
-        </state>
-      </component>
-      <component>
-        <name>CHASSIS-1</name>
-        <config>
-          <name>CHASSIS-1</name>
-        </config>
-        <state>
-          <name>CHASSIS-1</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:CHASSIS</type>
-          <id>Master Shelf</id>
-          <description/>
-          <mfg-name/>
-          <hardware-version>PSI2T</hardware-version>
-          <serial-no/>
-          <part-no/>
-        </state>
-        <subcomponents>
-          <subcomponent>
-            <name>CARD-1-2</name>
-            <config>
-              <name>CARD-1-2</name>
-            </config>
-            <state>
-              <name>CARD-1-2</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Master Shelf</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Master Shelf</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-      </component>
-      <component>
-        <name>CARD-1-2</name>
-        <config>
-          <name>CARD-1-2</name>
-        </config>
-        <state>
-          <name>CARD-1-2</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:LINECARD</type>
-          <id>Card-1-2</id>
-          <description/>
-          <mfg-name>NOK </mfg-name>
-          <hardware-version>OTLCI2000</hardware-version>
-          <serial-no>D0183326695       </serial-no>
-          <part-no>8DG63680AAAA02</part-no>
-          <temperature>
-            <instant>0.0</instant>
-          </temperature>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <properties>
-          <property>
-            <name>CardMode</name>
-            <config>
-              <name>CardMode</name>
-              <value>ETH_100G</value>
-            </config>
-            <state>
-              <name>CardMode</name>
-              <value>ETH_100G</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-          <property>
-            <name>InterworkingMode</name>
-            <config>
-              <name>InterworkingMode</name>
-              <value>LEGACY</value>
-            </config>
-            <state>
-              <name>InterworkingMode</name>
-              <value>LEGACY</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>PORT-1-2-1</name>
-            <config>
-              <name>PORT-1-2-1</name>
-            </config>
-            <state>
-              <name>PORT-1-2-1</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-2</name>
-            <config>
-              <name>PORT-1-2-2</name>
-            </config>
-            <state>
-              <name>PORT-1-2-2</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-3</name>
-            <config>
-              <name>PORT-1-2-3</name>
-            </config>
-            <state>
-              <name>PORT-1-2-3</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-4</name>
-            <config>
-              <name>PORT-1-2-4</name>
-            </config>
-            <state>
-              <name>PORT-1-2-4</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-9</name>
-            <config>
-              <name>PORT-1-2-9</name>
-            </config>
-            <state>
-              <name>PORT-1-2-9</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-13</name>
-            <config>
-              <name>PORT-1-2-13</name>
-            </config>
-            <state>
-              <name>PORT-1-2-13</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-17</name>
-            <config>
-              <name>PORT-1-2-17</name>
-            </config>
-            <state>
-              <name>PORT-1-2-17</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-21</name>
-            <config>
-              <name>PORT-1-2-21</name>
-            </config>
-            <state>
-              <name>PORT-1-2-21</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-25</name>
-            <config>
-              <name>PORT-1-2-25</name>
-            </config>
-            <state>
-              <name>PORT-1-2-25</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-33</name>
-            <config>
-              <name>PORT-1-2-33</name>
-            </config>
-            <state>
-              <name>PORT-1-2-33</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-37</name>
-            <config>
-              <name>PORT-1-2-37</name>
-            </config>
-            <state>
-              <name>PORT-1-2-37</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-41</name>
-            <config>
-              <name>PORT-1-2-41</name>
-            </config>
-            <state>
-              <name>PORT-1-2-41</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-45</name>
-            <config>
-              <name>PORT-1-2-45</name>
-            </config>
-            <state>
-              <name>PORT-1-2-45</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-49</name>
-            <config>
-              <name>PORT-1-2-49</name>
-            </config>
-            <state>
-              <name>PORT-1-2-49</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Card-1-2</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Card-1-2</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-linecard:linecard xmlns:oc-linecard="http://openconfig.net/yang/platform/linecard">
-          <oc-linecard:config>
-            <oc-linecard:power-admin-state>POWER_ENABLED</oc-linecard:power-admin-state>
-          </oc-linecard:config>
-          <oc-linecard:state>
-            <oc-linecard:power-admin-state>POWER_ENABLED</oc-linecard:power-admin-state>
-            <oc-linecard:slot-id>2</oc-linecard:slot-id>
-          </oc-linecard:state>
-        </oc-linecard:linecard>
-      </component>
-      <component>
-        <name>PORT-1-2-1</name>
-        <config>
-          <name>PORT-1-2-1</name>
-        </config>
-        <state>
-          <name>PORT-1-2-1</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>OTU4HALF_X5/1-2-1</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>OCH-1-2-1</name>
-            <config>
-              <name>OCH-1-2-1</name>
-            </config>
-            <state>
-              <name>OCH-1-2-1</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/1</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/1</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>OCH-1-2-1</name>
-        <config>
-          <name>OCH-1-2-1</name>
-        </config>
-        <state>
-          <name>OCH-1-2-1</name>
-          <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-          <id>OTU4HALF_X5/1-2-1</id>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <properties>
-          <property>
-            <name>BandCapable</name>
-            <config>
-              <name>BandCapable</name>
-            </config>
-            <state>
-              <name>BandCapable</name>
-              <value>C_BAND</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>FlexGridCapable</name>
-            <config>
-              <name>FlexGridCapable</name>
-            </config>
-            <state>
-              <name>FlexGridCapable</name>
-              <value>true</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MinFrequence_C_Band</name>
-            <config>
-              <name>MinFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MinFrequence_C_Band</name>
-              <value>191300000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MaxFrequence_C_Band</name>
-            <config>
-              <name>MaxFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MaxFrequence_C_Band</name>
-              <value>196050000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-        </properties>
-        <oc-opt-term:optical-channel xmlns:oc-opt-term="http://openconfig.net/yang/terminal-device">
-          <oc-opt-term:config>
-            <oc-opt-term:frequency>193000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>-1.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-          </oc-opt-term:config>
-          <oc-opt-term:state>
-            <oc-opt-term:frequency>193000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>-1.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-            <oc-opt-term:line-port>PORT-1-2-1</oc-opt-term:line-port>
-            <oc-opt-term:output-power>
-              <oc-opt-term:instant>-1.15</oc-opt-term:instant>
-              <oc-opt-term:avg>-1.13</oc-opt-term:avg>
-              <oc-opt-term:min>-1.15</oc-opt-term:min>
-              <oc-opt-term:max>-1.11</oc-opt-term:max>
-            </oc-opt-term:output-power>
-            <oc-opt-term:input-power>
-              <oc-opt-term:instant>-14.51</oc-opt-term:instant>
-              <oc-opt-term:avg>-14.49</oc-opt-term:avg>
-              <oc-opt-term:min>-14.51</oc-opt-term:min>
-              <oc-opt-term:max>-14.47</oc-opt-term:max>
-            </oc-opt-term:input-power>
-            <oc-opt-term:chromatic-dispersion>
-              <oc-opt-term:instant>-20.0</oc-opt-term:instant>
-              <oc-opt-term:avg>-20.0</oc-opt-term:avg>
-              <oc-opt-term:min>-20.0</oc-opt-term:min>
-              <oc-opt-term:max>-20.0</oc-opt-term:max>
-            </oc-opt-term:chromatic-dispersion>
-          </oc-opt-term:state>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-              <n-oc-telem-ext:differential-group-delay>
-                <n-oc-telem-ext:instant>0.6</n-oc-telem-ext:instant>
-                <n-oc-telem-ext:avg>1.4</n-oc-telem-ext:avg>
-                <n-oc-telem-ext:min>0.2</n-oc-telem-ext:min>
-                <n-oc-telem-ext:max>4.3</n-oc-telem-ext:max>
-              </n-oc-telem-ext:differential-group-delay>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-opt-term:optical-channel>
-      </component>
-      <component>
-        <name>PORT-1-2-2</name>
-        <config>
-          <name>PORT-1-2-2</name>
-        </config>
-        <state>
-          <name>PORT-1-2-2</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>OTU4HALF_X5/1-2-2</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>OCH-1-2-2</name>
-            <config>
-              <name>OCH-1-2-2</name>
-            </config>
-            <state>
-              <name>OCH-1-2-2</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/2</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/2</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>OCH-1-2-2</name>
-        <config>
-          <name>OCH-1-2-2</name>
-        </config>
-        <state>
-          <name>OCH-1-2-2</name>
-          <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-          <id>OTU4HALF_X5/1-2-2</id>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <properties>
-          <property>
-            <name>BandCapable</name>
-            <config>
-              <name>BandCapable</name>
-            </config>
-            <state>
-              <name>BandCapable</name>
-              <value>C_BAND</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>FlexGridCapable</name>
-            <config>
-              <name>FlexGridCapable</name>
-            </config>
-            <state>
-              <name>FlexGridCapable</name>
-              <value>true</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MinFrequence_C_Band</name>
-            <config>
-              <name>MinFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MinFrequence_C_Band</name>
-              <value>191300000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MaxFrequence_C_Band</name>
-            <config>
-              <name>MaxFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MaxFrequence_C_Band</name>
-              <value>196050000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-        </properties>
-        <oc-opt-term:optical-channel xmlns:oc-opt-term="http://openconfig.net/yang/terminal-device">
-          <oc-opt-term:config>
-            <oc-opt-term:frequency>194000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>-1.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-          </oc-opt-term:config>
-          <oc-opt-term:state>
-            <oc-opt-term:frequency>194000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>-1.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-            <oc-opt-term:line-port>PORT-1-2-2</oc-opt-term:line-port>
-            <oc-opt-term:output-power>
-              <oc-opt-term:instant>-1.13</oc-opt-term:instant>
-              <oc-opt-term:avg>-1.11</oc-opt-term:avg>
-              <oc-opt-term:min>-1.13</oc-opt-term:min>
-              <oc-opt-term:max>-1.09</oc-opt-term:max>
-            </oc-opt-term:output-power>
-            <oc-opt-term:input-power>
-              <oc-opt-term:instant>-14.47</oc-opt-term:instant>
-              <oc-opt-term:avg>-14.45</oc-opt-term:avg>
-              <oc-opt-term:min>-14.5</oc-opt-term:min>
-              <oc-opt-term:max>-14.41</oc-opt-term:max>
-            </oc-opt-term:input-power>
-            <oc-opt-term:chromatic-dispersion>
-              <oc-opt-term:instant>0.0</oc-opt-term:instant>
-              <oc-opt-term:avg>0.0</oc-opt-term:avg>
-              <oc-opt-term:min>0.0</oc-opt-term:min>
-              <oc-opt-term:max>0.0</oc-opt-term:max>
-            </oc-opt-term:chromatic-dispersion>
-          </oc-opt-term:state>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-              <n-oc-telem-ext:differential-group-delay>
-                <n-oc-telem-ext:instant>5.9</n-oc-telem-ext:instant>
-                <n-oc-telem-ext:avg>5.4</n-oc-telem-ext:avg>
-                <n-oc-telem-ext:min>4.5</n-oc-telem-ext:min>
-                <n-oc-telem-ext:max>6.4</n-oc-telem-ext:max>
-              </n-oc-telem-ext:differential-group-delay>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-opt-term:optical-channel>
-      </component>
-      <component>
-        <name>PORT-1-2-3</name>
-        <config>
-          <name>PORT-1-2-3</name>
-        </config>
-        <state>
-          <name>PORT-1-2-3</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>OTU4HALF_X5/1-2-3</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>OCH-1-2-3</name>
-            <config>
-              <name>OCH-1-2-3</name>
-            </config>
-            <state>
-              <name>OCH-1-2-3</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/3</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/3</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>OCH-1-2-3</name>
-        <config>
-          <name>OCH-1-2-3</name>
-        </config>
-        <state>
-          <name>OCH-1-2-3</name>
-          <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-          <id>OTU4HALF_X5/1-2-3</id>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <properties>
-          <property>
-            <name>BandCapable</name>
-            <config>
-              <name>BandCapable</name>
-            </config>
-            <state>
-              <name>BandCapable</name>
-              <value>C_BAND</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>FlexGridCapable</name>
-            <config>
-              <name>FlexGridCapable</name>
-            </config>
-            <state>
-              <name>FlexGridCapable</name>
-              <value>true</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MinFrequence_C_Band</name>
-            <config>
-              <name>MinFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MinFrequence_C_Band</name>
-              <value>191300000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MaxFrequence_C_Band</name>
-            <config>
-              <name>MaxFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MaxFrequence_C_Band</name>
-              <value>196050000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-        </properties>
-        <oc-opt-term:optical-channel xmlns:oc-opt-term="http://openconfig.net/yang/terminal-device">
-          <oc-opt-term:config>
-            <oc-opt-term:frequency>195000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>0.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-          </oc-opt-term:config>
-          <oc-opt-term:state>
-            <oc-opt-term:frequency>195000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>0.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-            <oc-opt-term:line-port>PORT-1-2-3</oc-opt-term:line-port>
-            <oc-opt-term:output-power>
-              <oc-opt-term:instant>-1.12</oc-opt-term:instant>
-              <oc-opt-term:avg>-1.12</oc-opt-term:avg>
-              <oc-opt-term:min>-1.12</oc-opt-term:min>
-              <oc-opt-term:max>-1.12</oc-opt-term:max>
-            </oc-opt-term:output-power>
-            <oc-opt-term:input-power>
-              <oc-opt-term:instant>-14.39</oc-opt-term:instant>
-              <oc-opt-term:avg>-14.39</oc-opt-term:avg>
-              <oc-opt-term:min>-14.39</oc-opt-term:min>
-              <oc-opt-term:max>-14.39</oc-opt-term:max>
-            </oc-opt-term:input-power>
-            <oc-opt-term:chromatic-dispersion>
-              <oc-opt-term:instant>0.0</oc-opt-term:instant>
-              <oc-opt-term:avg>0.0</oc-opt-term:avg>
-              <oc-opt-term:min>0.0</oc-opt-term:min>
-              <oc-opt-term:max>0.0</oc-opt-term:max>
-            </oc-opt-term:chromatic-dispersion>
-          </oc-opt-term:state>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-              <n-oc-telem-ext:differential-group-delay>
-                <n-oc-telem-ext:instant>5.1</n-oc-telem-ext:instant>
-                <n-oc-telem-ext:avg>5.1</n-oc-telem-ext:avg>
-                <n-oc-telem-ext:min>5.1</n-oc-telem-ext:min>
-                <n-oc-telem-ext:max>5.1</n-oc-telem-ext:max>
-              </n-oc-telem-ext:differential-group-delay>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-opt-term:optical-channel>
-      </component>
-      <component>
-        <name>PORT-1-2-4</name>
-        <config>
-          <name>PORT-1-2-4</name>
-        </config>
-        <state>
-          <name>PORT-1-2-4</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>OTU4HALF_X5/1-2-4</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>OCH-1-2-4</name>
-            <config>
-              <name>OCH-1-2-4</name>
-            </config>
-            <state>
-              <name>OCH-1-2-4</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/4</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/4</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>OCH-1-2-4</name>
-        <config>
-          <name>OCH-1-2-4</name>
-        </config>
-        <state>
-          <name>OCH-1-2-4</name>
-          <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-          <id>OTU4HALF_X5/1-2-4</id>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <properties>
-          <property>
-            <name>BandCapable</name>
-            <config>
-              <name>BandCapable</name>
-            </config>
-            <state>
-              <name>BandCapable</name>
-              <value>C_BAND</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>FlexGridCapable</name>
-            <config>
-              <name>FlexGridCapable</name>
-            </config>
-            <state>
-              <name>FlexGridCapable</name>
-              <value>true</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MinFrequence_C_Band</name>
-            <config>
-              <name>MinFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MinFrequence_C_Band</name>
-              <value>191300000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MaxFrequence_C_Band</name>
-            <config>
-              <name>MaxFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MaxFrequence_C_Band</name>
-              <value>196050000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-        </properties>
-        <oc-opt-term:optical-channel xmlns:oc-opt-term="http://openconfig.net/yang/terminal-device">
-          <oc-opt-term:config>
-            <oc-opt-term:frequency>196000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>0.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-          </oc-opt-term:config>
-          <oc-opt-term:state>
-            <oc-opt-term:frequency>196000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>0.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-            <oc-opt-term:line-port>PORT-1-2-4</oc-opt-term:line-port>
-            <oc-opt-term:output-power>
-              <oc-opt-term:instant>-1.13</oc-opt-term:instant>
-              <oc-opt-term:avg>-1.13</oc-opt-term:avg>
-              <oc-opt-term:min>-1.13</oc-opt-term:min>
-              <oc-opt-term:max>-1.13</oc-opt-term:max>
-            </oc-opt-term:output-power>
-            <oc-opt-term:input-power>
-              <oc-opt-term:instant>-14.48</oc-opt-term:instant>
-              <oc-opt-term:avg>-14.48</oc-opt-term:avg>
-              <oc-opt-term:min>-14.48</oc-opt-term:min>
-              <oc-opt-term:max>-14.48</oc-opt-term:max>
-            </oc-opt-term:input-power>
-            <oc-opt-term:chromatic-dispersion>
-              <oc-opt-term:instant>0.0</oc-opt-term:instant>
-              <oc-opt-term:avg>0.0</oc-opt-term:avg>
-              <oc-opt-term:min>0.0</oc-opt-term:min>
-              <oc-opt-term:max>0.0</oc-opt-term:max>
-            </oc-opt-term:chromatic-dispersion>
-          </oc-opt-term:state>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-              <n-oc-telem-ext:differential-group-delay>
-                <n-oc-telem-ext:instant>3.0</n-oc-telem-ext:instant>
-                <n-oc-telem-ext:avg>3.0</n-oc-telem-ext:avg>
-                <n-oc-telem-ext:min>3.0</n-oc-telem-ext:min>
-                <n-oc-telem-ext:max>3.0</n-oc-telem-ext:max>
-              </n-oc-telem-ext:differential-group-delay>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-opt-term:optical-channel>
-      </component>
-      <component>
-        <name>PORT-1-2-9</name>
-        <config>
-          <name>PORT-1-2-9</name>
-        </config>
-        <state>
-          <name>PORT-1-2-9</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-9</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-9</name>
-            <config>
-              <name>TRANSCEIVER-1-2-9</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-9</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/9</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/9</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-9</name>
-        <config>
-          <name>TRANSCEIVER-1-2-9</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-9</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>Q28LR4D/1-2-9</id>
-          <mfg-name>NOK </mfg-name>
-          <hardware-version>Q28LR4D </hardware-version>
-          <serial-no>FG022527001C-Q  </serial-no>
-          <part-no>############  </part-no>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>PRESENT</oc-transceiver:present>
-            <oc-transceiver:form-factor xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</oc-transceiver:form-factor>
-            <oc-transceiver:connector-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:LC_CONNECTOR</oc-transceiver:connector-type>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:vendor>NOK</oc-transceiver:vendor>
-            <oc-transceiver:vendor-part>############</oc-transceiver:vendor-part>
-            <oc-transceiver:vendor-rev>LQ</oc-transceiver:vendor-rev>
-            <oc-transceiver:ethernet-pmd xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:ETH_100GBASE_LR4</oc-transceiver:ethernet-pmd>
-            <oc-transceiver:serial-no>FG022527001C-Q</oc-transceiver:serial-no>
-            <!--oc-transceiver:date-code>2016-04-26T00:00:00Z+00:00</oc-transceiver:date-code-->
-            <oc-transceiver:fault-condition>false</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>6.53</oc-transceiver:instant>
-              <oc-transceiver:avg>6.53</oc-transceiver:avg>
-              <oc-transceiver:min>6.53</oc-transceiver:min>
-              <oc-transceiver:max>6.53</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>7.35</oc-transceiver:instant>
-              <oc-transceiver:avg>7.35</oc-transceiver:avg>
-              <oc-transceiver:min>7.35</oc-transceiver:min>
-              <oc-transceiver:max>7.35</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels>
-            <oc-transceiver:channel>
-              <oc-transceiver:index>1</oc-transceiver:index>
-              <oc-transceiver:config>
-                <oc-transceiver:index>1</oc-transceiver:index>
-              </oc-transceiver:config>
-              <oc-transceiver:state>
-                <oc-transceiver:index>1</oc-transceiver:index>
-                <oc-transceiver:output-frequency>228999540</oc-transceiver:output-frequency>
-              </oc-transceiver:state>
-            </oc-transceiver:channel>
-            <oc-transceiver:channel>
-              <oc-transceiver:index>2</oc-transceiver:index>
-              <oc-transceiver:config>
-                <oc-transceiver:index>2</oc-transceiver:index>
-              </oc-transceiver:config>
-              <oc-transceiver:state>
-                <oc-transceiver:index>2</oc-transceiver:index>
-                <oc-transceiver:output-frequency>229799980</oc-transceiver:output-frequency>
-              </oc-transceiver:state>
-            </oc-transceiver:channel>
-            <oc-transceiver:channel>
-              <oc-transceiver:index>3</oc-transceiver:index>
-              <oc-transceiver:config>
-                <oc-transceiver:index>3</oc-transceiver:index>
-              </oc-transceiver:config>
-              <oc-transceiver:state>
-                <oc-transceiver:index>3</oc-transceiver:index>
-                <oc-transceiver:output-frequency>230600714</oc-transceiver:output-frequency>
-              </oc-transceiver:state>
-            </oc-transceiver:channel>
-            <oc-transceiver:channel>
-              <oc-transceiver:index>4</oc-transceiver:index>
-              <oc-transceiver:config>
-                <oc-transceiver:index>4</oc-transceiver:index>
-              </oc-transceiver:config>
-              <oc-transceiver:state>
-                <oc-transceiver:index>4</oc-transceiver:index>
-                <oc-transceiver:output-frequency>231399903</oc-transceiver:output-frequency>
-              </oc-transceiver:state>
-            </oc-transceiver:channel>
-          </oc-transceiver:physical-channels>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-13</name>
-        <config>
-          <name>PORT-1-2-13</name>
-        </config>
-        <state>
-          <name>PORT-1-2-13</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-13</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-13</name>
-            <config>
-              <name>TRANSCEIVER-1-2-13</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-13</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/13</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/13</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-13</name>
-        <config>
-          <name>TRANSCEIVER-1-2-13</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-13</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-13</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-17</name>
-        <config>
-          <name>PORT-1-2-17</name>
-        </config>
-        <state>
-          <name>PORT-1-2-17</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-17</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-17</name>
-            <config>
-              <name>TRANSCEIVER-1-2-17</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-17</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/17</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/17</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-17</name>
-        <config>
-          <name>TRANSCEIVER-1-2-17</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-17</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-17</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-21</name>
-        <config>
-          <name>PORT-1-2-21</name>
-        </config>
-        <state>
-          <name>PORT-1-2-21</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-21</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-21</name>
-            <config>
-              <name>TRANSCEIVER-1-2-21</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-21</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/21</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/21</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-21</name>
-        <config>
-          <name>TRANSCEIVER-1-2-21</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-21</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-21</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-25</name>
-        <config>
-          <name>PORT-1-2-25</name>
-        </config>
-        <state>
-          <name>PORT-1-2-25</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-25</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-25</name>
-            <config>
-              <name>TRANSCEIVER-1-2-25</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-25</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/25</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/25</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-25</name>
-        <config>
-          <name>TRANSCEIVER-1-2-25</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-25</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-25</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-33</name>
-        <config>
-          <name>PORT-1-2-33</name>
-        </config>
-        <state>
-          <name>PORT-1-2-33</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-33</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-33</name>
-            <config>
-              <name>TRANSCEIVER-1-2-33</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-33</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/33</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/33</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-33</name>
-        <config>
-          <name>TRANSCEIVER-1-2-33</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-33</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-33</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-37</name>
-        <config>
-          <name>PORT-1-2-37</name>
-        </config>
-        <state>
-          <name>PORT-1-2-37</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-37</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-37</name>
-            <config>
-              <name>TRANSCEIVER-1-2-37</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-37</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/37</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/37</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-37</name>
-        <config>
-          <name>TRANSCEIVER-1-2-37</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-37</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-37</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-41</name>
-        <config>
-          <name>PORT-1-2-41</name>
-        </config>
-        <state>
-          <name>PORT-1-2-41</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-41</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-41</name>
-            <config>
-              <name>TRANSCEIVER-1-2-41</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-41</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/41</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/41</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-41</name>
-        <config>
-          <name>TRANSCEIVER-1-2-41</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-41</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-41</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-45</name>
-        <config>
-          <name>PORT-1-2-45</name>
-        </config>
-        <state>
-          <name>PORT-1-2-45</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-45</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-45</name>
-            <config>
-              <name>TRANSCEIVER-1-2-45</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-45</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/45</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/45</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-45</name>
-        <config>
-          <name>TRANSCEIVER-1-2-45</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-45</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-45</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-49</name>
-        <config>
-          <name>PORT-1-2-49</name>
-        </config>
-        <state>
-          <name>PORT-1-2-49</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-49</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-49</name>
-            <config>
-              <name>TRANSCEIVER-1-2-49</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-49</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/49</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/49</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-49</name>
-        <config>
-          <name>TRANSCEIVER-1-2-49</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-49</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-49</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-    </components>
-  </data>
-
diff --git a/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/result.xml b/tests/honeynode/1.2.1/honeynode-plugin-impl/src/test/resources/result.xml
deleted file mode 100644 (file)
index 0022315..0000000
+++ /dev/null
@@ -1,2060 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <!--netconf xmlns="urn:ietf:params:xml:ns:netmod:notification" />
-  <org-openroadm-device xmlns="http://org/openroadm/device" />
-    <info>
-      <node-id>XPDRA</node-id>
-      <node-number>1</node-number>
-      <node-type>xpdr</node-type>
-      <clli>NodeA</clli>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00001</serial-id>
-      <ipAddress>127.0.0.10</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.10</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <macAddress>aa:aa:aa:aa:aa:aa</macAddress>
-      <softwareVersion>1.0</softwareVersion>
-      <template>TPCE-XPDR001</template>
-      <current-datetime>2017-08-29T15:58:01+00:00</current-datetime>
-      <geoLocation>
-        <latitude>33</latitude>
-        <longitude>-96</longitude>
-      </geoLocation>
-    </info>
-  </org-openroadm-device-->
-  <components xmlns="http://openconfig.net/yang/platform">
-    <component>
-    <name>TRANSCEIVER-1-2-49</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-49</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-49</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">true</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-49</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <output-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </output-power>
-        <input-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </input-power>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-33</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/33</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/33</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-33</id>
-      <description/>
-      <name>PORT-1-2-33</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-33</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-33</name>
-        <state>
-          <name>TRANSCEIVER-1-2-33</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-33</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-13</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/13</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/13</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-13</id>
-      <description/>
-      <name>PORT-1-2-13</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-13</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-13</name>
-        <state>
-          <name>TRANSCEIVER-1-2-13</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-13</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-45</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-45</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-45</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-45</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-25</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-25</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-25</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-25</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-37</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/37</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/37</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-37</id>
-      <description/>
-      <name>PORT-1-2-37</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-37</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-37</name>
-        <state>
-          <name>TRANSCEIVER-1-2-37</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-37</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-4</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/4</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/4</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-4</id>
-      <description/>
-      <name>PORT-1-2-4</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-4</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-4</name>
-        <state>
-          <name>OCH-1-2-4</name>
-        </state>
-        <config>
-          <name>OCH-1-2-4</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-17</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/17</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/17</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-17</id>
-      <description/>
-      <name>PORT-1-2-17</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-17</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-17</name>
-        <state>
-          <name>TRANSCEIVER-1-2-17</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-17</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-9</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/9</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/9</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>100GIGE_LANETH/1-2-9</id>
-      <description/>
-      <name>PORT-1-2-9</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>DISABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>DISABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-9</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-9</name>
-        <state>
-          <name>TRANSCEIVER-1-2-9</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-9</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-9</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-9</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-9</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-9</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <output-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </output-power>
-        <input-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </input-power>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-41</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-41</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-41</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-41</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-21</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-21</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-21</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-21</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>SYSTEM-SOFTWARE</name>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:OPERATING_SYSTEM</type>
-      <description>Nokia 1830 PSI v2.0 SONET ADM</description>
-      <software-version>1830PSS-19.27-20</software-version>
-      <name>SYSTEM-SOFTWARE</name>
-    </state>
-    <config>
-      <name>SYSTEM-SOFTWARE</name>
-    </config>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-17</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-17</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-17</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-17</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-21</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/21</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/21</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-21</id>
-      <description/>
-      <name>PORT-1-2-21</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-21</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-21</name>
-        <state>
-          <name>TRANSCEIVER-1-2-21</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-21</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-45</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/45</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/45</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-45</id>
-      <description/>
-      <name>PORT-1-2-45</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-45</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-45</name>
-        <state>
-          <name>TRANSCEIVER-1-2-45</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-45</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-13</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-13</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-13</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-13</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-25</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/25</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/25</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-25</id>
-      <description/>
-      <name>PORT-1-2-25</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-25</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-25</name>
-        <state>
-          <name>TRANSCEIVER-1-2-25</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-25</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-37</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-37</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-37</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-37</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-49</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/49</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/49</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>100GIGE_LANETH/1-2-49</id>
-      <description/>
-      <name>PORT-1-2-49</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-49</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-49</name>
-        <state>
-          <name>TRANSCEIVER-1-2-49</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-49</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>OCH-1-2-2</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>OTU4/1-2-2</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-2</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <target-output-power>-20.0</target-output-power>
-        <input-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </input-power>
-        <chromatic-dispersion>
-          <max>100.0</max>
-          <instant>100.0</instant>
-          <avg>100.0</avg>
-          <min>100.0</min>
-        </chromatic-dispersion>
-        <operational-mode>34</operational-mode>
-        <output-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </output-power>
-        <line-port>PORT-1-2-2</line-port>
-        <frequency>0</frequency>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-          <differential-group-delay>
-            <instant>20.0</instant>
-            <max>20.0</max>
-            <avg>20.0</avg>
-            <min>20.0</min>
-          </differential-group-delay>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>34</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-2</name>
-    </config>
-  </component>
-    <component>
-    <name>OCH-1-2-1</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>OTU4/1-2-1</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-1</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <target-output-power>-10.0</target-output-power>
-        <input-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </input-power>
-        <chromatic-dispersion>
-          <max>100.0</max>
-          <instant>100.0</instant>
-          <avg>100.0</avg>
-          <min>100.0</min>
-        </chromatic-dispersion>
-        <operational-mode>34</operational-mode>
-        <output-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </output-power>
-        <line-port>PORT-1-2-1</line-port>
-        <frequency>191700000</frequency>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-          <differential-group-delay>
-            <instant>20.0</instant>
-            <max>20.0</max>
-            <avg>20.0</avg>
-            <min>20.0</min>
-          </differential-group-delay>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>191700000</frequency>
-        <target-output-power>-10.0</target-output-power>
-        <operational-mode>34</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-1</name>
-    </config>
-  </component>
-    <component>
-    <name>OCH-1-2-4</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>UNASSIGNED/1-2-4</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-4</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <line-port>PORT-1-2-4</line-port>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-4</name>
-    </config>
-  </component>
-    <component>
-    <name>OCH-1-2-3</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>UNASSIGNED/1-2-3</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-3</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <line-port>PORT-1-2-3</line-port>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-3</name>
-    </config>
-  </component>
-    <component>
-    <name>PORT-1-2-1</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/1</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/1</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>OTU4/1-2-1</id>
-      <description/>
-      <name>PORT-1-2-1</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-1</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-1</name>
-        <state>
-          <name>OCH-1-2-1</name>
-        </state>
-        <config>
-          <name>OCH-1-2-1</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>CARD-1-2</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Card-1-2</name>
-        <description/>
-      </state>
-      <config>
-        <name>Card-1-2</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <linecard xmlns="http://openconfig.net/yang/platform/linecard">
-      <state>
-        <power-admin-state>POWER_ENABLED</power-admin-state>
-        <slot-id>2</slot-id>
-      </state>
-      <config>
-        <power-admin-state>POWER_ENABLED</power-admin-state>
-      </config>
-    </linecard>
-    <properties>
-      <property>
-        <name>CardMode</name>
-        <state>
-          <configurable>true</configurable>
-          <name>CardMode</name>
-          <value>ETH_100G</value>
-        </state>
-        <config>
-          <name>CardMode</name>
-          <value>ETH_100G</value>
-        </config>
-      </property>
-      <property>
-        <name>InterworkingMode</name>
-        <state>
-          <configurable>true</configurable>
-          <name>InterworkingMode</name>
-          <value>LEGACY</value>
-        </state>
-        <config>
-          <name>InterworkingMode</name>
-          <value>LEGACY</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <mfg-name>NOK</mfg-name>
-      <id>Card-1-2</id>
-      <serial-no>MV12345678</serial-no>
-      <name>CARD-1-2</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:LINECARD</type>
-      <temperature>
-        <instant>0.0</instant>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <description/>
-      <hardware-version>OTLCI2000</hardware-version>
-      <part-no>8DG59339AAAA01</part-no>
-    </state>
-    <config>
-      <name>CARD-1-2</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>PORT-1-2-4</name>
-        <state>
-          <name>PORT-1-2-4</name>
-        </state>
-        <config>
-          <name>PORT-1-2-4</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-9</name>
-        <state>
-          <name>PORT-1-2-9</name>
-        </state>
-        <config>
-          <name>PORT-1-2-9</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-41</name>
-        <state>
-          <name>PORT-1-2-41</name>
-        </state>
-        <config>
-          <name>PORT-1-2-41</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-17</name>
-        <state>
-          <name>PORT-1-2-17</name>
-        </state>
-        <config>
-          <name>PORT-1-2-17</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-33</name>
-        <state>
-          <name>PORT-1-2-33</name>
-        </state>
-        <config>
-          <name>PORT-1-2-33</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-45</name>
-        <state>
-          <name>PORT-1-2-45</name>
-        </state>
-        <config>
-          <name>PORT-1-2-45</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-21</name>
-        <state>
-          <name>PORT-1-2-21</name>
-        </state>
-        <config>
-          <name>PORT-1-2-21</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-1</name>
-        <state>
-          <name>PORT-1-2-1</name>
-        </state>
-        <config>
-          <name>PORT-1-2-1</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-37</name>
-        <state>
-          <name>PORT-1-2-37</name>
-        </state>
-        <config>
-          <name>PORT-1-2-37</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-49</name>
-        <state>
-          <name>PORT-1-2-49</name>
-        </state>
-        <config>
-          <name>PORT-1-2-49</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-3</name>
-        <state>
-          <name>PORT-1-2-3</name>
-        </state>
-        <config>
-          <name>PORT-1-2-3</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-13</name>
-        <state>
-          <name>PORT-1-2-13</name>
-        </state>
-        <config>
-          <name>PORT-1-2-13</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-2</name>
-        <state>
-          <name>PORT-1-2-2</name>
-        </state>
-        <config>
-          <name>PORT-1-2-2</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-25</name>
-        <state>
-          <name>PORT-1-2-25</name>
-        </state>
-        <config>
-          <name>PORT-1-2-25</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-2</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/2</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/2</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>OTU4/1-2-2</id>
-      <description/>
-      <name>PORT-1-2-2</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-2</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-2</name>
-        <state>
-          <name>OCH-1-2-2</name>
-        </state>
-        <config>
-          <name>OCH-1-2-2</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-3</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/3</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/3</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-3</id>
-      <description/>
-      <name>PORT-1-2-3</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-3</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-3</name>
-        <state>
-          <name>OCH-1-2-3</name>
-        </state>
-        <config>
-          <name>OCH-1-2-3</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-33</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-33</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-33</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-33</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>CHASSIS-1</name>
-    <state>
-      <mfg-name/>
-      <id>Master Shelf</id>
-      <serial-no/>
-      <name>CHASSIS-1</name>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:CHASSIS</type>
-      <description/>
-      <hardware-version>PSI2T</hardware-version>
-      <part-no/>
-    </state>
-    <config>
-      <name>CHASSIS-1</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>CARD-1-2</name>
-        <state>
-          <name>CARD-1-2</name>
-        </state>
-        <config>
-          <name>CARD-1-2</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Master Shelf</name>
-        <description/>
-      </state>
-      <config>
-        <name>Master Shelf</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-  </component>
-    <component>
-    <name>PORT-1-2-41</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/41</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/41</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-41</id>
-      <description/>
-      <name>PORT-1-2-41</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-41</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-41</name>
-        <state>
-          <name>TRANSCEIVER-1-2-41</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-41</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  </components>
-
-  <!--terminal-device xmlns="http://openconfig.net/yang/terminal-device"/-->
-
-</data>
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/asciidoc/Readme.adoc b/tests/honeynode/1.2.1/minimal-distribution-core/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index e8306c2..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-= minimal-distribution-core
-
-Project contains core modules for minimal distribution
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/pom.xml b/tests/honeynode/1.2.1/minimal-distribution-core/pom.xml
deleted file mode 100644 (file)
index 347fa32..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ~ Copyright (c) 2017 Cisco and/or its affiliates. ~ ~ Licensed under
-    the Apache License, Version 2.0 (the "License"); ~ you may not use this file
-    except in compliance with the License. ~ You may obtain a copy of the License
-    at: ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by
-    applicable law or agreed to in writing, software ~ distributed under the
-    License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS
-    OF ANY KIND, either express or implied. ~ See the License for the specific
-    language governing permissions and ~ limitations under the License. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>impl-parent</artifactId>
-        <groupId>io.fd.honeycomb.common</groupId>
-        <version>1.19.04</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>io.fd.honeycomb.transportpce</groupId>
-    <artifactId>minimal-distribution-core</artifactId>
-    <name>${project.artifactId}</name>
-    <properties>
-        <commons-io.version>2.5</commons-io.version>
-        <osgi.core.version>5.0.0</osgi.core.version>
-        <!-- Core guice modules does not need any yang modules itself -->
-        <skip.module.list.generation>true</skip.module.list.generation>
-        <honeycomb.version>1.19.04</honeycomb.version>
-        <java.version>11</java.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <maven.javadoc.skip>true</maven.javadoc.skip>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-    </properties>
-    <dependencies>
-        <!-- DI -->
-        <dependency>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>net.jmob</groupId>
-            <artifactId>guice.conf</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.inject.extensions</groupId>
-            <artifactId>guice-multibindings</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>binding-init</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- ODL -->
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-data-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-core-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-broker-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-broker-impl</artifactId>
-        </dependency>
-        <!-- OSGI Even tough not running in OSGI, dependency needs to be here since
-            some deprecated MD-SAL APIs rely on osgi core -->
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <version>${osgi.core.version}</version>
-        </dependency>
-        <!-- Northbound -->
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound</groupId>
-            <artifactId>common</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- HC -->
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>cfg-init</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>notification-api</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>rpc-impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>data-impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>honeycomb-impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>notification-impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- Utilities -->
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>${commons-io.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.javassist</groupId>
-            <artifactId>javassist</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>javax.activation</groupId>
-            <artifactId>activation</artifactId>
-            <version>1.1.1</version>
-        </dependency>
-    </dependencies>
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.8.1</version>
-                    <configuration>
-                        <source>${java.version}</source>
-                        <target>${java.version}</target>
-                    </configuration>
-                </plugin>
-                <!--This plugin's configuration is used to store Eclipse m2e settings
-                    only. It has no influence on the Maven build itself. -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmaven</groupId>
-                                        <artifactId>groovy-maven-plugin</artifactId>
-                                        <versionRange>[2.0,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-checkstyle-plugin</artifactId>
-                                        <versionRange>[3.0.0,)</versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-dependency-plugin</artifactId>
-                                        <versionRange>[2.10,)</versionRange>
-                                        <goals>
-                                            <goal>copy-dependencies</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmavenplus</groupId>
-                                        <artifactId>gmavenplus-plugin</artifactId>
-                                        <versionRange>[1.6.2,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/InitializationException.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/InitializationException.java
deleted file mode 100644 (file)
index 0ed530c..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro;
-
-/**
- * Exception thrown when a failure occurs during HC initialization.
- */
-public class InitializationException extends RuntimeException {
-
-    public InitializationException(final String s) {
-        super(s);
-    }
-
-    public InitializationException(final String s, final Throwable throwable) {
-        super(s, throwable);
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActivationConfig.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActivationConfig.java
deleted file mode 100644 (file)
index ecda4ae..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.activation;
-
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-import java.util.Optional;
-
-@BindConfig(value = "activation", syntax = Syntax.JSON)
-public class ActivationConfig {
-
-    @InjectConfig("modules-resource-path")
-    public String modulesResourcePath;
-
-    @InjectConfig("yang-modules-index-path")
-    public String yangModulesIndexPath;
-
-    public String getModulesResourcePath() {
-        return Optional.ofNullable(modulesResourcePath).orElse("../modules/");
-    }
-
-    public String getYangModulesIndexPath() {
-        return Optional.ofNullable(yangModulesIndexPath).orElse("../yang-mapping/");
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActivationModule.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActivationModule.java
deleted file mode 100644 (file)
index 00f77a6..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.activation;
-
-import com.google.inject.AbstractModule;
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-/**
- * Module that provides set of modules activated by distribution and binds this set to be available
- */
-public class ActivationModule extends AbstractModule {
-    @Override
-    protected void configure() {
-        install(ConfigurationModule.create());
-        requestInjection(ActivationConfig.class);
-        bind(ActiveModules.class).toProvider(ActiveModuleProvider.class).asEagerSingleton();
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActiveModuleProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActiveModuleProvider.java
deleted file mode 100644 (file)
index 643af16..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.activation;
-
-import com.google.inject.Inject;
-import com.google.inject.Module;
-import com.google.inject.Provider;
-import io.fd.honeycomb.infra.distro.schema.ResourceLoader;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import javax.annotation.Nonnull;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Provides list of active modules for distribution
- */
-public class ActiveModuleProvider implements Provider<ActiveModules>, ResourceLoader {
-
-    private static final Logger LOG = LoggerFactory.getLogger(ActiveModuleProvider.class);
-
-    @Inject
-    private ActivationConfig config;
-
-    @Override
-    public ActiveModules get() {
-        return new ActiveModules(loadActiveModules(
-                aggregateResources(config.getModulesResourcePath())));
-    }
-
-    /**
-     * Provide unique set of active modules filtered from provided resources
-     */
-    static Set<Class<? extends Module>> loadActiveModules(@Nonnull final List<String> moduleNames) {
-        final ClassLoader classLoader = ActiveModuleProvider.class.getClassLoader();
-        LOG.info("Reading active modules configuration for distribution");
-
-        // process resources to resource modules
-        return moduleNames.stream()
-                .map(String::trim)
-                .filter(trimmedLine -> trimmedLine.length() != 0)
-                // filter out commented lines
-                .filter(nonEmptyLine -> !nonEmptyLine.startsWith("//"))
-                // filter duplicates
-                .distinct()
-                .map(validLine -> moduleNameToClass(validLine, classLoader))
-                // filters out classes that are not modules
-                .filter(ActiveModuleProvider::filterNonModules)
-                .collect(Collectors.toSet());
-    }
-
-    /**
-     * Aggregate all resources from provided relative path into a {@code List<String>}
-     */
-    public List<String> aggregateResources(final String relativePath) {
-        // must use universal approach of loading from folder/jar
-        // because of memory footprint benchmark
-        return new ArrayList<>(loadResourceContentsOnPath(relativePath));
-    }
-
-    private static boolean filterNonModules(final Class<?> clazz) {
-        final boolean isModule = Module.class.isAssignableFrom(clazz);
-        if (!isModule) {
-            LOG.warn("Class {} is provided in modules configuration, but is not a Module and will be ignored", clazz);
-        }
-        return isModule;
-    }
-
-    /**
-     * Loads class by provided name
-     */
-    private static Class<? extends Module> moduleNameToClass(final String name,
-                                                             final ClassLoader classLoader) {
-        try {
-            LOG.debug("Loading module class {}", name);
-            return (Class<? extends Module>) classLoader.loadClass(name);
-        } catch (ClassNotFoundException e) {
-            LOG.error("Unable to convert {} to class, make sure you've provided sources to classpath", name);
-            throw new IllegalStateException(
-                    "Unable to convert " + name + " to class, make sure you've provided sources to classpath", e);
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActiveModules.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActiveModules.java
deleted file mode 100644 (file)
index 601e9b6..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.activation;
-
-import com.google.inject.Module;
-
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import static java.lang.String.format;
-
-/**
- * Provides static set of active activeModulesClasses
- */
-public class ActiveModules {
-    private final Set<Class<? extends Module>> activeModulesClasses;
-
-    public ActiveModules(final Set<Class<? extends Module>> activeModulesClasses) {
-        this.activeModulesClasses = activeModulesClasses;
-    }
-
-    public Set<Class<? extends Module>> getActiveModulesClasses() {
-        return activeModulesClasses;
-    }
-
-    public Set<? extends Module> createModuleInstances() {
-        return activeModulesClasses.stream()
-                .map(moduleClass -> {
-                    try {
-                        return moduleClass.newInstance();
-                    } catch (InstantiationException | IllegalAccessException e) {
-                        throw new IllegalStateException(format("Unable to create instance of module %s", moduleClass),
-                                e);
-                    }
-                }).collect(Collectors.toSet());
-    }
-
-    @Override
-    public String toString() {
-        return "ActiveModules{" +
-                "activeModulesClasses=" + activeModulesClasses +
-                '}';
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/cfgattrs/CfgAttrsModule.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/cfgattrs/CfgAttrsModule.java
deleted file mode 100644 (file)
index 29e79a2..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.cfgattrs;
-
-import com.google.inject.AbstractModule;
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-/**
- * Load the configuration from json into HoneycombConfiguration and make it available.
- */
-public class CfgAttrsModule extends AbstractModule {
-
-    @Override
-    protected void configure() {
-        install(ConfigurationModule.create());
-        // Inject non-dependency configuration
-        requestInjection(HoneycombConfiguration.class);
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/cfgattrs/HoneycombConfiguration.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/cfgattrs/HoneycombConfiguration.java
deleted file mode 100644 (file)
index cfe1408..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.cfgattrs;
-
-import com.google.common.base.MoreObjects;
-import java.util.Optional;
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-/**
- * This is the Java equivalent for honeyconb.json file. We use guice-config library to load all the config attributes
- * into this class instance.
- *
- * The BindConfig annotation tells that honeycomb.json file should be looked up on classpath root.
- */
-@BindConfig(value = "honeycomb", syntax = Syntax.JSON)
-public class HoneycombConfiguration {
-
-    @InjectConfig("persist-context")
-    public Optional<String> persistContext = Optional.of("true");
-    @InjectConfig("persisted-context-path")
-    public String peristContextPath;
-    @InjectConfig("persisted-context-restoration-type")
-    public String persistedContextRestorationType;
-    @InjectConfig("persist-config")
-    public Optional<String> persistConfig = Optional.of("true");
-    @InjectConfig("persisted-config-path")
-    public String peristConfigPath;
-    @InjectConfig("persisted-config-restoration-type")
-    public String persistedConfigRestorationType;
-    @InjectConfig("notification-service-queue-depth")
-    public int notificationServiceQueueDepth;
-
-    public boolean isConfigPersistenceEnabled() {
-        return persistConfig.isPresent() && Boolean.valueOf(persistConfig.get());
-    }
-
-    public boolean isContextPersistenceEnabled() {
-        return persistContext.isPresent() && Boolean.valueOf(persistContext.get());
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-            .add("peristContextPath", peristContextPath)
-            .add("persistedContextRestorationType", persistedContextRestorationType)
-            .add("peristConfigPath", peristConfigPath)
-            .add("persistedConfigRestorationType", persistedConfigRestorationType)
-            .add("notificationServiceQueueDepth", notificationServiceQueueDepth)
-            .toString();
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/BindingDataBrokerProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/BindingDataBrokerProvider.java
deleted file mode 100644 (file)
index 1a95ee1..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataBrokerAdapter;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-
-public final class BindingDataBrokerProvider extends ProviderTrait<DataBroker> {
-
-    @Inject
-    private DOMDataBroker domDataBroker;
-    @Inject
-    private BindingToNormalizedNodeCodec mappingService;
-
-    @Override
-    protected BindingDOMDataBrokerAdapter create() {
-        return new BindingDOMDataBrokerAdapter(domDataBroker, mappingService);
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ConfigAndOperationalPipelineModule.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ConfigAndOperationalPipelineModule.java
deleted file mode 100644 (file)
index a98b220..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (c) 2016, 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.PrivateModule;
-import com.google.inject.Singleton;
-import com.google.inject.name.Names;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.ReadableDataManager;
-import io.fd.honeycomb.data.init.DataTreeInitializer;
-import io.fd.honeycomb.data.init.ShutdownHandler;
-import io.fd.honeycomb.impl.EmptyDomMountService;
-import io.fd.honeycomb.infra.distro.data.config.WriterRegistryProvider;
-import io.fd.honeycomb.infra.distro.data.oper.ReadableDTDelegProvider;
-import io.fd.honeycomb.infra.distro.data.oper.ReaderRegistryProvider;
-import io.fd.honeycomb.rpc.RpcRegistry;
-import io.fd.honeycomb.rpc.RpcRegistryBuilder;
-import io.fd.honeycomb.translate.read.registry.ReaderRegistry;
-import io.fd.honeycomb.translate.write.registry.WriterRegistry;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.api.DOMMountPointService;
-import org.opendaylight.mdsal.dom.api.DOMRpcService;
-import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-
-public class ConfigAndOperationalPipelineModule extends PrivateModule {
-
-    public static final String HONEYCOMB_CONFIG_NONPERSIST = "honeycomb-config-nopersist";
-    public static final String HONEYCOMB_CONFIG = "honeycomb-config";
-
-    @Override
-    protected void configure() {
-        bind(ShutdownHandler.class).toProvider(ShutdownHandlerProvider.class).in(Singleton.class);
-        expose(ShutdownHandler.class);
-
-        // Mount point service is required by notification service and restconf
-        bind(DOMMountPointService.class).to(EmptyDomMountService.class).in(Singleton.class);
-        expose(DOMMountPointService.class);
-
-        // Expose registries for plugin reader/writer factories
-        bind(WriterRegistry.class).toProvider(WriterRegistryProvider.class).in(Singleton.class);
-        expose(WriterRegistry.class);
-        bind(ReaderRegistry.class).toProvider(ReaderRegistryProvider.class).in(Singleton.class);
-        expose(ReaderRegistry.class);
-
-        // Non persisting data tree for config
-        bind(DataTree.class).annotatedWith(Names.named(HONEYCOMB_CONFIG_NONPERSIST))
-                .toProvider(DataTreeProvider.ConfigDataTreeProvider.class).in(Singleton.class);
-        expose(DataTree.class).annotatedWith(Names.named(HONEYCOMB_CONFIG_NONPERSIST));
-        // Persisting data tree wrapper for config
-        bind(DataTree.class).annotatedWith(Names.named(HONEYCOMB_CONFIG))
-                .toProvider(PersistingDataTreeProvider.ConfigPersistingDataTreeProvider.class).in(Singleton.class);
-        expose(DataTree.class).annotatedWith(Names.named(HONEYCOMB_CONFIG));
-
-        // Config Data Tree manager working on top of config data tree + writer registry
-        bind(ModifiableDataManager.class).toProvider(ModifiableDTDelegProvider.class).in(Singleton.class);
-        // Operational Data Tree manager working on top of reader registry
-        bind(ReadableDataManager.class).toProvider(ReadableDTDelegProvider.class).in(Singleton.class);
-        expose(ReadableDataManager.class);
-
-        // DOMDataBroker wrapper on top of data tree managers
-        HoneycombDOMDataBrokerProvider domBrokerProvider = new HoneycombDOMDataBrokerProvider();
-        bind(DOMDataBroker.class).annotatedWith(Names.named(HONEYCOMB_CONFIG)).toProvider(domBrokerProvider).in(Singleton.class);
-        expose(DOMDataBroker.class).annotatedWith(Names.named(HONEYCOMB_CONFIG));
-
-        // BA version of data broker
-        bind(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_CONFIG)).toProvider(HoneycombBindingDataBrokerProvider.class)
-                .in(Singleton.class);
-        expose(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_CONFIG));
-
-        // Create initializer to init persisted config data
-        bind(DataTreeInitializer.class).annotatedWith(Names.named(HONEYCOMB_CONFIG))
-                .toProvider(PersistedConfigInitializerProvider.class)
-                .in(Singleton.class);
-        expose(DataTreeInitializer.class).annotatedWith(Names.named(HONEYCOMB_CONFIG));
-
-        configureNotifications();
-        configureRpcs();
-    }
-
-    private void configureNotifications() {
-        // Create notification service
-        bind(DOMNotificationRouter.class).toProvider(DOMNotificationServiceProvider.class).in(Singleton.class);
-        expose(DOMNotificationRouter.class);
-    }
-
-    private void configureRpcs() {
-        // Create rpc service
-        bind(DOMRpcService.class).toProvider(HoneycombDOMRpcServiceProvider.class).in(Singleton.class);
-        expose(DOMRpcService.class);
-
-        bind(RpcRegistryBuilder.class).toProvider(RpcRegistryBuilderProvider.class).in(Singleton.class);
-        expose(RpcRegistryBuilder.class);
-
-        bind(RpcRegistry.class).toProvider(RpcRegistryProvider.class).in(Singleton.class);
-        expose(RpcRegistry.class);
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DOMNotificationServiceProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DOMNotificationServiceProvider.java
deleted file mode 100644 (file)
index 4c87cce..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
-import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter;
-
-public final class DOMNotificationServiceProvider extends ProviderTrait<DOMNotificationRouter> {
-
-    @Inject
-    private HoneycombConfiguration cfg;
-
-    @Override
-    protected DOMNotificationRouter create() {
-        return DOMNotificationRouter.create(cfg.notificationServiceQueueDepth);
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DataStoreProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DataStoreProvider.java
deleted file mode 100644 (file)
index 4067f95..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-
-import java.util.concurrent.ExecutorService;
-
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
-import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStoreConfigProperties;
-import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStoreFactory;
-import org.opendaylight.yangtools.util.concurrent.SpecialExecutors;
-
-
-
-public final class DataStoreProvider extends ProviderTrait<InMemoryDOMDataStore> {
-
-    @Inject
-    private DOMSchemaService schemaService;
-    private String name;
-    private LogicalDatastoreType type;
-
-    public DataStoreProvider(final String name, final  LogicalDatastoreType type) {
-        this.name = name;
-        this.type=type;
-    }
-
-    @Override
-    protected InMemoryDOMDataStore create() {
-         final ExecutorService dataChangeListenerExecutor = createExecutorService(name, InMemoryDOMDataStoreConfigProperties.getDefault());
-         final InMemoryDOMDataStore dataStore = new InMemoryDOMDataStore(name, this.type, dataChangeListenerExecutor,
-                 InMemoryDOMDataStoreConfigProperties.getDefault().getMaxDataChangeListenerQueueSize(), InMemoryDOMDataStoreConfigProperties.getDefault().getDebugTransactions());
-
-         if (schemaService != null) {
-             schemaService.registerSchemaContextListener(dataStore);
-         }
-
-         return dataStore;
-    }
-
-    private static ExecutorService createExecutorService(final String name,
-            final InMemoryDOMDataStoreConfigProperties props) {
-        // For DataChangeListener notifications we use an executor that provides the fastest
-        // task execution time to get higher throughput as DataChangeListeners typically provide
-        // much of the business logic for a data model. If the executor queue size limit is reached,
-        // subsequent submitted notifications will block the calling thread.
-        return SpecialExecutors.newBlockingBoundedFastThreadPool(
-            props.getMaxDataChangeExecutorPoolSize(), props.getMaxDataChangeExecutorQueueSize(),
-            name + "-DCL", InMemoryDOMDataStore.class);
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DataTreeProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DataTreeProvider.java
deleted file mode 100644 (file)
index 5f5ef66..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory;
-
-public abstract class DataTreeProvider extends ProviderTrait<DataTree> {
-
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    private HoneycombConfiguration config;
-
-    @Override
-    public DataTree create() {
-        DataTree delegate = new InMemoryDataTreeFactory().create(getType());
-        delegate.setSchemaContext(schemaService.getGlobalContext());
-        return delegate;
-    }
-
-    public abstract DataTreeConfiguration getType();
-
-    public static class ConfigDataTreeProvider extends DataTreeProvider {
-        @Override
-        public DataTreeConfiguration getType() {
-            return DataTreeConfiguration.DEFAULT_CONFIGURATION;
-        }
-
-    }
-
-    public static class ContextDataTreeProvider extends DataTreeProvider {
-        @Override
-        public DataTreeConfiguration getType() {
-            return DataTreeConfiguration.DEFAULT_OPERATIONAL;
-        }
-
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombBindingDataBrokerProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombBindingDataBrokerProvider.java
deleted file mode 100644 (file)
index 0315978..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import static io.fd.honeycomb.infra.distro.data.ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataBrokerAdapter;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-
-/**
- * Provides binding adapter for {@link io.fd.honeycomb.data.impl.DataBroker}.
- */
-final class HoneycombBindingDataBrokerProvider extends ProviderTrait<DataBroker> {
-
-    @Inject
-    @Named(HONEYCOMB_CONFIG)
-    private DOMDataBroker domDataBroker;
-    @Inject
-    private BindingToNormalizedNodeCodec mappingService;
-
-    @Override
-    protected BindingDOMDataBrokerAdapter create() {
-        return new BindingDOMDataBrokerAdapter(domDataBroker, mappingService);
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMDataBrokerProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMDataBrokerProvider.java
deleted file mode 100644 (file)
index ab29d4d..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.ReadableDataManager;
-import io.fd.honeycomb.data.impl.DataBroker;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-
-public final class HoneycombDOMDataBrokerProvider extends ProviderTrait<DOMDataBroker> {
-
-    @Inject
-    private ModifiableDataManager modDataManager;
-    @Inject(optional = true)
-    private ReadableDataManager readDataManager;
-
-    @Override
-    protected DataBroker create() {
-        return readDataManager != null
-                ? DataBroker.create(modDataManager, readDataManager)
-                : DataBroker.create(modDataManager);
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMRpcServiceProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMRpcServiceProvider.java
deleted file mode 100644 (file)
index ee750b2..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.rpc.HoneycombDOMRpcService;
-import io.fd.honeycomb.rpc.RpcRegistry;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.api.DOMRpcService;
-
-public final class HoneycombDOMRpcServiceProvider extends ProviderTrait<DOMRpcService> {
-
-    @Inject
-    private BindingToNormalizedNodeCodec serializer;
-
-    @Inject
-    private RpcRegistry rpcRegistry;
-
-    @Override
-    protected DOMRpcService create() {
-        return new HoneycombDOMRpcService(serializer, rpcRegistry);
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombNotificationManagerProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombNotificationManagerProvider.java
deleted file mode 100644 (file)
index 7acfae6..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.notification.ManagedNotificationProducer;
-import io.fd.honeycomb.notification.NotificationCollector;
-import io.fd.honeycomb.notification.impl.HoneycombNotificationCollector;
-import io.fd.honeycomb.notification.impl.NotificationProducerRegistry;
-import io.fd.honeycomb.notification.impl.NotificationProducerTracker;
-import java.util.HashSet;
-import java.util.Set;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMNotificationPublishServiceAdapter;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter;
-
-public final class HoneycombNotificationManagerProvider extends ProviderTrait<NotificationCollector> {
-
-    @Inject
-    private DOMNotificationRouter notificationRouter;
-    @Inject(optional = true)
-    private Set<ManagedNotificationProducer> notificationProducers = new HashSet<>();
-    @Inject
-    private BindingToNormalizedNodeCodec codec;
-
-    @Override
-    protected HoneycombNotificationCollector create() {
-        // Create the registry to keep track of what'OPERATIONAL registered
-        NotificationProducerRegistry notificationProducerRegistry =
-                new NotificationProducerRegistry(Lists.newArrayList(notificationProducers));
-
-        // Create BA version of notification service (implementation is free from ODL)
-        BindingDOMNotificationPublishServiceAdapter bindingDOMNotificationPublishServiceAdapter =
-                new BindingDOMNotificationPublishServiceAdapter(notificationRouter, codec);
-
-        // Create Collector on top of BA notification service and registry
-        HoneycombNotificationCollector honeycombNotificationCollector =
-                new HoneycombNotificationCollector(bindingDOMNotificationPublishServiceAdapter,
-                        notificationProducerRegistry);
-
-        // Create tracker, responsible for starting and stopping registered notification producers whenever necessary
-        NotificationProducerTracker notificationProducerTracker =
-                new NotificationProducerTracker(notificationProducerRegistry, honeycombNotificationCollector,
-                        notificationRouter);
-
-        // DOMNotificationService is already provided by DOMBroker injected into RESTCONF, however RESTCONF
-        // only supports data-change notification, nothing else. So currently (Beryllium-SR2) honeycomb notifications
-        // won't be available over RESTCONF.
-
-        return honeycombNotificationCollector;
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/InmemoryDOMDataBrokerProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/InmemoryDOMDataBrokerProvider.java
deleted file mode 100644 (file)
index 52d4ca5..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.concurrent.ExecutorService;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.common.api.TransactionCommitDeadlockException;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker;
-import org.opendaylight.mdsal.dom.spi.store.DOMStore;
-import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
-import org.opendaylight.yangtools.util.concurrent.DeadlockDetectingListeningExecutorService;
-import org.opendaylight.yangtools.util.concurrent.SpecialExecutors;
-
-public final class InmemoryDOMDataBrokerProvider extends ProviderTrait<DOMDataBroker> {
-
-    public static final String CONFIG = "config";
-    public static final String OPERATIONAL = "operational";
-
-    @Inject
-    @Named(InmemoryDOMDataBrokerProvider.CONFIG)
-    private InMemoryDOMDataStore cfgDataStore;
-    @Inject
-    @Named(InmemoryDOMDataBrokerProvider.OPERATIONAL)
-    private InMemoryDOMDataStore operDataStore;
-
-    @Override
-    protected SerializedDOMDataBroker create() {
-        // This Databroker is dedicated for netconf metadata, not expected to be under heavy load
-        ExecutorService listenableFutureExecutor =
-            SpecialExecutors.newBlockingBoundedCachedThreadPool(1, 100, "commits", getClass());
-        ExecutorService commitExecutor =
-            SpecialExecutors.newBoundedSingleThreadExecutor(100, "WriteTxCommit", getClass());
-        // TODO HONEYCOMB-164 try to provide more lightweight implementation of DataBroker
-
-        Map<LogicalDatastoreType, DOMStore> map = new LinkedHashMap<>();
-        map.put(LogicalDatastoreType.CONFIGURATION, cfgDataStore);
-        map.put(LogicalDatastoreType.OPERATIONAL, operDataStore);
-
-        return new SerializedDOMDataBroker(map, new DeadlockDetectingListeningExecutorService(commitExecutor,
-            TransactionCommitDeadlockException.DEADLOCK_EXCEPTION_SUPPLIER, listenableFutureExecutor));
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/LegacyBindingDataBrokerProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/LegacyBindingDataBrokerProvider.java
deleted file mode 100644 (file)
index 3b3bc83..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2019 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter;
-import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
-import org.opendaylight.controller.sal.core.compat.LegacyDOMDataBrokerAdapter;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-
-import com.google.inject.Inject;
-
-import io.fd.honeycomb.binding.init.ProviderTrait;
-
-/**
- * Provider for legacy {@linkDataBroker} used in BGP Module.
- */
-public class LegacyBindingDataBrokerProvider extends ProviderTrait<DataBroker> {
-    @Inject
-    private DOMDataBroker domDataBroker;
-    @Inject
-    private BindingToNormalizedNodeCodec mappingService;
-    @Inject
-    private ModuleInfoBackedContext mibCtx;
-
-    @Override
-    protected BindingDOMDataBrokerAdapter create() {
-        return new BindingDOMDataBrokerAdapter(new LegacyDOMDataBrokerAdapter(domDataBroker), mappingService);
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ModifiableDTDelegProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ModifiableDTDelegProvider.java
deleted file mode 100644 (file)
index 4a0daf0..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.impl.ModifiableDataTreeDelegator;
-import io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule;
-import io.fd.honeycomb.translate.write.registry.WriterRegistry;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-
-public final class ModifiableDTDelegProvider extends ProviderTrait<ModifiableDataManager> {
-
-    @Inject
-    private BindingToNormalizedNodeCodec serializer;
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    @Named(ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG)
-    private DataTree dataTree;
-    @Inject
-    private WriterRegistry registry;
-    @Inject
-    @Named(ContextPipelineModule.HONEYCOMB_CONTEXT)
-    private DataBroker contextBroker;
-
-    @Override
-    protected ModifiableDataTreeDelegator create() {
-        return new ModifiableDataTreeDelegator(serializer, dataTree, schemaService.getGlobalContext(),
-            registry, contextBroker);
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/PersistedConfigInitializerProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/PersistedConfigInitializerProvider.java
deleted file mode 100644 (file)
index 26b6b87..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import java.nio.file.Paths;
-
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.RestoringInitializer;
-import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
-
-final class PersistedConfigInitializerProvider extends ProviderTrait<RestoringInitializer> {
-
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    protected HoneycombConfiguration cfgAttributes;
-    @Inject
-    // @Named(HONEYCOMB_CONFIG)
-    // modified to be able to restore config to device config datastore
-    @Named("device-databroker")
-    private DOMDataBroker domDataBroker;
-
-    @Override
-    public RestoringInitializer create() {
-        return new RestoringInitializer(schemaService, Paths.get(cfgAttributes.peristConfigPath), domDataBroker,
-                RestoringInitializer.RestorationType.valueOf(cfgAttributes.persistedConfigRestorationType),
-                LogicalDatastoreType.CONFIGURATION);
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/PersistingDataTreeProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/PersistingDataTreeProvider.java
deleted file mode 100644 (file)
index df56f46..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.impl.PersistingDataTreeAdapter;
-import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
-import io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule;
-import java.nio.file.Paths;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType;
-
-public abstract class PersistingDataTreeProvider extends ProviderTrait<DataTree> {
-
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    protected HoneycombConfiguration config;
-
-    @Override
-    public DataTree create() {
-        return isEnabled()
-                ? new PersistingDataTreeAdapter(getDelegate(), schemaService, Paths.get(getPath()))
-                : getDelegate();
-    }
-
-    public abstract String getPath();
-
-    public abstract TreeType getType();
-
-    public abstract DataTree getDelegate();
-
-    protected abstract boolean isEnabled();
-
-    public static final class ConfigPersistingDataTreeProvider extends PersistingDataTreeProvider {
-
-        @Inject
-        @Named(ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG_NONPERSIST)
-        private DataTree delegate;
-
-        @Override
-        public String getPath() {
-            return config.peristConfigPath;
-        }
-
-        @Override
-        public TreeType getType() {
-            return TreeType.CONFIGURATION;
-        }
-
-        @Override
-        public DataTree getDelegate() {
-            return delegate;
-        }
-
-        @Override
-        protected boolean isEnabled() {
-            return config.isConfigPersistenceEnabled();
-        }
-    }
-
-    public static final class ContextPersistingDataTreeProvider extends PersistingDataTreeProvider {
-
-        @Inject
-        @Named(ContextPipelineModule.HONEYCOMB_CONTEXT_NOPERSIST)
-        private DataTree delegate;
-
-        @Override
-        public String getPath() {
-            return config.peristContextPath;
-        }
-
-        @Override
-        public TreeType getType() {
-            return TreeType.OPERATIONAL;
-        }
-
-        @Override
-        public DataTree getDelegate() {
-            return delegate;
-        }
-
-        @Override
-        protected boolean isEnabled() {
-            return config.isContextPersistenceEnabled();
-        }
-
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/RpcRegistryBuilderProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/RpcRegistryBuilderProvider.java
deleted file mode 100644 (file)
index 3184363..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.rpc.RpcRegistryBuilder;
-import io.fd.honeycomb.rpc.RpcService;
-import java.util.HashSet;
-import java.util.Set;
-
-public final class RpcRegistryBuilderProvider extends ProviderTrait<RpcRegistryBuilder> {
-
-    @Inject(optional = true)
-    private Set<RpcService> rpcServices = new HashSet<>();
-
-    @Override
-    protected RpcRegistryBuilder create() {
-        final RpcRegistryBuilder builder = new RpcRegistryBuilder();
-        rpcServices.stream()
-                .forEach(service -> builder.addService(service));
-        return builder;
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/RpcRegistryProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/RpcRegistryProvider.java
deleted file mode 100644 (file)
index fd6499b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.rpc.RpcRegistry;
-import io.fd.honeycomb.rpc.RpcRegistryBuilder;
-
-public final class RpcRegistryProvider extends ProviderTrait<RpcRegistry> {
-
-    @Inject
-    private RpcRegistryBuilder builder;
-
-    @Override
-    protected RpcRegistry create() {
-        return builder.build();
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ShutdownHandlerProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ShutdownHandlerProvider.java
deleted file mode 100644 (file)
index a062ad1..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2018 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.ShutdownHandler;
-import io.fd.honeycomb.impl.ShutdownHandlerImpl;
-
-public class ShutdownHandlerProvider extends ProviderTrait<ShutdownHandler> {
-    @Override
-    protected ShutdownHandler create() {
-        final ShutdownHandler handler = new ShutdownHandlerImpl();
-        // Make sure ShutdownHandler is run on JVM shutdown
-        Runtime.getRuntime().addShutdownHook(new Thread(handler::performShutdown));
-        return handler;
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/config/WriterRegistryProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/config/WriterRegistryProvider.java
deleted file mode 100644 (file)
index fa37d10..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.config;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.translate.impl.write.registry.FlatWriterRegistryBuilder;
-import io.fd.honeycomb.translate.util.YangDAG;
-import io.fd.honeycomb.translate.write.WriterFactory;
-import io.fd.honeycomb.translate.write.registry.WriterRegistry;
-import java.util.HashSet;
-import java.util.Set;
-
-public final class WriterRegistryProvider extends ProviderTrait<WriterRegistry> {
-
-    @Inject(optional = true)
-    private Set<WriterFactory> writerFactories = new HashSet<>();
-
-    @Override
-    protected WriterRegistry create() {
-        final FlatWriterRegistryBuilder builder = new FlatWriterRegistryBuilder(new YangDAG());
-        writerFactories
-                .stream()
-                .forEach(it -> it.init(builder));
-        return builder.build();
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/ContextPipelineModule.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/ContextPipelineModule.java
deleted file mode 100644 (file)
index e3b3b53..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.context;
-
-import com.google.inject.PrivateModule;
-import com.google.inject.Singleton;
-import com.google.inject.name.Names;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.init.DataTreeInitializer;
-import io.fd.honeycomb.infra.distro.data.BindingDataBrokerProvider;
-import io.fd.honeycomb.infra.distro.data.DataTreeProvider;
-import io.fd.honeycomb.infra.distro.data.PersistingDataTreeProvider;
-import io.fd.honeycomb.translate.MappingContext;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-
-public class ContextPipelineModule extends PrivateModule {
-
-    public static final String HONEYCOMB_CONTEXT_NOPERSIST = "honeycomb-context-nopersist";
-    public static final String HONEYCOMB_CONTEXT = "honeycomb-context";
-
-    @Override
-    protected void configure() {
-        // Non persisting data tree for context
-        DataTreeProvider.ContextDataTreeProvider noPersistDataTreeProvider =
-                new DataTreeProvider.ContextDataTreeProvider();
-        bind(DataTree.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT_NOPERSIST))
-                .toProvider(noPersistDataTreeProvider).in(Singleton.class);
-        expose(DataTree.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT_NOPERSIST));
-        // Persisting data tree wrapper for context
-        PersistingDataTreeProvider.ContextPersistingDataTreeProvider dataTreeProvider =
-                new PersistingDataTreeProvider.ContextPersistingDataTreeProvider();
-        bind(DataTree.class).toProvider(dataTreeProvider).in(Singleton.class);
-
-        // Data Tree manager (without any delegation) on top of context data tree
-        bind(ModifiableDataManager.class).toProvider(ModifiableDTMgrProvider.class).in(Singleton.class);
-
-        // DOMDataBroker interface on top of data tree manager
-        HoneycombContextDOMDataBrokerProvider domBrokerProvider = new HoneycombContextDOMDataBrokerProvider();
-        bind(DOMDataBroker.class).toProvider(domBrokerProvider).in(Singleton.class);
-
-        // BA version of data broker for context
-        bind(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT)).toProvider(BindingDataBrokerProvider.class)
-                .in(Singleton.class);
-        expose(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT));
-
-        // Create initializer to init persisted config data
-        bind(DataTreeInitializer.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT))
-                .toProvider(PersistedContextInitializerProvider.class)
-                .in(Singleton.class);
-        expose(DataTreeInitializer.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT));
-
-        // Mapping context is just a small adapter on top of BA data broker to simplify CRUD of context data
-        bind(MappingContext.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT))
-                .toProvider(RealtimeMappingContextProvider.class).in(Singleton.class);
-        expose(MappingContext.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT));
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/HoneycombContextDOMDataBrokerProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/HoneycombContextDOMDataBrokerProvider.java
deleted file mode 100644 (file)
index d3663df..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.context;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.impl.DataBroker;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-
-public final class HoneycombContextDOMDataBrokerProvider extends ProviderTrait<DOMDataBroker> {
-
-    @Inject
-    private ModifiableDataManager modDataManager;
-
-    @Override
-    public DataBroker create() {
-        return DataBroker.create(modDataManager);
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/ModifiableDTMgrProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/ModifiableDTMgrProvider.java
deleted file mode 100644 (file)
index c703e95..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.context;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.impl.ModifiableDataTreeManager;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-
-public final class ModifiableDTMgrProvider extends ProviderTrait<ModifiableDataManager> {
-
-    @Inject
-    private DataTree dataTree;
-
-    @Override
-    public ModifiableDataTreeManager create() {
-        return new ModifiableDataTreeManager(dataTree);
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/PersistedContextInitializerProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/PersistedContextInitializerProvider.java
deleted file mode 100644 (file)
index 45948ec..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.context;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.RestoringInitializer;
-import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
-import java.nio.file.Paths;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-
-final class PersistedContextInitializerProvider extends ProviderTrait<RestoringInitializer> {
-
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    protected HoneycombConfiguration cfgAttributes;
-    // injects data broker from within context of private module
-    @Inject
-    private DOMDataBroker domDataBroker;
-
-    @Override
-    public RestoringInitializer create() {
-        return new RestoringInitializer(schemaService, Paths.get(cfgAttributes.peristContextPath), domDataBroker,
-                RestoringInitializer.RestorationType.valueOf(cfgAttributes.persistedContextRestorationType),
-                LogicalDatastoreType.OPERATIONAL);
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/RealtimeMappingContextProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/RealtimeMappingContextProvider.java
deleted file mode 100644 (file)
index e2ed580..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.context;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.translate.MappingContext;
-import io.fd.honeycomb.translate.util.RealtimeMappingContext;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-
-public final class RealtimeMappingContextProvider extends ProviderTrait<MappingContext> {
-
-    @Inject
-    @Named(ContextPipelineModule.HONEYCOMB_CONTEXT)
-    private DataBroker contextDataBroker;
-
-    @Override
-    public RealtimeMappingContext create() {
-        return new RealtimeMappingContext(contextDataBroker);
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/oper/ReadableDTDelegProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/oper/ReadableDTDelegProvider.java
deleted file mode 100644 (file)
index 71ec18a..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.oper;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.ReadableDataManager;
-import io.fd.honeycomb.data.impl.ReadableDataTreeDelegator;
-import io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule;
-import io.fd.honeycomb.translate.read.registry.ReaderRegistry;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-
-public final class ReadableDTDelegProvider extends ProviderTrait<ReadableDataManager> {
-
-    @Inject
-    private BindingToNormalizedNodeCodec serializer;
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    private ReaderRegistry registry;
-    @Inject
-    @Named(ContextPipelineModule.HONEYCOMB_CONTEXT)
-    private DataBroker contextBroker;
-
-    @Override
-    protected ReadableDataTreeDelegator create() {
-        return new ReadableDataTreeDelegator(serializer, schemaService.getGlobalContext(), registry, contextBroker);
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/oper/ReaderRegistryProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/oper/ReaderRegistryProvider.java
deleted file mode 100644 (file)
index 8e0b776..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.oper;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.translate.impl.read.registry.CompositeReaderRegistryBuilder;
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ReaderRegistry;
-import io.fd.honeycomb.translate.util.YangDAG;
-import java.util.HashSet;
-import java.util.Set;
-
-public final class ReaderRegistryProvider extends ProviderTrait<ReaderRegistry> {
-
-    @Inject(optional = true)
-    private Set<ReaderFactory> readerFactories = new HashSet<>();
-
-    @Override
-    protected ReaderRegistry create() {
-        final CompositeReaderRegistryBuilder builder = new CompositeReaderRegistryBuilder(new YangDAG());
-        readerFactories.stream()
-            .forEach(it -> it.init(builder));
-        return builder.build();
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.java
deleted file mode 100644 (file)
index 7f15527..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.initializer;
-
-import com.google.inject.PrivateModule;
-import com.google.inject.Singleton;
-import com.google.inject.name.Names;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.init.InitializerRegistry;
-import io.fd.honeycomb.infra.distro.data.BindingDataBrokerProvider;
-import io.fd.honeycomb.infra.distro.data.HoneycombDOMDataBrokerProvider;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-
-public final class InitializerPipelineModule extends PrivateModule {
-
-    public static final String HONEYCOMB_INITIALIZER = "honeycomb-initializer";
-
-    @Override
-    protected void configure() {
-        // Create data tree manager on top of non-persisting config data tree
-        bind(ModifiableDataManager.class).toProvider(ModifiableDTDelegInitProvider.class).in(Singleton.class);
-        // Wrap as DOMDataBroker
-        bind(DOMDataBroker.class).toProvider(HoneycombDOMDataBrokerProvider.class).in(Singleton.class);
-        // Wrap as BA data broker
-        bind(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER))
-                .toProvider(BindingDataBrokerProvider.class).in(Singleton.class);
-        expose(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER));
-
-        // Create initializer registry so that plugins can provide their initializers
-        bind(InitializerRegistry.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER))
-                .toProvider(InitializerRegistryAdapterProvider.class).in(Singleton.class);
-        expose(InitializerRegistry.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER));
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java
deleted file mode 100644 (file)
index 08f9bad..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.initializer;
-
-import io.fd.honeycomb.data.init.DataTreeInitializer;
-import io.fd.honeycomb.data.init.InitializerRegistry;
-import io.fd.honeycomb.translate.MappingContext;
-import io.fd.honeycomb.translate.ModificationCache;
-import io.fd.honeycomb.translate.read.ReadContext;
-import io.fd.honeycomb.translate.read.registry.InitRegistry;
-import javax.annotation.Nonnull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-final class InitializerRegistryAdapter implements InitializerRegistry {
-
-    private static final Logger LOG = LoggerFactory.getLogger(InitializerRegistryAdapter.class);
-
-    private final DataTreeInitializer configInitializer;
-    private final DataTreeInitializer contextInitializer;
-    private final InitRegistry initRegistry;
-    private final DataBroker dataBroker;
-    private final MappingContext realtimeMappingContext;
-
-    InitializerRegistryAdapter(final DataTreeInitializer configInitializer,
-                               final DataTreeInitializer contextInitializer,
-                               final InitRegistry initRegistry,
-                               final DataBroker noopConfigDataBroker,
-                               final MappingContext realtimeMappingContext) {
-        this.configInitializer = configInitializer;
-        this.contextInitializer = contextInitializer;
-        this.initRegistry = initRegistry;
-        this.dataBroker = noopConfigDataBroker;
-        this.realtimeMappingContext = realtimeMappingContext;
-    }
-
-    @Override
-    public void initialize() throws DataTreeInitializer.InitializeException {
-        LOG.info("Config initialization started");
-
-        try {
-            // Initialize contexts first so that other initializers can find any relevant mapping before initializing
-            // configuration to what is already in VPP
-            contextInitializer.initialize();
-            LOG.info("Persisted context restored successfully");
-            // Initialize all registered initializers
-            initRegistry.initAll(dataBroker, new InitReadContext(realtimeMappingContext));
-            LOG.info("Configuration initialized successfully");
-            // Initialize stored configuration on top
-            configInitializer.initialize();
-            LOG.info("Persisted configuration restored successfully");
-        } catch (Exception e) {
-            LOG.warn("Failed to initialize config", e);
-        }
-
-        LOG.info("Honeycomb initialized");
-    }
-
-    private static final class InitReadContext implements ReadContext {
-
-        private final ModificationCache modificationCache;
-        private final MappingContext realtimeMappingContext;
-
-        InitReadContext(final MappingContext realtimeMappingContext) {
-            modificationCache = new ModificationCache();
-            this.realtimeMappingContext = realtimeMappingContext;
-        }
-
-        @Nonnull
-        @Override
-        public ModificationCache getModificationCache() {
-            return modificationCache;
-        }
-
-        @Nonnull
-        @Override
-        public MappingContext getMappingContext() {
-            return realtimeMappingContext;
-        }
-
-        @Override
-        public void close() {
-            modificationCache.close();
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapterProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapterProvider.java
deleted file mode 100644 (file)
index dbf180b..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.initializer;
-
-import static io.fd.honeycomb.infra.distro.data.ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG;
-import static io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule.HONEYCOMB_CONTEXT;
-import static io.fd.honeycomb.infra.distro.initializer.InitializerPipelineModule.HONEYCOMB_INITIALIZER;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.DataTreeInitializer;
-import io.fd.honeycomb.data.init.InitializerRegistry;
-import io.fd.honeycomb.translate.MappingContext;
-import io.fd.honeycomb.translate.read.registry.ReaderRegistry;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-
-public final class InitializerRegistryAdapterProvider extends ProviderTrait<InitializerRegistry> {
-
-    @Inject
-    @Named(HONEYCOMB_CONTEXT)
-    private DataTreeInitializer contextInitializer;
-    @Inject
-    @Named(HONEYCOMB_CONFIG)
-    private DataTreeInitializer configInitializer;
-    @Inject
-    private ReaderRegistry initRegistry;
-    @Inject
-    @Named(HONEYCOMB_INITIALIZER)
-    private DataBroker noopConfigDataBroker;
-    @Inject
-    @Named(HONEYCOMB_CONTEXT)
-    private MappingContext realtimeMappingContext;
-
-    @Override
-    protected InitializerRegistryAdapter create() {
-        return new InitializerRegistryAdapter(configInitializer, contextInitializer, initRegistry,
-                noopConfigDataBroker, realtimeMappingContext);
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.java
deleted file mode 100644 (file)
index d009241..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.initializer;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.impl.ModifiableDataTreeDelegator;
-import io.fd.honeycomb.infra.distro.data.ConfigAndOperationalPipelineModule;
-import io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule;
-import io.fd.honeycomb.translate.util.write.NoopWriterRegistry;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-
-public final class ModifiableDTDelegInitProvider extends ProviderTrait<ModifiableDataManager> {
-
-    @Inject
-    private BindingToNormalizedNodeCodec serializer;
-    @Inject
-    @Named(ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG_NONPERSIST)
-    private DataTree dataTree;
-    @Inject
-    @Named(ContextPipelineModule.HONEYCOMB_CONTEXT)
-    private DataBroker contextBroker;
-    @Inject
-    private DOMSchemaService schemaService;
-
-    @Override
-    public ModifiableDataTreeDelegator create() {
-        return new ModifiableDataTreeDelegator(serializer, dataTree, schemaService.getGlobalContext(),
-                new NoopWriterRegistry(), contextBroker);
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/LegacySerializerProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/LegacySerializerProvider.java
deleted file mode 100644 (file)
index cc6c376..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2019 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import javassist.ClassPool;
-import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.binding.dom.codec.gen.impl.DataObjectSerializerGenerator;
-import org.opendaylight.mdsal.binding.dom.codec.gen.impl.StreamWriterGenerator;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext;
-import org.opendaylight.mdsal.binding.generator.util.JavassistUtils;
-
-public class LegacySerializerProvider extends ProviderTrait<BindingToNormalizedNodeCodec> {
-
-    @Inject
-    private ModuleInfoBackedContext mibCtx;
-
-    @Override
-    protected BindingToNormalizedNodeCodec create() {
-        final DataObjectSerializerGenerator serializerGenerator =
-            StreamWriterGenerator.create(JavassistUtils.forClassPool(ClassPool.getDefault()));
-
-        BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(serializerGenerator);
-        BindingRuntimeContext ctx = BindingRuntimeContext.create(mibCtx, mibCtx.getSchemaContext());
-        codecRegistry.onBindingRuntimeContextUpdated(ctx);
-        BindingToNormalizedNodeCodec codec = new BindingToNormalizedNodeCodec(mibCtx, codecRegistry);
-        codec.onGlobalContextUpdated(mibCtx.getSchemaContext());
-        return codec;
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/ModuleInfoBackedCtxProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/ModuleInfoBackedCtxProvider.java
deleted file mode 100644 (file)
index 01b03c4..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import static io.fd.honeycomb.infra.distro.schema.YangModulesProvider.YangModules;
-
-import com.google.common.base.MoreObjects;
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import java.util.stream.Collectors;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.yangtools.yang.binding.YangModelBindingProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class ModuleInfoBackedCtxProvider extends ProviderTrait<ModuleInfoBackedContext> {
-    private static final Logger LOG = LoggerFactory.getLogger(ModuleInfoBackedCtxProvider.class);
-
-    // optional in sense that list of modules inside can be empty if none was found
-    @Inject
-    private YangModules moduleInfos;
-
-    @Override
-    protected ModuleInfoBackedContext create() {
-        ModuleInfoBackedContext create = ModuleInfoBackedContext.create();
-        create.addModuleInfos(moduleInfos.getYangBindings().stream()
-                .map(YangModelBindingProvider::getModuleInfo)
-                .collect(Collectors.toList()));
-        LOG.debug("ModuleInfoBackedContext created from {}", moduleInfos);
-        return create;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this).add("writerFactories", moduleInfos).toString();
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/ResourceLoader.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/ResourceLoader.java
deleted file mode 100644 (file)
index 99aa451..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static java.lang.String.format;
-
-import com.google.common.base.Charsets;
-import com.google.common.base.Strings;
-import com.google.common.io.Resources;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Set;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.stream.Collectors;
-import org.apache.commons.io.IOUtils;
-
-/**
- * Allows loading content of X amount of files from filesystem or archive
- */
-public interface ResourceLoader {
-
-    default Set<String> loadResourceContentsOnPath(final String path) {
-        final URL folderUrl = getClass().getClassLoader().getResource(path);
-        checkState(folderUrl != null, "Resources %s not found", path);
-
-        if (ResourceLoaderIml.urlToUri(folderUrl).getScheme().equals("jar")) {
-            return ResourceLoaderIml.readFromJar(path, folderUrl);
-        } else {
-            return ResourceLoaderIml.readFromFolder(folderUrl);
-        }
-
-    }
-
-    final class ResourceLoaderIml {
-
-        private ResourceLoaderIml() {
-            throw new UnsupportedOperationException();
-        }
-
-        private static Set<String> readFromFolder(final URL folderUrl) {
-            final File folder = new File(folderUrl.getPath());
-            final File[] files = checkNotNull(folder.listFiles(), "No files present on path %s", folderUrl);
-            return Arrays.stream(files)
-                    .map(ResourceLoaderIml::fileToUrl)
-                    .map(ResourceLoaderIml::urlToContentString)
-                    .flatMap(content -> Arrays.stream(content.split(System.lineSeparator())))
-                    .filter(ResourceLoaderIml::filterNonEmpty)
-                    .collect(Collectors.toSet());
-        }
-
-        private static Set<String> readFromJar(final String path, final URL url) {
-            final String uriString = urlToUri(url).toString();
-            final String fileReference = extractJarFilePath(uriString);
-            try (JarFile jar = new JarFile(new File(fileReference))) {
-                return Collections.list(jar.entries())
-                        .stream()
-                        .filter(jarEntry -> jarEntry.getName().contains(path))
-                        .map(jarEntry -> getJarEntryStream(jar, jarEntry))
-                        .map(ResourceLoaderIml::readJarEntryStream)
-                        .flatMap(content -> Arrays.stream(content.split(System.lineSeparator())))
-                        .filter(ResourceLoaderIml::filterNonEmpty)
-                        .collect(Collectors.toSet());
-            } catch (IOException e) {
-                throw new IllegalStateException(e);
-            }
-        }
-
-        private static String extractJarFilePath(final String uriString) {
-            return uriString.substring(0, uriString.indexOf("!")).replace("jar:file:", "");
-        }
-
-        private static boolean filterNonEmpty(final String line) {
-            return !Strings.isNullOrEmpty(line.trim());
-        }
-
-        private static String readJarEntryStream(final InputStream inputStream) {
-            try {
-                final String value = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
-                IOUtils.closeQuietly(inputStream);
-                return value;
-            } catch (IOException e) {
-                throw new IllegalStateException(e);
-            }
-        }
-
-        private static InputStream getJarEntryStream(final JarFile jar, final JarEntry jarEntry) {
-            try {
-                return jar.getInputStream(jarEntry);
-            } catch (IOException e) {
-                throw new IllegalStateException(format("Unable to get stream for entry %s | jar %s", jar, jarEntry), e);
-            }
-        }
-
-        private static URI urlToUri(final URL url) {
-            try {
-                return url.toURI();
-            } catch (URISyntaxException e) {
-                throw new IllegalStateException(format("Unable to convert URL %s to URI", url), e);
-            }
-        }
-
-        private static String urlToContentString(final URL url) {
-            try {
-                return Resources.toString(url, Charsets.UTF_8);
-            } catch (IOException e) {
-                throw new IllegalArgumentException("Unable to read resource from: " + url, e);
-            }
-        }
-
-        private static URL fileToUrl(final File file) {
-            try {
-                return file.toURI().toURL();
-            } catch (MalformedURLException e) {
-                throw new IllegalStateException(e);
-            }
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SchemaModule.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SchemaModule.java
deleted file mode 100644 (file)
index c824a0d..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Singleton;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-
-public class SchemaModule extends AbstractModule {
-
-    @Override
-    protected void configure() {
-        bind(ModuleInfoBackedContext.class).toProvider(ModuleInfoBackedCtxProvider.class).in(Singleton.class);
-        bind(DOMSchemaService.class).toProvider(SchemaServiceProvider.class).in(Singleton.class);
-        bind(BindingToNormalizedNodeCodec.class).toProvider(SerializerProvider.class).in(Singleton.class);
-        bind(org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.class)
-                .toProvider(LegacySerializerProvider.class).in(Singleton.class);
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SchemaServiceProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SchemaServiceProvider.java
deleted file mode 100644 (file)
index 22fe023..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import com.google.common.collect.ClassToInstanceMap;
-import com.google.common.collect.ImmutableClassToInstanceMap;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.mdsal.dom.api.DOMSchemaServiceExtension;
-import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
-import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
-import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
-
-public final class SchemaServiceProvider extends ProviderTrait<DOMSchemaService> {
-
-    @Inject
-    private ModuleInfoBackedContext mibCtx;
-
-    @Override
-    public StaticSchemaService create() {
-        return new StaticSchemaService(mibCtx);
-    }
-
-    /**
-     * Static schema context provider service.
-     */
-    private static final class StaticSchemaService implements DOMSchemaService, DOMYangTextSourceProvider {
-        private final ModuleInfoBackedContext moduleInfoBackedContext;
-
-        StaticSchemaService(ModuleInfoBackedContext moduleInfoBackedContext) {
-            this.moduleInfoBackedContext = moduleInfoBackedContext;
-        }
-
-        @Override
-        public SchemaContext getSessionContext() {
-            return moduleInfoBackedContext.getSchemaContext();
-        }
-
-        @Override
-        public SchemaContext getGlobalContext() {
-            return moduleInfoBackedContext.getSchemaContext();
-        }
-
-        @Override
-        public ListenerRegistration<SchemaContextListener> registerSchemaContextListener(
-                final SchemaContextListener listener) {
-            listener.onGlobalContextUpdated(moduleInfoBackedContext.getSchemaContext());
-            return new ListenerRegistration<SchemaContextListener>() {
-                @Override
-                public void close() {}
-
-                @Override
-                public SchemaContextListener getInstance() {
-                    return listener;
-                }
-
-            };
-        }
-
-        @Override
-        public ClassToInstanceMap<DOMSchemaServiceExtension> getExtensions() {
-            return ImmutableClassToInstanceMap.of(DOMYangTextSourceProvider.class, this);
-        }
-
-        @Override
-        public ListenableFuture<? extends YangTextSchemaSource> getSource(final SourceIdentifier sourceIdentifier) {
-            return moduleInfoBackedContext.getSource(sourceIdentifier);
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SerializerProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SerializerProvider.java
deleted file mode 100644 (file)
index af7aa9e..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import javassist.ClassPool;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.binding.dom.codec.gen.impl.DataObjectSerializerGenerator;
-import org.opendaylight.mdsal.binding.dom.codec.gen.impl.StreamWriterGenerator;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext;
-import org.opendaylight.mdsal.binding.generator.util.JavassistUtils;
-
-public class SerializerProvider extends ProviderTrait<BindingToNormalizedNodeCodec> {
-
-    @Inject
-    private ModuleInfoBackedContext mibCtx;
-
-    @Override
-    protected BindingToNormalizedNodeCodec create() {
-        final DataObjectSerializerGenerator serializerGenerator =
-            StreamWriterGenerator.create(JavassistUtils.forClassPool(ClassPool.getDefault()));
-        BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(serializerGenerator);
-        BindingRuntimeContext ctx = BindingRuntimeContext.create(mibCtx, mibCtx.getSchemaContext());
-        codecRegistry.onBindingRuntimeContextUpdated(ctx);
-        BindingToNormalizedNodeCodec codec = new BindingToNormalizedNodeCodec(mibCtx, codecRegistry);
-        codec.onGlobalContextUpdated(mibCtx.getSchemaContext());
-        return codec;
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangBindingProviderModule.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangBindingProviderModule.java
deleted file mode 100644 (file)
index d43485f..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import com.google.inject.AbstractModule;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class YangBindingProviderModule extends AbstractModule {
-    private static final Logger LOG = LoggerFactory.getLogger(YangBindingProviderModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Configuring YangBindingProviderModule");
-        bind(YangModulesProvider.YangModules.class).toProvider(YangModulesProvider.class).asEagerSingleton();
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangModuleMappingIndex.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangModuleMappingIndex.java
deleted file mode 100644 (file)
index a483cfd..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.LinkedListMultimap;
-import com.google.common.collect.Multimap;
-import java.util.Arrays;
-import java.util.Set;
-import java.util.stream.Stream;
-import javax.annotation.Nonnull;
-
-/**
- * Index from guice module to yang module providers
- */
-class YangModuleMappingIndex implements ResourceLoader {
-
-    private static final String G_MODULE_TOKEN = "GUICE_MODULE:";
-    private static final String KEY_VALUE_SEPARATOR = "|";
-    private static final String Y_MODULE_TOKEN = "YANG_MODULES:";
-    private static final String Y_MODULE_SEPARATOR = ",";
-
-    /**
-     * key - module class name
-     * value  - yang module provider
-     */
-    private final Multimap<String, String> index;
-
-    YangModuleMappingIndex(final String indexPath) {
-        this.index = LinkedListMultimap.create();
-        loadResourceContentsOnPath(indexPath)
-                .forEach(line -> {
-                    final String moduleName = parseModuleName(line);
-                    parseYangModules(line).forEach(yModuleProvider -> index.put(moduleName, yModuleProvider));
-                });
-    }
-
-    Set<String> getByModuleName(@Nonnull final String moduleName) {
-        return ImmutableSet.copyOf(index.get(moduleName));
-    }
-
-    int applicationModulesCount() {
-        return index.keySet().size();
-    }
-
-    private static String parseModuleName(final String rawLine) {
-        return rawLine.substring(rawLine.indexOf(G_MODULE_TOKEN) + G_MODULE_TOKEN.length(),
-                rawLine.indexOf(KEY_VALUE_SEPARATOR));
-    }
-
-    private static Stream<String> parseYangModules(final String rawLine) {
-        return Arrays.stream(rawLine.substring(rawLine.indexOf(Y_MODULE_TOKEN) + Y_MODULE_TOKEN.length())
-                .split(Y_MODULE_SEPARATOR));
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangModulesProvider.java b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangModulesProvider.java
deleted file mode 100644 (file)
index 5acc1ea..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-import io.fd.honeycomb.infra.distro.activation.ActivationConfig;
-import io.fd.honeycomb.infra.distro.activation.ActiveModules;
-import org.opendaylight.yangtools.yang.binding.YangModelBindingProvider;
-
-import javax.annotation.Nonnull;
-import java.util.Collection;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import static java.lang.String.format;
-
-/**
- * Loads active yang modules
- * Relying on generate yang-module-index
- */
-public class YangModulesProvider implements Provider<YangModulesProvider.YangModules> {
-
-    @Inject
-    private ActiveModules activeModules;
-
-    @Inject
-    private ActivationConfig config;
-
-    @Override
-    public YangModules get() {
-        // no need to bind this, pretty big map and its needed just here
-        final YangModuleMappingIndex index = new YangModuleMappingIndex(config.getYangModulesIndexPath());
-
-        return new YangModules(activeModules.getActiveModulesClasses().stream()
-                .map(Class::getName)
-                .map(index::getByModuleName)
-                .flatMap(Collection::stream)
-                .map(YangModulesProvider::loadClass)
-                .map(aClass -> (Class<? extends YangModelBindingProvider>) aClass)
-                .collect(Collectors.toSet()));
-    }
-
-    static class YangModules {
-        private final Set<Class<? extends YangModelBindingProvider>> yangBindings;
-
-        YangModules(final Set<Class<? extends YangModelBindingProvider>> yangBindings) {
-            this.yangBindings = yangBindings;
-        }
-
-        Set<YangModelBindingProvider> getYangBindings() {
-            return yangBindings.stream()
-                    .map(providerClass -> {
-                        try {
-                            return providerClass.newInstance();
-                        } catch (InstantiationException | IllegalAccessException e) {
-                            throw new IllegalStateException(format("Unable to create instance of %s", providerClass),
-                                    e);
-                        }
-                    }).collect(Collectors.toSet());
-        }
-    }
-
-    private static Class<?> loadClass(@Nonnull final String className) {
-        try {
-            return Class.forName(className);
-        } catch (ClassNotFoundException e) {
-            throw new IllegalArgumentException("Unable to load class: " + className, e);
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/cert/honeycomb-keystore b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/cert/honeycomb-keystore
deleted file mode 100644 (file)
index 27a2633..0000000
Binary files a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/cert/honeycomb-keystore and /dev/null differ
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/WEB-INF/web.xml b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/WEB-INF/web.xml
deleted file mode 100644 (file)
index b5d2c8b..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-  ~ Copyright (c) 2016 Cisco and/or its affiliates.
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at:
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
-    version="3.0">
-
-    <filter>
-        <filter-name>cross-origin-restconf</filter-name>
-        <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
-        <init-param>
-            <param-name>allowedOrigins</param-name>
-            <param-value>*</param-value>
-        </init-param>
-        <init-param>
-            <param-name>allowedMethods</param-name>
-            <param-value>GET,POST,OPTIONS,DELETE,PUT,HEAD</param-value>
-        </init-param>
-        <init-param>
-            <param-name>allowedHeaders</param-name>
-            <param-value>origin, content-type, accept, authorization</param-value>
-        </init-param>
-        <init-param>
-            <param-name>exposedHeaders</param-name>
-            <param-value>location</param-value>
-        </init-param>
-    </filter>
-    <filter-mapping>
-        <filter-name>cross-origin-restconf</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
-
-    <security-constraint>
-        <web-resource-collection>
-            <web-resource-name>NB api</web-resource-name>
-            <url-pattern>/*</url-pattern>
-            <http-method>POST</http-method>
-            <http-method>GET</http-method>
-            <http-method>PUT</http-method>
-            <http-method>PATCH</http-method>
-            <http-method>DELETE</http-method>
-            <http-method>HEAD</http-method>
-        </web-resource-collection>
-    </security-constraint>
-
-</web-app>
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/activation.json b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/activation.json
deleted file mode 100644 (file)
index 8dd1687..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "modules-resource-path": "../modules/",
-  "yang-modules-index-path": "../yang-mapping/"
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/honeycomb.json b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/honeycomb.json
deleted file mode 100644 (file)
index df592b3..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "persist-context": "true",
-  "persisted-context-path": "persist/data-context.json",
-  "persisted-context-restoration-type": "Merge",
-  "persist-config": "true",
-  "persisted-config-path": "persist/data-config.json",
-  "persisted-config-restoration-type": "Merge",
-  "notification-service-queue-depth": 1,  
-  "netconf-initial-config-xml" : "device/oper-ROADMA.xml",
-  "netconf-initial-pm-xml" : "device/oper-ROADMA-cpm.xml"
-  
-}
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/logback.xml b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/logback.xml
deleted file mode 100644 (file)
index 24bd62b..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-
-<configuration scan="true">
-
-    <appender name="STDOUT"
-        class="ch.qos.logback.core.ConsoleAppender">
-        <encoder>
-            <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level
-                %logger{36} - %msg%n</pattern>
-        </encoder>
-    </appender>
-    <appender name="honeycomb.log"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-       <file>${logback.logs.directory}/honeycomb-${DEVICE}.log</file>
-
-        <rollingPolicy
-            class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <maxIndex>3</maxIndex>
-           <FileNamePattern>${logback.logs.directory}/honeycomb-${DEVICE}.log.%i</FileNamePattern>
-        </rollingPolicy>
-        <triggeringPolicy
-            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-            <MaxFileSize>10000KB</MaxFileSize>
-        </triggeringPolicy>
-
-        <encoder>
-            <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level
-                %logger{35} - %msg%n</pattern>
-        </encoder>
-    </appender>
-
-    <root level="WARN">
-        <appender-ref ref="STDOUT" />
-        <appender-ref ref="honeycomb.log" />
-    </root>
-
-    <logger name="org.opendaylight" level="INFO">
-        <appender-ref ref="STDOUT" />
-        <appender-ref ref="honeycomb.log" />
-    </logger>
-    <logger name="io.fd" level="INFO">
-        <appender-ref ref="STDOUT" />
-        <appender-ref ref="honeycomb.log" />
-    </logger>
-</configuration>
diff --git a/tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/honeycomb-tpce b/tests/honeynode/1.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/honeycomb-tpce
deleted file mode 100755 (executable)
index 331ca69..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/sh -
-STATUS=100
-JAVA_CMD="java"
-[ -n "$JAVA_HOME" ] && JAVA_CMD="$JAVA_HOME/bin/java"
-JAVA_VER=$("$JAVA_CMD" -version 2>&1 | sed -n ';s/.* version "\(.*\)\.\(.*\)\..*".*$/\1\2/p;')
-echo $JAVA_VER
-[ "$JAVA_VER" -ge 110 ] && echo "ok, java is 11 or newer" || { echo "it's too old..."; exit 1; }
-if [ -d  $(dirname $0)/config/yang/common ]; then
-    mv  $(dirname $0)/config/yang/common/*  $(dirname $0)/config/yang/.
-    rm -rf  $(dirname $0)/config/yang/common
-fi
-if [ -d  $(dirname $0)/config/yang/devices ]; then
-    mv  $(dirname $0)/config/yang/devices/*  $(dirname $0)/config/yang/.
-    rm -rf  $(dirname $0)/config/yang/devices
-fi
-if [ -d  $(dirname $0)/config/yang/openconfig ]; then
-    mv  $(dirname $0)/config/yang/openconfig/*  $(dirname $0)/config/yang/.
-    rm -rf  $(dirname $0)/config/yang/openconfig
-fi
-
-if [ "$#" -ge 2 ]
-then
-    PORT=$1
-    CONFIG=$2
-    if [ -e $CONFIG ]
-    then
-        mkdir -p  $(dirname $0)/persist
-        mkdir -p  $(dirname $0)/logs
-        REST_HTTP=$(echo 81`echo $PORT | tail -c 3`)
-        REST_WEBSOCKET=$(echo 77`echo $PORT | tail -c 3`)
-        cp $CONFIG $(dirname $0)/config/device/
-        filename=$(basename -- "$CONFIG")
-        device=$(basename "$CONFIG" .xml)
-        echo "changing netconf port with $PORT in netconf.json file ..."
-        sed  -i' ' "s/\"netconf-ssh-binding-port\".*,/\"netconf-ssh-binding-port\" : "$PORT",/g" $(dirname $0)/config/netconf.json
-        echo "changing restconf http port with $REST_HTTP in restconf.json file ..."
-        sed  -i' ' "s/\"restconf-port\".*,/\"restconf-port\" : "$REST_HTTP",/g" $(dirname $0)/config/restconf.json
-        echo "changing restconf websocket with $REST_WEBSOCKET in restconf.json file ..."
-        sed  -i' ' "s/\"restconf-websocket-port\".*,/\"restconf-websocket-port\" : "$REST_WEBSOCKET",/g" $(dirname $0)/config/restconf.json
-        echo "changing restconf-https-enabled to false in restconf.json file ..."
-        sed  -i' ' "s/\"restconf-https-enabled\".*,/\"restconf-https-enabled\" : \"false\",/g" $(dirname $0)/config/restconf.json
-        echo "changing persist-context and persist-config to false in honeycomb.json file ..."
-        sed  -i' ' "s/\"persist-context\".*,/\"persist-context\" : \"false\",/g" $(dirname $0)/config/honeycomb.json
-        sed  -i' ' "s/\"persist-config\".*,/\"persist-config\" : \"false\",/g" $(dirname $0)/config/honeycomb.json
-        echo "changing netconf-initial-config-xml location with $CONFIG in honeycomb.json file ..."
-        sed -i' ' "s@\"netconf-initial-config-xml\".*,@\"netconf-initial-config-xml\" : \"device/$filename\",@g" $(dirname $0)/config/honeycomb.json
-         while [ $STATUS -eq 100 ]
-         do
-           . $(dirname $0)/../../../../../../reflectwarn.sh
-           # needed to remove JDK11 reflective access warning
-           "$JAVA_CMD" -DDEVICE=${device} -Dlogback.logs.directory=$(dirname $0)/logs -Xms512m -Xmn512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -jar $(dirname $0)/honeynode-distribution-1.19.04.jar
-           STATUS=$?
-           echo "Honeycomb exited with status: $STATUS"
-           if [ $STATUS -eq 100 ]
-           then
-             echo "Restarting..."
-           fi
-         done
-    else
-        echo "initial config file doesn't exist !"
-    fi
-else
-    echo "honeycomb-tpce port initial-config-xml"
-    echo "Eg : honeycomb-tpce 17832 sample-config-ROADM.xml (rest-http port will be 81 + netconf-port last two digits : 8132)"
-fi
diff --git a/tests/honeynode/1.2.1/minimal-distribution/asciidoc/Readme.adoc b/tests/honeynode/1.2.1/minimal-distribution/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index 1da86ca..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-= minimal-distribution
-
-Overview of minimal-distribution
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/minimal-distribution/pom.xml b/tests/honeynode/1.2.1/minimal-distribution/pom.xml
deleted file mode 100644 (file)
index 828890c..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (c) 2015 Cisco and/or its affiliates.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at:
-     http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>io.fd.honeycomb.common</groupId>
-        <artifactId>minimal-distribution-parent</artifactId>
-        <version>1.19.04</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>io.fd.honeycomb.transportpce</groupId>
-    <artifactId>minimal-distribution</artifactId>
-    <name>${project.artifactId}</name>
-    <properties>
-        <main.class>io.fd.honeycomb.infra.distro.Main</main.class>
-        <distribution.modules>
-            io.fd.honeycomb.infra.distro.schema.YangBindingProviderModule,
-            io.fd.honeycomb.infra.distro.schema.SchemaModule,
-            io.fd.honeycomb.infra.distro.data.ConfigAndOperationalPipelineModule,
-            io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule,
-            io.fd.honeycomb.infra.distro.initializer.InitializerPipelineModule,
-            io.fd.honeycomb.northbound.CredentialsModule,
-            io.fd.honeycomb.northbound.netconf.NetconfModule,
-            io.fd.honeycomb.northbound.netconf.NetconfReadersModule,
-            io.fd.honeycomb.northbound.restconf.RestconfModule,
-            io.fd.honeycomb.infra.distro.cfgattrs.CfgAttrsModule,
-            // io.fd.honeycomb.infra.bgp.BgpModule,
-            // io.fd.honeycomb.infra.bgp.BgpReadersModule,
-            // io.fd.honeycomb.infra.bgp.BgpWritersModule,
-            // io.fd.honeycomb.northbound.bgp.extension.EvpnModule,
-            // io.fd.honeycomb.northbound.bgp.extension.InetModule,
-            // io.fd.honeycomb.northbound.bgp.extension.L3VpnV4Module,
-            // io.fd.honeycomb.northbound.bgp.extension.L3VpnV6Module,
-            // io.fd.honeycomb.northbound.bgp.extension.LabeledUnicastModule,
-            // io.fd.honeycomb.northbound.bgp.extension.LinkstateModule,
-            // io.fd.honeycomb.footprint.FootprintModule
-        </distribution.modules>
-         <honeycomb.version>1.19.04</honeycomb.version>
-        <java.version>11</java.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <maven.javadoc.skip>true</maven.javadoc.skip>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-    </properties>
-    <dependencies>
-        <!-- DI-->
-        <dependency>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-        </dependency>
-        <!-- TPCE Distribution core -->
-        <dependency>
-            <groupId>io.fd.honeycomb.transportpce</groupId>
-            <artifactId>minimal-distribution-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.transportpce</groupId>
-            <artifactId>restconf</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.transportpce</groupId>
-            <artifactId>netconf</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <!-- Distribution core -->
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>minimal-distribution-core</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- Northbound interfaces -->
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound</groupId>
-            <artifactId>common</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-<!--         <dependency> -->
-<!--             <groupId>io.fd.honeycomb.northbound</groupId> -->
-<!--             <artifactId>restconf</artifactId> -->
-<!--             <version>${honeycomb.version}</version> -->
-<!--         </dependency> -->
-<!--         <dependency> -->
-<!--             <groupId>io.fd.honeycomb.northbound</groupId> -->
-<!--             <artifactId>netconf</artifactId> -->
-<!--             <version>${honeycomb.version}</version> -->
-<!--         </dependency> -->
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound</groupId>
-            <artifactId>bgp</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- Bgp extension modules -->
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound.bgp</groupId>
-            <artifactId>extension-common</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound.bgp</groupId>
-            <artifactId>evpn</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound.bgp</groupId>
-            <artifactId>inet</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound.bgp</groupId>
-            <artifactId>l3-vpn-v4</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound.bgp</groupId>
-            <artifactId>l3-vpn-v6</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound.bgp</groupId>
-            <artifactId>linkstate</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound.bgp</groupId>
-            <artifactId>labeled-unicast</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- Footprint api -->
-        <dependency>
-            <groupId>io.fd.honeycomb.footprint</groupId>
-            <artifactId>impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-    </dependencies>
-        <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.8.1</version>
-                    <configuration>
-                        <source>${java.version}</source>
-                        <target>${java.version}</target>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>3.1.0</version>
-                    <executions>
-                        <execution>
-                            <id>attach-javadocs</id>
-                            <goals>
-                                <goal>jar</goal>
-                            </goals>
-                            <configuration> <!-- add this to disable checking -->
-                                <doclint>none</doclint>
-                            </configuration>
-                        </execution>
-                    </executions>
-                </plugin>
-                <!--This plugin's configuration is used to store Eclipse m2e settings
-                    only. It has no influence on the Maven build itself. -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmaven</groupId>
-                                        <artifactId>groovy-maven-plugin</artifactId>
-                                        <versionRange>[2.0,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-checkstyle-plugin</artifactId>
-                                        <versionRange>[3.0.0,)</versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-dependency-plugin</artifactId>
-                                        <versionRange>[2.10,)</versionRange>
-                                        <goals>
-                                            <goal>copy-dependencies</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmavenplus</groupId>
-                                        <artifactId>gmavenplus-plugin</artifactId>
-                                        <versionRange>[1.6.2,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-        <plugins>
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <!-- MacOS X and posix compatibility, fix error "group id is too big" -->
-                    <tarLongFileMode>posix</tarLongFileMode>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/tests/honeynode/1.2.1/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java b/tests/honeynode/1.2.1/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java
deleted file mode 100644 (file)
index fce1699..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro;
-
-import static com.google.inject.Guice.createInjector;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.ConfigurationException;
-import com.google.inject.CreationException;
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.Module;
-import com.google.inject.ProvisionException;
-import com.google.inject.name.Names;
-import io.fd.honeycomb.data.init.DataTreeInitializer;
-import io.fd.honeycomb.data.init.InitializerRegistry;
-import io.fd.honeycomb.infra.distro.activation.ActivationModule;
-import io.fd.honeycomb.infra.distro.activation.ActiveModules;
-import io.fd.honeycomb.infra.distro.initializer.InitializerPipelineModule;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-public final class Main {
-
-    private static final Logger LOG = LoggerFactory.getLogger(Main.class);
-
-    private Main() {
-    }
-
-    public static void main(String[] args) {
-        init(new ActivationModule());
-    }
-
-    /**
-     * Initialize the Honeycomb with provided modules
-     */
-    public static Injector init(final ActivationModule activationModule) {
-        try {
-            LOG.info("Starting honeycomb");
-            // creating child injector does not work in this case, so just create injector, and does not store ref
-            // to it, or its active modules instance
-            Injector injector = createInjector(ImmutableSet.<Module>builder()
-                    .add(activationModule)
-                    .addAll(createInjector(activationModule).getInstance(ActiveModules.class).createModuleInstances())
-                    .build());
-
-            // Log all bindings
-            injector.getAllBindings().entrySet().stream()
-                    .forEach(e -> LOG.trace("Component available under: {} is {}", e.getKey(), e.getValue()));
-
-            try {
-                LOG.info("Initializing configuration");
-                injector.getInstance(Key.get(InitializerRegistry.class,
-                        Names.named(InitializerPipelineModule.HONEYCOMB_INITIALIZER))).initialize();
-                LOG.info("Configuration initialized successfully");
-            } catch (DataTreeInitializer.InitializeException e) {
-                LOG.error("Unable to initialize configuration", e);
-            }
-
-            LOG.info("Honeycomb started successfully!");
-
-            return injector;
-        } catch (CreationException | ProvisionException | ConfigurationException e) {
-            LOG.error("Failed to initialize Honeycomb components", e);
-            throw e;
-        } catch (RuntimeException e) {
-            LOG.error("Unexpected initialization failure", e);
-            throw e;
-        } finally {
-            // Trigger gc to force collect initial garbage + dedicated classloader
-            System.gc();
-        }
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/pom.xml b/tests/honeynode/1.2.1/netconf-impl/pom.xml
deleted file mode 100644 (file)
index f8353d9..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. 
-    This program and the accompanying materials are made available under the 
-    terms of the Eclipse Public License v1.0 which accompanies this distribution, 
-    and is available at http://www.eclipse.org/legal/epl-v10.html -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.opendaylight.netconf</groupId>
-        <artifactId>netconf-parent</artifactId>
-        <version>1.5.0</version>
-        <relativePath />
-    </parent>
-    <artifactId>netconf-impl</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
-    <properties>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-        <java.version>11</java.version>
-        <jacoco.version>0.8.5</jacoco.version>
-    </properties>
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>config-artifacts</artifactId>
-                <version>0.9.0</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>ietf-netconf-monitoring</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>ietf-netconf-monitoring-extension</artifactId>
-        </dependency>
-        <!-- compile dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-mapping-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-notifications-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-notifications-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-netty-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>threadpool-config-api</artifactId>
-        </dependency>
-        <!-- test dependencies -->
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-client</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-client</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-util</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>xmlunit</groupId>
-            <artifactId>xmlunit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.0</version>
-                <configuration>
-                    <source>${java.version}</source>
-                    <target>${java.version}</target>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Bundle-Activator>org.opendaylight.netconf.impl.osgi.NetconfImplActivator</Bundle-Activator>
-                        <Export-Package>org.opendaylight.netconf.impl.*</Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                        <phase>package</phase>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-        <pluginManagement>
-            <plugins>
-                <!--This plugin's configuration is used to store Eclipse m2e settings 
-                    only. It has no influence on the Maven build itself. -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.apache.maven.plugins
-                                        </groupId>
-                                        <artifactId>
-                                            maven-checkstyle-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [2.17,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerDispatcherImpl.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerDispatcherImpl.java
deleted file mode 100644 (file)
index 394771b..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelFuture;
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.local.LocalAddress;
-import io.netty.channel.local.LocalServerChannel;
-import io.netty.util.concurrent.Promise;
-import java.net.InetSocketAddress;
-import org.opendaylight.netconf.api.NetconfServerDispatcher;
-import org.opendaylight.netconf.impl.util.DeserializerExceptionHandler;
-import org.opendaylight.netconf.nettyutil.AbstractChannelInitializer;
-import org.opendaylight.protocol.framework.AbstractDispatcher;
-
-public class NetconfServerDispatcherImpl extends AbstractDispatcher<NetconfServerSession,
-        NetconfServerSessionListener> implements NetconfServerDispatcher {
-
-    private final ServerChannelInitializer initializer;
-
-    public NetconfServerDispatcherImpl(ServerChannelInitializer serverChannelInitializer, EventLoopGroup bossGroup,
-                                       EventLoopGroup workerGroup) {
-        super(bossGroup, workerGroup);
-        this.initializer = serverChannelInitializer;
-    }
-
-    @Override
-    public ChannelFuture createServer(InetSocketAddress address) {
-        return super.createServer(address, initializer::initialize);
-    }
-
-    @Override
-    public ChannelFuture createLocalServer(LocalAddress address) {
-        return super.createServer(address, LocalServerChannel.class, initializer::initialize);
-    }
-
-    public static class ServerChannelInitializer extends AbstractChannelInitializer<NetconfServerSession> {
-
-        public static final String DESERIALIZER_EX_HANDLER_KEY = "deserializerExHandler";
-
-        private final NetconfServerSessionNegotiatorFactory negotiatorFactory;
-
-
-        public ServerChannelInitializer(NetconfServerSessionNegotiatorFactory negotiatorFactory) {
-            this.negotiatorFactory = negotiatorFactory;
-
-        }
-
-        @Override
-        protected void initializeMessageDecoder(Channel ch) {
-            super.initializeMessageDecoder(ch);
-            ch.pipeline().addLast(DESERIALIZER_EX_HANDLER_KEY, new DeserializerExceptionHandler());
-        }
-
-        @Override
-        protected void initializeSessionNegotiator(Channel ch, Promise<NetconfServerSession> promise) {
-            ch.pipeline().addAfter(DESERIALIZER_EX_HANDLER_KEY, AbstractChannelInitializer.NETCONF_SESSION_NEGOTIATOR,
-                    negotiatorFactory.getSessionNegotiator(null, ch, promise));
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSession.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSession.java
deleted file mode 100644 (file)
index bb0964b..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import com.google.common.base.Preconditions;
-import com.google.common.net.InetAddresses;
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelFuture;
-import io.netty.handler.codec.ByteToMessageDecoder;
-import io.netty.handler.codec.MessageToByteEncoder;
-import java.net.Inet4Address;
-import java.net.InetAddress;
-import java.time.Instant;
-import java.time.ZoneId;
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
-import org.opendaylight.netconf.api.monitoring.NetconfManagementSession;
-import org.opendaylight.netconf.nettyutil.AbstractNetconfSession;
-import org.opendaylight.netconf.nettyutil.handler.NetconfMessageToXMLEncoder;
-import org.opendaylight.netconf.nettyutil.handler.NetconfXMLToMessageDecoder;
-import org.opendaylight.netconf.notifications.NetconfNotification;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210.NetconfTcp;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210.Session1;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210.Session1Builder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfSsh;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.Transport;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.SessionBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.SessionKey;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.ZeroBasedCounter32;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class NetconfServerSession extends AbstractNetconfSession<NetconfServerSession,
-        NetconfServerSessionListener> implements NetconfManagementSession {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfServerSession.class);
-    private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
-    private static final String DATE_TIME_PATTERN_STRING = DateAndTime.PATTERN_CONSTANTS.get(0);
-    private static final Pattern DATE_TIME_PATTERN = Pattern.compile(DATE_TIME_PATTERN_STRING);
-
-    private final NetconfHelloMessageAdditionalHeader header;
-    private final NetconfServerSessionListener sessionListener;
-
-    private ZonedDateTime loginTime;
-    private long inRpcSuccess;
-    private long inRpcFail;
-    private long outRpcError;
-    private long outNotification;
-    private volatile boolean delayedClose;
-
-    public NetconfServerSession(final NetconfServerSessionListener sessionListener, final Channel channel,
-                                final long sessionId, final NetconfHelloMessageAdditionalHeader header) {
-        super(sessionListener, channel, sessionId);
-        this.header = header;
-        this.sessionListener = sessionListener;
-        LOG.debug("Session {} created", toString());
-    }
-
-    @Override
-    protected void sessionUp() {
-        Preconditions.checkState(loginTime == null, "Session is already up");
-        this.loginTime = Instant.now().atZone(ZoneId.systemDefault());
-        super.sessionUp();
-    }
-
-    /**
-     * Close this session after next message is sent.
-     * Suitable for close rpc that needs to send ok response before the session is closed.
-     */
-    public void delayedClose() {
-        this.delayedClose = true;
-    }
-
-    @Override
-    public ChannelFuture sendMessage(final NetconfMessage netconfMessage) {
-        final ChannelFuture channelFuture = super.sendMessage(netconfMessage);
-        if (netconfMessage instanceof NetconfNotification) {
-            outNotification++;
-            sessionListener.onNotification(this, (NetconfNotification) netconfMessage);
-        }
-        // delayed close was set, close after the message was sent
-        if (delayedClose) {
-            channelFuture.addListener(future -> close());
-        }
-        return channelFuture;
-    }
-
-    public void onIncommingRpcSuccess() {
-        inRpcSuccess++;
-    }
-
-    public void onIncommingRpcFail() {
-        inRpcFail++;
-    }
-
-    public void onOutgoingRpcError() {
-        outRpcError++;
-    }
-
-    @Override
-    public Session toManagementSession() {
-        SessionBuilder builder = new SessionBuilder();
-
-        builder.setSessionId(getSessionId());
-        IpAddress address;
-        InetAddress address1 = InetAddresses.forString(header.getAddress());
-        if (address1 instanceof Inet4Address) {
-            address = new IpAddress(new Ipv4Address(header.getAddress()));
-        } else {
-            address = new IpAddress(new Ipv6Address(header.getAddress()));
-        }
-        builder.setSourceHost(new Host(address));
-
-        Preconditions.checkState(DateAndTime.PATTERN_CONSTANTS.size() == 1);
-        String formattedDateTime = DATE_FORMATTER.format(loginTime);
-
-        Matcher matcher = DATE_TIME_PATTERN.matcher(formattedDateTime);
-        Preconditions.checkState(matcher.matches(), "Formatted datetime %s does not match pattern %s",
-                formattedDateTime, DATE_TIME_PATTERN);
-        builder.setLoginTime(new DateAndTime(formattedDateTime));
-
-        builder.setInBadRpcs(new ZeroBasedCounter32(inRpcFail));
-        builder.setInRpcs(new ZeroBasedCounter32(inRpcSuccess));
-        builder.setOutRpcErrors(new ZeroBasedCounter32(outRpcError));
-
-        builder.setUsername(header.getUserName());
-        builder.setTransport(getTransportForString(header.getTransport()));
-
-        builder.setOutNotifications(new ZeroBasedCounter32(outNotification));
-
-        builder.withKey(new SessionKey(getSessionId()));
-
-        Session1Builder builder1 = new Session1Builder();
-        builder1.setSessionIdentifier(header.getSessionIdentifier());
-        builder.addAugmentation(Session1.class, builder1.build());
-
-        return builder.build();
-    }
-
-    private static Class<? extends Transport> getTransportForString(final String transport) {
-        switch (transport) {
-            case "ssh":
-                return NetconfSsh.class;
-            case "tcp":
-                return NetconfTcp.class;
-            default:
-                throw new IllegalArgumentException("Unknown transport type " + transport);
-        }
-    }
-
-    @Override
-    protected NetconfServerSession thisInstance() {
-        return this;
-    }
-
-    @Override
-    protected void addExiHandlers(final ByteToMessageDecoder decoder,
-                                  final MessageToByteEncoder<NetconfMessage> encoder) {
-        replaceMessageDecoder(decoder);
-        replaceMessageEncoderAfterNextMessage(encoder);
-    }
-
-    @Override
-    public void stopExiCommunication() {
-        replaceMessageDecoder(new NetconfXMLToMessageDecoder());
-        replaceMessageEncoderAfterNextMessage(new NetconfMessageToXMLEncoder());
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionListener.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionListener.java
deleted file mode 100644 (file)
index e0b18ce..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableMap;
-
-import java.util.regex.PatternSyntaxException;
-
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.NetconfSessionListener;
-import org.opendaylight.netconf.api.NetconfTerminationReason;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.monitoring.SessionEvent;
-import org.opendaylight.netconf.api.monitoring.SessionListener;
-import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.osgi.NetconfOperationRouter;
-import org.opendaylight.netconf.notifications.NetconfNotification;
-import org.opendaylight.netconf.util.messages.SendErrorExceptionUtil;
-import org.opendaylight.netconf.util.messages.SubtreeFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class NetconfServerSessionListener implements NetconfSessionListener<NetconfServerSession> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfServerSessionListener.class);
-    private final SessionListener monitoringSessionListener;
-    private final NetconfOperationRouter operationRouter;
-    private final AutoCloseable onSessionDownCloseable;
-
-    public NetconfServerSessionListener(final NetconfOperationRouter operationRouter,
-            final NetconfMonitoringService monitoringService, final AutoCloseable onSessionDownCloseable) {
-        this.operationRouter = operationRouter;
-        this.monitoringSessionListener = monitoringService.getSessionListener();
-        this.onSessionDownCloseable = onSessionDownCloseable;
-    }
-
-    @Override
-    public void onSessionUp(final NetconfServerSession netconfNetconfServerSession) {
-        monitoringSessionListener.onSessionUp(netconfNetconfServerSession);
-    }
-
-    @Override
-    public void onSessionDown(final NetconfServerSession netconfNetconfServerSession, final Exception cause) {
-        LOG.debug("Session {} down, reason: {}", netconfNetconfServerSession, cause.getMessage());
-        onDown(netconfNetconfServerSession);
-    }
-
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    public void onDown(final NetconfServerSession netconfNetconfServerSession) {
-        monitoringSessionListener.onSessionDown(netconfNetconfServerSession);
-
-        try {
-            operationRouter.close();
-        } catch (final Exception closingEx) {
-            LOG.debug("Ignoring exception while closing operationRouter", closingEx);
-        }
-        try {
-            onSessionDownCloseable.close();
-        } catch (final Exception ex) {
-            LOG.debug("Ignoring exception while closing onSessionDownCloseable", ex);
-        }
-    }
-
-    @Override
-    public void onSessionTerminated(final NetconfServerSession netconfNetconfServerSession,
-            final NetconfTerminationReason netconfTerminationReason) {
-        LOG.debug("Session {} terminated, reason: {}", netconfNetconfServerSession,
-                netconfTerminationReason.getErrorMessage());
-        onDown(netconfNetconfServerSession);
-    }
-
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    @Override
-    public void onMessage(final NetconfServerSession session, final NetconfMessage netconfMessage) {
-        try {
-
-            Preconditions.checkState(operationRouter != null, "Cannot handle message, session up was not yet received");
-            // there is no validation since the document may contain yang schemas
-            final NetconfMessage message = processDocument(netconfMessage, session);
-            final NetconfMessage modifiedmessage = modifyType(message);
-            LOG.debug("Responding with message {}", modifiedmessage);
-            session.sendMessage(message);
-            monitoringSessionListener.onSessionEvent(SessionEvent.inRpcSuccess(session));
-        } catch (final RuntimeException e) {
-            // TODO: should send generic error or close session?
-            LOG.error("Unexpected exception", e);
-            session.onIncommingRpcFail();
-            monitoringSessionListener.onSessionEvent(SessionEvent.inRpcFail(session));
-            throw new IllegalStateException("Unable to process incoming message " + netconfMessage, e);
-        } catch (final DocumentedException e) {
-            LOG.trace("Error occurred while processing message", e);
-            session.onOutgoingRpcError();
-            session.onIncommingRpcFail();
-            monitoringSessionListener.onSessionEvent(SessionEvent.inRpcFail(session));
-            monitoringSessionListener.onSessionEvent(SessionEvent.outRpcError(session));
-            SendErrorExceptionUtil.sendErrorMessage(session, e, netconfMessage);
-        }
-    }
-
-    private NetconfMessage modifyType(NetconfMessage message) {
-        Document doc = message.getDocument();
-        NodeList result = doc.getElementsByTagName("components");
-        if (result.getLength() > 0) {
-            NodeList components = doc.getElementsByTagName("component");
-            for (int i = 0; i < components.getLength(); i++) {
-                try {
-                    Element component = (Element) components.item(i);
-                    Element state = getChild(component, "state");
-                    if (state != null) {
-                        LOG.debug("state gets : {}", state.getTextContent());
-                        Element type = getChild(state, "type");
-                        if (type != null) {
-                            LOG.debug("type gets : {}", type.getTextContent());
-                            LOG.debug("formatting ...");
-                            String textContent = type.getTextContent();
-                            LOG.debug("formatting : {}", textContent);
-                            String[] splitValue = textContent.split("\\)");
-                            String value = null;
-                            String namespace = null;
-                            if (splitValue.length == 2) {
-                                namespace = splitValue[0];
-                                value = splitValue[1];
-                                if ((value != null) && (namespace != null)) {
-                                    if (namespace.contains("http://openconfig.net/yang/platform-types")) {
-                                        type.setAttribute("xmlns:oc-platform-types",
-                                                "http://openconfig.net/yang/platform-types");
-                                        type.setTextContent("oc-platform-types:" + value);
-                                    } else if (namespace.contains("http://openconfig.net/yang/transport-types")) {
-                                        type.setAttribute("xmlns:oc-opt-types",
-                                                "http://openconfig.net/yang/transport-types");
-                                        type.setTextContent("oc-opt-types:" + value);
-                                    }
-                                } else {
-                                    LOG.debug("value or namespace is null !");
-                                }
-                            }
-                        } else {
-                            LOG.debug("tag <state> doesn't have type value !");
-                        }
-                    } else {
-                        LOG.debug("tag <component> doesn't have state value !");
-                    }
-                } catch (PatternSyntaxException | ArrayIndexOutOfBoundsException | NullPointerException e) {
-                    LOG.warn("failed to get type value!", e);
-                }
-            }
-        } else {
-            LOG.debug("No <components> tag present in xml doc");
-        }
-        return new NetconfMessage(doc);
-    }
-
-    private Element getChild(Element parent, String name) {
-        for (Node child = parent.getFirstChild(); child != null; child = child.getNextSibling()) {
-            if ((child instanceof Element) && name.equals(child.getNodeName())) {
-                return (Element) child;
-            }
-        }
-        return null;
-    }
-
-    public void onNotification(final NetconfServerSession session, final NetconfNotification notification) {
-        monitoringSessionListener.onSessionEvent(SessionEvent.notification(session));
-    }
-
-    private NetconfMessage processDocument(final NetconfMessage netconfMessage, final NetconfServerSession session)
-            throws DocumentedException {
-
-        final Document incomingDocument = netconfMessage.getDocument();
-        final Node rootNode = incomingDocument.getDocumentElement();
-
-        if (rootNode.getLocalName().equals(XmlNetconfConstants.RPC_KEY)) {
-            final Document responseDocument = XmlUtil.newDocument();
-            checkMessageId(rootNode);
-
-            Document rpcReply = operationRouter.onNetconfMessage(incomingDocument, session);
-
-            rpcReply = SubtreeFilter.applyRpcSubtreeFilter(incomingDocument, rpcReply);
-
-            session.onIncommingRpcSuccess();
-
-            responseDocument.appendChild(responseDocument.importNode(rpcReply.getDocumentElement(), true));
-            return new NetconfMessage(responseDocument);
-        } else {
-            // unknown command, send RFC 4741 p.70 unknown-element
-            /*
-             * Tag: unknown-element Error-type: rpc, protocol, application Severity: error
-             * Error-info: <bad-element> : name of the unexpected element Description: An
-             * unexpected element is present.
-             */
-            throw new DocumentedException("Unknown tag " + rootNode.getNodeName() + " in message:\n" + netconfMessage,
-                    DocumentedException.ErrorType.PROTOCOL, DocumentedException.ErrorTag.UNKNOWN_ELEMENT,
-                    DocumentedException.ErrorSeverity.ERROR, ImmutableMap.of("bad-element", rootNode.getNodeName()));
-        }
-    }
-
-    private static void checkMessageId(final Node rootNode) throws DocumentedException {
-
-        final NamedNodeMap attributes = rootNode.getAttributes();
-
-        if (attributes.getNamedItemNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0,
-                XmlNetconfConstants.MESSAGE_ID) != null) {
-            return;
-        }
-
-        if (attributes.getNamedItem(XmlNetconfConstants.MESSAGE_ID) != null) {
-            return;
-        }
-
-        throw new DocumentedException("Missing attribute " + rootNode.getNodeName(), DocumentedException.ErrorType.RPC,
-                DocumentedException.ErrorTag.MISSING_ATTRIBUTE, DocumentedException.ErrorSeverity.ERROR,
-                ImmutableMap.of("bad-attribute", XmlNetconfConstants.MESSAGE_ID, "bad-element",
-                        XmlNetconfConstants.RPC_KEY));
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiator.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiator.java
deleted file mode 100644 (file)
index e32d5c7..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import com.google.common.base.Optional;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import io.netty.channel.Channel;
-import io.netty.channel.local.LocalAddress;
-import io.netty.util.Timer;
-import io.netty.util.concurrent.Promise;
-import java.net.InetSocketAddress;
-import java.net.SocketAddress;
-import java.util.AbstractMap;
-import java.util.Map;
-import org.opendaylight.netconf.api.NetconfDocumentedException;
-import org.opendaylight.netconf.api.NetconfServerSessionPreferences;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
-import org.opendaylight.netconf.nettyutil.AbstractNetconfSessionNegotiator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class NetconfServerSessionNegotiator
-        extends AbstractNetconfSessionNegotiator<NetconfServerSessionPreferences, NetconfServerSession,
-                NetconfServerSessionListener> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfServerSessionNegotiator.class);
-
-    private static final String UNKNOWN = "unknown";
-
-    protected NetconfServerSessionNegotiator(
-            NetconfServerSessionPreferences sessionPreferences,
-            Promise<NetconfServerSession> promise, Channel channel,
-            Timer timer, NetconfServerSessionListener sessionListener,
-            long connectionTimeoutMillis) {
-        super(sessionPreferences, promise, channel, timer, sessionListener,
-                connectionTimeoutMillis);
-    }
-
-    @Override
-    protected void handleMessage(NetconfHelloMessage netconfMessage)
-            throws NetconfDocumentedException {
-        NetconfServerSession session = getSessionForHelloMessage(netconfMessage);
-        replaceHelloMessageInboundHandler(session);
-        // Negotiation successful after all non hello messages were processed
-        negotiationSuccessful(session);
-    }
-
-    @Override
-    @SuppressFBWarnings("BC_UNCONFIRMED_CAST_OF_RETURN_VALUE")
-    protected NetconfServerSession getSession(
-            NetconfServerSessionListener sessionListener, Channel channel,
-            NetconfHelloMessage message) {
-        Optional<NetconfHelloMessageAdditionalHeader> additionalHeader = message
-                .getAdditionalHeader();
-
-        NetconfHelloMessageAdditionalHeader parsedHeader;
-        if (additionalHeader.isPresent()) {
-            parsedHeader = additionalHeader.get();
-        } else {
-
-            parsedHeader = new NetconfHelloMessageAdditionalHeader(UNKNOWN,
-                    getHostName(channel.localAddress()).getValue(),
-                    getHostName(channel.localAddress()).getKey(), "tcp",
-                    "client");
-
-        }
-
-        LOG.debug("Additional header from hello parsed as {} from {}",
-                parsedHeader, additionalHeader);
-
-        return new NetconfServerSession(sessionListener, channel,
-                getSessionPreferences().getSessionId(), parsedHeader);
-    }
-
-    /**
-     * Get a name of the host.
-     *
-     * @param socketAddress type of socket address LocalAddress, or
-     *                      InetSocketAddress, for others returns unknown
-     * @return Two values - port and host of socket address
-     */
-    protected static Map.Entry<String, String> getHostName(
-            SocketAddress socketAddress) {
-
-        if (socketAddress instanceof InetSocketAddress) {
-
-            InetSocketAddress inetSocketAddress = (InetSocketAddress) socketAddress;
-
-            return new AbstractMap.SimpleImmutableEntry<>(
-                    Integer.toString(inetSocketAddress.getPort()),
-                    inetSocketAddress.getHostString());
-
-        } else if (socketAddress instanceof LocalAddress) {
-
-            return new AbstractMap.SimpleImmutableEntry<>(UNKNOWN,
-                    ((LocalAddress) socketAddress).id());
-
-        }
-        return new AbstractMap.SimpleImmutableEntry<>(UNKNOWN, UNKNOWN);
-
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactory.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactory.java
deleted file mode 100644 (file)
index 3dfd48b..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Sets;
-import io.netty.channel.Channel;
-import io.netty.util.Timer;
-import io.netty.util.concurrent.Promise;
-import java.net.SocketAddress;
-import java.util.Set;
-import org.opendaylight.netconf.api.NetconfServerSessionPreferences;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
-import org.opendaylight.netconf.impl.osgi.NetconfOperationRouter;
-import org.opendaylight.netconf.impl.osgi.NetconfOperationRouterImpl;
-import org.opendaylight.netconf.mapping.api.NetconfOperationService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.protocol.framework.SessionListenerFactory;
-import org.opendaylight.protocol.framework.SessionNegotiator;
-import org.opendaylight.protocol.framework.SessionNegotiatorFactory;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class NetconfServerSessionNegotiatorFactory implements SessionNegotiatorFactory<NetconfHelloMessage,
-        NetconfServerSession, NetconfServerSessionListener> {
-
-    public static final Set<String> DEFAULT_BASE_CAPABILITIES = ImmutableSet.of(
-            XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_0,
-            XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_1,
-            XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_CAPABILITY_EXI_1_0
-    );
-
-    private final Timer timer;
-
-    private final SessionIdProvider idProvider;
-    private final NetconfOperationServiceFactory aggregatedOpService;
-    private final long connectionTimeoutMillis;
-    private final NetconfMonitoringService monitoringService;
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfServerSessionNegotiatorFactory.class);
-    private final Set<String> baseCapabilities;
-
-    public NetconfServerSessionNegotiatorFactory(final Timer timer,
-                                                 final NetconfOperationServiceFactory netconfOperationProvider,
-                                                 final SessionIdProvider idProvider, final long connectionTimeoutMillis,
-                                                 final NetconfMonitoringService monitoringService,
-                                                 final Set<String> baseCapabilities) {
-        this.timer = timer;
-        this.aggregatedOpService = netconfOperationProvider;
-        this.idProvider = idProvider;
-        this.connectionTimeoutMillis = connectionTimeoutMillis;
-        this.monitoringService = monitoringService;
-        this.baseCapabilities = validateBaseCapabilities(baseCapabilities == null ? DEFAULT_BASE_CAPABILITIES :
-                baseCapabilities);
-    }
-
-
-    private static ImmutableSet<String> validateBaseCapabilities(final Set<String> baseCapabilities) {
-        // Check base capabilities to be supported by the server
-        final Sets.SetView<String> unknownBaseCaps = Sets.difference(baseCapabilities, DEFAULT_BASE_CAPABILITIES);
-        Preconditions.checkArgument(unknownBaseCaps.isEmpty(),
-                "Base capabilities that will be supported by netconf server have to be subset of %s, "
-                        + "unknown base capabilities: %s",
-                DEFAULT_BASE_CAPABILITIES, unknownBaseCaps);
-
-        final ImmutableSet.Builder<String> b = ImmutableSet.builder();
-        b.addAll(baseCapabilities);
-        // Base 1.0 capability is supported by default
-        b.add(XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_0);
-        return b.build();
-    }
-
-    /**
-     * Get session negotiator.
-     *
-     * @param defunctSessionListenerFactory will not be taken into account as session listener factory can
-     *                                      only be created after snapshot is opened, thus this method constructs
-     *                                      proper session listener factory.
-     * @param channel                       Underlying channel
-     * @param promise                       Promise to be notified
-     * @return session negotiator
-     */
-    @Override
-    public SessionNegotiator<NetconfServerSession> getSessionNegotiator(
-            final SessionListenerFactory<NetconfServerSessionListener> defunctSessionListenerFactory,
-            final Channel channel, final Promise<NetconfServerSession> promise) {
-        final long sessionId = idProvider.getNextSessionId();
-
-        NetconfServerSessionPreferences proposal =
-            new NetconfServerSessionPreferences(createHelloMessage(sessionId, monitoringService), sessionId);
-
-        return new NetconfServerSessionNegotiator(proposal, promise, channel, timer,
-                getListener(Long.toString(sessionId), channel.parent().localAddress()), connectionTimeoutMillis);
-    }
-
-    private NetconfServerSessionListener getListener(final String netconfSessionIdForReporting,
-                                                     final SocketAddress socketAddress) {
-        final NetconfOperationService service = getOperationServiceForAddress(netconfSessionIdForReporting,
-                socketAddress);
-        final NetconfOperationRouter operationRouter =
-                new NetconfOperationRouterImpl(service, monitoringService, netconfSessionIdForReporting);
-        return new NetconfServerSessionListener(operationRouter, monitoringService, service);
-
-    }
-
-    protected NetconfOperationService getOperationServiceForAddress(final String netconfSessionIdForReporting,
-                                                                    final SocketAddress socketAddress) {
-        return this.aggregatedOpService.createService(netconfSessionIdForReporting);
-    }
-
-    protected final NetconfOperationServiceFactory getOperationServiceFactory() {
-        return aggregatedOpService;
-    }
-
-    private NetconfHelloMessage createHelloMessage(
-            final long sessionId, final NetconfMonitoringService capabilityProvider) {
-        return NetconfHelloMessage.createServerHello(Sets.union(transformCapabilities(capabilityProvider
-                .getCapabilities()), baseCapabilities), sessionId);
-    }
-
-    public static Set<String> transformCapabilities(final Capabilities capabilities) {
-        return Sets.newHashSet(Collections2.transform(capabilities.getCapability(), Uri::getValue));
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactoryBuilder.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactoryBuilder.java
deleted file mode 100644 (file)
index a46ed9a..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import com.google.common.base.Preconditions;
-import io.netty.util.Timer;
-import java.util.Set;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-
-public class NetconfServerSessionNegotiatorFactoryBuilder {
-    private Timer timer;
-    private SessionIdProvider idProvider;
-    private NetconfOperationServiceFactory aggregatedOpService;
-    private long connectionTimeoutMillis;
-    private NetconfMonitoringService monitoringService;
-    private Set<String> baseCapabilities;
-
-    public NetconfServerSessionNegotiatorFactoryBuilder() {
-    }
-
-    public NetconfServerSessionNegotiatorFactoryBuilder setTimer(final Timer timer) {
-        this.timer = timer;
-        return this;
-    }
-
-    public NetconfServerSessionNegotiatorFactoryBuilder setIdProvider(final SessionIdProvider idProvider) {
-        this.idProvider = idProvider;
-        return this;
-    }
-
-    public NetconfServerSessionNegotiatorFactoryBuilder setAggregatedOpService(
-            final NetconfOperationServiceFactory aggregatedOpService) {
-        this.aggregatedOpService = aggregatedOpService;
-        return this;
-    }
-
-    public NetconfServerSessionNegotiatorFactoryBuilder setConnectionTimeoutMillis(final long connectionTimeoutMillis) {
-        this.connectionTimeoutMillis = connectionTimeoutMillis;
-        return this;
-    }
-
-    public NetconfServerSessionNegotiatorFactoryBuilder setMonitoringService(
-            final NetconfMonitoringService monitoringService) {
-        this.monitoringService = monitoringService;
-        return this;
-    }
-
-    public NetconfServerSessionNegotiatorFactoryBuilder setBaseCapabilities(final Set<String> baseCapabilities) {
-        this.baseCapabilities = baseCapabilities;
-        return this;
-    }
-
-
-    public NetconfServerSessionNegotiatorFactory build() {
-        validate();
-        return new NetconfServerSessionNegotiatorFactory(timer, aggregatedOpService, idProvider,
-                connectionTimeoutMillis, monitoringService, baseCapabilities);
-    }
-
-
-    private void validate() {
-        Preconditions.checkNotNull(timer, "timer not initialized");
-        Preconditions.checkNotNull(aggregatedOpService, "NetconfOperationServiceFactory not initialized");
-        Preconditions.checkNotNull(idProvider, "SessionIdProvider not initialized");
-        Preconditions.checkArgument(connectionTimeoutMillis > 0, "connection time out <=0");
-        Preconditions.checkNotNull(monitoringService, "NetconfMonitoringService not initialized");
-
-        baseCapabilities = (baseCapabilities == null) ? NetconfServerSessionNegotiatorFactory
-                .DEFAULT_BASE_CAPABILITIES : baseCapabilities;
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/SessionIdProvider.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/SessionIdProvider.java
deleted file mode 100644 (file)
index 3e2537d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import java.util.concurrent.atomic.AtomicLong;
-
-public final class SessionIdProvider {
-
-    private final AtomicLong sessionCounter = new AtomicLong(0);
-
-    public long getNextSessionId() {
-        return sessionCounter.incrementAndGet();
-    }
-
-    public long getCurrentSessionId() {
-        return sessionCounter.get();
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSession.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSession.java
deleted file mode 100644 (file)
index 194411f..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.mapping.operations;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import java.util.Collections;
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.api.xml.XmlElement;
-import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.NetconfServerSession;
-import org.opendaylight.netconf.util.mapping.AbstractSingletonNetconfOperation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public class DefaultCloseSession extends AbstractSingletonNetconfOperation implements DefaultNetconfOperation {
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultCloseSession.class);
-
-    public static final String CLOSE_SESSION = "close-session";
-
-    private final AutoCloseable sessionResources;
-    private NetconfServerSession session;
-
-    public DefaultCloseSession(final String netconfSessionIdForReporting, final AutoCloseable sessionResources) {
-        super(netconfSessionIdForReporting);
-        this.sessionResources = sessionResources;
-    }
-
-    @Override
-    protected String getOperationName() {
-        return CLOSE_SESSION;
-    }
-
-    /**
-     * Close netconf operation router associated to this session, which in turn
-     * closes NetconfOperationServiceSnapshot with all NetconfOperationService
-     * instances.
-     */
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    @Override
-    protected Element handleWithNoSubsequentOperations(final Document document, final XmlElement operationElement)
-            throws DocumentedException {
-        try {
-            sessionResources.close();
-            Preconditions.checkNotNull(session, "Session was not set").delayedClose();
-            LOG.info("Session {} closing", session.getSessionId());
-        } catch (final Exception e) {
-            throw new DocumentedException("Unable to properly close session "
-                    + getNetconfSessionIdForReporting(), e, DocumentedException.ErrorType.APPLICATION,
-                    DocumentedException.ErrorTag.OPERATION_FAILED,
-                    DocumentedException.ErrorSeverity.ERROR, Collections.singletonMap(
-                    DocumentedException.ErrorSeverity.ERROR.toString(), e.getMessage()));
-        }
-        return XmlUtil.createElement(document, XmlNetconfConstants.OK, Optional.absent());
-    }
-
-    @Override
-    public void setNetconfSession(final NetconfServerSession netconfServerSession) {
-        this.session = netconfServerSession;
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultNetconfOperation.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultNetconfOperation.java
deleted file mode 100644 (file)
index 56b2c11..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.mapping.operations;
-
-import org.opendaylight.netconf.impl.NetconfServerSession;
-
-public interface DefaultNetconfOperation {
-    void setNetconfSession(NetconfServerSession netconfServerSession);
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStartExi.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStartExi.java
deleted file mode 100644 (file)
index 3b4a560..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.mapping.operations;
-
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity;
-import org.opendaylight.netconf.api.DocumentedException.ErrorTag;
-import org.opendaylight.netconf.api.DocumentedException.ErrorType;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.xml.XmlElement;
-import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.NetconfServerSession;
-import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution;
-import org.opendaylight.netconf.util.mapping.AbstractSingletonNetconfOperation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public class DefaultStartExi extends AbstractSingletonNetconfOperation implements DefaultNetconfOperation {
-    public static final String START_EXI = "start-exi";
-
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultStartExi.class);
-    private NetconfServerSession netconfSession;
-
-    public DefaultStartExi(final String netconfSessionIdForReporting) {
-        super(netconfSessionIdForReporting);
-    }
-
-    @Override
-    public Document handle(final Document message,
-                           final NetconfOperationChainedExecution subsequentOperation) throws DocumentedException {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Received start-exi message {} ", XmlUtil.toString(message));
-        }
-
-        try {
-            netconfSession.startExiCommunication(new NetconfMessage(message));
-        } catch (final IllegalArgumentException e) {
-            throw new DocumentedException("Failed to parse EXI parameters", e, ErrorType.PROTOCOL,
-                    ErrorTag.OPERATION_FAILED, ErrorSeverity.ERROR);
-        }
-
-        return super.handle(message, subsequentOperation);
-    }
-
-    @Override
-    protected Element handleWithNoSubsequentOperations(final Document document,
-                                                       final XmlElement operationElement) {
-        final Element getSchemaResult = document.createElementNS(
-                XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, XmlNetconfConstants.OK);
-        LOG.trace("{} operation successful", START_EXI);
-        return getSchemaResult;
-    }
-
-    @Override
-    protected String getOperationName() {
-        return START_EXI;
-    }
-
-    @Override
-    protected String getOperationNamespace() {
-        return XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0;
-    }
-
-    @Override
-    public void setNetconfSession(final NetconfServerSession netconfServerSession) {
-        netconfSession = netconfServerSession;
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExi.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExi.java
deleted file mode 100644 (file)
index cd2d0f1..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.mapping.operations;
-
-import org.opendaylight.netconf.api.xml.XmlElement;
-import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.NetconfServerSession;
-import org.opendaylight.netconf.util.mapping.AbstractSingletonNetconfOperation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public class DefaultStopExi extends AbstractSingletonNetconfOperation implements DefaultNetconfOperation {
-
-    public static final String STOP_EXI = "stop-exi";
-    private NetconfServerSession netconfSession;
-
-    private static final Logger LOG = LoggerFactory
-            .getLogger(DefaultStopExi.class);
-
-    public DefaultStopExi(String netconfSessionIdForReporting) {
-        super(netconfSessionIdForReporting);
-    }
-
-    @Override
-    protected Element handleWithNoSubsequentOperations(Document document,
-                                                       XmlElement operationElement) {
-        LOG.debug("Received stop-exi message {} ", XmlUtil.toString(operationElement));
-
-        netconfSession.stopExiCommunication();
-
-        Element getSchemaResult = document.createElementNS(
-                XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, XmlNetconfConstants.OK);
-        LOG.trace("{} operation successful", STOP_EXI);
-        return getSchemaResult;
-    }
-
-    @Override
-    protected String getOperationName() {
-        return STOP_EXI;
-    }
-
-    @Override
-    protected String getOperationNamespace() {
-        return XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0;
-    }
-
-    @Override
-    public void setNetconfSession(NetconfServerSession netconfServerSession) {
-        this.netconfSession = netconfServerSession;
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactory.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactory.java
deleted file mode 100644 (file)
index cd3aa61..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.osgi;
-
-import com.google.common.collect.HashMultimap;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.ImmutableSet.Builder;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Multimap;
-import com.google.common.collect.Multimaps;
-import com.google.common.collect.Sets;
-import io.netty.util.internal.ConcurrentSet;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.monitoring.CapabilityListener;
-import org.opendaylight.netconf.mapping.api.NetconfOperation;
-import org.opendaylight.netconf.mapping.api.NetconfOperationService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.opendaylight.netconf.util.CloseableUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * NetconfOperationService aggregator. Makes a collection of operation services accessible as one.
- */
-public class AggregatedNetconfOperationServiceFactory
-        implements NetconfOperationServiceFactory, NetconfOperationServiceFactoryListener, AutoCloseable {
-
-    private static final Logger LOG = LoggerFactory.getLogger(AggregatedNetconfOperationServiceFactory.class);
-
-    private final Set<NetconfOperationServiceFactory> factories = new ConcurrentSet<>();
-    private final Multimap<NetconfOperationServiceFactory, AutoCloseable> registrations =
-            Multimaps.synchronizedMultimap(HashMultimap.create());
-    private final Set<CapabilityListener> listeners = new ConcurrentSet<>();
-
-    public AggregatedNetconfOperationServiceFactory() {
-    }
-
-    public AggregatedNetconfOperationServiceFactory(final List<NetconfOperationServiceFactory> mappers) {
-        mappers.forEach(this::onAddNetconfOperationServiceFactory);
-    }
-
-    @Override
-    public synchronized void onAddNetconfOperationServiceFactory(NetconfOperationServiceFactory service) {
-        factories.add(service);
-
-        for (final CapabilityListener listener : listeners) {
-            AutoCloseable reg = service.registerCapabilityListener(listener);
-            registrations.put(service, reg);
-        }
-    }
-
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    @Override
-    public synchronized void onRemoveNetconfOperationServiceFactory(NetconfOperationServiceFactory service) {
-        factories.remove(service);
-
-        for (final AutoCloseable autoCloseable : registrations.get(service)) {
-            try {
-                autoCloseable.close();
-            } catch (Exception e) {
-                LOG.warn("Unable to close listener registration", e);
-            }
-        }
-
-        registrations.removeAll(service);
-    }
-
-    @Override
-    public Set<Capability> getCapabilities() {
-        final HashSet<Capability> capabilities = Sets.newHashSet();
-        for (final NetconfOperationServiceFactory factory : factories) {
-            capabilities.addAll(factory.getCapabilities());
-        }
-        return capabilities;
-    }
-
-    @Override
-    public synchronized AutoCloseable registerCapabilityListener(final CapabilityListener listener) {
-        final Map<NetconfOperationServiceFactory, AutoCloseable> regs = Maps.newHashMap();
-
-        for (final NetconfOperationServiceFactory factory : factories) {
-            final AutoCloseable reg = factory.registerCapabilityListener(listener);
-            regs.put(factory, reg);
-        }
-        listeners.add(listener);
-
-        return () -> {
-            synchronized (AggregatedNetconfOperationServiceFactory.this) {
-                listeners.remove(listener);
-                CloseableUtil.closeAll(regs.values());
-                for (final Map.Entry<NetconfOperationServiceFactory, AutoCloseable> reg : regs.entrySet()) {
-                    registrations.remove(reg.getKey(), reg.getValue());
-                }
-            }
-        };
-    }
-
-    @Override
-    public synchronized NetconfOperationService createService(final String netconfSessionIdForReporting) {
-        return new AggregatedNetconfOperation(factories, netconfSessionIdForReporting);
-    }
-
-    @Override
-    public synchronized void close() throws Exception {
-        factories.clear();
-        for (AutoCloseable reg : registrations.values()) {
-            reg.close();
-        }
-        registrations.clear();
-        listeners.clear();
-    }
-
-    private static final class AggregatedNetconfOperation implements NetconfOperationService {
-
-        private final Set<NetconfOperationService> services;
-
-        AggregatedNetconfOperation(final Set<NetconfOperationServiceFactory> factories,
-                                   final String netconfSessionIdForReporting) {
-            final Builder<NetconfOperationService> b = ImmutableSet.builder();
-            for (final NetconfOperationServiceFactory factory : factories) {
-                b.add(factory.createService(netconfSessionIdForReporting));
-            }
-            this.services = b.build();
-        }
-
-        @Override
-        public Set<NetconfOperation> getNetconfOperations() {
-            final HashSet<NetconfOperation> operations = Sets.newHashSet();
-            for (final NetconfOperationService service : services) {
-                operations.addAll(service.getNetconfOperations());
-            }
-            return operations;
-        }
-
-        @SuppressWarnings("checkstyle:IllegalCatch")
-        @Override
-        public void close() {
-            try {
-                CloseableUtil.closeAll(services);
-            } catch (final Exception e) {
-                throw new IllegalStateException("Unable to properly close all aggregated services", e);
-            }
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringService.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringService.java
deleted file mode 100644 (file)
index f627f15..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import org.opendaylight.netconf.api.capability.BasicCapability;
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.monitoring.CapabilityListener;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.Yang;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.CapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.SchemasBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.SchemaBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.SchemaKey;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChangeBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.changed.by.parms.ChangedByBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.changed.by.parms.changed.by.server.or.user.ServerBuilder;
-
-class NetconfCapabilityMonitoringService implements CapabilityListener, AutoCloseable {
-
-    private static final Schema.Location NETCONF_LOCATION = new Schema.Location(Schema.Location.Enumeration.NETCONF);
-    private static final List<Schema.Location> NETCONF_LOCATIONS = ImmutableList.of(NETCONF_LOCATION);
-    private static final BasicCapability CANDIDATE_CAPABILITY =
-            new BasicCapability("urn:ietf:params:netconf:capability:candidate:1.0");
-    private static final Function<Capability, Uri> CAPABILITY_TO_URI = input -> new Uri(input.getCapabilityUri());
-
-    private final NetconfOperationServiceFactory netconfOperationProvider;
-    private final Map<Uri, Capability> capabilities = Maps.newHashMap();
-    private final Map<String, Map<String, String>> mappedModulesToRevisionToSchema = Maps.newHashMap();
-
-
-    private final Set<NetconfMonitoringService.CapabilitiesListener> listeners = Sets.newHashSet();
-    private volatile BaseNotificationPublisherRegistration notificationPublisher;
-
-    NetconfCapabilityMonitoringService(final NetconfOperationServiceFactory netconfOperationProvider) {
-        this.netconfOperationProvider = netconfOperationProvider;
-        netconfOperationProvider.registerCapabilityListener(this);
-    }
-
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    synchronized Schemas getSchemas() {
-        try {
-            return transformSchemas(netconfOperationProvider.getCapabilities());
-        } catch (final RuntimeException e) {
-            throw e;
-        } catch (final Exception e) {
-            throw new IllegalStateException("Exception while closing", e);
-        }
-    }
-
-    synchronized String getSchemaForModuleRevision(final String moduleName, final Optional<String> revision) {
-
-        Map<String, String> revisionMapRequest = mappedModulesToRevisionToSchema.get(moduleName);
-        Preconditions.checkState(revisionMapRequest != null,
-                "Capability for module %s not present, available modules : %s",
-                moduleName, Collections2.transform(capabilities.values(), CAPABILITY_TO_URI));
-
-        if (revision.isPresent()) {
-            String schema = revisionMapRequest.get(revision.get());
-
-            Preconditions.checkState(schema != null,
-                    "Capability for module %s:%s not present, available revisions for module: %s", moduleName,
-                    revision.get(), revisionMapRequest.keySet());
-
-            return schema;
-        }
-
-        Preconditions.checkState(revisionMapRequest.size() == 1,
-                "Expected 1 capability for module %s, available revisions : %s", moduleName,
-                revisionMapRequest.keySet());
-        //Only one revision is present, so return it
-        return revisionMapRequest.values().iterator().next();
-    }
-
-    private void updateCapabilityToSchemaMap(final Set<Capability> added, final Set<Capability> removed) {
-        for (final Capability cap : added) {
-            if (!isValidModuleCapability(cap)) {
-                continue;
-            }
-
-            final String currentModuleName = cap.getModuleName().get();
-            Map<String, String> revisionMap =
-                mappedModulesToRevisionToSchema.computeIfAbsent(currentModuleName, k -> Maps.newHashMap());
-
-            final String currentRevision = cap.getRevision().get();
-            revisionMap.put(currentRevision, cap.getCapabilitySchema().get());
-        }
-        for (final Capability cap : removed) {
-            if (!isValidModuleCapability(cap)) {
-                continue;
-            }
-            final Map<String, String> revisionMap = mappedModulesToRevisionToSchema.get(cap.getModuleName().get());
-            if (revisionMap != null) {
-                revisionMap.remove(cap.getRevision().get());
-                if (revisionMap.isEmpty()) {
-                    mappedModulesToRevisionToSchema.remove(cap.getModuleName().get());
-                }
-            }
-        }
-    }
-
-    private static boolean isValidModuleCapability(final Capability cap) {
-        return cap.getModuleName().isPresent()
-                && cap.getRevision().isPresent()
-                && cap.getCapabilitySchema().isPresent();
-    }
-
-
-    synchronized Capabilities getCapabilities() {
-        return new CapabilitiesBuilder().setCapability(Lists.newArrayList(capabilities.keySet())).build();
-    }
-
-    synchronized AutoCloseable registerListener(final NetconfMonitoringService.CapabilitiesListener listener) {
-        listeners.add(listener);
-        listener.onCapabilitiesChanged(getCapabilities());
-        listener.onSchemasChanged(getSchemas());
-        return () -> {
-            synchronized (NetconfCapabilityMonitoringService.this) {
-                listeners.remove(listener);
-            }
-        };
-    }
-
-    private static Schemas transformSchemas(final Set<Capability> caps) {
-        final List<Schema> schemas = new ArrayList<>(caps.size());
-        for (final Capability cap : caps) {
-            if (cap.getCapabilitySchema().isPresent()) {
-                final SchemaBuilder builder = new SchemaBuilder();
-
-                Preconditions.checkState(isValidModuleCapability(cap));
-
-                builder.setNamespace(new Uri(cap.getModuleNamespace().get()));
-
-                final String version = cap.getRevision().get();
-                builder.setVersion(version);
-
-                final String identifier = cap.getModuleName().get();
-                builder.setIdentifier(identifier);
-
-                builder.setFormat(Yang.class);
-
-                builder.setLocation(transformLocations(cap.getLocation()));
-
-                builder.withKey(new SchemaKey(Yang.class, identifier, version));
-
-                schemas.add(builder.build());
-            }
-        }
-
-        return new SchemasBuilder().setSchema(schemas).build();
-    }
-
-    private static List<Schema.Location> transformLocations(final Collection<String> locations) {
-        if (locations.isEmpty()) {
-            return NETCONF_LOCATIONS;
-        }
-
-        final Builder<Schema.Location> b = ImmutableList.builder();
-        b.add(NETCONF_LOCATION);
-
-        for (final String location : locations) {
-            b.add(new Schema.Location(new Uri(location)));
-        }
-
-        return b.build();
-    }
-
-    private static Set<Capability> setupCapabilities(final Set<Capability> caps) {
-        Set<Capability> capabilities = new HashSet<>(caps);
-        capabilities.add(CANDIDATE_CAPABILITY);
-        // TODO rollback on error not supported EditConfigXmlParser:100
-        // [RFC6241] 8.5.  Rollback-on-Error Capability
-        // capabilities.add(new BasicCapability("urn:ietf:params:netconf:capability:rollback-on-error:1.0"));
-        return capabilities;
-    }
-
-    @Override
-    public synchronized void close() {
-        listeners.clear();
-        capabilities.clear();
-    }
-
-    @Override
-    public synchronized void onCapabilitiesChanged(final Set<Capability> added, final Set<Capability> removed) {
-        onCapabilitiesAdded(added);
-        onCapabilitiesRemoved(removed);
-        updateCapabilityToSchemaMap(added, removed);
-        notifyCapabilityChanged(getCapabilities());
-
-        // publish notification to notification collector about changed capabilities
-        if (notificationPublisher != null) {
-            notificationPublisher.onCapabilityChanged(computeDiff(added, removed));
-        }
-    }
-
-    private void notifyCapabilityChanged(final Capabilities newCapabilities) {
-        for (NetconfMonitoringService.CapabilitiesListener listener : listeners) {
-            listener.onCapabilitiesChanged(newCapabilities);
-            listener.onSchemasChanged(getSchemas());
-        }
-    }
-
-
-    private static NetconfCapabilityChange computeDiff(final Set<Capability> added, final Set<Capability> removed) {
-        final NetconfCapabilityChangeBuilder netconfCapabilityChangeBuilder = new NetconfCapabilityChangeBuilder();
-        netconfCapabilityChangeBuilder
-                .setChangedBy(new ChangedByBuilder().setServerOrUser(
-                    new ServerBuilder().setServer(Boolean.TRUE).build()).build());
-        netconfCapabilityChangeBuilder.setDeletedCapability(Lists.newArrayList(Collections2
-                .transform(removed, CAPABILITY_TO_URI)));
-        netconfCapabilityChangeBuilder.setAddedCapability(Lists.newArrayList(Collections2
-                .transform(added, CAPABILITY_TO_URI)));
-        // TODO modified should be computed ... but why ?
-        netconfCapabilityChangeBuilder.setModifiedCapability(Collections.emptyList());
-        return netconfCapabilityChangeBuilder.build();
-    }
-
-
-    private void onCapabilitiesAdded(final Set<Capability> addedCaps) {
-        this.capabilities.putAll(Maps.uniqueIndex(setupCapabilities(addedCaps), CAPABILITY_TO_URI));
-    }
-
-    private void onCapabilitiesRemoved(final Set<Capability> removedCaps) {
-        for (final Capability addedCap : removedCaps) {
-            capabilities.remove(new Uri(addedCap.getCapabilityUri()));
-        }
-    }
-
-    void setNotificationPublisher(final BaseNotificationPublisherRegistration notificationPublisher) {
-        this.notificationPublisher = notificationPublisher;
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfImplActivator.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfImplActivator.java
deleted file mode 100644 (file)
index 8529da6..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import com.google.common.base.Preconditions;
-import io.netty.channel.local.LocalAddress;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.util.HashedWheelTimer;
-import java.util.Dictionary;
-import java.util.Hashtable;
-import java.util.concurrent.TimeUnit;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.impl.NetconfServerDispatcherImpl;
-import org.opendaylight.netconf.impl.NetconfServerDispatcherImpl.ServerChannelInitializer;
-import org.opendaylight.netconf.impl.NetconfServerSessionNegotiatorFactory;
-import org.opendaylight.netconf.impl.NetconfServerSessionNegotiatorFactoryBuilder;
-import org.opendaylight.netconf.impl.SessionIdProvider;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration;
-import org.opendaylight.netconf.notifications.NetconfNotificationCollector;
-import org.opendaylight.netconf.util.NetconfConfiguration;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.util.tracker.ServiceTracker;
-import org.osgi.util.tracker.ServiceTrackerCustomizer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class NetconfImplActivator implements BundleActivator {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfImplActivator.class);
-
-    private NetconfOperationServiceFactoryTracker factoriesTracker;
-    private NioEventLoopGroup eventLoopGroup;
-    private HashedWheelTimer timer;
-    private ServiceRegistration<NetconfMonitoringService> regMonitoring;
-
-    private BaseNotificationPublisherRegistration listenerReg;
-
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    @Override
-    public void start(final BundleContext context) {
-        try {
-            AggregatedNetconfOperationServiceFactory factoriesListener = new AggregatedNetconfOperationServiceFactory();
-            startOperationServiceFactoryTracker(context, factoriesListener);
-
-            SessionIdProvider idProvider = new SessionIdProvider();
-            timer = new HashedWheelTimer();
-
-            long connectionTimeoutMillis = NetconfConfiguration.DEFAULT_TIMEOUT_MILLIS;
-
-            final NetconfMonitoringServiceImpl monitoringService = startMonitoringService(context, factoriesListener);
-
-            NetconfServerSessionNegotiatorFactory serverNegotiatorFactory =
-                    new NetconfServerSessionNegotiatorFactoryBuilder()
-                            .setAggregatedOpService(factoriesListener)
-                            .setTimer(timer)
-                            .setIdProvider(idProvider)
-                            .setMonitoringService(monitoringService)
-                            .setConnectionTimeoutMillis(connectionTimeoutMillis)
-                            .build();
-
-            eventLoopGroup = new NioEventLoopGroup();
-
-            ServerChannelInitializer serverChannelInitializer = new ServerChannelInitializer(
-                    serverNegotiatorFactory);
-            NetconfServerDispatcherImpl dispatch = new NetconfServerDispatcherImpl(serverChannelInitializer,
-                    eventLoopGroup, eventLoopGroup);
-
-            LocalAddress address = NetconfConfiguration.NETCONF_LOCAL_ADDRESS;
-            LOG.trace("Starting local netconf server at {}", address);
-            dispatch.createLocalServer(address);
-
-            final ServiceTracker<NetconfNotificationCollector, NetconfNotificationCollector>
-                    notificationServiceTracker = new ServiceTracker<>(context, NetconfNotificationCollector.class,
-                    new ServiceTrackerCustomizer<NetconfNotificationCollector, NetconfNotificationCollector>() {
-                            @Override
-                            public NetconfNotificationCollector addingService(ServiceReference<
-                                    NetconfNotificationCollector> reference) {
-                                Preconditions.checkState(listenerReg == null,
-                                        "Notification collector service was already added");
-                                listenerReg = context.getService(reference).registerBaseNotificationPublisher();
-                                monitoringService.setNotificationPublisher(listenerReg);
-                                return null;
-                            }
-
-                            @Override
-                            public void modifiedService(ServiceReference<NetconfNotificationCollector> reference,
-                                            NetconfNotificationCollector service) {
-
-                                }
-
-                            @Override
-                            public void removedService(ServiceReference<NetconfNotificationCollector> reference,
-                                           NetconfNotificationCollector service) {
-                                listenerReg.close();
-                                listenerReg = null;
-                                monitoringService.setNotificationPublisher(listenerReg);
-                            }
-                        });
-            notificationServiceTracker.open();
-        } catch (Exception e) {
-            LOG.warn("Unable to start NetconfImplActivator", e);
-        }
-    }
-
-    private void startOperationServiceFactoryTracker(BundleContext context,
-                                                     NetconfOperationServiceFactoryListener factoriesListener) {
-        factoriesTracker = new NetconfOperationServiceFactoryTracker(context, factoriesListener);
-        factoriesTracker.open();
-    }
-
-    private NetconfMonitoringServiceImpl startMonitoringService(
-            BundleContext context,
-            AggregatedNetconfOperationServiceFactory factoriesListener) {
-        NetconfMonitoringServiceImpl netconfMonitoringServiceImpl = new NetconfMonitoringServiceImpl(factoriesListener);
-        Dictionary<String, ?> dic = new Hashtable<>();
-        regMonitoring = context.registerService(NetconfMonitoringService.class, netconfMonitoringServiceImpl, dic);
-
-        return netconfMonitoringServiceImpl;
-    }
-
-    @Override
-    public void stop(final BundleContext context) {
-        LOG.info("Shutting down netconf because YangStoreService service was removed");
-
-        eventLoopGroup.shutdownGracefully(0, 1, TimeUnit.SECONDS);
-        timer.stop();
-
-        regMonitoring.unregister();
-        factoriesTracker.close();
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfMonitoringServiceImpl.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfMonitoringServiceImpl.java
deleted file mode 100644 (file)
index ff0bc5c..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import com.google.common.base.Optional;
-import org.opendaylight.controller.config.threadpool.ScheduledThreadPool;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.monitoring.SessionListener;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Sessions;
-
-public class NetconfMonitoringServiceImpl implements NetconfMonitoringService, AutoCloseable {
-
-    private final NetconfCapabilityMonitoringService capabilityMonitoring;
-    private final NetconfSessionMonitoringService sessionMonitoring;
-
-    public NetconfMonitoringServiceImpl(NetconfOperationServiceFactory opProvider) {
-        this(opProvider, Optional.absent(), 0);
-    }
-
-    public NetconfMonitoringServiceImpl(NetconfOperationServiceFactory opProvider,
-                                        ScheduledThreadPool threadPool,
-                                        long updateInterval) {
-        this(opProvider, Optional.fromNullable(threadPool), updateInterval);
-    }
-
-    public NetconfMonitoringServiceImpl(NetconfOperationServiceFactory opProvider,
-                                        Optional<ScheduledThreadPool> threadPool,
-                                        long updateInterval) {
-        this.capabilityMonitoring = new NetconfCapabilityMonitoringService(opProvider);
-        this.sessionMonitoring = new NetconfSessionMonitoringService(threadPool, updateInterval);
-
-    }
-
-    @Override
-    public Sessions getSessions() {
-        return sessionMonitoring.getSessions();
-    }
-
-    @Override
-    public SessionListener getSessionListener() {
-        return sessionMonitoring;
-    }
-
-    @Override
-    public Schemas getSchemas() {
-        return capabilityMonitoring.getSchemas();
-    }
-
-    @Override
-    public String getSchemaForCapability(String moduleName, Optional<String> revision) {
-        return capabilityMonitoring.getSchemaForModuleRevision(moduleName, revision);
-    }
-
-    @Override
-    public Capabilities getCapabilities() {
-        return capabilityMonitoring.getCapabilities();
-    }
-
-    @Override
-    public AutoCloseable registerCapabilitiesListener(CapabilitiesListener listener) {
-        return capabilityMonitoring.registerListener(listener);
-    }
-
-    @Override
-    public AutoCloseable registerSessionsListener(SessionsListener listener) {
-        return sessionMonitoring.registerListener(listener);
-    }
-
-    public void setNotificationPublisher(BaseNotificationPublisherRegistration notificationPublisher) {
-        this.capabilityMonitoring.setNotificationPublisher(notificationPublisher);
-    }
-
-    @Override
-    public void close() {
-        capabilityMonitoring.close();
-        sessionMonitoring.close();
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouter.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouter.java
deleted file mode 100644 (file)
index 1e07ed2..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.osgi;
-
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.impl.NetconfServerSession;
-import org.w3c.dom.Document;
-
-public interface NetconfOperationRouter extends AutoCloseable {
-
-    Document onNetconfMessage(Document message, NetconfServerSession session)
-            throws DocumentedException;
-
-
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImpl.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImpl.java
deleted file mode 100644 (file)
index 449b0db..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Maps;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.NavigableMap;
-import java.util.Set;
-import java.util.TreeMap;
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.NetconfServerSession;
-import org.opendaylight.netconf.impl.mapping.operations.DefaultCloseSession;
-import org.opendaylight.netconf.impl.mapping.operations.DefaultNetconfOperation;
-import org.opendaylight.netconf.impl.mapping.operations.DefaultStartExi;
-import org.opendaylight.netconf.impl.mapping.operations.DefaultStopExi;
-import org.opendaylight.netconf.mapping.api.HandlingPriority;
-import org.opendaylight.netconf.mapping.api.NetconfOperation;
-import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution;
-import org.opendaylight.netconf.mapping.api.NetconfOperationService;
-import org.opendaylight.netconf.mapping.api.SessionAwareNetconfOperation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-
-public class NetconfOperationRouterImpl implements NetconfOperationRouter {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfOperationRouterImpl.class);
-    private final NetconfOperationService netconfOperationServiceSnapshot;
-    private final Collection<NetconfOperation> allNetconfOperations;
-
-    public NetconfOperationRouterImpl(final NetconfOperationService netconfOperationServiceSnapshot,
-                                      final NetconfMonitoringService netconfMonitoringService, final String sessionId) {
-        this.netconfOperationServiceSnapshot = Preconditions.checkNotNull(netconfOperationServiceSnapshot);
-
-        final Set<NetconfOperation> ops = new HashSet<>();
-        ops.add(new DefaultCloseSession(sessionId, this));
-        ops.add(new DefaultStartExi(sessionId));
-        ops.add(new DefaultStopExi(sessionId));
-
-        ops.addAll(netconfOperationServiceSnapshot.getNetconfOperations());
-
-        allNetconfOperations = ImmutableSet.copyOf(ops);
-    }
-
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    @Override
-    public Document onNetconfMessage(final Document message, final NetconfServerSession session) throws
-            DocumentedException {
-        Preconditions.checkNotNull(allNetconfOperations, "Operation router was not initialized properly");
-
-        final NetconfOperationExecution netconfOperationExecution;
-        try {
-            netconfOperationExecution = getNetconfOperationWithHighestPriority(message, session);
-        } catch (IllegalArgumentException | IllegalStateException e) {
-            final String messageAsString = XmlUtil.toString(message);
-            LOG.warn("Unable to handle rpc {} on session {}", messageAsString, session, e);
-
-            final DocumentedException.ErrorTag tag;
-            if (e instanceof IllegalArgumentException) {
-                tag = DocumentedException.ErrorTag.OPERATION_NOT_SUPPORTED;
-            } else {
-                tag = DocumentedException.ErrorTag.OPERATION_FAILED;
-            }
-
-            throw new DocumentedException(
-                    String.format("Unable to handle rpc %s on session %s", messageAsString, session),
-                    e, DocumentedException.ErrorType.APPLICATION,
-                    tag, DocumentedException.ErrorSeverity.ERROR,
-                    Collections.singletonMap(tag.toString(), e.getMessage()));
-        } catch (final RuntimeException e) {
-            throw handleUnexpectedEx("Unexpected exception during netconf operation sort", e);
-        }
-
-        try {
-            return executeOperationWithHighestPriority(message, netconfOperationExecution);
-        } catch (final RuntimeException e) {
-            throw handleUnexpectedEx("Unexpected exception during netconf operation execution", e);
-        }
-    }
-
-    @Override
-    public void close() {
-        netconfOperationServiceSnapshot.close();
-    }
-
-    private static DocumentedException handleUnexpectedEx(final String message, final Exception exception) {
-        LOG.error("{}", message, exception);
-        return new DocumentedException("Unexpected error",
-                DocumentedException.ErrorType.APPLICATION,
-                DocumentedException.ErrorTag.OPERATION_FAILED,
-                DocumentedException.ErrorSeverity.ERROR,
-                Collections.singletonMap(DocumentedException.ErrorSeverity.ERROR.toString(), exception.toString()));
-    }
-
-    private static Document executeOperationWithHighestPriority(final Document message,
-            final NetconfOperationExecution netconfOperationExecution) throws DocumentedException {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Forwarding netconf message {} to {}", XmlUtil.toString(message), netconfOperationExecution
-                    .netconfOperation);
-        }
-
-        return netconfOperationExecution.execute(message);
-    }
-
-    private NetconfOperationExecution getNetconfOperationWithHighestPriority(
-            final Document message, final NetconfServerSession session) throws DocumentedException {
-
-        final NavigableMap<HandlingPriority, NetconfOperation> sortedByPriority =
-                getSortedNetconfOperationsWithCanHandle(
-                message, session);
-
-        if (sortedByPriority.isEmpty()) {
-            throw new IllegalArgumentException(String.format("No %s available to handle message %s",
-                    NetconfOperation.class.getName(), XmlUtil.toString(message)));
-        }
-
-        return NetconfOperationExecution.createExecutionChain(sortedByPriority, sortedByPriority.lastKey());
-    }
-
-    private TreeMap<HandlingPriority, NetconfOperation> getSortedNetconfOperationsWithCanHandle(
-            final Document message, final NetconfServerSession session) throws DocumentedException {
-        final TreeMap<HandlingPriority, NetconfOperation> sortedPriority = Maps.newTreeMap();
-
-        for (final NetconfOperation netconfOperation : allNetconfOperations) {
-            final HandlingPriority handlingPriority = netconfOperation.canHandle(message);
-            if (netconfOperation instanceof DefaultNetconfOperation) {
-                ((DefaultNetconfOperation) netconfOperation).setNetconfSession(session);
-            }
-            if (netconfOperation instanceof SessionAwareNetconfOperation) {
-                ((SessionAwareNetconfOperation) netconfOperation).setSession(session);
-            }
-            if (!handlingPriority.equals(HandlingPriority.CANNOT_HANDLE)) {
-
-                Preconditions.checkState(!sortedPriority.containsKey(handlingPriority),
-                        "Multiple %s available to handle message %s with priority %s, %s and %s",
-                        NetconfOperation.class.getName(), message, handlingPriority, netconfOperation, sortedPriority
-                                .get(handlingPriority));
-                sortedPriority.put(handlingPriority, netconfOperation);
-            }
-        }
-        return sortedPriority;
-    }
-
-    private static final class NetconfOperationExecution implements NetconfOperationChainedExecution {
-        private final NetconfOperation netconfOperation;
-        private final NetconfOperationChainedExecution subsequentExecution;
-
-        private NetconfOperationExecution(final NetconfOperation netconfOperation,
-                                          final NetconfOperationChainedExecution subsequentExecution) {
-            this.netconfOperation = netconfOperation;
-            this.subsequentExecution = subsequentExecution;
-        }
-
-        @Override
-        public boolean isExecutionTermination() {
-            return false;
-        }
-
-        @Override
-        public Document execute(final Document message) throws DocumentedException {
-            return netconfOperation.handle(message, subsequentExecution);
-        }
-
-        public static NetconfOperationExecution createExecutionChain(
-                final NavigableMap<HandlingPriority, NetconfOperation> sortedByPriority,
-                final HandlingPriority handlingPriority) {
-            final NetconfOperation netconfOperation = sortedByPriority.get(handlingPriority);
-            final HandlingPriority subsequentHandlingPriority = sortedByPriority.lowerKey(handlingPriority);
-
-            NetconfOperationChainedExecution subsequentExecution = null;
-
-            if (subsequentHandlingPriority != null) {
-                subsequentExecution = createExecutionChain(sortedByPriority, subsequentHandlingPriority);
-            } else {
-                subsequentExecution = EXECUTION_TERMINATION_POINT;
-            }
-
-            return new NetconfOperationExecution(netconfOperation, subsequentExecution);
-        }
-    }
-
-    @Override
-    public String toString() {
-        return "NetconfOperationRouterImpl{" + "netconfOperationServiceSnapshot=" + netconfOperationServiceSnapshot
-                + '}';
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationServiceFactoryTracker.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationServiceFactoryTracker.java
deleted file mode 100644 (file)
index f1845b1..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import org.opendaylight.netconf.api.util.NetconfConstants;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.util.tracker.ServiceTracker;
-
-class NetconfOperationServiceFactoryTracker extends
-        ServiceTracker<NetconfOperationServiceFactory, NetconfOperationServiceFactory> {
-    private final NetconfOperationServiceFactoryListener factoriesListener;
-
-    NetconfOperationServiceFactoryTracker(final BundleContext context,
-                                          final NetconfOperationServiceFactoryListener factoriesListener) {
-        super(context, NetconfOperationServiceFactory.class, null);
-        this.factoriesListener = factoriesListener;
-    }
-
-    @Override
-    public NetconfOperationServiceFactory addingService(
-            final ServiceReference<NetconfOperationServiceFactory> reference) {
-        Object property = reference.getProperty(NetconfConstants.SERVICE_NAME);
-        if (property != null && isMarkedForConfig(property)) {
-            NetconfOperationServiceFactory netconfOperationServiceFactory = super.addingService(reference);
-            factoriesListener.onAddNetconfOperationServiceFactory(netconfOperationServiceFactory);
-            return netconfOperationServiceFactory;
-        }
-
-        return null;
-    }
-
-    @Override
-    public void removedService(final ServiceReference<NetconfOperationServiceFactory> reference,
-                               final NetconfOperationServiceFactory netconfOperationServiceFactory) {
-        if (netconfOperationServiceFactory != null) {
-            factoriesListener.onRemoveNetconfOperationServiceFactory(netconfOperationServiceFactory);
-        }
-    }
-
-    private static boolean isMarkedForConfig(final Object property) {
-        return NetconfConstants.CONFIG_SERVICE_MARKERS.contains(property);
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringService.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringService.java
deleted file mode 100644 (file)
index 639daa8..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Sets;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
-import org.opendaylight.controller.config.threadpool.ScheduledThreadPool;
-import org.opendaylight.netconf.api.monitoring.NetconfManagementSession;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.monitoring.SessionEvent;
-import org.opendaylight.netconf.api.monitoring.SessionListener;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Sessions;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.SessionsBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This class implements {@link SessionListener} to receive updates about Netconf sessions. Instance notifies its
- * listeners
- * about session start and end. It also publishes on regular interval list of sessions,
- * where events like rpc or notification happened.
- */
-class NetconfSessionMonitoringService implements SessionListener, AutoCloseable {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfSessionMonitoringService.class);
-
-    private final Set<NetconfManagementSession> sessions = Sets.newHashSet();
-    private final Set<NetconfManagementSession> changedSessions = Sets.newHashSet();
-    private final Set<NetconfMonitoringService.SessionsListener> listeners = Sets.newHashSet();
-    private final ScheduledExecutorService executor;
-    private final long updateInterval;
-    private boolean running;
-
-    /**
-     * Constructor for {@code NetconfSessionMonitoringService}.
-     *
-     * @param schedulingThreadPool thread pool for scheduling session stats updates. If not present, updates won't be
-     *                             scheduled.
-     * @param updateInterval       update interval. If is less than 0, updates won't be scheduled
-     */
-    NetconfSessionMonitoringService(Optional<ScheduledThreadPool> schedulingThreadPool, long updateInterval) {
-        this.updateInterval = updateInterval;
-        if (schedulingThreadPool.isPresent() && updateInterval > 0) {
-            this.executor = schedulingThreadPool.get().getExecutor();
-            LOG.info("/netconf-state/sessions will be updated every {} seconds.", updateInterval);
-        } else {
-            LOG.info("Scheduling thread pool is present = {}, "
-                    + "update interval {}: /netconf-state/sessions won't be updated.",
-                    schedulingThreadPool.isPresent(), updateInterval);
-            this.executor = null;
-        }
-    }
-
-    synchronized Sessions getSessions() {
-        final Collection<Session> managementSessions = Collections2.transform(sessions,
-                NetconfManagementSession::toManagementSession);
-        return new SessionsBuilder().setSession(ImmutableList.copyOf(managementSessions)).build();
-    }
-
-    @Override
-    public synchronized void onSessionUp(final NetconfManagementSession session) {
-        LOG.debug("Session {} up", session);
-        Preconditions.checkState(!sessions.contains(session), "Session %s was already added", session);
-        sessions.add(session);
-        notifySessionUp(session);
-    }
-
-    @Override
-    public synchronized void onSessionDown(final NetconfManagementSession session) {
-        LOG.debug("Session {} down", session);
-        Preconditions.checkState(sessions.contains(session), "Session %s not present", session);
-        sessions.remove(session);
-        changedSessions.remove(session);
-        notifySessionDown(session);
-    }
-
-    @Override
-    public synchronized void onSessionEvent(SessionEvent event) {
-        changedSessions.add(event.getSession());
-    }
-
-    synchronized AutoCloseable registerListener(final NetconfMonitoringService.SessionsListener listener) {
-        listeners.add(listener);
-        if (!running) {
-            startUpdateSessionStats();
-        }
-        return () -> listeners.remove(listener);
-    }
-
-    @Override
-    public synchronized void close() {
-        stopUpdateSessionStats();
-        listeners.clear();
-        sessions.clear();
-    }
-
-    private synchronized void updateSessionStats() {
-        if (changedSessions.isEmpty()) {
-            return;
-        }
-        final List<Session> changed = changedSessions.stream()
-                .map(NetconfManagementSession::toManagementSession)
-                .collect(Collectors.toList());
-        final ImmutableList<Session> sessionImmutableList = ImmutableList.copyOf(changed);
-        for (NetconfMonitoringService.SessionsListener listener : listeners) {
-            listener.onSessionsUpdated(sessionImmutableList);
-        }
-        changedSessions.clear();
-    }
-
-    private void notifySessionUp(NetconfManagementSession managementSession) {
-        Session session = managementSession.toManagementSession();
-        for (NetconfMonitoringService.SessionsListener listener : listeners) {
-            listener.onSessionStarted(session);
-        }
-    }
-
-    private void notifySessionDown(NetconfManagementSession managementSession) {
-        Session session = managementSession.toManagementSession();
-        for (NetconfMonitoringService.SessionsListener listener : listeners) {
-            listener.onSessionEnded(session);
-        }
-    }
-
-    private void startUpdateSessionStats() {
-        if (executor != null) {
-            executor.scheduleAtFixedRate(this::updateSessionStats, 1, updateInterval, TimeUnit.SECONDS);
-            running = true;
-        }
-    }
-
-    private void stopUpdateSessionStats() {
-        if (executor != null) {
-            executor.shutdownNow();
-            running = false;
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandler.java b/tests/honeynode/1.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandler.java
deleted file mode 100644 (file)
index effccf3..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.util;
-
-import com.google.common.collect.Maps;
-import io.netty.channel.ChannelHandler;
-import io.netty.channel.ChannelHandlerContext;
-import java.util.Map;
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.util.messages.SendErrorExceptionUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class DeserializerExceptionHandler implements ChannelHandler {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DeserializerExceptionHandler.class);
-
-    @Override
-    public void handlerAdded(final ChannelHandlerContext ctx) {
-        // NOOP
-    }
-
-    @Override
-    public void handlerRemoved(final ChannelHandlerContext ctx) {
-        // NOOP
-    }
-
-    @Override
-    public void exceptionCaught(final ChannelHandlerContext ctx, final Throwable cause) {
-        LOG.warn("An exception occurred during message handling", cause);
-        handleDeserializerException(ctx, cause);
-    }
-
-    private static void handleDeserializerException(final ChannelHandlerContext ctx, final Throwable cause) {
-
-        final Map<String, String> info = Maps.newHashMap();
-        info.put("cause", cause.getMessage());
-        final DocumentedException ex = new DocumentedException(cause.getMessage(),
-                DocumentedException.ErrorType.RPC, DocumentedException.ErrorTag.MALFORMED_MESSAGE,
-                DocumentedException.ErrorSeverity.ERROR, info);
-
-        SendErrorExceptionUtil.sendErrorMessage(ctx.channel(), ex);
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/main/resources/getConfig_candidate.xml b/tests/honeynode/1.2.1/netconf-impl/src/main/resources/getConfig_candidate.xml
deleted file mode 100644 (file)
index 3ac18b5..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="commitNotification">
-    <get-config>
-        <source>
-            <candidate/>
-        </source>
-    </get-config>
-</rpc>
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/AdditionalHeaderParserTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/AdditionalHeaderParserTest.java
deleted file mode 100644 (file)
index 3edd91d..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
-
-public class AdditionalHeaderParserTest {
-
-    @Test
-    public void testParsing() throws Exception {
-        String message = "[netconf;10.12.0.102:48528;ssh;;;;;;]";
-        NetconfHelloMessageAdditionalHeader header = NetconfHelloMessageAdditionalHeader.fromString(message);
-        assertEquals("netconf", header.getUserName());
-        assertEquals("10.12.0.102", header.getAddress());
-        assertEquals("ssh", header.getTransport());
-    }
-
-    @Test
-    public void testParsing2() throws Exception {
-        String message = "[tomas;10.0.0.0/10000;tcp;1000;1000;;/home/tomas;;]";
-        NetconfHelloMessageAdditionalHeader header = NetconfHelloMessageAdditionalHeader.fromString(message);
-        assertEquals("tomas", header.getUserName());
-        assertEquals("10.0.0.0", header.getAddress());
-        assertEquals("tcp", header.getTransport());
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testParsingNoUsername() throws Exception {
-        String message = "[10.12.0.102:48528;ssh;;;;;;]";
-        NetconfHelloMessageAdditionalHeader.fromString(message);
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ConcurrentClientsTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ConcurrentClientsTest.java
deleted file mode 100644 (file)
index 4b8f859..0000000
+++ /dev/null
@@ -1,398 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-import com.google.common.io.ByteStreams;
-import io.netty.channel.ChannelFuture;
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.util.HashedWheelTimer;
-import io.netty.util.concurrent.GlobalEventExecutor;
-import java.io.DataOutputStream;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.atomic.AtomicLong;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
-import org.opendaylight.netconf.api.monitoring.CapabilityListener;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.monitoring.SessionEvent;
-import org.opendaylight.netconf.api.monitoring.SessionListener;
-import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.client.NetconfClientDispatcher;
-import org.opendaylight.netconf.client.NetconfClientDispatcherImpl;
-import org.opendaylight.netconf.client.SimpleNetconfClientSessionListener;
-import org.opendaylight.netconf.client.TestingNetconfClient;
-import org.opendaylight.netconf.client.conf.NetconfClientConfiguration;
-import org.opendaylight.netconf.client.conf.NetconfClientConfigurationBuilder;
-import org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.HandlingPriority;
-import org.opendaylight.netconf.mapping.api.NetconfOperation;
-import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution;
-import org.opendaylight.netconf.mapping.api.NetconfOperationService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.nettyutil.handler.exi.NetconfStartExiMessage;
-import org.opendaylight.netconf.util.messages.NetconfMessageUtil;
-import org.opendaylight.netconf.util.test.XmlFileLoader;
-import org.opendaylight.protocol.framework.NeverReconnectStrategy;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.CapabilitiesBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-
-@RunWith(Parameterized.class)
-public class ConcurrentClientsTest {
-    private static final Logger LOG = LoggerFactory.getLogger(ConcurrentClientsTest.class);
-
-    private static ExecutorService clientExecutor;
-
-    private static final int CONCURRENCY = 32;
-    private static final InetSocketAddress NETCONF_ADDRESS = new InetSocketAddress("127.0.0.1", 8303);
-
-    private final int nettyThreads;
-    private final Class<? extends Runnable> clientRunnable;
-    private final Set<String> serverCaps;
-
-    public ConcurrentClientsTest(int nettyThreads, Class<? extends Runnable> clientRunnable, Set<String> serverCaps) {
-        this.nettyThreads = nettyThreads;
-        this.clientRunnable = clientRunnable;
-        this.serverCaps = serverCaps;
-    }
-
-    @Parameterized.Parameters()
-    public static Collection<Object[]> data() {
-        return Arrays.asList(new Object[][]{{4, TestingNetconfClientRunnable.class,
-                NetconfServerSessionNegotiatorFactory.DEFAULT_BASE_CAPABILITIES},
-            {1, TestingNetconfClientRunnable.class, NetconfServerSessionNegotiatorFactory.DEFAULT_BASE_CAPABILITIES},
-            // empty set of capabilities = only base 1.0 netconf capability
-            {4, TestingNetconfClientRunnable.class, Collections.emptySet()},
-            {4, TestingNetconfClientRunnable.class, getOnlyExiServerCaps()},
-            {4, TestingNetconfClientRunnable.class, getOnlyChunkServerCaps()},
-            {4, BlockingClientRunnable.class, getOnlyExiServerCaps()},
-            {1, BlockingClientRunnable.class, getOnlyExiServerCaps()},
-        });
-    }
-
-    private EventLoopGroup nettyGroup;
-    private NetconfClientDispatcher netconfClientDispatcher;
-
-    HashedWheelTimer hashedWheelTimer;
-    private TestingNetconfOperation testingNetconfOperation;
-
-    public static NetconfMonitoringService createMockedMonitoringService() {
-        NetconfMonitoringService monitoring = mock(NetconfMonitoringService.class);
-        final SessionListener sessionListener = mock(SessionListener.class);
-        doNothing().when(sessionListener).onSessionUp(any(NetconfServerSession.class));
-        doNothing().when(sessionListener).onSessionDown(any(NetconfServerSession.class));
-        doNothing().when(sessionListener).onSessionEvent(any(SessionEvent.class));
-        doReturn((AutoCloseable) () -> {
-
-        }).when(monitoring).registerCapabilitiesListener(any(NetconfMonitoringService.CapabilitiesListener.class));
-        doReturn(sessionListener).when(monitoring).getSessionListener();
-        doReturn(new CapabilitiesBuilder().setCapability(Collections.emptyList()).build()).when(monitoring)
-                .getCapabilities();
-        return monitoring;
-    }
-
-    @BeforeClass
-    public static void setUpClientExecutor() {
-        clientExecutor = Executors.newFixedThreadPool(CONCURRENCY, new ThreadFactory() {
-            int index = 1;
-
-            @Override
-            public Thread newThread(final Runnable runnable) {
-                Thread thread = new Thread(runnable);
-                thread.setName("client-" + index++);
-                thread.setDaemon(true);
-                return thread;
-            }
-        });
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        hashedWheelTimer = new HashedWheelTimer();
-        nettyGroup = new NioEventLoopGroup(nettyThreads);
-        netconfClientDispatcher = new NetconfClientDispatcherImpl(nettyGroup, nettyGroup, hashedWheelTimer);
-
-        AggregatedNetconfOperationServiceFactory factoriesListener = new AggregatedNetconfOperationServiceFactory();
-
-        testingNetconfOperation = new TestingNetconfOperation();
-        factoriesListener.onAddNetconfOperationServiceFactory(
-                new TestingOperationServiceFactory(testingNetconfOperation));
-
-        SessionIdProvider idProvider = new SessionIdProvider();
-
-        NetconfServerSessionNegotiatorFactory serverNegotiatorFactory = new
-                NetconfServerSessionNegotiatorFactoryBuilder()
-                .setTimer(hashedWheelTimer)
-                .setAggregatedOpService(factoriesListener)
-                .setIdProvider(idProvider)
-                .setConnectionTimeoutMillis(5000)
-                .setMonitoringService(createMockedMonitoringService())
-                .setBaseCapabilities(serverCaps)
-                .build();
-
-        NetconfServerDispatcherImpl.ServerChannelInitializer serverChannelInitializer =
-                new NetconfServerDispatcherImpl.ServerChannelInitializer(serverNegotiatorFactory);
-        final NetconfServerDispatcherImpl dispatch =
-                new NetconfServerDispatcherImpl(serverChannelInitializer, nettyGroup, nettyGroup);
-
-        ChannelFuture server = dispatch.createServer(NETCONF_ADDRESS);
-        server.await();
-    }
-
-    @After
-    public void tearDown() {
-        hashedWheelTimer.stop();
-        try {
-            nettyGroup.shutdownGracefully().get();
-        } catch (InterruptedException | ExecutionException e) {
-            LOG.warn("Ignoring exception while cleaning up after test", e);
-        }
-    }
-
-    @AfterClass
-    public static void tearDownClientExecutor() {
-        clientExecutor.shutdownNow();
-    }
-
-    @Test(timeout = CONCURRENCY * 1000)
-    public void testConcurrentClients() throws Exception {
-
-        List<Future<?>> futures = Lists.newArrayListWithCapacity(CONCURRENCY);
-
-        for (int i = 0; i < CONCURRENCY; i++) {
-            futures.add(clientExecutor.submit(getInstanceOfClientRunnable()));
-        }
-
-        for (Future<?> future : futures) {
-            try {
-                future.get();
-            } catch (InterruptedException e) {
-                throw new IllegalStateException(e);
-            } catch (ExecutionException e) {
-                LOG.error("Thread for testing client failed", e);
-                throw e;
-            }
-        }
-
-        assertEquals(CONCURRENCY, testingNetconfOperation.getMessageCount());
-    }
-
-    public static Set<String> getOnlyExiServerCaps() {
-        return Sets.newHashSet(
-                XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_0,
-                XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_CAPABILITY_EXI_1_0
-        );
-    }
-
-    public static Set<String> getOnlyChunkServerCaps() {
-        return Sets.newHashSet(
-                XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_0,
-                XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_1
-        );
-    }
-
-    public Runnable getInstanceOfClientRunnable() throws Exception {
-        return clientRunnable.getConstructor(ConcurrentClientsTest.class).newInstance(this);
-    }
-
-    /**
-     * Responds to all operations except start-exi and counts all requests.
-     */
-    private static class TestingNetconfOperation implements NetconfOperation {
-
-        private final AtomicLong counter = new AtomicLong();
-
-        @Override
-        public HandlingPriority canHandle(Document message) {
-            return XmlUtil.toString(message).contains(NetconfStartExiMessage.START_EXI)
-                    ? HandlingPriority.CANNOT_HANDLE :
-                    HandlingPriority.HANDLE_WITH_MAX_PRIORITY;
-        }
-
-        @SuppressWarnings("checkstyle:IllegalCatch")
-        @Override
-        public Document handle(Document requestMessage, NetconfOperationChainedExecution subsequentOperation)
-                throws DocumentedException {
-            try {
-                LOG.info("Handling netconf message from test {}", XmlUtil.toString(requestMessage));
-                counter.getAndIncrement();
-                return XmlUtil.readXmlToDocument("<test/>");
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        }
-
-        public long getMessageCount() {
-            return counter.get();
-        }
-    }
-
-    /**
-     * Hardcoded operation service factory.
-     */
-    private static class TestingOperationServiceFactory implements NetconfOperationServiceFactory {
-        private final NetconfOperation[] operations;
-
-        TestingOperationServiceFactory(final NetconfOperation... operations) {
-            this.operations = operations;
-        }
-
-        @Override
-        public Set<Capability> getCapabilities() {
-            return Collections.emptySet();
-        }
-
-        @Override
-        public AutoCloseable registerCapabilityListener(final CapabilityListener listener) {
-            return () -> {
-            };
-        }
-
-        @Override
-        public NetconfOperationService createService(String netconfSessionIdForReporting) {
-            return new NetconfOperationService() {
-
-                @Override
-                public Set<NetconfOperation> getNetconfOperations() {
-                    return Sets.newHashSet(operations);
-                }
-
-                @Override
-                public void close() {
-                }
-            };
-        }
-    }
-
-    /**
-     * Pure socket based blocking client.
-     */
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    public final class BlockingClientRunnable implements Runnable {
-
-        @Override
-        public void run() {
-            try {
-                run2();
-            } catch (Exception e) {
-                throw new IllegalStateException(Thread.currentThread().getName(), e);
-            }
-        }
-
-        private void run2() throws Exception {
-            InputStream clientHello = checkNotNull(XmlFileLoader
-                    .getResourceAsStream("netconfMessages/client_hello.xml"));
-            final InputStream getConfig =
-                    checkNotNull(XmlFileLoader.getResourceAsStream("netconfMessages/getConfig.xml"));
-
-            Socket clientSocket = new Socket(NETCONF_ADDRESS.getHostString(), NETCONF_ADDRESS.getPort());
-            DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
-            InputStreamReader inFromServer = new InputStreamReader(clientSocket.getInputStream());
-
-            StringBuffer sb = new StringBuffer();
-            while (sb.toString().endsWith("]]>]]>") == false) {
-                sb.append((char) inFromServer.read());
-            }
-            LOG.info(sb.toString());
-
-            outToServer.write(ByteStreams.toByteArray(clientHello));
-            outToServer.write("]]>]]>".getBytes());
-            outToServer.flush();
-            // Thread.sleep(100);
-            outToServer.write(ByteStreams.toByteArray(getConfig));
-            outToServer.write("]]>]]>".getBytes());
-            outToServer.flush();
-            Thread.sleep(100);
-            sb = new StringBuffer();
-            while (sb.toString().endsWith("]]>]]>") == false) {
-                sb.append((char) inFromServer.read());
-            }
-            LOG.info(sb.toString());
-            clientSocket.close();
-        }
-    }
-
-    /**
-     * TestingNetconfClient based runnable.
-     */
-    public final class TestingNetconfClientRunnable implements Runnable {
-
-        @SuppressWarnings("checkstyle:IllegalCatch")
-        @Override
-        public void run() {
-            try {
-                final TestingNetconfClient netconfClient =
-                        new TestingNetconfClient(Thread.currentThread().getName(), netconfClientDispatcher,
-                                getClientConfig());
-                long sessionId = netconfClient.getSessionId();
-                LOG.info("Client with session id {}: hello exchanged", sessionId);
-
-                final NetconfMessage getMessage = XmlFileLoader
-                        .xmlFileToNetconfMessage("netconfMessages/getConfig.xml");
-                NetconfMessage result = netconfClient.sendRequest(getMessage).get();
-                LOG.info("Client with session id {}: got result {}", sessionId, result);
-
-                Preconditions.checkState(NetconfMessageUtil.isErrorMessage(result) == false,
-                        "Received error response: " + XmlUtil.toString(result.getDocument()) + " to request: "
-                                + XmlUtil.toString(getMessage.getDocument()));
-
-                netconfClient.close();
-                LOG.info("Client with session id {}: ended", sessionId);
-            } catch (final Exception e) {
-                throw new IllegalStateException(Thread.currentThread().getName(), e);
-            }
-        }
-
-        private NetconfClientConfiguration getClientConfig() {
-            final NetconfClientConfigurationBuilder b = NetconfClientConfigurationBuilder.create();
-            b.withAddress(NETCONF_ADDRESS);
-            b.withAdditionalHeader(new NetconfHelloMessageAdditionalHeader("uname", "10.10.10.1", "830", "tcp",
-                    "client"));
-            b.withSessionListener(new SimpleNetconfClientSessionListener());
-            b.withReconnectStrategy(new NeverReconnectStrategy(GlobalEventExecutor.INSTANCE,
-                    NetconfClientConfigurationBuilder.DEFAULT_CONNECTION_TIMEOUT_MILLIS));
-            return b.build();
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ExiEncodeDecodeTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ExiEncodeDecodeTest.java
deleted file mode 100644 (file)
index 2fe0d51..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl;
-
-import static org.junit.Assert.assertNotNull;
-
-import org.junit.Test;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.util.test.XmlFileLoader;
-
-public class ExiEncodeDecodeTest {
-    @Test
-    public void encodeExi() throws Exception {
-
-        String startExiString = XmlFileLoader.xmlFileToString("netconfMessages/startExi.xml");
-        assertNotNull(startExiString);
-
-        NetconfMessage startExiMessage = XmlFileLoader.xmlFileToNetconfMessage(("netconfMessages/startExi.xml"));
-        assertNotNull(startExiMessage);
-
-        /*
-        ExiParameters exiParams = new ExiParameters();
-        exiParams.setParametersFromXmlElement(XmlElement.fromDomElement(startExiMessage.getDocument()
-        .getDocumentElement()));
-        assertNotNull(exiParams);
-
-        ByteBuf encodedBuf = Unpooled.buffer();
-        ByteBuf sourceBuf = Unpooled.copiedBuffer(startExiString.getBytes());
-        ExiUtil.encode(sourceBuf, encodedBuf, exiParams);
-
-        List<Object> newOut = new ArrayList<Object>();
-        ExiUtil.decode(encodedBuf, newOut, exiParams);
-
-        ByteBuf decodedBuf = (ByteBuf)newOut.get(0);
-        String decodedString = new String(decodedBuf.array(),"UTF-8");
-        assertNotNull(decodedString);
-        */
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/MessageParserTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/MessageParserTest.java
deleted file mode 100644 (file)
index 4ad6102..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import io.netty.buffer.ByteBuf;
-import io.netty.buffer.Unpooled;
-import io.netty.channel.embedded.EmbeddedChannel;
-import java.nio.ByteBuffer;
-import java.nio.charset.StandardCharsets;
-import java.util.Queue;
-
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.nettyutil.handler.ChunkedFramingMechanismEncoder;
-import org.opendaylight.netconf.nettyutil.handler.FramingMechanismHandlerFactory;
-import org.opendaylight.netconf.nettyutil.handler.NetconfChunkAggregator;
-import org.opendaylight.netconf.nettyutil.handler.NetconfEOMAggregator;
-import org.opendaylight.netconf.nettyutil.handler.NetconfMessageToXMLEncoder;
-import org.opendaylight.netconf.nettyutil.handler.NetconfXMLToMessageDecoder;
-import org.opendaylight.netconf.util.messages.FramingMechanism;
-import org.opendaylight.netconf.util.messages.NetconfMessageConstants;
-import org.opendaylight.netconf.util.test.XmlFileLoader;
-
-
-public class MessageParserTest {
-
-    private NetconfMessage msg;
-
-    @Before
-    public void setUp() throws Exception {
-        this.msg = XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/getConfig.xml");
-    }
-
-    @Ignore
-    @Test
-    public void testChunkedFramingMechanismOnPipeline() throws Exception {
-        EmbeddedChannel testChunkChannel = new EmbeddedChannel(
-                FramingMechanismHandlerFactory.createHandler(FramingMechanism.CHUNK),
-                new NetconfMessageToXMLEncoder(),
-
-                new NetconfChunkAggregator(),
-                new NetconfXMLToMessageDecoder());
-
-        testChunkChannel.writeOutbound(this.msg);
-        Queue<Object> messages = testChunkChannel.outboundMessages();
-        assertFalse(messages.isEmpty());
-
-        final NetconfMessageToXMLEncoder enc = new NetconfMessageToXMLEncoder();
-        final ByteBuf out = Unpooled.buffer();
-        enc.encode(null, msg, out);
-        int msgLength = out.readableBytes();
-
-        int chunkCount = msgLength / ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE;
-        if (msgLength % ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE != 0) {
-            chunkCount++;
-        }
-
-        byte[] endOfChunkBytes = NetconfMessageConstants.END_OF_CHUNK.getBytes(StandardCharsets.UTF_8);
-        for (int i = 1; i <= chunkCount; i++) {
-            ByteBuf recievedOutbound = (ByteBuf) messages.poll();
-            int exptHeaderLength = ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE;
-            if (i == chunkCount) {
-                exptHeaderLength = msgLength - ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE * (i - 1);
-                byte[] eom = new byte[endOfChunkBytes.length];
-                recievedOutbound.getBytes(recievedOutbound.readableBytes() - endOfChunkBytes.length, eom);
-                assertArrayEquals(endOfChunkBytes, eom);
-            }
-
-            byte[] header = new byte[String.valueOf(exptHeaderLength).length()
-                    + NetconfMessageConstants.MIN_HEADER_LENGTH - 1];
-            recievedOutbound.getBytes(0, header);
-            assertEquals(exptHeaderLength, getHeaderLength(header));
-
-            testChunkChannel.writeInbound(recievedOutbound);
-        }
-        assertTrue(messages.isEmpty());
-
-        NetconfMessage receivedMessage = testChunkChannel.readInbound();
-        assertNotNull(receivedMessage);
-        assertXMLEqual(this.msg.getDocument(), receivedMessage.getDocument());
-    }
-
-    @Ignore
-    @Test
-    public void testEOMFramingMechanismOnPipeline() throws Exception {
-        EmbeddedChannel testChunkChannel = new EmbeddedChannel(
-                FramingMechanismHandlerFactory.createHandler(FramingMechanism.EOM),
-                new NetconfMessageToXMLEncoder(), new NetconfEOMAggregator(), new NetconfXMLToMessageDecoder());
-
-        testChunkChannel.writeOutbound(this.msg);
-        ByteBuf recievedOutbound = testChunkChannel.readOutbound();
-
-        byte[] endOfMsgBytes = NetconfMessageConstants.END_OF_MESSAGE.getBytes(StandardCharsets.UTF_8);
-        byte[] eom = new byte[endOfMsgBytes.length];
-        recievedOutbound.getBytes(recievedOutbound.readableBytes() - endOfMsgBytes.length, eom);
-        assertArrayEquals(endOfMsgBytes, eom);
-
-        testChunkChannel.writeInbound(recievedOutbound);
-        NetconfMessage receivedMessage = testChunkChannel.readInbound();
-        assertNotNull(receivedMessage);
-        assertXMLEqual(this.msg.getDocument(), receivedMessage.getDocument());
-    }
-
-    private static long getHeaderLength(byte[] bytes) {
-        byte[] headerStart = new byte[]{(byte) 0x0a, (byte) 0x23};
-        return Long.parseLong(StandardCharsets.US_ASCII.decode(
-                ByteBuffer.wrap(bytes, headerStart.length, bytes.length - headerStart.length - 1)).toString());
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfDispatcherImplTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfDispatcherImplTest.java
deleted file mode 100644 (file)
index c24aaf8..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import io.netty.channel.ChannelFuture;
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.util.HashedWheelTimer;
-import java.net.InetSocketAddress;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory;
-
-public class NetconfDispatcherImplTest {
-
-    private EventLoopGroup nettyGroup;
-    private NetconfServerDispatcherImpl dispatch;
-    private HashedWheelTimer hashedWheelTimer;
-
-
-    @Before
-    public void setUp() throws Exception {
-        nettyGroup = new NioEventLoopGroup();
-
-        AggregatedNetconfOperationServiceFactory factoriesListener = new AggregatedNetconfOperationServiceFactory();
-
-        SessionIdProvider idProvider = new SessionIdProvider();
-        hashedWheelTimer = new HashedWheelTimer();
-
-        NetconfServerSessionNegotiatorFactory serverNegotiatorFactory =
-                new NetconfServerSessionNegotiatorFactoryBuilder()
-                        .setAggregatedOpService(factoriesListener)
-                        .setTimer(hashedWheelTimer)
-                        .setIdProvider(idProvider)
-                        .setMonitoringService(ConcurrentClientsTest.createMockedMonitoringService())
-                        .setConnectionTimeoutMillis(5000)
-                        .build();
-
-        NetconfServerDispatcherImpl.ServerChannelInitializer serverChannelInitializer =
-                new NetconfServerDispatcherImpl.ServerChannelInitializer(serverNegotiatorFactory);
-
-        dispatch = new NetconfServerDispatcherImpl(
-                serverChannelInitializer, nettyGroup, nettyGroup);
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        hashedWheelTimer.stop();
-        nettyGroup.shutdownGracefully();
-    }
-
-    @Test
-    public void test() throws Exception {
-        InetSocketAddress addr = new InetSocketAddress("127.0.0.1", 8333);
-        ChannelFuture server = dispatch.createServer(addr);
-        server.get();
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionListenerTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionListenerTest.java
deleted file mode 100644 (file)
index e7d5bb3..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.argThat;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.verify;
-
-import io.netty.channel.embedded.EmbeddedChannel;
-import org.custommonkey.xmlunit.Diff;
-import org.custommonkey.xmlunit.XMLUnit;
-import org.hamcrest.CustomMatcher;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.NetconfTerminationReason;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.monitoring.SessionEvent;
-import org.opendaylight.netconf.api.monitoring.SessionListener;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.osgi.NetconfOperationRouter;
-import org.opendaylight.netconf.notifications.NetconfNotification;
-import org.w3c.dom.Document;
-
-public class NetconfServerSessionListenerTest {
-
-    @Mock
-    private NetconfOperationRouter router;
-    @Mock
-    private NetconfMonitoringService monitoring;
-    @Mock
-    private AutoCloseable closeable;
-    @Mock
-    private SessionListener monitoringListener;
-    private NetconfServerSession session;
-    private EmbeddedChannel channel;
-    private NetconfServerSessionListener listener;
-
-    @BeforeClass
-    public static void classSetUp() throws Exception {
-        XMLUnit.setIgnoreWhitespace(true);
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        doReturn(monitoringListener).when(monitoring).getSessionListener();
-        doNothing().when(monitoringListener).onSessionUp(any());
-        doNothing().when(monitoringListener).onSessionDown(any());
-        doNothing().when(monitoringListener).onSessionEvent(any());
-        channel = new EmbeddedChannel();
-        session = new NetconfServerSession(null, channel, 0L, null);
-        listener = new NetconfServerSessionListener(router, monitoring, closeable);
-    }
-
-    @Test
-    public void testOnSessionUp() throws Exception {
-        listener.onSessionUp(session);
-        verify(monitoringListener).onSessionUp(session);
-    }
-
-    @Test
-    public void testOnSessionDown() throws Exception {
-        final Exception cause = new RuntimeException("cause");
-        listener.onSessionDown(session, cause);
-        verify(monitoringListener).onSessionDown(session);
-        verify(closeable).close();
-        verify(router).close();
-    }
-
-    @Test
-    public void testOnSessionTerminated() throws Exception {
-        listener.onSessionTerminated(session, new NetconfTerminationReason("reason"));
-        verify(monitoringListener).onSessionDown(session);
-        verify(closeable).close();
-        verify(router).close();
-    }
-
-    @Test
-    public void testOnMessage() throws Exception {
-        final Document reply = XmlUtil.readXmlToDocument("<rpc-reply message-id=\"101\" "
-                + "xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><example/></rpc-reply>");
-        doReturn(reply).when(router).onNetconfMessage(any(), any());
-        final NetconfMessage msg = new NetconfMessage(XmlUtil.readXmlToDocument("<rpc message-id=\"101\" "
-                + "xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><example/></rpc>"));
-        listener.onMessage(session, msg);
-        verify(monitoringListener).onSessionEvent(argThat(sessionEventIs(SessionEvent.Type.IN_RPC_SUCCESS)));
-        channel.runPendingTasks();
-        final NetconfMessage sentMsg = channel.readOutbound();
-        final Diff diff = XMLUnit.compareXML(reply, sentMsg.getDocument());
-        Assert.assertTrue(diff.toString(), diff.similar());
-    }
-
-    @Test
-    public void testOnMessageRuntimeFail() throws Exception {
-        doThrow(new RuntimeException("runtime fail")).when(router).onNetconfMessage(any(), any());
-        final Document reply =
-                XmlUtil.readXmlToDocument("<rpc message-id=\"101\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">"
-                        + "<example/></rpc>");
-        final NetconfMessage msg = new NetconfMessage(reply);
-        try {
-            listener.onMessage(session, msg);
-            Assert.fail("Expected exception " + IllegalStateException.class);
-        } catch (final IllegalStateException e) {
-            verify(monitoringListener).onSessionEvent(argThat(sessionEventIs(SessionEvent.Type.IN_RPC_FAIL)));
-        }
-    }
-
-    @SuppressWarnings("checkstyle:RegexpSinglelineJava")
-    @Test
-    public void testOnMessageDocumentedFail() throws Exception {
-        final Document reply =
-                XmlUtil.readXmlToDocument("<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">\n"
-                        + "<rpc-error>\n"
-                        + "<error-type>protocol</error-type>\n"
-                        + "<error-tag>unknown-element</error-tag>\n"
-                        + "<error-severity>error</error-severity>\n"
-                        + "<error-message>Unknown tag bad-rpc in message:\n"
-                        + "&lt;bad-rpc/&gt;\n"
-                        + "</error-message>\n"
-                        + "<error-info>\n"
-                        + "<bad-element>bad-rpc</bad-element>\n"
-                        + "</error-info>\n"
-                        + "</rpc-error>\n"
-                        + "</rpc-reply>");
-        final NetconfMessage msg = new NetconfMessage(XmlUtil.readXmlToDocument("<bad-rpc/>"));
-        listener.onMessage(session, msg);
-        verify(monitoringListener).onSessionEvent(argThat(sessionEventIs(SessionEvent.Type.IN_RPC_FAIL)));
-        verify(monitoringListener).onSessionEvent(argThat(sessionEventIs(SessionEvent.Type.OUT_RPC_ERROR)));
-        channel.runPendingTasks();
-        final NetconfMessage sentMsg = channel.readOutbound();
-        System.out.println(XmlUtil.toString(sentMsg.getDocument()));
-        System.out.println(XmlUtil.toString(reply));
-        final Diff diff = XMLUnit.compareXML(reply, sentMsg.getDocument());
-        Assert.assertTrue(diff.toString(), diff.similar());
-    }
-
-    @Test
-    public void testOnNotification() throws Exception {
-        listener.onNotification(session, new NetconfNotification(XmlUtil.readXmlToDocument("<notification/>")));
-        verify(monitoringListener).onSessionEvent(argThat(sessionEventIs(SessionEvent.Type.NOTIFICATION)));
-    }
-
-    private CustomMatcher<SessionEvent> sessionEventIs(final SessionEvent.Type type) {
-        return new CustomMatcher<SessionEvent>(type.name()) {
-            @Override
-            public boolean matches(final Object item) {
-                if (!(item instanceof SessionEvent)) {
-                    return false;
-                }
-                final SessionEvent e = (SessionEvent) item;
-                return e.getType().equals(type) && e.getSession().equals(session);
-            }
-        };
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorTest.java
deleted file mode 100644 (file)
index 36a5d25..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2014, 2015 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import io.netty.channel.local.LocalAddress;
-import java.net.InetSocketAddress;
-import org.apache.sshd.common.util.net.SshdSocketAddress;
-import org.junit.Test;
-
-public class NetconfServerSessionNegotiatorTest {
-
-    @Test
-    public void testGetInetSocketAddress() throws Exception {
-
-        InetSocketAddress socketAddress = new InetSocketAddress(10);
-
-        assertNotNull(NetconfServerSessionNegotiator.getHostName(socketAddress));
-
-        assertEquals(socketAddress.getHostName(),
-                NetconfServerSessionNegotiator.getHostName(socketAddress)
-                        .getValue());
-
-        socketAddress = new InetSocketAddress("TestPortInet", 20);
-
-        assertEquals(socketAddress.getHostName(),
-                NetconfServerSessionNegotiator.getHostName(socketAddress)
-                        .getValue());
-
-        assertEquals(String.valueOf(socketAddress.getPort()),
-                NetconfServerSessionNegotiator.getHostName(socketAddress)
-                        .getKey());
-
-        LocalAddress localAddress = new LocalAddress("TestPortLocal");
-
-        assertEquals(String.valueOf(localAddress.id()),
-                NetconfServerSessionNegotiator.getHostName(localAddress)
-                        .getValue());
-
-        SshdSocketAddress embeddedAddress = new SshdSocketAddress(
-                "TestSshdName", 10);
-
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionTest.java
deleted file mode 100644 (file)
index 6e3dc9e..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.verify;
-
-import io.netty.channel.ChannelHandler;
-import io.netty.channel.ChannelInboundHandlerAdapter;
-import io.netty.channel.ChannelOutboundHandlerAdapter;
-import io.netty.channel.embedded.EmbeddedChannel;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.nettyutil.AbstractChannelInitializer;
-import org.opendaylight.netconf.nettyutil.handler.NetconfEXICodec;
-import org.opendaylight.netconf.nettyutil.handler.NetconfEXIToMessageDecoder;
-import org.opendaylight.netconf.nettyutil.handler.NetconfMessageToEXIEncoder;
-import org.opendaylight.netconf.nettyutil.handler.NetconfMessageToXMLEncoder;
-import org.opendaylight.netconf.nettyutil.handler.NetconfXMLToMessageDecoder;
-import org.opendaylight.netconf.nettyutil.handler.exi.EXIParameters;
-import org.opendaylight.netconf.notifications.NetconfNotification;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210.NetconfTcp;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfSsh;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session;
-import org.w3c.dom.Document;
-
-public class NetconfServerSessionTest {
-
-    private static final String HOST = "127.0.0.1";
-    private static final String PORT = "17830";
-    private static final String SSH_TRANSPORT = "ssh";
-    private static final String TCP_TRANSPORT = "tcp";
-    private static final String SESSION_ID = "1";
-    private static final String USER = "admin";
-    private NetconfServerSession session;
-    private EmbeddedChannel channel;
-    private NetconfMessage msg;
-    @Mock
-    private NetconfServerSessionListener listener;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        final NetconfHelloMessageAdditionalHeader header =
-                new NetconfHelloMessageAdditionalHeader(USER, HOST, PORT, SSH_TRANSPORT, SESSION_ID);
-        channel = new EmbeddedChannel();
-        session = new NetconfServerSession(listener, channel, 1L, header);
-        doNothing().when(listener).onSessionUp(any());
-        msg = new NetconfMessage(XmlUtil.readXmlToDocument("<rpc-reply></rpc-reply>"));
-    }
-
-    @Test
-    public void testSessionUp() throws Exception {
-        session.sessionUp();
-        verify(listener).onSessionUp(session);
-    }
-
-    @Test
-    public void testDelayedClose() throws Exception {
-        doNothing().when(listener).onSessionTerminated(eq(session), any());
-        session.delayedClose();
-        session.sendMessage(msg);
-        channel.runPendingTasks();
-        final Object o = channel.readOutbound();
-        Assert.assertEquals(msg, o);
-        verify(listener).onSessionTerminated(eq(session), any());
-    }
-
-    @Test
-    public void testSendMessage() throws Exception {
-        session.sendMessage(msg);
-        channel.runPendingTasks();
-        final Object o = channel.readOutbound();
-        Assert.assertEquals(msg, o);
-    }
-
-    @Test
-    public void testSendNotification() throws Exception {
-        doNothing().when(listener).onNotification(any(), any());
-        final Document msgDoc = XmlUtil.readXmlToDocument("<notification></notification>");
-        final NetconfNotification notif = new NetconfNotification(msgDoc);
-        session.sendMessage(notif);
-        channel.runPendingTasks();
-        final Object o = channel.readOutbound();
-        Assert.assertEquals(notif, o);
-        verify(listener).onNotification(session, notif);
-    }
-
-    @Test
-    public void testOnIncommingRpcSuccess() throws Exception {
-        session.sessionUp();
-        final Session managementSession = this.session.toManagementSession();
-        this.session.onIncommingRpcSuccess();
-        final Session afterRpcSuccess = this.session.toManagementSession();
-        Assert.assertEquals(managementSession.getInRpcs().getValue() + 1,
-                afterRpcSuccess.getInRpcs().getValue().longValue());
-    }
-
-    @Test
-    public void testOnIncommingRpcFail() throws Exception {
-        session.sessionUp();
-        final Session managementSession = this.session.toManagementSession();
-        this.session.onIncommingRpcFail();
-        final Session afterRpcSuccess = this.session.toManagementSession();
-        Assert.assertEquals(managementSession.getInBadRpcs().getValue() + 1,
-                afterRpcSuccess.getInBadRpcs().getValue().longValue());
-    }
-
-    @Test
-    public void testOnOutgoingRpcError() throws Exception {
-        session.sessionUp();
-        final Session managementSession = this.session.toManagementSession();
-        this.session.onOutgoingRpcError();
-        final Session afterRpcSuccess = this.session.toManagementSession();
-        Assert.assertEquals(managementSession.getOutRpcErrors().getValue() + 1,
-                afterRpcSuccess.getOutRpcErrors().getValue().longValue());
-    }
-
-    @Test
-    public void testToManagementSession() throws Exception {
-        final NetconfHelloMessageAdditionalHeader header =
-                new NetconfHelloMessageAdditionalHeader(USER, HOST, PORT, TCP_TRANSPORT, SESSION_ID);
-        final EmbeddedChannel ch = new EmbeddedChannel();
-        final NetconfServerSession tcpSession = new NetconfServerSession(listener, ch, 1L, header);
-        tcpSession.sessionUp();
-        final Session managementSession = tcpSession.toManagementSession();
-        Assert.assertEquals(HOST, managementSession.getSourceHost().getIpAddress().getIpv4Address().getValue());
-        Assert.assertEquals(managementSession.getUsername(), USER);
-        Assert.assertEquals(managementSession.getSessionId().toString(), SESSION_ID);
-        Assert.assertEquals(managementSession.getTransport(), NetconfTcp.class);
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testToManagementSessionUnknownTransport() throws Exception {
-        final NetconfHelloMessageAdditionalHeader header =
-                new NetconfHelloMessageAdditionalHeader(USER, HOST, PORT, "http", SESSION_ID);
-        final EmbeddedChannel ch = new EmbeddedChannel();
-        final NetconfServerSession tcpSession = new NetconfServerSession(listener, ch, 1L, header);
-        tcpSession.sessionUp();
-        tcpSession.toManagementSession();
-        tcpSession.close();
-    }
-
-    @Test
-    public void testToManagementSessionIpv6() throws Exception {
-        final NetconfHelloMessageAdditionalHeader header =
-                new NetconfHelloMessageAdditionalHeader(USER, "::1", PORT, SSH_TRANSPORT, SESSION_ID);
-        final EmbeddedChannel ch = new EmbeddedChannel();
-        final NetconfServerSession tcpSession = new NetconfServerSession(listener, ch, 1L, header);
-        tcpSession.sessionUp();
-        final Session managementSession = tcpSession.toManagementSession();
-        Assert.assertEquals("::1", managementSession.getSourceHost().getIpAddress().getIpv6Address().getValue());
-        Assert.assertEquals(managementSession.getUsername(), USER);
-        Assert.assertEquals(managementSession.getSessionId().toString(), SESSION_ID);
-        Assert.assertEquals(managementSession.getTransport(), NetconfSsh.class);
-    }
-
-    @Test
-    public void testThisInstance() throws Exception {
-        Assert.assertEquals(session, session.thisInstance());
-    }
-
-    @Test
-    public void testAddExiHandlers() throws Exception {
-        channel.pipeline().addLast(AbstractChannelInitializer.NETCONF_MESSAGE_DECODER,
-                new NetconfXMLToMessageDecoder());
-        channel.pipeline().addLast(AbstractChannelInitializer.NETCONF_MESSAGE_ENCODER,
-                new NetconfMessageToXMLEncoder());
-        final NetconfEXICodec codec = NetconfEXICodec.forParameters(EXIParameters.empty());
-        session.addExiHandlers(NetconfEXIToMessageDecoder.create(codec), NetconfMessageToEXIEncoder.create(codec));
-    }
-
-    @Test
-    public void testStopExiCommunication() throws Exception {
-        channel.pipeline().addLast(AbstractChannelInitializer.NETCONF_MESSAGE_DECODER,
-                new ChannelInboundHandlerAdapter());
-        channel.pipeline().addLast(AbstractChannelInitializer.NETCONF_MESSAGE_ENCODER,
-                new ChannelOutboundHandlerAdapter());
-        session.stopExiCommunication();
-        //handler is replaced only after next send message call
-        final ChannelHandler exiEncoder = channel.pipeline().get(AbstractChannelInitializer.NETCONF_MESSAGE_ENCODER);
-        Assert.assertTrue(ChannelOutboundHandlerAdapter.class.equals(exiEncoder.getClass()));
-        session.sendMessage(msg);
-        channel.runPendingTasks();
-        final ChannelHandler decoder = channel.pipeline().get(AbstractChannelInitializer.NETCONF_MESSAGE_DECODER);
-        Assert.assertTrue(NetconfXMLToMessageDecoder.class.equals(decoder.getClass()));
-        final ChannelHandler encoder = channel.pipeline().get(AbstractChannelInitializer.NETCONF_MESSAGE_ENCODER);
-        Assert.assertTrue(NetconfMessageToXMLEncoder.class.equals(encoder.getClass()));
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSessionTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSessionTest.java
deleted file mode 100644 (file)
index 1293329..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.mapping.operations;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyObject;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelFuture;
-import io.netty.channel.ChannelPromise;
-import io.netty.channel.EventLoop;
-import io.netty.util.concurrent.GenericFutureListener;
-import org.junit.Test;
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.api.NetconfDocumentedException;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.NetconfTerminationReason;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
-import org.opendaylight.netconf.api.xml.XmlElement;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.NetconfServerSession;
-import org.opendaylight.netconf.impl.NetconfServerSessionListener;
-import org.w3c.dom.Document;
-
-public class DefaultCloseSessionTest {
-
-    private static void mockEventLoop(final Channel channel) {
-        final EventLoop eventLoop = mock(EventLoop.class);
-        doReturn(eventLoop).when(channel).eventLoop();
-        doAnswer(invocation -> {
-            invocation.getArgumentAt(0, Runnable.class).run();
-            return null;
-        }).when(eventLoop).execute(any(Runnable.class));
-        doReturn(true).when(eventLoop).inEventLoop();
-    }
-
-    @Test
-    public void testDefaultCloseSession() throws Exception {
-        AutoCloseable res = mock(AutoCloseable.class);
-        doNothing().when(res).close();
-        DefaultCloseSession close = new DefaultCloseSession("", res);
-        final Document doc = XmlUtil.newDocument();
-        final XmlElement elem = XmlElement.fromDomElement(XmlUtil.readXmlToElement("<elem/>"));
-        final Channel channel = mock(Channel.class);
-        doReturn("channel").when(channel).toString();
-        mockEventLoop(channel);
-        final ChannelFuture channelFuture = mock(ChannelFuture.class);
-        doReturn(channelFuture).when(channel).close();
-        doReturn(channelFuture).when(channelFuture).addListener(any(GenericFutureListener.class));
-
-        final ChannelPromise sendFuture = mock(ChannelPromise.class);
-        doAnswer(invocation -> {
-            invocation.getArgumentAt(0, GenericFutureListener.class).operationComplete(sendFuture);
-            return null;
-        }).when(sendFuture).addListener(any(GenericFutureListener.class));
-        doReturn(sendFuture).when(channel).newPromise();
-        doReturn(sendFuture).when(channel).writeAndFlush(anyObject(), anyObject());
-        doReturn(true).when(sendFuture).isSuccess();
-        final NetconfServerSessionListener listener = mock(NetconfServerSessionListener.class);
-        doNothing().when(listener).onSessionTerminated(any(NetconfServerSession.class),
-                any(NetconfTerminationReason.class));
-        final NetconfServerSession session =
-                new NetconfServerSession(listener, channel, 1L,
-                        NetconfHelloMessageAdditionalHeader.fromString("[netconf;10.12.0.102:48528;ssh;;;;;;]"));
-        close.setNetconfSession(session);
-        close.handleWithNoSubsequentOperations(doc, elem);
-        // Fake close response to trigger delayed close
-        session.sendMessage(new NetconfMessage(XmlUtil.readXmlToDocument("<rpc-reply message-id=\"101\"\n"
-                + "xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">\n"
-                + "<ok/>\n"
-                + "</rpc-reply>")));
-        verify(channel).close();
-        verify(listener).onSessionTerminated(any(NetconfServerSession.class), any(NetconfTerminationReason.class));
-    }
-
-    @Test(expected = DocumentedException.class)
-    public void testDefaultCloseSession2() throws Exception {
-        AutoCloseable res = mock(AutoCloseable.class);
-        doThrow(NetconfDocumentedException.class).when(res).close();
-        DefaultCloseSession session = new DefaultCloseSession("", res);
-        XmlElement elem = XmlElement.fromDomElement(XmlUtil.readXmlToElement("<elem/>"));
-        session.handleWithNoSubsequentOperations(XmlUtil.newDocument(), elem);
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExiTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExiTest.java
deleted file mode 100644 (file)
index 8459874..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.mapping.operations;
-
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelHandler;
-import io.netty.channel.ChannelPipeline;
-import org.junit.Test;
-import org.opendaylight.netconf.api.xml.XmlElement;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.NetconfServerSession;
-import org.w3c.dom.Document;
-
-public class DefaultStopExiTest {
-    @Test
-    public void testHandleWithNoSubsequentOperations() throws Exception {
-        final DefaultStopExi exi = new DefaultStopExi("");
-        final Document doc = XmlUtil.newDocument();
-        Channel channel = mock(Channel.class);
-        doReturn("mockChannel").when(channel).toString();
-        ChannelPipeline pipeline = mock(ChannelPipeline.class);
-        doReturn(pipeline).when(channel).pipeline();
-        ChannelHandler channelHandler = mock(ChannelHandler.class);
-        doReturn(channelHandler).when(pipeline).replace(anyString(), anyString(), any(ChannelHandler.class));
-
-        NetconfServerSession serverSession = new NetconfServerSession(null, channel, 2L, null);
-        exi.setNetconfSession(serverSession);
-
-        assertNotNull(exi.handleWithNoSubsequentOperations(doc,
-                XmlElement.fromDomElement(XmlUtil.readXmlToElement("<elem/>"))));
-        verify(pipeline, times(1)).replace(anyString(), anyString(), any(ChannelHandler.class));
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactoryTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactoryTest.java
deleted file mode 100644 (file)
index d3b0fcd..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import com.google.common.collect.Sets;
-import java.util.HashSet;
-import java.util.Set;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.netconf.api.capability.BasicCapability;
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.monitoring.CapabilityListener;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-
-
-public class AggregatedNetconfOperationServiceFactoryTest {
-
-    private final Set<Capability> factory1Caps = new HashSet<>();
-    private final Set<Capability> factory2Caps = new HashSet<>();
-
-    @Mock
-    private CapabilityListener listener1;
-    @Mock
-    private CapabilityListener listener2;
-    @Mock
-    private CapabilityListener listener3;
-    @Mock
-    private NetconfOperationServiceFactory factory1;
-    @Mock
-    private NetconfOperationServiceFactory factory2;
-    @Mock
-    private AutoCloseable autoCloseable1;
-    @Mock
-    private AutoCloseable autoCloseable2;
-    @Mock
-    private AutoCloseable autoCloseable3;
-
-    private AggregatedNetconfOperationServiceFactory aggregatedFactory;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        factory1Caps.add(new BasicCapability("AAA"));
-        factory1Caps.add(new BasicCapability("BBB"));
-
-        factory2Caps.add(new BasicCapability("CCC"));
-        factory2Caps.add(new BasicCapability("DDD"));
-
-        aggregatedFactory = new AggregatedNetconfOperationServiceFactory();
-
-        aggregatedFactory.registerCapabilityListener(listener1);
-        aggregatedFactory.registerCapabilityListener(listener2);
-
-        doReturn(autoCloseable1).when(factory1).registerCapabilityListener(listener1);
-        doReturn(autoCloseable2).when(factory1).registerCapabilityListener(listener2);
-        doReturn(factory1Caps).when(factory1).getCapabilities();
-
-        doReturn(autoCloseable1).when(factory2).registerCapabilityListener(listener1);
-        doReturn(autoCloseable2).when(factory2).registerCapabilityListener(listener2);
-        doReturn(factory2Caps).when(factory2).getCapabilities();
-
-        doNothing().when(autoCloseable1).close();
-        doNothing().when(autoCloseable2).close();
-
-        doReturn(autoCloseable3).when(factory1).registerCapabilityListener(listener3);
-        doReturn(autoCloseable3).when(factory2).registerCapabilityListener(listener3);
-    }
-
-    @Test
-    public void testOnAddAndOnRemove() throws Exception {
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory1);
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory2);
-
-        verify(factory1).registerCapabilityListener(listener1);
-        verify(factory2).registerCapabilityListener(listener1);
-        verify(factory1).registerCapabilityListener(listener2);
-        verify(factory2).registerCapabilityListener(listener2);
-
-        aggregatedFactory.onRemoveNetconfOperationServiceFactory(factory1);
-        aggregatedFactory.onRemoveNetconfOperationServiceFactory(factory2);
-
-        verify(autoCloseable1, times(2)).close();
-        verify(autoCloseable2, times(2)).close();
-    }
-
-    @Test
-    public void testGetCapabilities() throws Exception {
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory1);
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory2);
-        final Set<Capability> actual = aggregatedFactory.getCapabilities();
-        Set<Capability> expected = Sets.union(factory1Caps, factory2Caps);
-        Assert.assertEquals(expected, actual);
-    }
-
-    @Test
-    public void testRegisterCapabilityListener() throws Exception {
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory1);
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory2);
-        aggregatedFactory.registerCapabilityListener(listener3);
-
-        verify(factory1).registerCapabilityListener(listener3);
-        verify(factory2).registerCapabilityListener(listener3);
-    }
-
-    @Test
-    public void testClose() throws Exception {
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory1);
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory2);
-        aggregatedFactory.close();
-        verify(autoCloseable1, times(2)).close();
-        verify(autoCloseable2, times(2)).close();
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringServiceTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringServiceTest.java
deleted file mode 100644 (file)
index 73ef36e..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import com.google.common.base.Optional;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.netconf.api.capability.BasicCapability;
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.capability.YangModuleCapability;
-import org.opendaylight.netconf.api.monitoring.NetconfManagementSession;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.HostBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.CapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.SessionBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange;
-import org.opendaylight.yangtools.yang.common.Revision;
-import org.opendaylight.yangtools.yang.model.api.Module;
-
-public class NetconfCapabilityMonitoringServiceTest {
-
-    private static final String TEST_MODULE_CONTENT = "content";
-    private static final String TEST_MODULE_CONTENT2 = "content2";
-    private static final String TEST_MODULE_REV = "1970-01-01";
-    private static final String TEST_MODULE_REV2 = "1970-01-02";
-    private static final Uri TEST_MODULE_NAMESPACE = new Uri("testModuleNamespace");
-    private static final String TEST_MODULE_NAME = "testModule";
-    private static final Revision  TEST_MODULE_DATE = Revision.of(TEST_MODULE_REV);
-    private static final Revision TEST_MODULE_DATE2 = Revision.of(TEST_MODULE_REV2);
-
-    private YangModuleCapability moduleCapability1;
-    private YangModuleCapability moduleCapability2;
-    private static final Session SESSION = new SessionBuilder()
-            .setSessionId(1L)
-            .setSourceHost(HostBuilder.getDefaultInstance("0.0.0.0"))
-            .setUsername("admin")
-            .build();
-    private int capabilitiesSize;
-
-    private final Set<Capability> capabilities = new HashSet<>();
-
-    @Mock
-    private Module moduleMock;
-    @Mock
-    private Module moduleMock2;
-    @Mock
-    private NetconfOperationServiceFactory operationServiceFactoryMock;
-    @Mock
-    private NetconfManagementSession sessionMock;
-    @Mock
-    private NetconfMonitoringService.CapabilitiesListener listener;
-    @Mock
-    private BaseNotificationPublisherRegistration notificationPublisher;
-
-    private NetconfCapabilityMonitoringService monitoringService;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-
-        doReturn(new URI(TEST_MODULE_NAMESPACE.getValue())).when(moduleMock).getNamespace();
-        doReturn(TEST_MODULE_NAME).when(moduleMock).getName();
-        doReturn(java.util.Optional.of(TEST_MODULE_DATE)).when(moduleMock).getRevision();
-        moduleCapability1 = new YangModuleCapability(moduleMock, TEST_MODULE_CONTENT);
-
-        capabilities.add(moduleCapability1);
-
-        doReturn(new URI(TEST_MODULE_NAMESPACE.getValue())).when(moduleMock2).getNamespace();
-        doReturn(TEST_MODULE_NAME).when(moduleMock2).getName();
-        doReturn(java.util.Optional.of(TEST_MODULE_DATE2)).when(moduleMock2).getRevision();
-        moduleCapability2 = new YangModuleCapability(moduleMock2, TEST_MODULE_CONTENT2);
-
-        capabilities.add(new BasicCapability("urn:ietf:params:netconf:base:1.0"));
-        capabilities.add(new BasicCapability("urn:ietf:params:netconf:base:1.1"));
-        capabilities.add(new BasicCapability("urn:ietf:params:xml:ns:yang:ietf-inet-types?module=ietf-inet-types&amp;"
-                + "revision=2010-09-24"));
-
-        doReturn(capabilities).when(operationServiceFactoryMock).getCapabilities();
-        doReturn(null).when(operationServiceFactoryMock)
-                .registerCapabilityListener(any(NetconfCapabilityMonitoringService.class));
-
-        doReturn(SESSION).when(sessionMock).toManagementSession();
-        doNothing().when(listener).onCapabilitiesChanged(any());
-        doNothing().when(listener).onSchemasChanged(any());
-
-        doNothing().when(notificationPublisher).onCapabilityChanged(any());
-        doNothing().when(notificationPublisher).onSessionStarted(any());
-        doNothing().when(notificationPublisher).onSessionEnded(any());
-
-        monitoringService = new NetconfCapabilityMonitoringService(operationServiceFactoryMock);
-        monitoringService.onCapabilitiesChanged(capabilities, Collections.emptySet());
-        monitoringService.setNotificationPublisher(notificationPublisher);
-        monitoringService.registerListener(listener);
-        capabilitiesSize = monitoringService.getCapabilities().getCapability().size();
-    }
-
-    @Test
-    public void testListeners() throws Exception {
-        HashSet<Capability> added = new HashSet<>();
-        added.add(new BasicCapability("toAdd"));
-        monitoringService.onCapabilitiesChanged(added, Collections.emptySet());
-        //onCapabilitiesChanged and onSchemasChanged are invoked also after listener registration
-        verify(listener, times(2)).onCapabilitiesChanged(any());
-        verify(listener, times(2)).onSchemasChanged(any());
-    }
-
-    @Test
-    public void testGetSchemas() throws Exception {
-        Schemas schemas = monitoringService.getSchemas();
-        Schema schema = schemas.getSchema().get(0);
-        Assert.assertEquals(TEST_MODULE_NAMESPACE, schema.getNamespace());
-        Assert.assertEquals(TEST_MODULE_NAME, schema.getIdentifier());
-        Assert.assertEquals(TEST_MODULE_REV, schema.getVersion());
-    }
-
-    @Test
-    public void testGetSchemaForCapability() throws Exception {
-        //test multiple revisions of the same capability
-        monitoringService.onCapabilitiesChanged(Collections.singleton(moduleCapability2), Collections.emptySet());
-        final String schema =
-                monitoringService.getSchemaForModuleRevision(TEST_MODULE_NAME, Optional.of(TEST_MODULE_REV));
-        Assert.assertEquals(TEST_MODULE_CONTENT, schema);
-        final String schema2 =
-                monitoringService.getSchemaForModuleRevision(TEST_MODULE_NAME, Optional.of(TEST_MODULE_REV2));
-        Assert.assertEquals(TEST_MODULE_CONTENT2, schema2);
-        //remove one revision
-        monitoringService.onCapabilitiesChanged(Collections.emptySet(), Collections.singleton(moduleCapability1));
-        //only one revision present
-        final String schema3 = monitoringService.getSchemaForModuleRevision(TEST_MODULE_NAME, Optional.absent());
-        Assert.assertEquals(TEST_MODULE_CONTENT2, schema3);
-    }
-
-    @Test
-    public void testGetCapabilities() throws Exception {
-        Capabilities actual = monitoringService.getCapabilities();
-        List<Uri> exp = new ArrayList<>();
-        for (Capability capability : capabilities) {
-            exp.add(new Uri(capability.getCapabilityUri()));
-        }
-        //candidate is added by monitoring service automatically
-        exp.add(0, new Uri("urn:ietf:params:netconf:capability:candidate:1.0"));
-        Capabilities expected = new CapabilitiesBuilder().setCapability(exp).build();
-        Assert.assertEquals(new HashSet<>(expected.getCapability()), new HashSet<>(actual.getCapability()));
-    }
-
-    @Test
-    public void testClose() throws Exception {
-        Assert.assertFalse(monitoringService.getCapabilities().getCapability().isEmpty());
-        monitoringService.close();
-        Assert.assertTrue(monitoringService.getCapabilities().getCapability().isEmpty());
-    }
-
-    @Test
-    public void testOnCapabilitiesChanged() throws Exception {
-        final String capUri = "test";
-        final Uri uri = new Uri(capUri);
-        final HashSet<Capability> testCaps = new HashSet<>();
-        testCaps.add(new BasicCapability(capUri));
-        final ArgumentCaptor<NetconfCapabilityChange> capabilityChangeCaptor =
-                ArgumentCaptor.forClass(NetconfCapabilityChange.class);
-        final ArgumentCaptor<Capabilities> monitoringListenerCaptor = ArgumentCaptor.forClass(Capabilities.class);
-        //add capability
-        monitoringService.onCapabilitiesChanged(testCaps, Collections.emptySet());
-        //remove capability
-        monitoringService.onCapabilitiesChanged(Collections.emptySet(), testCaps);
-
-        verify(listener, times(3)).onCapabilitiesChanged(monitoringListenerCaptor.capture());
-        verify(notificationPublisher, times(2)).onCapabilityChanged(capabilityChangeCaptor.capture());
-
-        //verify listener calls
-        final List<Capabilities> listenerValues = monitoringListenerCaptor.getAllValues();
-        final List<Uri> afterRegisterState = listenerValues.get(0).getCapability();
-        final List<Uri> afterAddState = listenerValues.get(1).getCapability();
-        final List<Uri> afterRemoveState = listenerValues.get(2).getCapability();
-
-        Assert.assertEquals(capabilitiesSize, afterRegisterState.size());
-        Assert.assertEquals(capabilitiesSize + 1, afterAddState.size());
-        Assert.assertEquals(capabilitiesSize, afterRemoveState.size());
-        Assert.assertFalse(afterRegisterState.contains(uri));
-        Assert.assertTrue(afterAddState.contains(uri));
-        Assert.assertFalse(afterRemoveState.contains(uri));
-
-        //verify notification publication
-        final List<NetconfCapabilityChange> publisherValues = capabilityChangeCaptor.getAllValues();
-        final NetconfCapabilityChange afterAdd = publisherValues.get(0);
-        final NetconfCapabilityChange afterRemove = publisherValues.get(1);
-
-        Assert.assertEquals(Collections.singleton(uri), new HashSet<>(afterAdd.getAddedCapability()));
-        Assert.assertEquals(Collections.emptySet(), new HashSet<>(afterAdd.getDeletedCapability()));
-        Assert.assertEquals(Collections.singleton(uri), new HashSet<>(afterRemove.getDeletedCapability()));
-        Assert.assertEquals(Collections.emptySet(), new HashSet<>(afterRemove.getAddedCapability()));
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfImplActivatorTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfImplActivatorTest.java
deleted file mode 100644 (file)
index 5f8c6d2..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.osgi;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.anyString;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.verify;
-
-import java.util.Arrays;
-import java.util.Dictionary;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Filter;
-import org.osgi.framework.ServiceListener;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-
-public class NetconfImplActivatorTest {
-
-    @Mock
-    private BundleContext bundle;
-    @Mock
-    private Filter filter;
-    @Mock
-    private ServiceReference<?> reference;
-    @Mock
-    private ServiceRegistration<?> registration;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        doReturn(filter).when(bundle).createFilter(anyString());
-        doNothing().when(bundle).addServiceListener(any(ServiceListener.class), anyString());
-
-        ServiceReference<?>[] refs = {};
-        doReturn(refs).when(bundle).getServiceReferences(anyString(), anyString());
-        doReturn(Arrays.asList(refs)).when(bundle).getServiceReferences(any(Class.class), anyString());
-        doReturn("").when(bundle).getProperty(anyString());
-        doReturn(registration).when(bundle).registerService(any(Class.class),
-                any(AggregatedNetconfOperationServiceFactory.class), any(Dictionary.class));
-        doNothing().when(registration).unregister();
-        doNothing().when(bundle).removeServiceListener(any(ServiceListener.class));
-    }
-
-    @Test
-    public void testStart() throws Exception {
-        NetconfImplActivator activator = new NetconfImplActivator();
-        activator.start(bundle);
-        verify(bundle).registerService(any(Class.class), any(AggregatedNetconfOperationServiceFactory.class),
-                any(Dictionary.class));
-        activator.stop(bundle);
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImplTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImplTest.java
deleted file mode 100644 (file)
index 8b1afec..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.verify;
-
-import java.io.IOException;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.mapping.api.HandlingPriority;
-import org.opendaylight.netconf.mapping.api.NetconfOperation;
-import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution;
-import org.opendaylight.netconf.mapping.api.NetconfOperationService;
-import org.w3c.dom.Document;
-import org.xml.sax.SAXException;
-
-public class NetconfOperationRouterImplTest {
-
-    private static final String TEST_RPC = "<rpc message-id=\"101\" "
-            + "xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><test/></rpc>\n";
-    private static final String MAX_PRIORITY_REPLY = "<high/>";
-    private static final String DEFAULT_PRIORITY_REPLY = "<default/>";
-
-    private static Document TEST_RPC_DOC;
-
-    @Mock
-    private NetconfOperationService operationService;
-    @Mock
-    private NetconfOperationService operationService2;
-    @Mock
-    private NetconfOperation maxPrioMock;
-    @Mock
-    private NetconfOperation defaultPrioMock;
-
-    private NetconfOperationRouterImpl operationRouter;
-    private NetconfOperationRouterImpl emptyOperationRouter;
-
-    @BeforeClass
-    public static void suiteSetUp() throws IOException, SAXException {
-        TEST_RPC_DOC = XmlUtil.readXmlToDocument(TEST_RPC);
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-
-        doReturn(HandlingPriority.HANDLE_WITH_MAX_PRIORITY).when(maxPrioMock).canHandle(any(Document.class));
-        doReturn(XmlUtil.readXmlToDocument(MAX_PRIORITY_REPLY)).when(maxPrioMock).handle(any(Document.class),
-                any(NetconfOperationChainedExecution.class));
-
-        doReturn(HandlingPriority.HANDLE_WITH_DEFAULT_PRIORITY).when(defaultPrioMock).canHandle(any(Document.class));
-        doReturn(XmlUtil.readXmlToDocument(DEFAULT_PRIORITY_REPLY)).when(defaultPrioMock).handle(any(Document.class),
-                any(NetconfOperationChainedExecution.class));
-
-        final Set<NetconfOperation> operations = new HashSet<>();
-        operations.add(maxPrioMock);
-        operations.add(defaultPrioMock);
-        doReturn(operations).when(operationService).getNetconfOperations();
-        doNothing().when(operationService).close();
-
-        operationRouter = new NetconfOperationRouterImpl(operationService, null, "session-1");
-        doReturn(Collections.EMPTY_SET).when(operationService2).getNetconfOperations();
-        emptyOperationRouter = new NetconfOperationRouterImpl(operationService2, null, "session-1");
-    }
-
-    @Test
-    public void testOnNetconfMessage() throws Exception {
-        final ArgumentCaptor<NetconfOperationChainedExecution> highPriorityChainEx =
-                ArgumentCaptor.forClass(NetconfOperationChainedExecution.class);
-        final ArgumentCaptor<NetconfOperationChainedExecution> defaultPriorityChainEx =
-                ArgumentCaptor.forClass(NetconfOperationChainedExecution.class);
-
-        final Document document = operationRouter.onNetconfMessage(TEST_RPC_DOC, null);
-
-        //max priority message is first in chain
-        verify(maxPrioMock).handle(any(Document.class), highPriorityChainEx.capture());
-        final NetconfOperationChainedExecution chainedExecution = highPriorityChainEx.getValue();
-        Assert.assertFalse(chainedExecution.isExecutionTermination());
-
-        //execute next in chain
-        final Document execute = chainedExecution.execute(XmlUtil.newDocument());
-        Assert.assertEquals(DEFAULT_PRIORITY_REPLY, XmlUtil.toString(execute).trim());
-
-        //default priority message is second and last
-        verify(defaultPrioMock).handle(any(Document.class), defaultPriorityChainEx.capture());
-        Assert.assertTrue(defaultPriorityChainEx.getValue().isExecutionTermination());
-
-        Assert.assertEquals(MAX_PRIORITY_REPLY, XmlUtil.toString(document).trim());
-    }
-
-    @Test
-    public void testOnNetconfMessageFail() throws Exception {
-        try {
-            emptyOperationRouter.onNetconfMessage(TEST_RPC_DOC, null);
-            Assert.fail("Exception expected");
-        } catch (final DocumentedException e) {
-            Assert.assertEquals(e.getErrorTag(), DocumentedException.ErrorTag.OPERATION_NOT_SUPPORTED);
-        }
-    }
-
-    @Test
-    public void testClose() throws Exception {
-        operationRouter.close();
-        verify(operationService).close();
-    }
-
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationServiceFactoryTrackerTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationServiceFactoryTrackerTest.java
deleted file mode 100644 (file)
index ce20e1c..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.osgi;
-
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.anyString;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.netconf.api.util.NetconfConstants;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Filter;
-import org.osgi.framework.ServiceReference;
-
-public class NetconfOperationServiceFactoryTrackerTest {
-
-    @Mock
-    private Filter filter;
-    @Mock
-    private BundleContext context;
-    @Mock
-    private NetconfOperationServiceFactoryListener listener;
-    @Mock
-    private NetconfOperationServiceFactory factory;
-    @Mock
-    private ServiceReference<NetconfOperationServiceFactory> reference;
-
-    private NetconfOperationServiceFactoryTracker tracker;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        doNothing().when(listener).onRemoveNetconfOperationServiceFactory(any(NetconfOperationServiceFactory.class));
-        doReturn(filter).when(context).createFilter(anyString());
-        doReturn("").when(reference).toString();
-        doReturn(NetconfConstants.CONFIG_NETCONF_CONNECTOR).when(reference).getProperty(NetconfConstants.SERVICE_NAME);
-        doReturn(factory).when(context).getService(any(ServiceReference.class));
-        doReturn("").when(factory).toString();
-        doNothing().when(listener).onAddNetconfOperationServiceFactory(any(NetconfOperationServiceFactory.class));
-        tracker = new NetconfOperationServiceFactoryTracker(context, listener);
-    }
-
-    @Test
-    public void testNetconfOperationServiceFactoryTracker() throws Exception {
-        tracker.removedService(null, factory);
-        verify(listener, times(1)).onRemoveNetconfOperationServiceFactory(any(NetconfOperationServiceFactory.class));
-    }
-
-    @Test
-    public void testAddingService() throws Exception {
-        assertNotNull(tracker.addingService(reference));
-        verify(listener, times(1)).onAddNetconfOperationServiceFactory(any(NetconfOperationServiceFactory.class));
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringServiceTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringServiceTest.java
deleted file mode 100644 (file)
index ae8ee0e..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.timeout;
-import static org.mockito.Mockito.verify;
-
-import com.google.common.base.Optional;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.controller.config.threadpool.ScheduledThreadPool;
-import org.opendaylight.netconf.api.capability.BasicCapability;
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.monitoring.NetconfManagementSession;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.monitoring.SessionEvent;
-import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.HostBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.SessionBuilder;
-
-public class NetconfSessionMonitoringServiceTest {
-
-    private static final Session SESSION_1 = new SessionBuilder()
-            .setSessionId(1L)
-            .setSourceHost(HostBuilder.getDefaultInstance("0.0.0.0"))
-            .setUsername("admin")
-            .build();
-    private static final Session SESSION_2 = new SessionBuilder()
-            .setSessionId(2L)
-            .setSourceHost(HostBuilder.getDefaultInstance("0.0.0.0"))
-            .setUsername("admin")
-            .build();
-
-    @Mock
-    private NetconfManagementSession sessionMock1;
-    @Mock
-    private NetconfManagementSession sessionMock2;
-    @Mock
-    private NetconfMonitoringService.SessionsListener listener;
-    @Mock
-    private BaseNotificationPublisherRegistration notificationPublisher;
-
-    private NetconfSessionMonitoringService monitoringService;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-
-        doReturn(SESSION_1).when(sessionMock1).toManagementSession();
-        doReturn(SESSION_2).when(sessionMock2).toManagementSession();
-        doNothing().when(listener).onSessionStarted(any());
-        doNothing().when(listener).onSessionEnded(any());
-
-        doNothing().when(notificationPublisher).onCapabilityChanged(any());
-        doNothing().when(notificationPublisher).onSessionStarted(any());
-        doNothing().when(notificationPublisher).onSessionEnded(any());
-
-        monitoringService = new NetconfSessionMonitoringService(Optional.absent(), 0);
-        monitoringService.registerListener(listener);
-    }
-
-    @Test
-    public void testListeners() throws Exception {
-        monitoringService.onSessionUp(sessionMock1);
-        HashSet<Capability> added = new HashSet<>();
-        added.add(new BasicCapability("toAdd"));
-        monitoringService.onSessionDown(sessionMock1);
-        verify(listener).onSessionStarted(any());
-        verify(listener).onSessionEnded(any());
-    }
-
-
-    @Test
-    public void testClose() throws Exception {
-        monitoringService.onSessionUp(sessionMock1);
-        Assert.assertFalse(monitoringService.getSessions().getSession().isEmpty());
-        monitoringService.close();
-        Assert.assertTrue(monitoringService.getSessions().getSession().isEmpty());
-    }
-
-
-    @Test
-    public void testOnSessionUpAndDown() throws Exception {
-        monitoringService.onSessionUp(sessionMock1);
-        ArgumentCaptor<Session> sessionUpCaptor = ArgumentCaptor.forClass(Session.class);
-        verify(listener).onSessionStarted(sessionUpCaptor.capture());
-        final Session sesionUp = sessionUpCaptor.getValue();
-        Assert.assertEquals(SESSION_1.getSessionId(), sesionUp.getSessionId());
-        Assert.assertEquals(SESSION_1.getSourceHost(), sesionUp.getSourceHost());
-        Assert.assertEquals(SESSION_1.getUsername(), sesionUp.getUsername());
-
-        monitoringService.onSessionDown(sessionMock1);
-        ArgumentCaptor<Session> sessionDownCaptor = ArgumentCaptor.forClass(Session.class);
-        verify(listener).onSessionEnded(sessionDownCaptor.capture());
-        final Session sessionDown = sessionDownCaptor.getValue();
-        Assert.assertEquals(SESSION_1.getSessionId(), sessionDown.getSessionId());
-        Assert.assertEquals(SESSION_1.getSourceHost(), sessionDown.getSourceHost());
-        Assert.assertEquals(SESSION_1.getUsername(), sessionDown.getUsername());
-    }
-
-    @Test
-    @SuppressWarnings("unchecked")
-    public void testListenerUpdateSession() throws Exception {
-        ScheduledThreadPool threadPool = mock(ScheduledThreadPool.class);
-        ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
-        doReturn(executor).when(threadPool).getExecutor();
-        monitoringService = new NetconfSessionMonitoringService(Optional.of(threadPool), 1);
-        monitoringService.registerListener(listener);
-        monitoringService.onSessionUp(sessionMock1);
-        monitoringService.onSessionUp(sessionMock2);
-        monitoringService.onSessionEvent(SessionEvent.inRpcSuccess(sessionMock1));
-        ArgumentCaptor<Collection> captor =
-                ArgumentCaptor.forClass(Collection.class);
-        verify(listener, timeout(2000)).onSessionsUpdated(captor.capture());
-        final Collection<Session> value = captor.getValue();
-        Assert.assertTrue(value.contains(SESSION_1));
-        Assert.assertFalse(value.contains(SESSION_2));
-        monitoringService.close();
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandlerTest.java b/tests/honeynode/1.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandlerTest.java
deleted file mode 100644 (file)
index ec98700..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.util;
-
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.anyObject;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelFuture;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.util.concurrent.GenericFutureListener;
-import org.junit.Before;
-import org.junit.Test;
-
-public class DeserializerExceptionHandlerTest {
-
-    private DeserializerExceptionHandler handler;
-    private ChannelFuture channelFuture;
-    private ChannelHandlerContext context;
-    private Channel channel;
-
-    @Before
-    public void setUp() throws Exception {
-        handler = new DeserializerExceptionHandler();
-        context = mock(ChannelHandlerContext.class);
-        channel = mock(Channel.class);
-        doReturn(channel).when(context).channel();
-        channelFuture = mock(ChannelFuture.class);
-        doReturn(channelFuture).when(channelFuture).addListener(any(GenericFutureListener.class));
-        doReturn(channelFuture).when(channel).writeAndFlush(anyObject());
-    }
-
-    @Test
-    public void testExceptionCaught() throws Exception {
-        handler.exceptionCaught(context, new Exception());
-        verify(context, times(1)).channel();
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/resources/getConfig_reply_unfiltered.xml b/tests/honeynode/1.2.1/netconf-impl/src/test/resources/getConfig_reply_unfiltered.xml
deleted file mode 100644 (file)
index 3c2765a..0000000
+++ /dev/null
@@ -1,439 +0,0 @@
-<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="m-2">
-  <data>
-    <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider:impl">
-          prefix:toaster-provider-impl
-        </type>
-        <name>toaster-provider-impl</name>
-        <notification-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-notification-service
-          </type>
-          <name>binding-notification-broker</name>
-        </notification-service>
-        <rpc-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-rpc-registry
-          </type>
-          <name>binding-rpc-broker</name>
-        </rpc-registry>
-        <data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-data-broker
-          </type>
-          <name>binding-data-broker</name>
-        </data-broker>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-          prefix:sal-netconf-connector
-        </type>
-        <name>controller-config</name>
-        <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">1830</port>
-        <connection-timeout-millis xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-          20000
-        </connection-timeout-millis>
-        <between-attempts-timeout-millis
-                xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">2000
-        </between-attempts-timeout-millis>
-        <sleep-factor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">1.5</sleep-factor>
-        <password xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</password>
-        <dom-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">
-            prefix:dom-broker-osgi-registry
-          </type>
-          <name>dom-broker</name>
-        </dom-registry>
-        <client-dispatcher xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf">
-            prefix:netconf-client-dispatcher
-          </type>
-          <name>global-netconf-dispatcher</name>
-        </client-dispatcher>
-        <username xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</username>
-        <address xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">127.0.0.1</address>
-        <processing-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadpool</type>
-          <name>global-netconf-processing-executor</name>
-        </processing-executor>
-        <tcp-only xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">false</tcp-only>
-        <binding-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-broker-osgi-registry
-          </type>
-          <name>binding-osgi-broker</name>
-        </binding-registry>
-        <max-connection-attempts xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">0
-        </max-connection-attempts>
-        <event-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-event-executor</type>
-          <name>global-event-executor</name>
-        </event-executor>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher">
-          prefix:netconf-client-dispatcher
-        </type>
-        <name>global-netconf-dispatcher</name>
-        <worker-thread-group xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-threadgroup</type>
-          <name>global-worker-group</name>
-        </worker-thread-group>
-        <timer xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-timer</type>
-          <name>global-timer</name>
-        </timer>
-        <boss-thread-group xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-threadgroup</type>
-          <name>global-boss-group</name>
-        </boss-thread-group>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:logback:config">prefix:logback</type>
-        <name>singleton</name>
-        <console-appenders xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <threshold-filter>ERROR</threshold-filter>
-          <name>STDOUT</name>
-          <encoder-pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level %logger{36} - %msg%n</encoder-pattern>
-        </console-appenders>
-        <file-appenders xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <append>true</append>
-          <file-name>logs/audit.log</file-name>
-          <name>audit-file</name>
-          <encoder-pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} %msg %n</encoder-pattern>
-        </file-appenders>
-        <loggers xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <level>WARN</level>
-          <logger-name>org.opendaylight.controller.logging.bridge</logger-name>
-        </loggers>
-        <loggers xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <level>INFO</level>
-          <logger-name>audit</logger-name>
-          <appenders>audit-file</appenders>
-        </loggers>
-        <loggers xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <level>ERROR</level>
-          <logger-name>ROOT</logger-name>
-          <appenders>STDOUT</appenders>
-          <appenders>opendaylight.log</appenders>
-        </loggers>
-        <loggers xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <level>INFO</level>
-          <logger-name>org.opendaylight</logger-name>
-        </loggers>
-        <loggers xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <level>INFO</level>
-          <logger-name>org.opendaylight.yangtools.yang.parser.util.ModuleDependencySort</logger-name>
-          <appenders>opendaylight.log</appenders>
-        </loggers>
-        <loggers xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <level>TRACE</level>
-          <logger-name>org.opendaylight.controller.netconf</logger-name>
-        </loggers>
-        <loggers xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <level>WARN</level>
-          <logger-name>io.netty</logger-name>
-        </loggers>
-        <rolling-appenders xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <append>true</append>
-          <max-file-size>10MB</max-file-size>
-          <file-name>logs/opendaylight.log</file-name>
-          <name>opendaylight.log</name>
-          <file-name-pattern>logs/opendaylight.%d.log.zip</file-name-pattern>
-          <encoder-pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level %logger{35} - %msg%n</encoder-pattern>
-          <clean-history-on-start>false</clean-history-on-start>
-          <max-history>1</max-history>
-          <rolling-policy-type>TimeBasedRollingPolicy</rolling-policy-type>
-        </rolling-appenders>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:shutdown:impl">prefix:shutdown</type>
-        <name>shutdown</name>
-        <secret xmlns="urn:opendaylight:params:xml:ns:yang:controller:shutdown:impl"/>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty:timer">
-          prefix:netty-hashed-wheel-timer
-        </type>
-        <name>global-timer</name>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup">
-          prefix:netty-threadgroup-fixed
-        </type>
-        <name>global-boss-group</name>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup">
-          prefix:netty-threadgroup-fixed
-        </type>
-        <name>global-worker-group</name>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">
-          prefix:schema-service-singleton
-        </type>
-        <name>yang-schema-service</name>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:dom-broker-impl
-        </type>
-        <name>inmemory-dom-broker</name>
-        <async-data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-async-data-broker
-          </type>
-          <name>inmemory-data-broker</name>
-        </async-data-broker>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">
-          prefix:dom-inmemory-data-broker
-        </type>
-        <name>inmemory-data-broker</name>
-        <schema-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:schema-service</type>
-          <name>yang-schema-service</name>
-        </schema-service>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible">
-          prefix:threadpool-flexible
-        </type>
-        <name>global-netconf-processing-executor</name>
-        <threadFactory xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadfactory</type>
-          <name>global-netconf-processing-executor-threadfactory</name>
-        </threadFactory>
-        <minThreadCount xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible">1
-        </minThreadCount>
-        <max-thread-count xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible">4
-        </max-thread-count>
-        <keepAliveMillis xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible">600000
-        </keepAliveMillis>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor">
-          prefix:netty-global-event-executor
-        </type>
-        <name>singleton</name>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          prefix:binding-broker-impl
-        </type>
-        <name>binding-broker-impl</name>
-        <notification-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-notification-service
-          </type>
-          <name>binding-notification-broker</name>
-        </notification-service>
-        <data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-data-broker
-          </type>
-          <name>binding-data-broker</name>
-        </data-broker>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          prefix:runtime-generated-mapping
-        </type>
-        <name>runtime-mapping-singleton</name>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          prefix:binding-notification-broker
-        </type>
-        <name>binding-notification-broker</name>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          prefix:binding-data-compatible-broker
-        </type>
-        <name>inmemory-binding-data-broker</name>
-        <dom-async-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">
-            prefix:dom-broker-osgi-registry
-          </type>
-          <name>dom-broker</name>
-        </dom-async-broker>
-        <binding-mapping-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-            prefix:binding-dom-mapping-service
-          </type>
-          <name>runtime-mapping-singleton</name>
-        </binding-mapping-service>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">
-          prefix:threadfactory-naming
-        </type>
-        <name>global-netconf-processing-executor-threadfactory</name>
-        <name-prefix xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">
-          remote-connector-processing-executor
-        </name-prefix>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:kitchen-service:impl">
-          prefix:kitchen-service-impl
-        </type>
-        <name>kitchen-service-impl</name>
-        <notification-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:kitchen-service:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-notification-service
-          </type>
-          <name>binding-notification-broker</name>
-        </notification-service>
-        <rpc-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:kitchen-service:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-rpc-registry
-          </type>
-          <name>binding-rpc-broker</name>
-        </rpc-registry>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote:rpc">
-          prefix:remote-zeromq-rpc-server
-        </type>
-        <name>remoter</name>
-        <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote:rpc">5666</port>
-        <dom-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote:rpc">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">
-            prefix:dom-broker-osgi-registry
-          </type>
-          <name>dom-broker</name>
-        </dom-broker>
-      </module>
-    </modules>
-    <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:schema-service</type>
-        <instance>
-          <name>yang-schema-service</name>
-          <provider>/modules/module[type='schema-service-singleton'][name='yang-schema-service']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry
-        </type>
-        <instance>
-          <name>dom-broker</name>
-          <provider>/modules/module[type='dom-broker-impl'][name='inmemory-dom-broker']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-async-data-broker
-        </type>
-        <instance>
-          <name>inmemory-data-broker</name>
-          <provider>/modules/module[type='dom-inmemory-data-broker'][name='inmemory-data-broker']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadpool</type>
-        <instance>
-          <name>global-netconf-processing-executor</name>
-          <provider>/modules/module[type='threadpool-flexible'][name='global-netconf-processing-executor']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadfactory</type>
-        <instance>
-          <name>global-netconf-processing-executor-threadfactory</name>
-          <provider>
-            /modules/module[type='threadfactory-naming'][name='global-netconf-processing-executor-threadfactory']
-          </provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          prefix:binding-dom-mapping-service
-        </type>
-        <instance>
-          <name>runtime-mapping-singleton</name>
-          <provider>/modules/module[type='runtime-generated-mapping'][name='runtime-mapping-singleton']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-timer</type>
-        <instance>
-          <name>global-timer</name>
-          <provider>/modules/module[type='netty-hashed-wheel-timer'][name='global-timer']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-threadgroup</type>
-        <instance>
-          <name>global-boss-group</name>
-          <provider>/modules/module[type='netty-threadgroup-fixed'][name='global-boss-group']</provider>
-        </instance>
-        <instance>
-          <name>global-worker-group</name>
-          <provider>/modules/module[type='netty-threadgroup-fixed'][name='global-worker-group']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-event-executor</type>
-        <instance>
-          <name>global-event-executor</name>
-          <provider>/modules/module[type='netty-global-event-executor'][name='singleton']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-rpc-registry
-        </type>
-        <instance>
-          <name>binding-rpc-broker</name>
-          <provider>/modules/module[type='binding-broker-impl'][name='binding-broker-impl']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-          prefix:binding-notification-service
-        </type>
-        <instance>
-          <name>binding-notification-broker</name>
-          <provider>/modules/module[type='binding-notification-broker'][name='binding-notification-broker']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-          prefix:binding-broker-osgi-registry
-        </type>
-        <instance>
-          <name>binding-osgi-broker</name>
-          <provider>/modules/module[type='binding-broker-impl'][name='binding-broker-impl']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-data-broker
-        </type>
-        <instance>
-          <name>binding-data-broker</name>
-          <provider>/modules/module[type='binding-data-compatible-broker'][name='inmemory-binding-data-broker']
-          </provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:kitchen-service:impl">
-          prefix:kitchen-service
-        </type>
-        <instance>
-          <name>kitchen-service</name>
-          <provider>/modules/module[type='kitchen-service-impl'][name='kitchen-service-impl']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf">
-          prefix:netconf-client-dispatcher
-        </type>
-        <instance>
-          <name>global-netconf-dispatcher</name>
-          <provider>/modules/module[type='netconf-client-dispatcher'][name='global-netconf-dispatcher']</provider>
-        </instance>
-      </service>
-    </services>
-  </data>
-</rpc-reply>
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/netconf-impl/src/test/resources/logback-test.xml b/tests/honeynode/1.2.1/netconf-impl/src/test/resources/logback-test.xml
deleted file mode 100644 (file)
index 955fda7..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<configuration scan="true">
-
-  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-    <encoder>
-      <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level %logger{36} - %msg%n</pattern>
-    </encoder>
-  </appender>
-
-  <root level="error">
-    <appender-ref ref="STDOUT" />
-  </root>
-  <logger name="org.opendaylight.controller.netconf" level="INFO"/>
-</configuration>
diff --git a/tests/honeynode/1.2.1/netconf/asciidoc/Readme.adoc b/tests/honeynode/1.2.1/netconf/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index 525b0b4..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-= netconf
-
-Provides binding support to start NETCONF SSH/TCP
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/netconf/pom.xml b/tests/honeynode/1.2.1/netconf/pom.xml
deleted file mode 100644 (file)
index 534c832..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Copyright (c) 2017 Cisco and/or its affiliates.
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at:
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>impl-parent</artifactId>
-        <groupId>io.fd.honeycomb.common</groupId>
-        <version>1.19.04</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>io.fd.honeycomb.transportpce</groupId>
-    <artifactId>netconf</artifactId>
-    <name>${project.artifactId}</name>
-    <properties>
-        <yang.modules.whitelist>
-            ${project.basedir}/src/main/resources/honeycomb-minimal-resources/config/netconf-whitelist.xml
-        </yang.modules.whitelist>
-         <honeycomb.version>1.19.04</honeycomb.version>
-        <java.version>11</java.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <maven.javadoc.skip>true</maven.javadoc.skip>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-    </properties>
-    <dependencies>
-        <!-- DI-->
-        <dependency>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>net.jmob</groupId>
-            <artifactId>guice.conf</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.inject.extensions</groupId>
-            <artifactId>guice-multibindings</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>binding-init</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.transportpce</groupId>
-            <artifactId>minimal-distribution-core</artifactId>
-            <version>1.19.04</version>
-        </dependency>
-        <!-- Northbound -->
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound</groupId>
-            <artifactId>common</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- ODL-Netconf -->
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>netconf-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>mdsal-netconf-ssh</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>mdsal-netconf-notification</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>mdsal-netconf-monitoring</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>mdsal-netconf-connector</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>ietf-netconf-monitoring</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>ietf-netconf-monitoring-extension</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>data-impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>honeycomb-impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>notification-impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-    </dependencies>
- <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.8.1</version>
-                    <configuration>
-                        <source>${java.version}</source>
-                        <target>${java.version}</target>
-                    </configuration>
-                </plugin>
-
-                <!--This plugin's configuration is used to store Eclipse m2e settings
-                    only. It has no influence on the Maven build itself. -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmaven</groupId>
-                                        <artifactId>groovy-maven-plugin</artifactId>
-                                        <versionRange>[2.0,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-checkstyle-plugin</artifactId>
-                                        <versionRange>[3.0.0,)</versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-dependency-plugin</artifactId>
-                                        <versionRange>[2.10,)</versionRange>
-                                        <goals>
-                                            <goal>copy-dependencies</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmavenplus</groupId>
-                                        <artifactId>gmavenplus-plugin</artifactId>
-                                        <versionRange>[1.6.2,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
diff --git a/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/HoneycombNotification2NetconfProvider.java b/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/HoneycombNotification2NetconfProvider.java
deleted file mode 100644 (file)
index 30f8404..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-import io.fd.honeycomb.notification.NotificationCollector;
-import io.fd.honeycomb.notification.impl.NotificationProducerRegistry;
-import io.fd.honeycomb.notification.impl.TranslationUtil;
-import java.util.List;
-import java.util.stream.Collectors;
-import javax.annotation.Nonnull;
-import org.opendaylight.mdsal.dom.api.DOMNotification;
-import org.opendaylight.mdsal.dom.api.DOMNotificationListener;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter;
-import org.opendaylight.netconf.notifications.NetconfNotificationCollector;
-import org.opendaylight.netconf.notifications.NotificationPublisherRegistration;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.notification._1._0.rev080714.StreamNameType;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.StreamBuilder;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class HoneycombNotification2NetconfProvider
-        extends ProviderTrait<HoneycombNotification2NetconfProvider.HoneycombNotification2Netconf> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(HoneycombNotification2NetconfProvider.class);
-
-    @Inject
-    private DOMNotificationRouter notificationRouter;
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    private NetconfConfiguration cfgAttributes;
-    @Inject
-    private NotificationCollector hcNotificationCollector;
-    @Inject
-    private NetconfNotificationCollector netconfNotificationCollector;
-
-    @Override
-    protected HoneycombNotification2Netconf create() {
-        final StreamNameType streamType = new StreamNameType(cfgAttributes.netconfNotificationStreamName.get());
-
-        // Register as HONEYCOMB_NETCONF notification publisher under configured name
-        final NotificationPublisherRegistration netconfNotifReg = netconfNotificationCollector
-                .registerNotificationPublisher(new StreamBuilder().setName(streamType).setReplaySupport(false)
-                        .setDescription(cfgAttributes.netconfNotificationStreamName.get()).build());
-
-        // Notification Translator, get notification from HC producers and put into HONEYCOMB_NETCONF notification collector
-        final DOMNotificationListener domNotificationListener =
-                new TranslatingNotificationListener(netconfNotifReg, streamType, schemaService);
-
-        // NotificationManager is used to provide list of available notifications (which are all of the notifications registered)
-        // TODO HONEYCOMB-165 make available notifications configurable here so that any number of notification streams for netconf
-        // can be configured on top of a single notification manager
-        LOG.debug("Current notifications to be exposed over HONEYCOMB_NETCONF: {}",
-                hcNotificationCollector.getNotificationTypes());
-        List<SchemaPath> currentNotificationSchemaPaths = hcNotificationCollector.getNotificationTypes().stream()
-                .map(notifType -> SchemaPath.create(true, NotificationProducerRegistry.getQName(notifType)))
-                .collect(Collectors.toList());
-
-        // Register as listener to HC'OPERATIONAL DOM notification service
-        // TODO HONEYCOMB-166 This should only be triggered when HONEYCOMB_NETCONF notifications are activated
-        // Because this way we actually start all notification producers
-        // final Collection<QName> notificationQNames =
-        ListenerRegistration<DOMNotificationListener> domNotifListenerReg = notificationRouter
-                .registerNotificationListener(domNotificationListener, currentNotificationSchemaPaths);
-
-        LOG.info("Exposing HONEYCOMB_NETCONF notification stream: {}", streamType.getValue());
-        return new HoneycombNotification2Netconf(domNotifListenerReg, netconfNotifReg);
-    }
-
-    public static final class HoneycombNotification2Netconf {
-        private final ListenerRegistration<DOMNotificationListener> domNotifListenerReg;
-        private final NotificationPublisherRegistration netconfNotifReg;
-
-        public HoneycombNotification2Netconf(final ListenerRegistration<DOMNotificationListener> domNotifListenerReg,
-                                             final NotificationPublisherRegistration netconfNotifReg) {
-            this.domNotifListenerReg = domNotifListenerReg;
-            this.netconfNotifReg = netconfNotifReg;
-        }
-
-        public ListenerRegistration<DOMNotificationListener> getDomNotifListenerReg() {
-            return domNotifListenerReg;
-        }
-
-        public NotificationPublisherRegistration getNetconfNotifReg() {
-            return netconfNotifReg;
-        }
-    }
-
-    private static final class TranslatingNotificationListener implements DOMNotificationListener {
-
-        private static final Logger LOG = LoggerFactory.getLogger(TranslatingNotificationListener.class);
-
-        private final NotificationPublisherRegistration netconfNotifReg;
-        private final StreamNameType streamType;
-        private final DOMSchemaService schemaService;
-
-        TranslatingNotificationListener(final NotificationPublisherRegistration netconfNotifReg,
-                                               final StreamNameType streamType, final DOMSchemaService schemaService) {
-            this.netconfNotifReg = netconfNotifReg;
-            this.streamType = streamType;
-            this.schemaService = schemaService;
-        }
-
-        @Override
-        public void onNotification(@Nonnull final DOMNotification notif) {
-            LOG.debug("Propagating notification: {} into HONEYCOMB_NETCONF", notif.getType());
-            netconfNotifReg.onNotification(streamType, TranslationUtil.notificationToXml(notif, schemaService.getGlobalContext()));
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfBindingBrokerProvider.java b/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfBindingBrokerProvider.java
deleted file mode 100644 (file)
index 5b9dd9e..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.impl.FakeBindingAwareBroker;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-
-public final class NetconfBindingBrokerProvider extends ProviderTrait<BindingAwareBroker> {
-
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF)
-    private DataBroker dataBroker;
-
-    @Override
-    protected FakeBindingAwareBroker create() {
-        return new FakeBindingAwareBroker(dataBroker);
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfConfigurationModule.java b/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfConfigurationModule.java
deleted file mode 100644 (file)
index aba254b..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.AbstractModule;
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-public class NetconfConfigurationModule extends AbstractModule {
-    @Override
-    protected void configure() {
-        install(ConfigurationModule.create());
-        requireBinding(NetconfConfiguration.class);
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMdsalMapperProvider.java b/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMdsalMapperProvider.java
deleted file mode 100644 (file)
index 3aff26a..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.api.DOMRpcService;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.opendaylight.netconf.mdsal.connector.MdsalNetconfOperationServiceFactory;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.binding.init.ProviderTrait;
-
-public final class NetconfMdsalMapperProvider extends ProviderTrait<NetconfOperationServiceFactory> {
-
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    private NetconfOperationServiceFactoryListener aggregator;
-    @Inject
-    // @Named(HONEYCOMB_CONFIG)
-    // Modified in order to connect TPCE to device config datastore
-    @Named("device-databroker")
-    private DOMDataBroker domBroker;
-    @Inject
-    private NetconfOperationServiceFactoryListener netconfOperationServiceFactoryListener;
-    @Inject
-    private DOMRpcService rpcService;
-
-    @Override
-    protected MdsalNetconfOperationServiceFactory create() {
-        return new MdsalNetconfOperationServiceFactory(schemaService, netconfOperationServiceFactoryListener, domBroker,
-                rpcService);
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfModule.java b/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfModule.java
deleted file mode 100644 (file)
index 503731b..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Singleton;
-import com.google.inject.binder.AnnotatedElementBuilder;
-import com.google.inject.name.Names;
-import io.fd.honeycomb.infra.distro.data.BindingDataBrokerProvider;
-import io.fd.honeycomb.infra.distro.data.DataStoreProvider;
-import io.fd.honeycomb.infra.distro.data.HoneycombNotificationManagerProvider;
-import io.fd.honeycomb.infra.distro.data.InmemoryDOMDataBrokerProvider;
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-import io.fd.honeycomb.northbound.NorthboundPrivateModule;
-import io.fd.honeycomb.notification.NotificationCollector;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.util.HashedWheelTimer;
-import io.netty.util.Timer;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
-import org.opendaylight.netconf.api.NetconfServerDispatcher;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.opendaylight.netconf.mdsal.notification.impl.NetconfNotificationManager;
-import org.opendaylight.netconf.notifications.NetconfNotificationCollector;
-import org.opendaylight.netconf.notifications.NetconfNotificationListener;
-import org.opendaylight.netconf.notifications.NetconfNotificationRegistry;
-import org.opendaylight.netconf.ssh.NetconfNorthboundSshServer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class NetconfModule extends NorthboundPrivateModule<NetconfConfiguration> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfModule.class);
-
-    public static final String HONEYCOMB_NETCONF = "honeycomb-netconf";
-    public static final String HONEYCOMB_NETCONF_MAPPER_AGGR = "netconf-mapper-aggregator";
-    public static final String HONEYCOMB_NETCONF_MAPPER_NOTIF = "netconf-mapper-notification";
-    public static final String HONEYCOMB_NETCONF_MAPPER_CORE = "netconf-mapper-honeycomb";
-    public static final String HONEYCOMB_NETCONF_MAPPER_OPER = "netconf-mapper-monitoring";
-
-    public NetconfModule() {
-        super(new NetconfConfigurationModule(), NetconfConfiguration.class);
-    }
-
-    @Override
-    protected void configure() {
-        if (!getConfiguration().isNetconfEnabled()) {
-            LOG.debug("Netconf disabled, skipping initialization");
-            return;
-        }
-        install(getConfigurationModule());
-        LOG.info("Starting NETCONF Northbound");
-        // Create inmemory data store for HONEYCOMB_NETCONF config metadata
-        bind(InMemoryDOMDataStore.class).annotatedWith(Names.named(InmemoryDOMDataBrokerProvider.CONFIG))
-                .toProvider(
-                        new DataStoreProvider(InmemoryDOMDataBrokerProvider.CONFIG, org.opendaylight.mdsal.common.api.LogicalDatastoreType.CONFIGURATION))
-                .in(Singleton.class);
-
-        // Create inmemory data store for HONEYCOMB_NETCONF operational metadata
-        bind(InMemoryDOMDataStore.class).annotatedWith(Names.named(InmemoryDOMDataBrokerProvider.OPERATIONAL))
-                .toProvider(new DataStoreProvider(InmemoryDOMDataBrokerProvider.OPERATIONAL, org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL
-                ))
-                .in(Singleton.class);
-        // Wrap datastores as DOMDataBroker
-        bind(DOMDataBroker.class).toProvider(InmemoryDOMDataBrokerProvider.class).in(Singleton.class);
-
-        // Wrap DOMDataBroker as BA data broker
-        bind(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_NETCONF)).toProvider(BindingDataBrokerProvider.class)
-                .in(Singleton.class);
-        expose(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_NETCONF));
-
-        // Wrap BA data broker as BindingAwareBroker (requied by HONEYCOMB_NETCONF)
-        bind(BindingAwareBroker.class).annotatedWith(Names.named(HONEYCOMB_NETCONF))
-                .toProvider(NetconfBindingBrokerProvider.class).in(Singleton.class);
-
-        // Create netconf operation service factory aggregator to aggregate different services
-        AggregatedNetconfOperationServiceFactory factory = new AggregatedNetconfOperationServiceFactory();
-        bind(NetconfOperationServiceFactory.class).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_AGGR))
-                .toInstance(factory);
-        bind(NetconfOperationServiceFactoryListener.class).toInstance(factory);
-
-        // Create netconf notification manager
-        NetconfNotificationManager manager = new NetconfNotificationManager();
-        bind(NetconfNotificationCollector.class).toInstance(manager);
-        bind(NetconfNotificationRegistry.class).toInstance(manager);
-        bind(NetconfNotificationListener.class).toInstance(manager);
-
-        // Netconf notification service factory
-        bind(NetconfOperationServiceFactory.class).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_NOTIF))
-                .toProvider(NetconfNotificationMapperProvider.class).asEagerSingleton();
-        expose(NetconfOperationServiceFactory.class).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_NOTIF));
-
-        // Netconf core part - mapping between Honeycomb and Netconf
-        bind(NetconfOperationServiceFactory.class).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_CORE))
-                .toProvider(NetconfMdsalMapperProvider.class).asEagerSingleton();
-        expose(NetconfOperationServiceFactory.class).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_CORE));
-
-        // Netconf monitoring service factory
-        bind(NetconfMonitoringService.class).toProvider(NetconfMonitoringServiceProvider.class).in(Singleton.class);
-        bind(NetconfOperationServiceFactory.class).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_OPER))
-                .toProvider(NetconfMonitoringMapperProvider.class).asEagerSingleton();
-        expose(NetconfOperationServiceFactory.class).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_OPER));
-
-        // Create HC notification manager + HC2Netconf translator
-        bind(NotificationCollector.class).toProvider(HoneycombNotificationManagerProvider.class).in(Singleton.class);
-        bind(HoneycombNotification2NetconfProvider.HoneycombNotification2Netconf.class)
-                .toProvider(HoneycombNotification2NetconfProvider.class).asEagerSingleton();
-        expose(HoneycombNotification2NetconfProvider.HoneycombNotification2Netconf.class);
-
-        configureServer();
-    }
-
-    /**
-     * Provide HONEYCOMB_NETCONF TCP and SSH servers.
-     */
-    private AnnotatedElementBuilder configureServer() {
-        bind(NioEventLoopGroup.class).toProvider(NettyThreadGroupProvider.class).in(Singleton.class);
-        bind(Timer.class).toInstance(new HashedWheelTimer());
-        bind(NetconfServerDispatcher.class).toProvider(NetconfServerDispatcherProvider.class).in(Singleton.class);
-        bind(NetconfTcpServerProvider.NetconfTcpServer.class).toProvider(NetconfTcpServerProvider.class)
-                .asEagerSingleton();
-        expose(NetconfTcpServerProvider.NetconfTcpServer.class);
-        bind(NetconfNorthboundSshServer.class).toProvider(NetconfSshServerProvider.class).asEagerSingleton();
-        return expose(NetconfNorthboundSshServer.class);
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringMapperProvider.java b/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringMapperProvider.java
deleted file mode 100644 (file)
index 3cea742..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.controller.config.yang.netconf.mdsal.monitoring.MdsalMonitoringMapperFactory;
-import org.opendaylight.controller.config.yang.netconf.mdsal.monitoring.MonitoringToMdsalWriter;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class NetconfMonitoringMapperProvider extends ProviderTrait<NetconfOperationServiceFactory> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfMonitoringMapperProvider.class);
-
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF)
-    private DataBroker dataBroker;
-    @Inject
-    private NetconfOperationServiceFactoryListener aggregator;
-    @Inject
-    private NetconfMonitoringService monitoringService;
-
-    @Override
-    protected NetconfOperationServiceFactory create() {
-        LOG.trace("Initializing MonitoringToMdsalWriter");
-        final MonitoringToMdsalWriter writer = new MonitoringToMdsalWriter(monitoringService, dataBroker);
-        writer.start();
-
-        LOG.trace("Providing MdsalMonitoringMapperFactory");
-        return new MdsalMonitoringMapperFactory(aggregator, monitoringService, writer);
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringReaderFactoryProvider.java b/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringReaderFactoryProvider.java
deleted file mode 100644 (file)
index 3ea7839..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
-import io.fd.honeycomb.translate.util.read.BindingBrokerReader;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfState;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfStateBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-
-public final class NetconfMonitoringReaderFactoryProvider extends ProviderTrait<ReaderFactory> {
-
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF)
-    private DataBroker netconfDataBroker;
-
-    @Override
-    protected NetconfMonitoringReaderFactory create() {
-        return new NetconfMonitoringReaderFactory(netconfDataBroker);
-    }
-
-    /**
-     * {@link io.fd.honeycomb.translate.read.ReaderFactory} initiating reader into NETCONF's dedicated data store.
-     * Making NETCONF operational data available over NETCONF/RESTCONF
-     */
-    private static final class NetconfMonitoringReaderFactory implements ReaderFactory {
-
-        private final DataBroker netconfMonitoringBindingBrokerDependency;
-
-        NetconfMonitoringReaderFactory(final DataBroker netconfMonitoringBindingBrokerDependency) {
-            this.netconfMonitoringBindingBrokerDependency = netconfMonitoringBindingBrokerDependency;
-        }
-
-        @Override
-        public void init(final ModifiableReaderRegistryBuilder registry) {
-            registry.add(new BindingBrokerReader<>(InstanceIdentifier.create(NetconfState.class),
-                    netconfMonitoringBindingBrokerDependency, OPERATIONAL, NetconfStateBuilder.class));
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringServiceProvider.java b/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringServiceProvider.java
deleted file mode 100644 (file)
index 1a99dd1..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.impl.osgi.NetconfMonitoringServiceImpl;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-
-
-public class NetconfMonitoringServiceProvider extends ProviderTrait<NetconfMonitoringService> {
-
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF_MAPPER_AGGR)
-    private NetconfOperationServiceFactory aggregator;
-
-    @Override
-    protected NetconfMonitoringServiceImpl create() {
-        return new NetconfMonitoringServiceImpl(aggregator);
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationMapperProvider.java b/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationMapperProvider.java
deleted file mode 100644 (file)
index 9289936..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.ShutdownHandler;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.opendaylight.netconf.mdsal.notification.impl.CapabilityChangeNotificationProducer;
-import org.opendaylight.netconf.mdsal.notification.impl.NetconfNotificationOperationServiceFactory;
-import org.opendaylight.netconf.mdsal.notification.impl.NotificationToMdsalWriter;
-import org.opendaylight.netconf.notifications.NetconfNotificationCollector;
-import org.opendaylight.netconf.notifications.NetconfNotificationRegistry;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfState;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-public class NetconfNotificationMapperProvider extends ProviderTrait<NetconfOperationServiceFactory> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfNotificationMapperProvider.class);
-
-    public static final InstanceIdentifier<Capabilities> capabilitiesIdentifier =
-            InstanceIdentifier.create(NetconfState.class).child(Capabilities.class).builder().build();
-    @Inject
-    private NetconfNotificationCollector notificationCollector;
-    @Inject
-    private NetconfNotificationRegistry notificationRegistry;
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF)
-    private BindingAwareBroker bindingAwareBroker;
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF)
-    private DataBroker dataBroker;
-    @Inject
-    private NetconfOperationServiceFactoryListener aggregator;
-    @Inject
-    private ShutdownHandler shutdownHandler;
-
-    @Override
-    protected NetconfNotificationOperationServiceFactory create() {
-        LOG.trace("Initializing NotificationToMdsalWriter");
-        final NotificationToMdsalWriter writer = new NotificationToMdsalWriter(notificationCollector, dataBroker);
-        writer.start();
-
-        LOG.trace("Initializing CapabilityChangeNotificationProducer");
-        final CapabilityChangeNotificationProducer capabilityChangeNotificationProducer =
-            new CapabilityChangeNotificationProducer(notificationCollector, dataBroker);
-
-        LOG.trace("Providing NetconfNotificationOperationServiceFactory");
-        final NetconfNotificationOperationServiceFactory netconfNotificationOperationServiceFactory =
-            new NetconfNotificationOperationServiceFactory(notificationRegistry, aggregator);
-
-        shutdownHandler.register("netconf-notification-service-factory", netconfNotificationOperationServiceFactory);
-        shutdownHandler.register("capability-change-notification-producer",
-            capabilityChangeNotificationProducer::close);
-        shutdownHandler.register("notification-to-mdsal-writer", writer);
-        return netconfNotificationOperationServiceFactory;
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationsReaderFactoryProvider.java b/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationsReaderFactoryProvider.java
deleted file mode 100644 (file)
index 70aa99b..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
-import io.fd.honeycomb.translate.util.read.BindingBrokerReader;
-import javax.annotation.Nonnull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.Netconf;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.NetconfBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-public final class NetconfNotificationsReaderFactoryProvider extends ProviderTrait<ReaderFactory> {
-
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF)
-    private DataBroker netconfDataBroker;
-
-    @Override
-    protected ReaderFactory create() {
-        return new NotificationReaderFactory(netconfDataBroker);
-    }
-
-    private static final class NotificationReaderFactory implements ReaderFactory {
-        private final DataBroker netconfDataBroker;
-
-        NotificationReaderFactory(final DataBroker netconfDataBroker) {
-            this.netconfDataBroker = netconfDataBroker;
-        }
-
-        @Override
-        public void init(@Nonnull final ModifiableReaderRegistryBuilder registry) {
-            registry.add(
-                    new BindingBrokerReader<>(InstanceIdentifier.create(Netconf.class), netconfDataBroker, OPERATIONAL,
-                            NetconfBuilder.class));
-        }
-
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfReadersModule.java b/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfReadersModule.java
deleted file mode 100644 (file)
index 377ce6e..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Singleton;
-import com.google.inject.multibindings.Multibinder;
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-import io.fd.honeycomb.northbound.NorthboundAbstractModule;
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class NetconfReadersModule extends NorthboundAbstractModule<NetconfConfiguration> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfReadersModule.class);
-
-    public NetconfReadersModule() {
-        super(new NetconfConfigurationModule(), NetconfConfiguration.class);
-    }
-
-    @Override
-    protected void configure() {
-        if (!getConfiguration().isNetconfEnabled()) {
-            LOG.debug("NETCONF Northbound disabled, skipping readers initialization");
-            return;
-        }
-        LOG.info("Initializing NETCONF Northbound readers");
-        // This should be part of NetconfModule, but that one is Private and Multibinders + private BASE_MODULES
-        // do not work together, that's why there's a dedicated module here
-        // https://github.com/google/guice/issues/906
-        final Multibinder<ReaderFactory> binder = Multibinder.newSetBinder(binder(), ReaderFactory.class);
-        binder.addBinding().toProvider(NetconfMonitoringReaderFactoryProvider.class).in(Singleton.class);
-        binder.addBinding().toProvider(NetconfNotificationsReaderFactoryProvider.class).in(Singleton.class);
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfServerDispatcherProvider.java b/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfServerDispatcherProvider.java
deleted file mode 100644 (file)
index 422b81c..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.util.Timer;
-import java.util.concurrent.TimeUnit;
-import org.opendaylight.netconf.api.NetconfServerDispatcher;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.impl.NetconfServerDispatcherImpl;
-import org.opendaylight.netconf.impl.ServerChannelInitializer;
-import org.opendaylight.netconf.impl.SessionIdProvider;
-import org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-
-public final class NetconfServerDispatcherProvider extends ProviderTrait<NetconfServerDispatcher> {
-    private static final long CONNECTION_TIMEOUT_MILLIS = TimeUnit.SECONDS.toMillis(20);
-
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF_MAPPER_AGGR)
-    private NetconfOperationServiceFactory aggregator;
-    @Inject
-    private NetconfMonitoringService monitoringService;
-    @Inject
-    private Timer timer;
-    @Inject
-    private NioEventLoopGroup nettyThreadgroup;
-
-    @Override
-    protected NetconfServerDispatcherImpl create() {
-        AggregatedNetconfOperationServiceFactory netconfOperationProvider =
-                new AggregatedNetconfOperationServiceFactory();
-        netconfOperationProvider.onAddNetconfOperationServiceFactory(aggregator);
-
-        NetconfServerSessionNegotiatorFactory serverNegotiatorFactory =
-                new NetconfServerSessionNegotiatorFactory(timer, netconfOperationProvider, new SessionIdProvider(),
-                        CONNECTION_TIMEOUT_MILLIS, monitoringService);
-        ServerChannelInitializer serverChannelInitializer = new ServerChannelInitializer(serverNegotiatorFactory);
-
-        return new NetconfServerDispatcherImpl(serverChannelInitializer, nettyThreadgroup, nettyThreadgroup);
-    }
-
-    private static final class NetconfServerSessionNegotiatorFactory extends
-            org.opendaylight.netconf.impl.NetconfServerSessionNegotiatorFactory {
-
-        NetconfServerSessionNegotiatorFactory(final Timer timer,
-                                                     final AggregatedNetconfOperationServiceFactory netconfOperationProvider,
-                                                     final SessionIdProvider sessionIdProvider,
-                                                     final long connectionTimeoutMillis,
-                                                     final NetconfMonitoringService monitoringService) {
-            super(timer, netconfOperationProvider, sessionIdProvider, connectionTimeoutMillis, monitoringService,
-                    org.opendaylight.netconf.impl.NetconfServerSessionNegotiatorFactory.DEFAULT_BASE_CAPABILITIES);
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfSshServerProvider.java b/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfSshServerProvider.java
deleted file mode 100644 (file)
index dd4cbd3..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.ShutdownHandler;
-import io.fd.honeycomb.northbound.CredentialsConfiguration;
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.util.concurrent.GlobalEventExecutor;
-import org.opendaylight.netconf.api.NetconfServerDispatcher;
-import org.opendaylight.netconf.auth.AuthProvider;
-import org.opendaylight.netconf.ssh.NetconfNorthboundSshServer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class NetconfSshServerProvider extends ProviderTrait<NetconfNorthboundSshServer> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfSshServerProvider.class);
-
-    @Inject
-    private NetconfServerDispatcher dispatcher;
-    @Inject
-    private NetconfConfiguration cfgAttributes;
-    @Inject
-    private NioEventLoopGroup nettyThreadgroup;
-    @Inject
-    private CredentialsConfiguration credentialsCfg;
-    @Inject
-    private ShutdownHandler shutdownHandler;
-
-    @Override
-    protected NetconfNorthboundSshServer create() {
-        if (!cfgAttributes.isNetconfSshEnabled()) {
-            LOG.info("NETCONF SSH disabled, skipping initialization");
-            return null;
-        }
-        LOG.info("Starting NETCONF SSH");
-
-        final NetconfNorthboundSshServer netconfServer = new NetconfNorthboundSshServer(dispatcher, nettyThreadgroup,
-            GlobalEventExecutor.INSTANCE, cfgAttributes.netconfSshBindingAddress.get(),
-            cfgAttributes.netconfSshBindingPort.get().toString(), new SimplelAuthProvider(credentialsCfg));
-        shutdownHandler.register("netconf-northbound-ssh-server", netconfServer::close);
-        return netconfServer;
-    }
-
-    private static final class SimplelAuthProvider implements AuthProvider {
-
-        private final CredentialsConfiguration cfgAttributes;
-
-        SimplelAuthProvider(final CredentialsConfiguration cfgAttributes) {
-            this.cfgAttributes = cfgAttributes;
-        }
-
-        @Override
-        public boolean authenticated(final String uname, final String passwd) {
-            return cfgAttributes.username.equals(uname) && cfgAttributes.password.equals(passwd);
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfTcpServerProvider.java b/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfTcpServerProvider.java
deleted file mode 100644 (file)
index be270c5..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.common.net.InetAddresses;
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.ShutdownHandler;
-import io.fd.honeycomb.infra.distro.InitializationException;
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-import io.netty.channel.ChannelFuture;
-import io.netty.util.concurrent.GenericFutureListener;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import org.opendaylight.netconf.api.NetconfServerDispatcher;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class NetconfTcpServerProvider extends ProviderTrait<NetconfTcpServerProvider.NetconfTcpServer> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfTcpServerProvider.class);
-
-    @Inject
-    private NetconfServerDispatcher dispatcher;
-    @Inject
-    private NetconfConfiguration cfgAttributes;
-    @Inject
-    private ShutdownHandler shutdownHandler;
-
-    @Override
-    protected NetconfTcpServer create() {
-        if (!cfgAttributes.isNetconfTcpEnabled()) {
-            LOG.debug("NETCONF TCP disabled, skipping initalization");
-            return null;
-        }
-        LOG.info("Starting NETCONF TCP");
-        final InetAddress name = InetAddresses.forString(cfgAttributes.netconfTcpBindingAddress.get());
-        final InetSocketAddress unresolved = new InetSocketAddress(name, cfgAttributes.netconfTcpBindingPort.get());
-
-        ChannelFuture tcpServerFuture = dispatcher.createServer(unresolved);
-        tcpServerFuture.addListener(new TcpLoggingListener(unresolved));
-        final NetconfTcpServer tcpServer = new NetconfTcpServer(tcpServerFuture);
-        shutdownHandler.register("netconf-northbound-tcp-server", tcpServer);
-        return tcpServer;
-    }
-
-    public static final class NetconfTcpServer implements AutoCloseable {
-        private ChannelFuture channelFuture;
-
-        NetconfTcpServer(final ChannelFuture channelFuture) {
-            this.channelFuture = channelFuture;
-        }
-
-        @Override
-        public void close() throws Exception {
-            LOG.info("Stopping Netconf TCP server");
-            channelFuture.channel().close();
-            LOG.info("Netconf TCP server stopped successfully");
-        }
-    }
-
-    private static final class TcpLoggingListener implements GenericFutureListener<ChannelFuture> {
-        private final InetSocketAddress unresolved;
-
-        TcpLoggingListener(final InetSocketAddress unresolved) {
-            this.unresolved = unresolved;
-        }
-
-        @Override
-        public void operationComplete(ChannelFuture future) throws Exception {
-            if (future.isDone() && future.isSuccess()) {
-                LOG.info("Netconf TCP endpoint started successfully at {}", unresolved);
-            } else {
-                LOG.warn("Unable to start TCP netconf server at {}", unresolved, future.cause());
-                throw new InitializationException("Unable to start TCP netconf server", future.cause());
-            }
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NettyThreadGroupProvider.java b/tests/honeynode/1.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NettyThreadGroupProvider.java
deleted file mode 100644 (file)
index b36a31d..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-import io.netty.channel.nio.NioEventLoopGroup;
-
-public final class NettyThreadGroupProvider extends ProviderTrait<NioEventLoopGroup> {
-
-    @Inject
-    private NetconfConfiguration cfgAttributes;
-
-    @Override
-    protected NioEventLoopGroup create() {
-        return new NioEventLoopGroup(cfgAttributes.netconfNettyThreads,
-                new ThreadFactoryBuilder().setNameFormat("netconf-netty-%d").build());
-    }
-}
diff --git a/tests/honeynode/1.2.1/netconf/src/main/resources/honeycomb-minimal-resources/config/netconf-whitelist.xml b/tests/honeynode/1.2.1/netconf/src/main/resources/honeycomb-minimal-resources/config/netconf-whitelist.xml
deleted file mode 100644 (file)
index 32e5ed0..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<yangModuleWhitelist>
-    <modules>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715</package>
-            <description>
-                This module contains a collection of generally useful derived
-                YANG data types for Internet addresses and related things.
-
-                Dependency for network-topology,ietf-netconf-notifications,network-topology
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621</package>
-            <description>
-                This module contains monitoring information about the YANG
-                modules and submodules that are used within a YANG-based
-                server.
-
-                Required for mounting of netconf devices(Operational read does not work without it)
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601</package>
-            <description>
-                NETCONF Protocol Data Types and Protocol Operations.
-
-                Dependency of ietf-netconf-notifications
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206
-            </package>
-            <description>
-                This module defines a YANG data model for use with the
-                NETCONF protocol that allows the NETCONF client to
-                receive common NETCONF base event notifications.
-
-                Directly used for netconf notification binding
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021</package>
-            <description>
-                Required for mounting of netconf devices(Operational read does not work without it)
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.notification._1._0.rev080714</package>
-            <description>
-                Conversion of the 'ncEvent' XSD in the
-                NETCONF Notifications RFC.
-
-                Directly used for netconf notification binding
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714</package>
-            <description>
-                Conversion of the 'manageEvent' XSD in the NETCONF
-                Notifications RFC.
-
-                Directly used for netconf notification binding
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004
-            </package>
-            <description>
-                NETCONF Monitoring Module.
-                All elements in this module are read-only.
-
-                Required for mounting of netconf devices(Operational read does not work without it)
-            </description>
-        </module>
-        <module>
-            <package>
-                org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210
-            </package>
-            <description>
-                Required for mounting of netconf devices(Operational read does not work without it)
-            </description>
-        </module>
-    </modules>
-</yangModuleWhitelist>
diff --git a/tests/honeynode/1.2.1/netconf/src/main/resources/honeycomb-minimal-resources/config/netconf.json b/tests/honeynode/1.2.1/netconf/src/main/resources/honeycomb-minimal-resources/config/netconf.json
deleted file mode 100644 (file)
index 459e902..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "netconf-netty-threads": 2,
-  "netconf-tcp-enabled": "true",
-  "netconf-tcp-binding-address": "127.0.0.1",
-  "netconf-tcp-binding-port": 7777,
-  "netconf-ssh-enabled": "true",
-  "netconf-ssh-binding-address": "0.0.0.0",
-  "netconf-ssh-binding-port": 2831,
-  "netconf-notification-stream-name": "honeycomb"
-}
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/pom.xml b/tests/honeynode/1.2.1/pom.xml
deleted file mode 100644 (file)
index 3c68a71..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (c) 2015 Cisco and/or its affiliates.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at:
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-  <groupId>io.fd.honeycomb.transportpce</groupId>
-  <artifactId>honeynode-plugin-aggregator</artifactId>
-  <version>1.19.04</version>
-  <name>honeynode-plugin-aggregator</name>
-  <packaging>pom</packaging>
-  <modelVersion>4.0.0</modelVersion>
-
-
- <modules>
-    <module>netconf-impl</module>
-    <module>netconf</module>
-    <module>restconf</module>
-    <module>minimal-distribution-core</module>
-    <module>minimal-distribution</module>
-    <module>honeynode-common</module>
-    <module>honeynode-plugin-api</module>
-    <module>honeynode-plugin-impl</module>
-    <module>honeynode-distribution</module>
-    
-  </modules>
-
-  <!-- DO NOT install or deploy the repo root pom as it's only needed to initiate a build -->
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-deploy-plugin</artifactId>
-        <configuration>
-          <skip>true</skip>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-install-plugin</artifactId>
-        <configuration>
-          <skip>true</skip>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
diff --git a/tests/honeynode/1.2.1/restconf/asciidoc/Readme.adoc b/tests/honeynode/1.2.1/restconf/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index 957949a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-= restconf
-
-Provides modules and configuration for RESTCONF northbound interface.
-
-* To start RESTCONF HTTP use
- ** "restconf-http-enabled": "true"
-* To start RESTCONF HTTPS use
- ** "restconf-https-enabled": "true"
-* To disable RESTCONF start use
- ** "restconf-http-enabled": "false"
- ** "restconf-https-enabled": "false"
-* To disable RESTCONF fully
- ** comment/remove io.fd.honeycomb.northbound.restconf.RestconfModule
-from distribution module configuration
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/restconf/pom.xml b/tests/honeynode/1.2.1/restconf/pom.xml
deleted file mode 100644 (file)
index a9392a1..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ~ Copyright (c) 2017 Cisco and/or its affiliates. ~ ~ Licensed under
-    the Apache License, Version 2.0 (the "License"); ~ you may not use this file
-    except in compliance with the License. ~ You may obtain a copy of the License
-    at: ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by
-    applicable law or agreed to in writing, software ~ distributed under the
-    License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS
-    OF ANY KIND, either express or implied. ~ See the License for the specific
-    language governing permissions and ~ limitations under the License. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>impl-parent</artifactId>
-        <groupId>io.fd.honeycomb.common</groupId>
-        <version>1.19.04</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>io.fd.honeycomb.transportpce</groupId>
-    <artifactId>restconf</artifactId>
-    <name>${project.artifactId}</name>
-    <properties>
-        <jersey.version>1.19.4</jersey.version>
-        <glassfish-jersey.version>2.25.1</glassfish-jersey.version>
-        <servlet.version>3.1.0</servlet.version>
-        <jetty.version>9.3.21.v20170918</jetty.version>
-        <yang.modules.whitelist>
-            ${project.basedir}/src/main/resources/honeycomb-minimal-resources/config/restconf-whitelist.xml
-        </yang.modules.whitelist>
-        <honeycomb.version>1.19.04</honeycomb.version>
-        <java.version>11</java.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <maven.javadoc.skip>true</maven.javadoc.skip>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-    </properties>
-    <dependencies>
-        <!-- DI -->
-        <dependency>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>net.jmob</groupId>
-            <artifactId>guice.conf</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>binding-init</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.transportpce</groupId>
-            <artifactId>minimal-distribution-core</artifactId>
-            <version>1.19.04</version>
-        </dependency>
-        <!-- Northbound common -->
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound</groupId>
-            <artifactId>common</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- ODL-Restconf -->
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>restconf-nb-bierman02</artifactId>
-        </dependency>
-        <!-- Jersey + Jetty for RESTCONF -->
-        <dependency>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-server</artifactId>
-            <version>${jetty.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>javax.servlet-api</artifactId>
-            <version>${servlet.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-webapp</artifactId>
-            <version>${jetty.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-servlets</artifactId>
-            <version>${jetty.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish.jersey.core</groupId>
-            <artifactId>jersey-server</artifactId>
-            <version>${glassfish-jersey.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish.jersey.containers</groupId>
-            <artifactId>jersey-container-servlet-core</artifactId>
-            <version>${glassfish-jersey.version}</version>
-        </dependency>
-        <!-- javax.annotation -->
-        <dependency>
-            <groupId>com.google.code.findbugs</groupId>
-            <artifactId>jsr305</artifactId>
-        </dependency>
-    </dependencies>
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.8.1</version>
-                    <configuration>
-                        <source>${java.version}</source>
-                        <target>${java.version}</target>
-                    </configuration>
-                </plugin>                <!--This plugin's configuration is used to store Eclipse m2e settings
-                    only. It has no influence on the Maven build itself. -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmaven</groupId>
-                                        <artifactId>groovy-maven-plugin</artifactId>
-                                        <versionRange>[2.0,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-checkstyle-plugin</artifactId>
-                                        <versionRange>[3.0.0,)</versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-dependency-plugin</artifactId>
-                                        <versionRange>[2.10,)</versionRange>
-                                        <goals>
-                                            <goal>copy-dependencies</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmavenplus</groupId>
-                                        <artifactId>gmavenplus-plugin</artifactId>
-                                        <versionRange>[1.6.2,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
\ No newline at end of file
diff --git a/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/BrokerFacadeProvider.java b/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/BrokerFacadeProvider.java
deleted file mode 100644 (file)
index 1f825b3..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2018 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.api.DOMRpcService;
-import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter;
-import org.opendaylight.netconf.sal.restconf.impl.BrokerFacade;
-import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
-
-
-
-final class BrokerFacadeProvider extends ProviderTrait<BrokerFacade> {
-
-    @Inject
-    // @Named(ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG)
-    // Modified in order to connect TPCE to device config datastore
-    @Named("device-databroker")
-    private DOMDataBroker domDataBroker;
-    @Inject
-    private DOMRpcService rpcService;
-    @Inject
-    private DOMNotificationRouter notificationService;
-    @Inject
-    private ControllerContext controllerContext;
-
-    @Override
-    protected BrokerFacade create() {
-        return BrokerFacade.newInstance(rpcService, domDataBroker, notificationService, controllerContext);
-    }
-}
diff --git a/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/ControllerContextProvider.java b/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/ControllerContextProvider.java
deleted file mode 100644 (file)
index 3daef1e..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2018 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.mdsal.dom.api.DOMMountPointService;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
-
-final class ControllerContextProvider extends ProviderTrait<ControllerContext> {
-
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    private DOMMountPointService mountPointService;
-
-    @Override
-    protected ControllerContext create() {
-        ControllerContext controllerCtx =
-                ControllerContext.newInstance(schemaService, mountPointService, schemaService);
-        return controllerCtx;
-    }
-}
diff --git a/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/HttpConnectorProvider.java b/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/HttpConnectorProvider.java
deleted file mode 100644 (file)
index 04a767c..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-final class HttpConnectorProvider extends ProviderTrait<ServerConnector> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(HttpConnectorProvider.class);
-
-    @Inject
-    private RestconfConfiguration cfg;
-    @Inject
-    private Server server;
-
-    @Override
-    protected ServerConnector create() {
-        if (!cfg.isRestconfHttpEnabled()) {
-            LOG.debug("RESTCONF HTTP disabled, skipping initialization");
-            return null;
-        }
-
-        LOG.info("Starting RESTCONF HTTP");
-        ServerConnector httpConnector = new ServerConnector(server, cfg.acceptorsSize.get(), cfg.selectorsSize.get());
-        httpConnector.setHost(cfg.restconfBindingAddress.get());
-        httpConnector.setPort(cfg.restconfPort.get());
-        server.addConnector(httpConnector);
-        return httpConnector;
-    }
-}
diff --git a/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/HttpsConnectorProvider.java b/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/HttpsConnectorProvider.java
deleted file mode 100644 (file)
index 662482a..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-
-import java.net.URL;
-
-import org.eclipse.jetty.http.HttpVersion;
-import org.eclipse.jetty.server.HttpConnectionFactory;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
-import org.eclipse.jetty.server.SslConnectionFactory;
-import org.eclipse.jetty.util.ssl.SslContextFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-final class HttpsConnectorProvider extends ProviderTrait<ServerConnector> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(HttpsConnectorProvider.class);
-
-    @Inject
-    private RestconfConfiguration cfg;
-    @Inject
-    private Server server;
-
-    @Override
-    protected ServerConnector create() {
-        if (!cfg.isRestconfHttpsEnabled()) {
-            LOG.debug("RESTCONF HTTPS disabled, skipping initialization");
-            return null;
-        }
-        LOG.info("Starting RESTCONF HTTPS");
-        // SSL Context Factory
-        // Based on:
-        // https://github.com/eclipse/jetty.project/blob/jetty-9.3.x/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java
-        // https://wiki.eclipse.org/Jetty/Howto/Configure_SSL#Loading_Keys_and_Certificates_via_PKCS12
-        // Keystore created with:
-        // openssl genrsa -des3 -out honeycomb.key
-        // openssl req -new -x509 -key honeycomb.key -out honeycomb.crt
-        // openssl pkcs12 -inkey honeycomb.key -in honeycomb.crt -export -out honeycomb.pkcs12
-        // keytool -importkeystore -srckeystore honeycomb.pkcs12 -srcstoretype PKCS12 -destkeystore honeycomb-keystore
-        SslContextFactory sslContextFactory = new SslContextFactory();
-        //CHECKSTYLE:OFF
-        URL keystoreURL = getClass().getResource(cfg.restconfKeystore.get());
-        sslContextFactory.setKeyStorePath(keystoreURL.getPath());
-        sslContextFactory.setKeyStorePassword(cfg.keystorePassword.get());
-        sslContextFactory.setKeyManagerPassword(cfg.keystoreManagerPassword.get());
-        URL truststoreURL = getClass().getResource(cfg.restconfTruststore.get());
-        //CHECKSTYLE:ON
-        sslContextFactory.setTrustStorePath(truststoreURL.getPath());
-        sslContextFactory.setTrustStorePassword(cfg.truststorePassword.get());
-        // TODO HONEYCOMB-167 make this more configurable
-        sslContextFactory.setExcludeCipherSuites("SSL_RSA_WITH_DES_CBC_SHA", "SSL_DHE_RSA_WITH_DES_CBC_SHA",
-                "SSL_DHE_DSS_WITH_DES_CBC_SHA", "SSL_RSA_EXPORT_WITH_RC4_40_MD5",
-                "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
-                "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA", "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA");
-
-        // SSL Connector
-        ServerConnector sslConnector =
-                new ServerConnector(server, cfg.httpsAcceptorsSize.get(), cfg.httpsSelectorsSize.get(),
-                        // The ssl connection factory delegates the real processing to http connection factory
-                        new SslConnectionFactory(sslContextFactory, HttpVersion.HTTP_1_1.asString()),
-                        // That's why http connection factory is also required here
-                        // Order is IMPORTANT here
-                        new HttpConnectionFactory()
-                );
-        sslConnector.setHost(cfg.restconfHttpsBindingAddress.get());
-        sslConnector.setPort(cfg.restconfHttpsPort.get());
-        server.addConnector(sslConnector);
-        return sslConnector;
-    }
-}
diff --git a/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/JettyServerProvider.java b/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/JettyServerProvider.java
deleted file mode 100644 (file)
index 8a3ee62..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.northbound.CredentialsConfiguration;
-import java.net.URL;
-import java.util.Collections;
-import org.eclipse.jetty.security.ConstraintMapping;
-import org.eclipse.jetty.security.ConstraintSecurityHandler;
-import org.eclipse.jetty.security.HashLoginService;
-import org.eclipse.jetty.security.authentication.BasicAuthenticator;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.handler.gzip.GzipHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-import org.eclipse.jetty.util.security.Constraint;
-import org.eclipse.jetty.util.security.Password;
-import org.eclipse.jetty.util.thread.QueuedThreadPool;
-import org.eclipse.jetty.webapp.WebAppContext;
-import org.glassfish.jersey.server.ResourceConfig;
-import org.glassfish.jersey.servlet.ServletContainer;
-import org.opendaylight.netconf.sal.rest.impl.JsonNormalizedNodeBodyReader;
-import org.opendaylight.netconf.sal.rest.impl.NormalizedNodeJsonBodyWriter;
-import org.opendaylight.netconf.sal.rest.impl.NormalizedNodeXmlBodyWriter;
-import org.opendaylight.netconf.sal.rest.impl.RestconfApplication;
-import org.opendaylight.netconf.sal.rest.impl.RestconfDocumentedExceptionMapper;
-import org.opendaylight.netconf.sal.rest.impl.XmlNormalizedNodeBodyReader;
-import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
-import org.opendaylight.netconf.sal.restconf.impl.RestconfImpl;
-
-final class JettyServerProvider extends ProviderTrait<Server> {
-
-    private static final String REALM = "HCRealm";
-    // Mime types to be compressed when requested
-    private static final String[] GZIP_MIME_TYPES = {"application/xml",
-        "xml",
-        "application/yang.data+xml",
-        "application/json",
-        "application/yang.data+json"};
-    public static final String RESTCONF_APP_NAME = "JAXRSRestconf";
-
-    @Inject
-    private RestconfConfiguration cfg;
-
-    @Inject
-    private CredentialsConfiguration credentialsCfg;
-
-    @Inject
-    private RestconfApplication restconfApplication;
-
-    @Inject
-    private RestconfImpl restconf;
-
-    @Inject
-    private ControllerContext controllerContext;
-
-    @Override
-    protected Server create() {
-        Server server = new Server(new QueuedThreadPool(cfg.restPoolMaxSize.get(), cfg.restPoolMinSize.get()));
-
-        // Load Realm for basic auth
-        HashLoginService service = new HashLoginService(REALM);
-        // Reusing the name as role
-        service.putUser(credentialsCfg.username, new Password(credentialsCfg.password),
-                new String[]{credentialsCfg.username});
-        server.addBean(service);
-
-        final URL resource = getClass().getResource("/");
-        WebAppContext webapp = new WebAppContext(resource.getPath(), cfg.restconfRootPath.get());
-
-        // Create Restconf application implementation for server
-        ResourceConfig resourceConfig = new ResourceConfig();
-        resourceConfig.setApplicationName(RESTCONF_APP_NAME);
-        resourceConfig = resourceConfig.registerInstances(restconf, new NormalizedNodeJsonBodyWriter(),
-                new NormalizedNodeXmlBodyWriter(), new XmlNormalizedNodeBodyReader(controllerContext),
-                new JsonNormalizedNodeBodyReader(controllerContext),
-                new RestconfDocumentedExceptionMapper(controllerContext));
-        // register Restconf Application classes
-        resourceConfig.registerClasses(restconfApplication.getClasses());
-
-        // Create Servlet container which holds configured application
-        ServletContainer servlet = new ServletContainer(resourceConfig);
-        ServletHolder servletHolder = new ServletHolder(RESTCONF_APP_NAME, servlet);
-        // init on startup
-        servletHolder.setInitOrder(1);
-        // set service handler
-        server.setHandler(getGzip(service, webapp));
-
-        //add servlet with "/*" mapping
-        webapp.addServlet(servletHolder, "/*");
-        return server;
-    }
-
-    private GzipHandler getGzip(final HashLoginService service, final WebAppContext webapp) {
-        final GzipHandler gzipHandler = new GzipHandler();
-        gzipHandler.setIncludedMimeTypes(GZIP_MIME_TYPES);
-        gzipHandler.setHandler(getBaseAuth(service, webapp));
-        return gzipHandler;
-    }
-
-    private ConstraintSecurityHandler getBaseAuth(HashLoginService service, WebAppContext webapp) {
-        Constraint constraint = new Constraint();
-        constraint.setName("auth");
-        constraint.setAuthenticate(true);
-        constraint.setRoles(new String[]{credentialsCfg.username});
-
-        ConstraintMapping mapping = new ConstraintMapping();
-        mapping.setPathSpec("/*");
-        mapping.setConstraint(constraint);
-
-        ConstraintSecurityHandler security = new ConstraintSecurityHandler();
-        security.setConstraintMappings(Collections.singletonList(mapping));
-        security.setAuthenticator(new BasicAuthenticator());
-        security.setLoginService(service);
-
-        security.setHandler(webapp);
-        return security;
-    }
-}
diff --git a/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/JettyServerStarter.java b/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/JettyServerStarter.java
deleted file mode 100644 (file)
index 692131c..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import static io.fd.honeycomb.northbound.restconf.RestconfModule.RESTCONF_HTTP;
-import static io.fd.honeycomb.northbound.restconf.RestconfModule.RESTCONF_HTTPS;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-
-import io.fd.honeycomb.data.init.ShutdownHandler;
-import javax.annotation.Nullable;
-
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
-import org.opendaylight.netconf.sal.rest.api.RestConnector;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-class JettyServerStarter extends ProviderTrait<JettyServerStarter.RestconfJettyServer> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(JettyServerStarter.class);
-
-    @Inject
-    private Server server;
-
-    // injecting all connectors to make sure that server is started after they are added
-    @Inject
-    private RestConnector connector;
-
-    // if HTTP is disabled, null will be injected
-    @Nullable
-    @Inject(optional = true)
-    @Named(RESTCONF_HTTP)
-    private ServerConnector httpConnectorInit;
-
-    // if HTTPS is disabled, null will be injected
-    @Nullable
-    @Inject(optional = true)
-    @Named(RESTCONF_HTTPS)
-    private ServerConnector httpsConnectorInit;
-
-    @Inject
-    private ShutdownHandler shutdownHandler;
-
-    @Override
-    protected RestconfJettyServer create() {
-        final RestconfJettyServer jettyServer = new RestconfJettyServer(server);
-        shutdownHandler.register(RestconfJettyServer.class.getCanonicalName(), jettyServer);
-        jettyServer.start();
-        return jettyServer;
-    }
-
-    final class RestconfJettyServer implements AutoCloseable {
-        private final Server server;
-
-        private RestconfJettyServer(final Server server) {
-            this.server = server;
-        }
-
-        private void start() {
-            try {
-                LOG.info("Starting RESTCONF Jetty server");
-                server.start();
-                LOG.info("RESTCONF Jetty server successfully started");
-            } catch (Exception e) {
-                LOG.error("Unable to start RESTCONF Jetty server", e);
-                throw new IllegalStateException("Unable to start RESTCONF Jetty server", e);
-            }
-        }
-
-        @Override
-        public void close() throws Exception {
-            LOG.info("Stopping RESTCONF Jetty server");
-            server.stop();
-            server.destroy();
-            LOG.info("RESTCONF Jetty server successfully stopped");
-        }
-    }
-}
diff --git a/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfApplicationProvider.java b/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfApplicationProvider.java
deleted file mode 100644 (file)
index 0f55b49..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2018 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.netconf.sal.rest.impl.RestconfApplication;
-import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
-import org.opendaylight.netconf.sal.restconf.impl.StatisticsRestconfServiceWrapper;
-
-public class RestconfApplicationProvider extends ProviderTrait<RestconfApplication> {
-
-    @Inject
-    private ControllerContext controllerContext;
-    @Inject
-    private StatisticsRestconfServiceWrapper statisticsRestconfServiceWrapper;
-
-    @Override
-    protected RestconfApplication create() {
-        return new RestconfApplication(controllerContext, statisticsRestconfServiceWrapper);
-    }
-}
diff --git a/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfConfiguration.java b/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfConfiguration.java
deleted file mode 100644 (file)
index 270f1ba..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import java.util.Optional;
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-//TODO - HONEYCOMB-377 - do not include module to active modules if disabled
-@BindConfig(value = "restconf", syntax = Syntax.JSON)
-public class RestconfConfiguration {
-
-    @InjectConfig("restconf-http-enabled")
-    public String restconfHttp;
-    @InjectConfig("restconf-binding-address")
-    public Optional<String> restconfBindingAddress;
-    @InjectConfig("restconf-port")
-    public Optional<Integer> restconfPort;
-    @InjectConfig("restconf-https-enabled")
-    public String restconfHttps;
-    @InjectConfig("restconf-https-binding-address")
-    public Optional<String> restconfHttpsBindingAddress;
-    @InjectConfig("restconf-https-port")
-    public Optional<Integer> restconfHttpsPort;
-    /**
-     * Restconf keystore file name. It will be loaded from the classpath so must be present in one of the folders
-     * packaged with the distribution e.g. cert/
-     */
-    @InjectConfig("restconf-keystore")
-    public Optional<String> restconfKeystore = Optional.of("/honeycomb-keystore");
-    @InjectConfig("restconf-keystore-password")
-    public Optional<String> keystorePassword;
-    @InjectConfig("restconf-keystore-manager-password")
-    public Optional<String> keystoreManagerPassword;
-    /**
-     * Restconf truststore file name. It will be loaded from the classpath so must be present in one of the folders
-     * packaged with the distribution e.g. cert/
-     */
-    @InjectConfig("restconf-truststore")
-    public Optional<String> restconfTruststore;
-    @InjectConfig("restconf-truststore-password")
-    public Optional<String> truststorePassword;
-    @InjectConfig("restconf-websocket-address")
-    public Optional<String> restconfWebsocketAddress;
-    @InjectConfig("restconf-websocket-port")
-    public Optional<Integer> restconfWebsocketPort;
-    @InjectConfig("restconf-root-path")
-    public Optional<String> restconfRootPath = Optional.of("/restconf");
-    @InjectConfig("restconf-pool-max-size")
-    public Optional<Integer> restPoolMaxSize = Optional.of(10);
-    @InjectConfig("restconf-pool-min-size")
-    public Optional<Integer> restPoolMinSize = Optional.of(1);
-    @InjectConfig("restconf-acceptors-size")
-    public Optional<Integer> acceptorsSize = Optional.of(1);
-    @InjectConfig("restconf-selectors-size")
-    public Optional<Integer> selectorsSize = Optional.of(1);
-    @InjectConfig("restconf-https-acceptors-size")
-    public Optional<Integer> httpsAcceptorsSize = Optional.of(1);
-    @InjectConfig("restconf-https-selectors-size")
-    public Optional<Integer> httpsSelectorsSize = Optional.of(1);
-
-    public boolean isRestconfHttpEnabled() {
-        return Boolean.valueOf(restconfHttp);
-    }
-
-    public boolean isRestconfHttpsEnabled() {
-        return Boolean.valueOf(restconfHttps);
-    }
-
-    public boolean isRestconfEnabled() {
-        return isRestconfHttpEnabled() || isRestconfHttpsEnabled();
-    }
-
-    @Override
-  //CHECKSTYLE:OFF
-    public String toString() {
-        return "RestconfConfiguration{" +
-            "restconfHttp='" + restconfHttp + '\'' +
-            ", restconfBindingAddress=" + restconfBindingAddress +
-            ", restconfPort=" + restconfPort +
-            ", restconfHttps='" + restconfHttps + '\'' +
-            ", restconfHttpsBindingAddress=" + restconfHttpsBindingAddress +
-            ", restconfHttpsPort=" + restconfHttpsPort +
-            ", restconfKeystore=" + restconfKeystore +
-            ", keystorePassword=" + keystorePassword +
-            ", keystoreManagerPassword=" + keystoreManagerPassword +
-            ", restconfTruststore=" + restconfTruststore +
-            ", truststorePassword=" + truststorePassword +
-            ", restconfWebsocketAddress=" + restconfWebsocketAddress +
-            ", restconfWebsocketPort=" + restconfWebsocketPort +
-            ", restconfRootPath=" + restconfRootPath +
-            ", restPoolMaxSize=" + restPoolMaxSize +
-            ", restPoolMinSize=" + restPoolMinSize +
-            ", acceptorsSize=" + acceptorsSize +
-            ", selectorsSize=" + selectorsSize +
-            ", httpsAcceptorsSize=" + httpsAcceptorsSize +
-            ", httpsSelectorsSize=" + httpsSelectorsSize +
-            '}';
-    }
-}
diff --git a/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfConfigurationModule.java b/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfConfigurationModule.java
deleted file mode 100644 (file)
index 1e18a37..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.AbstractModule;
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-public class RestconfConfigurationModule extends AbstractModule {
-
-    @Override
-    protected void configure() {
-        install(ConfigurationModule.create());
-        requestInjection(RestconfConfiguration.class);
-    }
-}
diff --git a/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfModule.java b/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfModule.java
deleted file mode 100644 (file)
index d2841ba..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Singleton;
-import com.google.inject.name.Names;
-import io.fd.honeycomb.northbound.NorthboundAbstractModule;
-import io.fd.honeycomb.northbound.restconf.JettyServerStarter.RestconfJettyServer;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
-import org.opendaylight.netconf.sal.rest.api.RestConnector;
-import org.opendaylight.netconf.sal.rest.impl.RestconfApplication;
-import org.opendaylight.netconf.sal.restconf.impl.BrokerFacade;
-import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
-import org.opendaylight.netconf.sal.restconf.impl.RestconfImpl;
-import org.opendaylight.netconf.sal.restconf.impl.StatisticsRestconfServiceWrapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class RestconfModule extends NorthboundAbstractModule<RestconfConfiguration> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(RestconfModule.class);
-
-    public static final String HONEYCOMB_RESTCONF = "honeycomb-restconf";
-    public static final String RESTCONF_HTTP = "restconf-http";
-    public static final String RESTCONF_HTTPS = "restconf-https";
-
-    public RestconfModule() {
-        super(new RestconfConfigurationModule(), RestconfConfiguration.class);
-    }
-
-    @Override
-    protected void configure() {
-        if (!getConfiguration().isRestconfEnabled()) {
-            LOG.info("Restconf is disabled, skipping configuration");
-            return;
-        }
-
-        LOG.info("Starting RESTCONF Northbound");
-        install(new RestconfConfigurationModule());
-        bind(ControllerContext.class).toProvider(ControllerContextProvider.class).in(Singleton.class);
-        bind(BrokerFacade.class).toProvider(BrokerFacadeProvider.class).in(Singleton.class);
-        bind(RestconfImpl.class).toProvider(RestconfServiceProvider.class).in(Singleton.class);
-        bind(StatisticsRestconfServiceWrapper.class)
-                .toProvider(StatisticsRestconfServiceWrapperProvider.class).in(Singleton.class);
-        bind(RestconfApplication.class).toProvider(RestconfApplicationProvider.class).in(Singleton.class);
-        bind(Server.class).toProvider(JettyServerProvider.class).in(Singleton.class);
-        bind(ServerConnector.class).annotatedWith(Names.named(RESTCONF_HTTP))
-                .toProvider(HttpConnectorProvider.class)
-                .in(Singleton.class);
-        bind(ServerConnector.class).annotatedWith(Names.named(RESTCONF_HTTPS))
-                .toProvider(HttpsConnectorProvider.class)
-                .in(Singleton.class);
-        bind(RestConnector.class).toProvider(RestconfProvider.class).in(Singleton.class);
-        bind(RestconfJettyServer.class).toProvider(JettyServerStarter.class).asEagerSingleton();
-    }
-}
diff --git a/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfProvider.java b/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfProvider.java
deleted file mode 100644 (file)
index 85caf66..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2016, 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.ShutdownHandler;
-import org.opendaylight.netconf.sal.rest.api.RestConnector;
-import org.opendaylight.netconf.sal.restconf.impl.RestconfProviderImpl;
-import org.opendaylight.netconf.sal.restconf.impl.StatisticsRestconfServiceWrapper;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-
-final class RestconfProvider extends ProviderTrait<RestConnector> {
-
-    @Inject
-    private RestconfConfiguration cfg;
-    @Inject
-    private ShutdownHandler shutdownHandler;
-    @Inject
-    private StatisticsRestconfServiceWrapper statsServiceWrapper;
-
-    @Override
-    protected RestconfProviderImpl create() {
-        final RestconfProviderImpl instance = new RestconfProviderImpl(statsServiceWrapper,
-                IpAddressBuilder.getDefaultInstance(cfg.restconfWebsocketAddress.get()),
-                new PortNumber(cfg.restconfWebsocketPort.get()));
-        // Required to properly initialize restconf (broker, schema ctx, etc.).
-        // Without that restconf would fail with 503 (service not available).
-        instance.start();
-
-        shutdownHandler.register(instance.getClass().getCanonicalName(), instance);
-        return instance;
-    }
-}
diff --git a/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfServiceProvider.java b/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfServiceProvider.java
deleted file mode 100644 (file)
index 20dcc28..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2018 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.netconf.sal.restconf.impl.BrokerFacade;
-import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
-import org.opendaylight.netconf.sal.restconf.impl.RestconfImpl;
-
-public class RestconfServiceProvider extends ProviderTrait<RestconfImpl> {
-
-    @Inject
-    private ControllerContext controllerContext;
-    @Inject
-    private BrokerFacade brokerFacade;
-
-    @Override
-    protected RestconfImpl create() {
-        return RestconfImpl.newInstance(brokerFacade, controllerContext);
-    }
-}
diff --git a/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/StatisticsRestconfServiceWrapperProvider.java b/tests/honeynode/1.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/StatisticsRestconfServiceWrapperProvider.java
deleted file mode 100644 (file)
index f3a4c3b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2018 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.netconf.sal.restconf.impl.RestconfImpl;
-import org.opendaylight.netconf.sal.restconf.impl.StatisticsRestconfServiceWrapper;
-
-public class StatisticsRestconfServiceWrapperProvider extends ProviderTrait<StatisticsRestconfServiceWrapper> {
-
-    @Inject
-    RestconfImpl restconfService;
-
-    @Override
-    protected StatisticsRestconfServiceWrapper create() {
-        return StatisticsRestconfServiceWrapper.newInstance(restconfService);
-    }
-}
diff --git a/tests/honeynode/1.2.1/restconf/src/main/resources/honeycomb-minimal-resources/config/restconf-whitelist.xml b/tests/honeynode/1.2.1/restconf/src/main/resources/honeycomb-minimal-resources/config/restconf-whitelist.xml
deleted file mode 100644 (file)
index 5274cf4..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<yangModuleWhitelist>
-    <modules>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715</package>
-            <description>
-                This module contains a collection of generally useful derived
-                YANG data types for Internet addresses and related things.
-
-                Dependency for ietf-restconf-monitoring
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715</package>
-            <description>
-                This module contains a collection of generally useful derived
-                YANG data types.
-
-                Dependency for ietf-restconf-monitoring
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.restconf.monitoring.rev170126
-            </package>
-            <description>
-                This module contains monitoring information for the
-                RESTCONF protocol.
-
-                Required for mounting of netconf devices
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621</package>
-            <description>
-                This module contains monitoring information about the YANG
-                modules and submodules that are used within a YANG-based
-                server.
-
-                Required for mounting of netconf devices
-            </description>
-        </module>
-    </modules>
-</yangModuleWhitelist>
diff --git a/tests/honeynode/1.2.1/restconf/src/main/resources/honeycomb-minimal-resources/config/restconf.json b/tests/honeynode/1.2.1/restconf/src/main/resources/honeycomb-minimal-resources/config/restconf.json
deleted file mode 100644 (file)
index 3999522..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-  "restconf-http-enabled": "true",
-  "restconf-root-path": "/restconf",
-  "restconf-binding-address": "0.0.0.0",
-  "restconf-port": 8183,
-  "restconf-https-enabled": "true",
-  "restconf-https-binding-address": "0.0.0.0",
-  "restconf-https-port": 8445,
-  "restconf-keystore": "/honeycomb-keystore",
-  "restconf-keystore-password": "OBF:1v9s1unr1unn1vv51zlk1t331vg91x1b1vgl1t331zly1vu51uob1uo71v8u",
-  "restconf-keystore-manager-password": "OBF:1v9s1unr1unn1vv51zlk1t331vg91x1b1vgl1t331zly1vu51uob1uo71v8u",
-  "restconf-truststore": "/honeycomb-keystore",
-  "restconf-truststore-password": "OBF:1v9s1unr1unn1vv51zlk1t331vg91x1b1vgl1t331zly1vu51uob1uo71v8u",
-  "restconf-websocket-address": "0.0.0.0",
-  "restconf-websocket-port": 7779,
-  "restconf-pool-max-size": 10,
-  "restconf-pool-min-size": 1,
-  "restconf-acceptors-size": 1,
-  "restconf-selectors-size": 1,
-  "restconf-https-acceptors-size": 1,
-  "restconf-https-selectors-size": 1
-}
diff --git a/tests/honeynode/2.2.1/.gitkeep b/tests/honeynode/2.2.1/.gitkeep
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/honeynode/2.2.1/README b/tests/honeynode/2.2.1/README
deleted file mode 100644 (file)
index 90241eb..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-= This is a Honeycomb distribution
-
-Built from: io.fd.honeycomb.transportpce/honeynode-distribution
-Version: 1.19.04
-
-https://wiki.fd.io/view/Honeycomb
-
-== Structure
-(under folder honeynode-distribution/target/honeynode-distribution-1.19.04-hc/honeynode-distribution-1.19.04)
-
-Structure of the distribution:
-
-=== Config
-Folder config contains any configuration that's exposed by Honeycomb and its plugins
-
-=== Cert
-Keystore/Truststore for Restconf's HTTPS endpoint
-
-=== Modules
-Folder modules contains text files with list of modules to be installed into Honeycomb.
-Those modules bring up Honeycomb's infrastructure as well as modules.
-
-=== Shell scripts
-honeycomb - Start Honeycomb
-honeycomb-debug - Start Honeycomb with JVM remote debug capabilities
-honeycomb-start - Start Honeycomb in background
-honeycomb-kill - Kill all running Honeycomb instances
-honeycomb-tpce - Start Honeycomb with port and initial config files options
-Eg : honeycomb-tpce 17830 sample-config-ROADM.xml
-
diff --git a/tests/honeynode/2.2.1/honeynode-common/asciidoc/Readme.adoc b/tests/honeynode/2.2.1/honeynode-common/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index f8b7862..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-= honeynode-common
-
-Overview of honeynode-common
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-common/pom.xml b/tests/honeynode/2.2.1/honeynode-common/pom.xml
deleted file mode 100644 (file)
index d783af8..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (c) 2018 Orange and others. Licensed under the Apache License,
-    Version 2.0 (the "License"); You may not use this file except in compliance
-    with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
-    OR CONDITIONS OF ANY KIND, either express or implied. See the License for
-    the specific language governing permissions and limitations under the License. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>io.fd.honeycomb.common</groupId>
-        <artifactId>impl-parent</artifactId>
-        <version>1.19.04</version>
-    </parent>
-    <groupId>io.fd.honeycomb.transportpce</groupId>
-    <artifactId>honeynode-common</artifactId>
-    <packaging>bundle</packaging>
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <java.version>11</java.version>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-    </properties>
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.opendaylight.mdsal</groupId>
-                <artifactId>mdsal-artifacts</artifactId>
-                <version>3.0.6</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yangtools-artifacts</artifactId>
-                <version>2.0.13</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-    <dependencies>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-broker-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-data-codec-xml</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-data-codec-gson</artifactId>
-        </dependency>
-    </dependencies>
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.8.0</version>
-                    <configuration>
-                        <source>${java.version}</source>
-                        <target>${java.version}</target>
-                    </configuration>
-                </plugin>
-                <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.apache.maven.plugins
-                                        </groupId>
-                                        <artifactId>
-                                            maven-checkstyle-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [3.0.0,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.codehaus.gmavenplus
-                                        </groupId>
-                                        <artifactId>
-                                            gmavenplus-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [1.6.2,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.apache.maven.plugins
-                                        </groupId>
-                                        <artifactId>
-                                            maven-dependency-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [2.10,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>
-                                                copy-dependencies
-                                            </goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
diff --git a/tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/AbstractDataObjectConverter.java b/tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/AbstractDataObjectConverter.java
deleted file mode 100644 (file)
index 4591141..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2018 AT&T and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.binding.converter;
-
-import com.google.common.base.Preconditions;
-import io.fd.honeycomb.transportpce.binding.converter.api.DataObjectConverter;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Optional;
-import javax.annotation.Nonnull;
-import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
-import org.opendaylight.yangtools.yang.binding.DataContainer;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.Notification;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Converts XML and {@link DataObject} vice versa.
- *
- */
-public abstract class AbstractDataObjectConverter implements DataObjectConverter {
-
-    private static final Logger LOG = LoggerFactory.getLogger(AbstractDataObjectConverter.class);
-
-    private final SchemaContext schemaContext;
-    private final BindingNormalizedNodeSerializer codecRegistry;
-
-    /**
-     * This is the default constructor, which should be used.
-     *
-     * @param schemaContext schema context for converter
-     * @param codecRegistry codec registry used for converting
-     *
-     */
-    protected AbstractDataObjectConverter(SchemaContext schemaContext, BindingNormalizedNodeSerializer codecRegistry) {
-        this.schemaContext = schemaContext;
-        this.codecRegistry = codecRegistry;
-    }
-
-    public SchemaContext getSchemaContext() {
-        return schemaContext;
-    }
-
-    public BindingNormalizedNodeSerializer getCodecRegistry() {
-        return codecRegistry;
-    }
-
-    /**
-     * Transforms the given input {@link NormalizedNode} into the given
-     * {@link DataObject}.
-     *
-     * @param normalizedNode normalized node you want to convert
-     * @param rootNode {@link QName} of converted normalized node root
-     *
-     * <p>
-     * The input object should be {@link ContainerNode}
-     * </p>
-     */
-    @Override
-    @SuppressWarnings("unchecked")
-    public <T extends DataObject> Optional<T> getDataObject(
-            @Nonnull NormalizedNode<?, ?> normalizedNode,
-            @Nonnull QName rootNode) {
-        Preconditions.checkNotNull(normalizedNode);
-        if (normalizedNode instanceof ContainerNode) {
-            YangInstanceIdentifier.PathArgument directChildIdentifier =
-                    YangInstanceIdentifier.of(rootNode).getLastPathArgument();
-            Optional<NormalizedNode<?, ?>> directChild =
-                    NormalizedNodes.getDirectChild(normalizedNode, directChildIdentifier);
-            if (!directChild.isPresent()) {
-                throw new IllegalStateException(String.format("Could not get the direct child of %s", rootNode));
-            }
-            normalizedNode = directChild.get();
-        }
-        YangInstanceIdentifier rootNodeYangInstanceIdentifier = YangInstanceIdentifier.of(rootNode);
-
-        Map.Entry<?, ?> bindingNodeEntry =
-                codecRegistry.fromNormalizedNode(rootNodeYangInstanceIdentifier, normalizedNode);
-        if (bindingNodeEntry == null) {
-            return Optional.empty();
-        }
-        return Optional.ofNullable((T) bindingNodeEntry.getValue());
-    }
-
-    @Override
-    @SuppressWarnings("unchecked")
-    public <T extends DataObject> Optional<T> getDataObjectFromRpc(
-            @Nonnull NormalizedNode<?, ?> normalizedNode,
-            @Nonnull SchemaPath rpcSchemaPath) {
-
-        if (! (normalizedNode instanceof ContainerNode)) {
-            LOG.error("converting normalized node is not ContainerNode. It's actual type is {}",
-                    normalizedNode.getClass().getSimpleName());
-            return Optional.empty();
-        }
-        T rpcDataObject = (T) codecRegistry.fromNormalizedNodeRpcData(rpcSchemaPath, (ContainerNode) normalizedNode);
-        return Optional.ofNullable(rpcDataObject);
-    }
-
-    @Override
-    public <T extends DataObject> Optional<NormalizedNode<?, ?>> toNormalizedNodes(@Nonnull T object,
-            Class<T> dataObjectClass) {
-        Entry<YangInstanceIdentifier, NormalizedNode<?, ?>> normalizedNode =
-                codecRegistry.toNormalizedNode(InstanceIdentifier.create(dataObjectClass), object);
-        return Optional.ofNullable(normalizedNode.getValue());
-    }
-
-    @Override
-    public <T extends DataObject> ConvertType<T> dataContainer() {
-        return (object, objectClass) -> {
-            NormalizedNode<?, ?> value =
-                    getCodecRegistry().toNormalizedNode(InstanceIdentifier.create(objectClass), object).getValue();
-            return Optional.ofNullable(value);
-        };
-    }
-
-    @Override
-    public <T extends DataContainer> ConvertType<T> rpcData() {
-        return (object, objectClass) -> {
-            ContainerNode normalizedNodeRpcData = getCodecRegistry().toNormalizedNodeRpcData(object);
-            return Optional.ofNullable(normalizedNodeRpcData);
-        };
-    }
-
-    @Override
-    public <T extends Notification> ConvertType<T> notification() {
-        return (object, objectClass) -> {
-            ContainerNode normalizedNodeNotification = getCodecRegistry().toNormalizedNodeNotification(object);
-            return Optional.ofNullable(normalizedNodeNotification);
-        };
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/JSONDataObjectConverter.java b/tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/JSONDataObjectConverter.java
deleted file mode 100644 (file)
index 9444613..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 2018 AT&T and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.binding.converter;
-
-import com.google.gson.stream.JsonReader;
-import com.google.gson.stream.JsonWriter;
-
-import io.fd.honeycomb.transportpce.binding.converter.api.DataObjectConverter;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.Optional;
-
-import javax.annotation.Nonnull;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
-import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactory;
-import org.opendaylight.yangtools.yang.data.codec.gson.JSONNormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class JSONDataObjectConverter extends AbstractDataObjectConverter {
-
-    private static final Logger LOG = LoggerFactory.getLogger(JSONDataObjectConverter.class);
-
-    private JSONDataObjectConverter(SchemaContext schemaContext, BindingNormalizedNodeCodecRegistry codecRegistry) {
-        super(schemaContext, codecRegistry);
-    }
-
-    /**
-     * extracts codec and schema context (?).
-     *
-     * @param dataStoreContextUtil datastore context util used to extract codec and schema context
-     * @return {@link AbstractDataObjectConverter}
-     */
-    public static DataObjectConverter createWithDataStoreUtil(@Nonnull DataStoreContext dataStoreContextUtil) {
-        return new JSONDataObjectConverter(dataStoreContextUtil.getSchemaContext(),
-                dataStoreContextUtil.getBindingToNormalizedNodeCodec());
-    }
-
-    /**
-     * extracts codec and schema context (?).
-     *
-     * @param schemaContext schema context for converter
-     * @param codecRegistry codec registry used for converting
-     * @return converter
-     */
-    public static DataObjectConverter createWithSchemaContext(@Nonnull SchemaContext schemaContext,
-            @Nonnull BindingNormalizedNodeCodecRegistry codecRegistry) {
-        return new JSONDataObjectConverter(schemaContext, codecRegistry);
-    }
-
-    /**
-     * Transforms the JSON input stream into normalized nodes.
-     *
-     * @param inputStream of the given JSON
-     * @return {@link Optional} instance of {@link NormalizedNode}.
-     */
-    @Override
-    public Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull InputStream inputStream) {
-        try {
-            JsonReader reader = new JsonReader(new InputStreamReader(inputStream, "UTF-8"));
-            return parseInputJSON(reader);
-        } catch (IOException e) {
-            LOG.warn(e.getMessage(), e);
-            return Optional.empty();
-        }
-    }
-
-    @Override
-    public Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull Reader inputReader, SchemaNode parentSchema) {
-        throw new UnsupportedOperationException("Not Implemented yet");
-    }
-
-    @Override
-    public Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull Reader inputReader) {
-        JsonReader reader = new JsonReader(inputReader);
-        return parseInputJSON(reader);
-    }
-
-    @Override
-    public <T extends DataObject> Writer writerFromDataObject(@Nonnull DataObject object, Class<T> dataObjectClass,
-            ConvertType<T> convertType) {
-        Writer writer = new StringWriter();
-        JsonWriter jsonWriter = new JsonWriter(writer);
-        JSONCodecFactory jsonCodecFactory = JSONCodecFactory.createLazy(getSchemaContext());
-        NormalizedNodeStreamWriter create =
-                JSONNormalizedNodeStreamWriter.createExclusiveWriter(jsonCodecFactory, null, null, jsonWriter);
-
-        try (NormalizedNodeWriter normalizedNodeWriter = NormalizedNodeWriter.forStreamWriter(create);) {
-            normalizedNodeWriter
-                    .write(convertType.toNormalizedNodes(dataObjectClass.cast(object), dataObjectClass).get());
-        } catch (IOException ioe) {
-            throw new IllegalStateException(ioe);
-        }
-        return writer;
-    }
-
-    @Override
-    public <T extends DataObject> Writer writerFromRpcDataObject(@Nonnull DataObject object, Class<T> dataObjectClass,
-            ConvertType<T> convertType, QName rpcOutputQName, String rpcName) {
-        return null;
-    }
-
-    /**
-     * Parses the input json with concrete implementation of {@link JsonParserStream}.
-     *
-     * @param reader of the given JSON
-     *
-     */
-    private Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> parseInputJSON(
-            JsonReader reader) {
-        NormalizedNodeResult result = new NormalizedNodeResult();
-        try (NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
-            JsonParserStream jsonParser = JsonParserStream.create(streamWriter, getSchemaContext(),
-                getSchemaContext())) {
-            jsonParser.parse(reader);
-        } catch (IOException e) {
-            LOG.warn("An error {} occured during parsing Json input stream", e.getMessage(), e);
-            return Optional.empty();
-        }
-        return Optional.ofNullable(result.getResult());
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/XMLDataObjectConverter.java b/tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/XMLDataObjectConverter.java
deleted file mode 100644 (file)
index d298d39..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * Copyright (c) 2018 AT&T and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.binding.converter;
-
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.net.URISyntaxException;
-import java.util.Optional;
-
-import javax.annotation.Nonnull;
-import javax.xml.XMLConstants;
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLOutputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
-import org.opendaylight.yangtools.yang.data.codec.xml.XMLStreamNormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.xml.sax.SAXException;
-
-public final class XMLDataObjectConverter extends AbstractDataObjectConverter {
-
-    private static final Logger LOG = LoggerFactory.getLogger(XMLDataObjectConverter.class);
-
-    private final XMLInputFactory xmlInputFactory;
-
-    /**
-     * This is the default constructor, which should be used.
-     *
-     * @param schemaContext schema context for converter
-     * @param codecRegistry codec registry used for converting
-     *
-     */
-    private XMLDataObjectConverter(SchemaContext schemaContext, BindingNormalizedNodeSerializer codecRegistry) {
-        super(schemaContext, codecRegistry);
-        this.xmlInputFactory = XMLInputFactory.newInstance();
-    }
-
-    /**
-     * Extract codec and schema context (?).
-     *
-     * @param dataStoreContextUtil datastore context util used to extract codec and schema context
-     * @return {@link AbstractDataObjectConverter}
-     */
-    public static XMLDataObjectConverter createWithDataStoreUtil(@Nonnull DataStoreContext dataStoreContextUtil) {
-        BindingNormalizedNodeSerializer bindingToNormalizedNodeCodec =
-                dataStoreContextUtil.getBindingToNormalizedNodeCodec();
-        return new XMLDataObjectConverter(dataStoreContextUtil.getSchemaContext(), bindingToNormalizedNodeCodec);
-    }
-
-    /**
-     * Extract codec and schema context (?).
-     *
-     * @param schemaContext schema context for converter
-     * @param codecRegistry codec registry used for converting
-     * @return new {@link XMLDataObjectConverter}
-     */
-    public static XMLDataObjectConverter createWithSchemaContext(@Nonnull SchemaContext schemaContext,
-            @Nonnull BindingNormalizedNodeSerializer codecRegistry) {
-        return new XMLDataObjectConverter(schemaContext, codecRegistry);
-    }
-
-    /**
-     * Transforms the XML input stream into normalized nodes.
-     *
-     * @param inputStream of the given XML
-     * @return {@link Optional} instance of {@link NormalizedNode}.
-     */
-    @Override
-    public Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull InputStream inputStream) {
-        try {
-            XMLStreamReader reader = this.xmlInputFactory.createXMLStreamReader(inputStream);
-            return parseInputXML(reader);
-        } catch (XMLStreamException e) {
-            LOG.warn(e.getMessage(), e);
-            return Optional.empty();
-        }
-    }
-
-    @Override
-    public Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull Reader inputReader, SchemaNode parentSchema) {
-        try {
-            XMLStreamReader reader = this.xmlInputFactory.createXMLStreamReader(inputReader);
-            return parseInputXML(reader, parentSchema);
-        } catch (XMLStreamException e) {
-            LOG.warn(e.getMessage(), e);
-            return Optional.empty();
-        }
-    }
-
-    /**
-     * Transforms the XML input stream into normalized nodes.
-     *
-     * @param inputReader of the given XML
-     * @return {@link Optional} instance of {@link NormalizedNode}.
-     */
-    @Override
-    public Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull Reader inputReader) {
-        try {
-            XMLStreamReader reader = this.xmlInputFactory.createXMLStreamReader(inputReader);
-            return parseInputXML(reader);
-        } catch (XMLStreamException e) {
-            LOG.warn(e.getMessage(), e);
-            return Optional.empty();
-        }
-    }
-
-    @Override
-    public <T extends DataObject> Writer writerFromRpcDataObject(@Nonnull DataObject object, Class<T> dataObjectClass,
-            ConvertType<T> convertType, QName rpcOutputQName, String rpcName) {
-        Writer writer = new StringWriter();
-        XMLStreamWriter xmlStreamWriter = createXmlStreamWriter(writer);
-        SchemaPath rpcOutputSchemaPath = SchemaPath.create(true, QName.create(rpcOutputQName.getModule(), rpcName),
-                rpcOutputQName);
-        try (NormalizedNodeWriter normalizedNodeWriter = createWriterBackedNormalizedNodeWriter(xmlStreamWriter,
-                rpcOutputSchemaPath)) {
-            xmlStreamWriter.writeStartElement(XMLConstants.DEFAULT_NS_PREFIX,
-                    rpcOutputQName.getLocalName(), rpcOutputQName.getNamespace().toString());
-            xmlStreamWriter.writeDefaultNamespace(rpcOutputQName.getNamespace().toString());
-            NormalizedNode<?, ?> rpcOutputNormalizedNode = convertType.toNormalizedNodes(dataObjectClass.cast(object),
-                    dataObjectClass).get();
-            for (final NormalizedNode<?, ?> child : ((ContainerNode)rpcOutputNormalizedNode).getValue()) {
-                normalizedNodeWriter.write(child);
-            }
-            normalizedNodeWriter.flush();
-            xmlStreamWriter.writeEndElement();
-            xmlStreamWriter.flush();
-        } catch (IOException | XMLStreamException ioe) {
-            throw new IllegalStateException(ioe);
-        }
-        return writer;
-    }
-
-    /**
-     * Returns a {@link Writer}.
-     *
-     * @param convertType converter used of converting into normalized node
-     * @param dataObjectClass class of converting object
-     * @param object object you want to convert
-     *
-     */
-    @Override
-    public <T extends DataObject> Writer writerFromDataObject(@Nonnull DataObject object, Class<T> dataObjectClass,
-            ConvertType<T> convertType) {
-        Writer writer = new StringWriter();
-
-        try (NormalizedNodeWriter normalizedNodeWriter = createWriterBackedNormalizedNodeWriter(writer, null)) {
-            normalizedNodeWriter
-                    .write(convertType.toNormalizedNodes(dataObjectClass.cast(object), dataObjectClass).get());
-            normalizedNodeWriter.flush();
-        } catch (IOException ioe) {
-            throw new IllegalStateException(ioe);
-        }
-        return writer;
-    }
-
-    private Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> parseInputXML(
-            XMLStreamReader reader) {
-        return parseInputXML(reader, getSchemaContext());
-    }
-
-    private Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> parseInputXML(
-            XMLStreamReader reader, SchemaNode parentSchemaNode) {
-        NormalizedNodeResult result = new NormalizedNodeResult();
-        try (NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
-             XmlParserStream xmlParser = XmlParserStream.create(streamWriter, getSchemaContext(), parentSchemaNode)) {
-            xmlParser.parse(reader);
-        } catch (XMLStreamException | URISyntaxException | IOException | ParserConfigurationException
-                | SAXException e) {
-            LOG.warn("An error {} occured during parsing XML input stream", e.getMessage(), e);
-            return Optional.empty();
-        }
-        return Optional.ofNullable(result.getResult());
-    }
-
-    private NormalizedNodeWriter createWriterBackedNormalizedNodeWriter(Writer backingWriter, SchemaPath pathToParent) {
-        XMLStreamWriter createXMLStreamWriter = createXmlStreamWriter(backingWriter);
-        NormalizedNodeStreamWriter streamWriter;
-        if (pathToParent == null) {
-            streamWriter = XMLStreamNormalizedNodeStreamWriter.create(createXMLStreamWriter,
-                    getSchemaContext());
-        } else {
-            streamWriter = XMLStreamNormalizedNodeStreamWriter.create(createXMLStreamWriter,
-                    getSchemaContext(), pathToParent);
-        }
-        return NormalizedNodeWriter.forStreamWriter(streamWriter);
-    }
-
-    private NormalizedNodeWriter createWriterBackedNormalizedNodeWriter(XMLStreamWriter backingWriter,
-            SchemaPath pathToParent) {
-        NormalizedNodeStreamWriter streamWriter;
-        if (pathToParent == null) {
-            streamWriter = XMLStreamNormalizedNodeStreamWriter.create(backingWriter,
-                    getSchemaContext());
-        } else {
-            streamWriter = XMLStreamNormalizedNodeStreamWriter.create(backingWriter,
-                    getSchemaContext(), pathToParent);
-        }
-        return NormalizedNodeWriter.forStreamWriter(streamWriter);
-    }
-
-    private static XMLStreamWriter createXmlStreamWriter(Writer backingWriter) {
-        XMLStreamWriter xmlStreamWriter;
-        try {
-            XMLOutputFactory factory = XMLOutputFactory.newFactory();
-            factory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, true);
-            xmlStreamWriter = factory.createXMLStreamWriter(backingWriter);
-        } catch (XMLStreamException | FactoryConfigurationError e) {
-            LOG.error("Error [{}] while creating XML writer", e.getMessage(), e);
-            throw new IllegalStateException(e);
-        }
-        return xmlStreamWriter;
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/api/DataObjectConverter.java b/tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/binding/converter/api/DataObjectConverter.java
deleted file mode 100644 (file)
index bad24d5..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2018 AT&T and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.binding.converter.api;
-
-import java.io.InputStream;
-import java.io.Reader;
-import java.io.Writer;
-import java.util.Optional;
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.binding.DataContainer;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Notification;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-
-public interface DataObjectConverter {
-
-    <T extends DataObject> Optional<T> getDataObject(
-            @Nonnull NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?> normalizedNode,
-            @Nonnull QName rootNode);
-
-    <T extends DataObject> Optional<T> getDataObjectFromRpc(
-            @Nonnull NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?> normalizedNode,
-            @Nonnull SchemaPath rpcSchemaPath);
-
-    Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull InputStream inputStream);
-
-    Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull Reader inputReader, SchemaNode parentSchema);
-
-    Optional<NormalizedNode<? extends YangInstanceIdentifier.PathArgument, ?>> transformIntoNormalizedNode(
-            @Nonnull Reader inputReader);
-
-    <T extends DataObject> Writer writerFromDataObject(@Nonnull DataObject object, Class<T> dataObjectClass,
-            ConvertType<T> convertType);
-
-    <T extends DataObject> Writer writerFromRpcDataObject(@Nonnull DataObject object, Class<T> dataObjectClass,
-            ConvertType<T> convertType, QName rpcOutputQName, String rpcName);
-
-    <T extends DataObject> Optional<NormalizedNode<?, ?>> toNormalizedNodes(@Nonnull T object,
-            Class<T> dataObjectClass);
-
-    public interface ConvertType<T> {
-        Optional<NormalizedNode<?, ?>> toNormalizedNodes(T object, Class<T> clazz);
-    }
-
-    /**
-     * Returns a converter for {@link DataObject} container type.
-     * @param <T> T extends DataObject
-     *
-     * @return {@link ConvertType} converter for {@link DataContainer}
-     */
-    <T extends DataObject> ConvertType<T> dataContainer();
-
-    /**
-     * Returns converter for {@link DataContainer} rpc type.
-     * @param <T> T extends DataContainer
-     *
-     * @return {@link ConvertType} converter for {@link DataContainer}
-     * representing rpc data
-     */
-    <T extends DataContainer> ConvertType<T> rpcData();
-
-    /**
-     * Return converter for {@link Notification}.
-     * @param <T> T extends Notification
-     *
-     * @return {@link ConvertType} converter for {@link Notification}
-     */
-    <T extends Notification> ConvertType<T> notification();
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/test/common/DataStoreContext.java b/tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/test/common/DataStoreContext.java
deleted file mode 100644 (file)
index 3ba7964..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2018 AT&T and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.test.common;
-
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-
-public interface DataStoreContext {
-
-//    DataBroker getDataBroker();
-//
-//    DOMDataBroker getDOMDataBroker();
-//
-//    NotificationService createNotificationService();
-//
-//    NotificationPublishService createNotificationPublishService();
-
-    SchemaContext getSchemaContext();
-
-    BindingNormalizedNodeCodecRegistry getBindingToNormalizedNodeCodec();
-
-//    NotificationService getNotificationService();
-//
-//    NotificationPublishService getNotificationPublishService();
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/test/common/DataStoreContextImpl.java b/tests/honeynode/2.2.1/honeynode-common/src/main/java/io/fd/honeycomb/transportpce/test/common/DataStoreContextImpl.java
deleted file mode 100644 (file)
index f8bd363..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * Copyright (c) 2018 AT&T and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.test.common;
-
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Optional;
-import java.util.ServiceLoader;
-
-import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.binding.dom.codec.gen.impl.StreamWriterGenerator;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.mdsal.binding.generator.impl.GeneratedClassLoadingStrategy;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext;
-import org.opendaylight.mdsal.binding.generator.util.JavassistUtils;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.mdsal.dom.api.DOMSchemaServiceExtension;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.util.ListenerRegistry;
-import org.opendaylight.yangtools.yang.binding.YangModelBindingProvider;
-import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
-import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.ClassToInstanceMap;
-
-import javassist.ClassPool;
-
-public class DataStoreContextImpl implements DataStoreContext {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DataStoreContextImpl.class);
-
-//    private final Map<LogicalDatastoreType, DOMStore> datastores;
-    private final SchemaContextHolder mockedSchemaContext;
-//    private final DOMNotificationRouter domNotificationRouter;
-//    private final DOMDataBroker domDataBroker;
-//    private final DataBroker dataBroker;
-//    private final NotificationService notificationService;
-//    private final NotificationPublishService notificationPublishService;
-
-    public DataStoreContextImpl() {
-        this(false);
-    }
-
-    public DataStoreContextImpl(boolean fromClasspath) {
-        this.mockedSchemaContext = new SchemaContextHolder(fromClasspath);
-//        this.datastores = createDatastores();
-//        this.domNotificationRouter = DOMNotificationRouter.create(16);
-//        this.domDataBroker = createDOMDataBroker();
-//        this.dataBroker = createDataBroker();
-//        this.notificationService = createNotificationService();
-//        this.notificationPublishService = createNotificationPublishService();
-//        for (ListenerRegistration<SchemaContextListener> listener : this.mockedSchemaContext.listeners) {
-//            listener.getInstance().onGlobalContextUpdated(this.mockedSchemaContext.schemaContext);
-//        }
-    }
-
-//    @Override
-//    public DataBroker getDataBroker() {
-//        return this.dataBroker;
-//    }
-//
-//    @Override
-//    public DOMDataBroker getDOMDataBroker() {
-//        return this.domDataBroker;
-//    }
-//
-//    @Override
-//    public NotificationService createNotificationService() {
-//        return new BindingDOMNotificationServiceAdapter(this.mockedSchemaContext.bindingStreamCodecs,
-//                this.domNotificationRouter);
-//    }
-//
-//    @Override
-//    public NotificationPublishService createNotificationPublishService() {
-//        return new BindingDOMNotificationPublishServiceAdapter(this.mockedSchemaContext.bindingToNormalized,
-//                this.domNotificationRouter);
-//    }
-
-    @Override
-    public SchemaContext getSchemaContext() {
-        return this.mockedSchemaContext.schemaContext;
-    }
-
-    @Override
-    public BindingNormalizedNodeCodecRegistry getBindingToNormalizedNodeCodec() {
-        return this.mockedSchemaContext.bindingStreamCodecs;
-    }
-
-//    @Override
-//    public NotificationService getNotificationService() {
-//        return this.notificationService;
-//    }
-//
-//    @Override
-//    public NotificationPublishService getNotificationPublishService() {
-//        return this.notificationPublishService;
-//    }
-//
-//    private DOMDataBroker createDOMDataBroker() {
-//        return new SerializedDOMDataBroker(this.datastores,
-//                MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor()));
-//    }
-//
-//    private ListeningExecutorService getDataTreeChangeListenerExecutor() {
-//        return MoreExecutors.newDirectExecutorService();
-//    }
-//
-//    private DataBroker createDataBroker() {
-//        return new BindingDOMDataBrokerAdapter(getDOMDataBroker(), this.mockedSchemaContext.bindingToNormalized);
-//    }
-//
-//    private Map<LogicalDatastoreType, DOMStore> createDatastores() {
-//        return ImmutableMap.<LogicalDatastoreType, DOMStore>builder()
-//                .put(LogicalDatastoreType.OPERATIONAL, createOperationalDatastore())
-//                .put(LogicalDatastoreType.CONFIGURATION, createConfigurationDatastore()).build();
-//    }
-//
-//    private DOMStore createConfigurationDatastore() {
-//        final InMemoryDOMDataStore store = new InMemoryDOMDataStore("CFG", getDataTreeChangeListenerExecutor());
-//        this.mockedSchemaContext.registerSchemaContextListener(store);
-//        return store;
-//    }
-//
-//    private DOMStore createOperationalDatastore() {
-//        final InMemoryDOMDataStore store = new InMemoryDOMDataStore("OPER", getDataTreeChangeListenerExecutor());
-//        this.mockedSchemaContext.registerSchemaContextListener(store);
-//        return store;
-//    }
-
-    private final class SchemaContextHolder implements DOMSchemaService, SchemaContextProvider {
-
-        private final SchemaContext schemaContext;
-        private final ListenerRegistry<SchemaContextListener> listeners;
-        private final BindingNormalizedNodeCodecRegistry bindingStreamCodecs;
-        private final BindingToNormalizedNodeCodec bindingToNormalized;
-        private final ModuleInfoBackedContext moduleInfoBackedCntxt;
-
-        private SchemaContextHolder(boolean fromClasspath) {
-            List<YangModuleInfo> moduleInfos = loadModuleInfos();
-            this.moduleInfoBackedCntxt = ModuleInfoBackedContext.create();
-            this.schemaContext = getSchemaContext(moduleInfos);
-            this.listeners = ListenerRegistry.create();
-            this.bindingStreamCodecs = createBindingRegistry();
-            GeneratedClassLoadingStrategy loading = GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy();
-            this.bindingToNormalized = new BindingToNormalizedNodeCodec(loading, this.bindingStreamCodecs);
-            registerSchemaContextListener(this.bindingToNormalized);
-        }
-
-        @Override
-        public SchemaContext getSchemaContext() {
-            return this.schemaContext;
-        }
-
-        /**
-         * Get the schemacontext from loaded modules on classpath.
-         *
-         * @param moduleInfos a list of Yang module Infos
-         * @return SchemaContext a schema context
-         */
-        private SchemaContext getSchemaContext(List<YangModuleInfo> moduleInfos) {
-            this.moduleInfoBackedCntxt.addModuleInfos(moduleInfos);
-            Optional<SchemaContext> tryToCreateSchemaContext = this.moduleInfoBackedCntxt.tryToCreateSchemaContext();
-            if (!tryToCreateSchemaContext.isPresent()) {
-                LOG.error("Could not create the initial schema context. Schema context is empty");
-                throw new IllegalStateException();
-            }
-            return tryToCreateSchemaContext.get();
-        }
-
-        @Override
-        public SchemaContext getGlobalContext() {
-            return this.schemaContext;
-        }
-
-        @Override
-        public SchemaContext getSessionContext() {
-            return this.schemaContext;
-        }
-
-        @Override
-        public ListenerRegistration<SchemaContextListener> registerSchemaContextListener(
-                SchemaContextListener listener) {
-            return this.listeners.register(listener);
-        }
-
-        /**
-         * Loads all {@link YangModelBindingProvider} on the classpath.
-         *
-         * @return list of known {@link YangModuleInfo}
-         */
-        private List<YangModuleInfo> loadModuleInfos() {
-            List<YangModuleInfo> moduleInfos = new LinkedList<>();
-            ServiceLoader<YangModelBindingProvider> yangProviderLoader = ServiceLoader
-                    .load(YangModelBindingProvider.class);
-            for (YangModelBindingProvider yangModelBindingProvider : yangProviderLoader) {
-                moduleInfos.add(yangModelBindingProvider.getModuleInfo());
-                LOG.debug("Adding [{}] module into known modules", yangModelBindingProvider.getModuleInfo());
-            }
-            return moduleInfos;
-        }
-
-        /**
-         * Creates binding registry.
-         *
-         * @return BindingNormalizedNodeCodecRegistry the resulting binding registry
-         */
-        private BindingNormalizedNodeCodecRegistry createBindingRegistry() {
-            BindingRuntimeContext bindingContext = BindingRuntimeContext.create(this.moduleInfoBackedCntxt,
-                    this.schemaContext);
-            BindingNormalizedNodeCodecRegistry bindingNormalizedNodeCodecRegistry = new BindingNormalizedNodeCodecRegistry(
-                    StreamWriterGenerator.create(JavassistUtils.forClassPool(ClassPool.getDefault())));
-            bindingNormalizedNodeCodecRegistry.onBindingRuntimeContextUpdated(bindingContext);
-            return bindingNormalizedNodeCodecRegistry;
-        }
-
-        /*
-         * (non-Javadoc)
-         *
-         * @see org.opendaylight.mdsal.dom.api.DOMExtensibleService#getExtensions()
-         */
-        @Override
-        public ClassToInstanceMap<DOMSchemaServiceExtension> getExtensions() {
-            // TODO Auto-generated method stub
-            return null;
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-distribution/asciidoc/Readme.adoc b/tests/honeynode/2.2.1/honeynode-distribution/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index 608fb53..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-= honeynode-distribution
-
-Overview of honeynode-distribution
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-distribution/pom.xml b/tests/honeynode/2.2.1/honeynode-distribution/pom.xml
deleted file mode 100644 (file)
index 8aefd51..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <parent>
-    <groupId>io.fd.honeycomb.common</groupId>
-    <artifactId>minimal-distribution-parent</artifactId>
-    <version>1.19.04</version>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>io.fd.honeycomb.transportpce</groupId>
-  <artifactId>honeynode-distribution</artifactId>
-  <properties>
-    <exec.parameters>-Xms128m -Xmx128m</exec.parameters>
-    <main.class>io.fd.honeycomb.infra.distro.Main</main.class>
-    <interfaces.mapping.version>1.19.04</interfaces.mapping.version>
-    <honeycomb.min.distro.version>1.19.04</honeycomb.min.distro.version>
-    <guice.version>4.2.2</guice.version>
-    <guice.config.version>1.4.1</guice.config.version>
-    <!--
-       Defines list of specific modules provided by the distribution
-       (adds them to base modules like NetconfModule and RestconfModule).
-       Module configuration is placed in 'modules' subdir of the target distro folder.
-       Modules can be disabled by commenting them out in the pom.xml
-       or modules configuration file.
-     -->
-    <distribution.modules>
-        io.fd.honeycomb.transportpce.device.DeviceModule,
-        io.fd.honeycomb.transportpce.device.DeviceWriterModule,
-        io.fd.honeycomb.transportpce.device.DeviceReaderModule,
-        io.fd.honeycomb.transportpce.device.DeviceRpcModule,
-        io.fd.honeycomb.transportpce.device.DeviceNotificationModule,
-    </distribution.modules>
-    <checkstyle.skip>true</checkstyle.skip>
-  </properties>
-  <build>
-    <plugins>
-      <plugin>
-        <artifactId>maven-compiler-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.gmaven</groupId>
-        <artifactId>groovy-maven-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <configuration>
-            <!-- MacOS X and posix compatibility, fix error "group id is too big" -->
-            <tarLongFileMode>posix</tarLongFileMode>
-        </configuration>
-      </plugin>
-    </plugins>
-    <pluginManagement>
-        <plugins>
-            <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
-            <plugin>
-                <groupId>org.eclipse.m2e</groupId>
-                <artifactId>lifecycle-mapping</artifactId>
-                <version>1.0.0</version>
-                <configuration>
-                    <lifecycleMappingMetadata>
-                        <pluginExecutions>
-                            <pluginExecution>
-                                <pluginExecutionFilter>
-                                    <groupId>
-                                        org.apache.maven.plugins
-                                    </groupId>
-                                    <artifactId>
-                                        maven-checkstyle-plugin
-                                    </artifactId>
-                                    <versionRange>
-                                        [3.0.0,)
-                                    </versionRange>
-                                    <goals>
-                                        <goal>check</goal>
-                                    </goals>
-                                </pluginExecutionFilter>
-                                <action>
-                                    <ignore></ignore>
-                                </action>
-                            </pluginExecution>
-                        </pluginExecutions>
-                    </lifecycleMappingMetadata>
-                </configuration>
-            </plugin>
-        </plugins>
-    </pluginManagement>
-  </build>
-  <dependencies>
-    <!-- Dependency on honeynode plugin -->
-    <dependency>
-      <groupId>io.fd.honeycomb.transportpce</groupId>
-      <artifactId>honeynode-plugin-impl</artifactId>
-      <version>${interfaces.mapping.version}</version>
-    </dependency>
-    <!-- Dependency on TPCE distribution base -->
-    <dependency>
-      <groupId>io.fd.honeycomb.transportpce</groupId>
-      <artifactId>minimal-distribution</artifactId>
-      <version>${honeycomb.min.distro.version}</version>
-    </dependency>
-  </dependencies>
-</project>
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/asciidoc/Readme.adoc b/tests/honeynode/2.2.1/honeynode-plugin-api/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index ebe40ce..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-= honeynode-plugin-api
-
-Overview of honeynode-plugin-api
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/pom.xml b/tests/honeynode/2.2.1/honeynode-plugin-api/pom.xml
deleted file mode 100644 (file)
index d7917c3..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (c) 2015 Cisco and/or its affiliates. Licensed under the Apache
-    License, Version 2.0 (the "License"); you may not use this file except in
-    compliance with the License. You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
-    OR CONDITIONS OF ANY KIND, either express or implied. See the License for
-    the specific language governing permissions and limitations under the License. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>io.fd.honeycomb.common</groupId>
-        <artifactId>api-parent</artifactId>
-        <version>1.19.04</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>io.fd.honeycomb.transportpce</groupId>
-    <artifactId>honeynode-plugin-api</artifactId>
-    <name>honeynode-plugin-api</name>
-    <packaging>bundle</packaging>
-    <properties>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-    </properties>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <version>1.1</version>
-                <executions>
-                    <execution>
-                        <id>add-source</id>
-                        <phase>generate-sources</phase>
-                        <goals>
-                            <goal>add-source</goal>
-                        </goals>
-                        <configuration>
-                            <sources>
-                                <source>target/generated-sources/mdsal-binding</source>
-                            </sources>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-        <pluginManagement>
-            <plugins>
-                <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.apache.maven.plugins
-                                        </groupId>
-                                        <artifactId>
-                                            maven-checkstyle-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [3.0.0,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/alarms/rev180116/AlarmStateTypeIdBuilder.java b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/alarms/rev180116/AlarmStateTypeIdBuilder.java
deleted file mode 100644 (file)
index c454cbb..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.http.openconfig.net.yang.alarms.rev180116;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class AlarmStateTypeIdBuilder {
-    private AlarmStateTypeIdBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static AlarmState.TypeId getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/platform/rev180130/PlatformComponentPropertiesConfigValueBuilder.java b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/platform/rev180130/PlatformComponentPropertiesConfigValueBuilder.java
deleted file mode 100644 (file)
index 86d521e..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class PlatformComponentPropertiesConfigValueBuilder {
-    private PlatformComponentPropertiesConfigValueBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static PlatformComponentPropertiesConfig.Value getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/platform/rev180130/PlatformComponentStateTypeBuilder.java b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/openconfig/net/yang/platform/rev180130/PlatformComponentStateTypeBuilder.java
deleted file mode 100644 (file)
index f15fc07..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class PlatformComponentStateTypeBuilder {
-    private PlatformComponentStateTypeBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static PlatformComponentState.Type getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev171215/PmDataTypeBuilder.java b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev171215/PmDataTypeBuilder.java
deleted file mode 100644 (file)
index 7fc9678..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev171215;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class PmDataTypeBuilder {
-    private PmDataTypeBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static PmDataType getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/syslog/rev171215/syslog/selector/log/selector/selector/facility/log/facility/LogFacilityFacilityBuilder.java b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/syslog/rev171215/syslog/selector/log/selector/selector/facility/log/facility/LogFacilityFacilityBuilder.java
deleted file mode 100644 (file)
index 175e9a1..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.http.org.openroadm.syslog.rev171215.syslog.selector.log.selector.selector.facility.log.facility;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class LogFacilityFacilityBuilder {
-    private LogFacilityFacilityBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static LogFacility.Facility getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/HostBuilder.java b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/HostBuilder.java
deleted file mode 100644 (file)
index af87f64..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class HostBuilder {
-    private HostBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static Host getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressBuilder.java b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressBuilder.java
deleted file mode 100644 (file)
index bbd6352..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * * The purpose of generated class in src/main/java for Union types is to
- * create * new instances of unions from a string representation. In some cases
- * it is * very difficult to automate it since there can be unions such as
- * (uint32 - * uint16), or (string - uint32). * * The reason behind putting it
- * under src/main/java is: This class is generated * in form of a stub and needs
- * to be finished by the user. This class is * generated only once to prevent
- * loss of user code. *
- */
-public class IpAddressBuilder {
-    private static final Pattern IPV4_PATTERN = Pattern.compile(
-            "(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(%[\\p{N}\\p{L}]+)?");
-    private static final Pattern IPV6_PATTERN1 = Pattern.compile(
-            "((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(%[\\p{N}\\p{L}]+)?");
-    private static final Pattern IPV6_PATTERN2 = Pattern
-            .compile("(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?");
-
-    private IpAddressBuilder() {
-    }
-
-    /*
-     * * public static IpAddress getDefaultInstance(java.lang.String defaultValue) {
-     * * throw new java.lang.UnsupportedOperationException("Not yet implemented"); }
-     */ public static IpAddress getDefaultInstance(String defaultValue) {
-        final Matcher ipv4Matcher = IPV4_PATTERN.matcher(defaultValue);
-        if (ipv4Matcher.matches()) {
-            if (IPV6_PATTERN1.matcher(defaultValue).matches() && IPV6_PATTERN2.matcher(defaultValue).matches()) {
-                throw new IllegalArgumentException(
-                        String.format("Cannot create IpAddress from \"%s\", matches both %s and %s", defaultValue,
-                                Ipv4Address.class.getSimpleName(), Ipv6Address.class.getSimpleName()));
-            }
-            return new IpAddress(new Ipv4Address(defaultValue));
-        } else if (IPV6_PATTERN1.matcher(defaultValue).matches() && IPV6_PATTERN2.matcher(defaultValue).matches()) {
-            return new IpAddress(new Ipv6Address(defaultValue));
-        } else {
-            throw new IllegalArgumentException("Cannot create IpAddress from " + defaultValue);
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressNoZoneBuilder.java b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressNoZoneBuilder.java
deleted file mode 100644 (file)
index e571960..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class IpAddressNoZoneBuilder {
-    private IpAddressNoZoneBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static IpAddressNoZone getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpPrefixBuilder.java b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpPrefixBuilder.java
deleted file mode 100644 (file)
index 814182a..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class IpPrefixBuilder {
-    private IpPrefixBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static IpPrefix getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/netconf/monitoring/rev101004/netconf/state/schemas/SchemaLocationBuilder.java b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/netconf/monitoring/rev101004/netconf/state/schemas/SchemaLocationBuilder.java
deleted file mode 100644 (file)
index 23a3236..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class SchemaLocationBuilder {
-    private SchemaLocationBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static Schema.Location getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/iana-afn-safi@2013-07-04.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/iana-afn-safi@2013-07-04.yang
deleted file mode 100644 (file)
index c076260..0000000
+++ /dev/null
@@ -1,526 +0,0 @@
-module iana-afn-safi {
-  namespace "urn:ietf:params:xml:ns:yang:iana-afn-safi";
-  prefix "ianaaf";
-
-  organization
-    "IANA";
-  contact
-    "        Internet Assigned Numbers Authority
-
-     Postal: ICANN
-             4676 Admiralty Way, Suite 330
-             Marina del Rey, CA 90292
-
-     Tel:    +1 310 823 9358
-     E-Mail: iana&iana.org";
-  description
-    "This YANG module provides two typedefs containing YANG
-     definitions for the following IANA-registered enumerations:
-
-     - Address Family Numbers (AFN)
-
-     - Subsequent Address Family Identifiers (SAFI)
-
-     The latest revision of this YANG module can be obtained from the
-     IANA web site.
-
-     Copyright (c) 2012 IETF Trust and the persons identified as
-     authors of the code. All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject to
-     the license terms contained in, the Simplified BSD License set
-     forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC XXXX; see the
-     RFC itself for full legal notices.";
-  // RFC Ed.: replace XXXX with actual RFC number and remove this
-  // note.
-
-  // RFC Ed.: update the date below with the date of RFC publication
-  // and remove this note.
-  revision 2013-07-04 {
-    description
-      "Initial revision.";
-    reference
-      "RFC XXXX: IANA Address Family Numbers and
-                 Subsequent Address Family Identifiers YANG Module";
-  }
-
-  typedef address-family {
-    type enumeration {
-      // value 0 is reserved by IANA
-      enum ipV4 {
-        value "1";
-        description
-          "IP version 4";
-      }
-      enum ipV6 {
-        value "2";
-        description
-          "IP version 6";
-      }
-      enum nsap {
-        value "3";
-        description
-          "NSAP";
-      }
-      enum hdlc {
-        value "4";
-        description
-          "HDLC (8-bit multidrop)";
-      }
-      enum bbn1822 {
-        value "5";
-        description
-          "BBN 1822";
-      }
-      enum all802 {
-        value "6";
-        description
-          "802 (includes all 802 media plus Ethernet 'canonical
-           format')";
-      }
-      enum e163 {
-        value "7";
-        description
-          "E.163";
-      }
-      enum e164 {
-        value "8";
-        description
-          "E.164 (SMDS, FrameRelay, ATM)";
-      }
-      enum f69 {
-        value "9";
-        description
-          "F.69 (Telex)";
-      }
-      enum x121 {
-        value "10";
-        description
-          "X.121 (X.25, Frame Relay)";
-      }
-      enum ipx {
-        value "11";
-        description
-          "IPX (Internetwork Packet Exchange)";
-      }
-      enum appletalk {
-        value "12";
-        description
-          "Appletalk";
-      }
-      enum decnetIV {
-        value "13";
-        description
-          "DECnet IV";
-      }
-      enum banyanVines {
-        value "14";
-        description
-          "Banyan Vines";
-      }
-      enum e164withNsap {
-        value "15";
-        description
-          "E.164 with NSAP format subaddress";
-        reference
-          "ATM Forum UNI 3.1";
-      }
-      enum dns {
-        value "16";
-        description
-          "DNS (Domain Name System)";
-      }
-      enum distinguishedName {
-        value "17";
-        description
-          "Distinguished Name (per X.500)";
-      }
-      enum asNumber {
-        value "18";
-        description
-          "Autonomous System Number";
-      }
-      enum xtpOverIpv4 {
-        value "19";
-        description
-          "XTP over IP version 4";
-      }
-      enum xtpOverIpv6 {
-        value "20";
-        description
-          "XTP over IP version 6";
-      }
-      enum xtpNativeModeXTP {
-        value "21";
-        description
-          "XTP native mode XTP";
-      }
-      enum fibreChannelWWPN {
-        value "22";
-        description
-          "Fibre Channel World-Wide Port Name";
-      }
-      enum fibreChannelWWNN {
-        value "23";
-        description
-          "Fibre Channel World-Wide Node Name";
-      }
-      enum gwid {
-        value "24";
-        description
-          "Gateway Identifier";
-      }
-      // FIXME: This one is actually called "afi" in the MIB, but
-      // that must be a mistake.
-      enum l2vpn {
-        value "25";
-        description
-          "AFI for L2VPN information";
-        reference
-          "RFC 4761: Virtual Private LAN Service (VPLS): Using BGP
-           for Auto-Discovery and Signaling
-
-           RFC 6074: Provisioning, Auto-Discovery, and Signaling in
-           Layer 2 Virtual Private Networks (L2VPNs)";
-      }
-      enum mplsTpSectionEndpointIdentifier {
-        value "26";
-        description
-          "MPLS-TP Section Endpoint Identifier";
-        reference
-          "draft-ietf-mpls-gach-adv";
-      }
-      enum mplsTpLspEndpointIdentifier {
-        value "27";
-        description
-          "MPLS-TP LSP Endpoint Identifier";
-        reference
-          "draft-ietf-mpls-gach-adv";
-      }
-      enum mplsTpPseudowireEndpointIdentifier {
-        value "28";
-        description
-          "MPLS-TP Pseudowire Endpoint Identifier";
-        reference
-          "draft-ietf-mpls-gach-adv";
-      }
-      enum eigrpCommonServiceFamily {
-        value "16384";
-        description
-          "EIGRP Common Service Family";
-      }
-      enum eigrpIpv4ServiceFamily {
-        value "16385";
-        description
-          "EIGRP IPv4 Service Family";
-      }
-      enum eigrpIpv6ServiceFamily {
-        value "16386";
-        description
-          "EIGRP IPv6 Service Family";
-      }
-      enum lispCanonicalAddressFormat {
-        value "16387";
-        description
-          "LISP Canonical Address Format (LCAF)";
-      }
-      enum bgpLs {
-        value "16388";
-        description
-          "BGP-LS";
-        reference
-          "draft-ietf-idr-ls-distribution";
-      }
-      enum 48BitMac {
-        value "16389";
-        description
-          "48-bit MAC";
-        reference
-          "draft-eastlake-rfc5342bis";
-      }
-      enum 64BitMac {
-        value "16390";
-        description
-          "64-bit MAC";
-        reference
-          "draft-eastlake-rfc5342bis";
-      }
-      // value 65535 is reserved by IANA
-    }
-    description
-      "This typedef is a YANG enumeration of IANA-registered address
-       family numbers (AFN).";
-    reference
-      "IANA Address Family Numbers registry.
-       <http://www.iana.org/assignments/address-family-numbers>";
-  }
-
-  typedef subsequent-address-family {
-    type enumeration {
-      // value 0 is reserved by IANA
-      enum nlriUnicast {
-        value "1";
-        description
-          "Network Layer Reachability Information used for unicast
-           forwarding";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum nlriMulticast {
-        value "2";
-        description
-          "Network Layer Reachability Information used for multicast
-           forwarding";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      // value 3 is reserved by IANA
-      enum nlriMpls {
-        value "4";
-        description
-          "Network Layer Reachability Information (NLRI) with MPLS
-           Labels";
-        reference
-          "RFC 3107: Carrying Label Information in BGP-4";
-      }
-      enum mcastVpn {
-        value "5";
-        description
-          "MCAST-VPN";
-        reference
-          "RFC 6514: BGP Encodings and Procedures for Multicast in
-           MPLS/BGP IP VPNs";
-      }
-      enum nlriDynamicMsPw {
-        value "6";
-        status "obsolete";
-        description
-          "Network Layer Reachability Information used for Dynamic
-           Placement of Multi-Segment Pseudowires (TEMPORARY -
-           Expires 2008-08-23)";
-        reference
-          "draft-ietf-pwe3-dynamic-ms-pw: Dynamic Placement of Multi
-           Segment Pseudowires";
-      }
-      enum encapsulation {
-        value "7";
-        description
-          "Encapsulation SAFI";
-        reference
-          "RFC 5512: The BGP Encapsulation Subsequent Address Family
-           Identifier (SAFI) and the BGP Tunnel Encapsulation
-           Attribute";
-      }
-      enum tunnel {
-        value "64";
-        status "obsolete";
-        description
-          "Tunnel SAFI";
-        reference
-          "draft-nalawade-kapoor-tunnel-safi: BGP Tunnel SAFI";
-      }
-      enum vpls {
-        value "65";
-        description
-          "Virtual Private LAN Service (VPLS)";
-        reference
-          "RFC 4761: Virtual Private LAN Service (VPLS): Using BGP
-           for Auto-Discovery and Signaling
-
-           RFC 6074: Provisioning, Auto-Discovery, and Signaling in
-           Layer 2 Virtual Private Networks (L2VPNs)";
-      }
-      enum bgpMdt {
-        value "66";
-        description
-          "BGP MDT SAFI";
-        reference
-          "RFC 6037: Cisco Systems' Solution for Multicast in
-           BGP/MPLS IP VPNs";
-      }
-      enum bgp4over6 {
-        value "67";
-        description
-          "BGP 4over6 SAFI";
-        reference
-          "RFC 5747: 4over6 Transit Solution Using IP Encapsulation
-           and MP-BGP Extensions";
-      }
-      enum bgp6over4 {
-        value "68";
-        description
-          "BGP 6over4 SAFI";
-      }
-      enum l1VpnAutoDiscovery {
-        value "69";
-        description
-          "Layer-1 VPN auto-discovery information";
-        reference
-          "RFC 5195: BGP-Based Auto-Discovery for Layer-1 VPNs";
-      }
-      enum mplsVpn {
-        value "128";
-        description
-          "MPLS-labeled VPN address";
-        reference
-          "RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs)";
-      }
-      enum multicastBgpMplsVpn {
-        value "129";
-        description
-          "Multicast for BGP/MPLS IP Virtual Private Networks
-           (VPNs)";
-        reference
-          "RFC 6513: Multicast in MPLS/BGP IP VPNs
-
-           RFC 6514: BGP Encodings and Procedures for Multicast in
-           MPLS/BGP IP VPNs";
-      }
-      // values 130-131 are reserved by IANA
-      enum routeTargetConstraints {
-        value "132";
-        description
-          "Route Target constraints";
-        reference
-          "RFC 4684: Constrained Route Distribution for Border
-           Gateway Protocol/MultiProtocol Label Switching (BGP/MPLS)
-           Internet Protocol (IP) Virtual Private Networks (VPNs)";
-      }
-      enum ipv4DissFlow {
-        value "133";
-        description
-          "IPv4 dissemination of flow specification rules";
-        reference
-          "RFC 5575: Dissemination of Flow Specification Rules";
-      }
-      enum vpnv4DissFlow {
-        value "134";
-        description
-          "VPNv4 dissemination of flow specification rules";
-        reference
-          "RFC 5575: Dissemination of Flow Specification Rules";
-      }
-      // values 135-139 are reserved by IANA
-      enum vpnAutoDiscovery {
-        value "140";
-        status "obsolete";
-        description
-          "VPN auto-discovery";
-        reference
-          "draft-ietf-l3vpn-bgpvpn-auto: Using BGP as an
-           Auto-Discovery Mechanism for VR-based Layer-3 VPNs";
-      }
-      // values 141-240 are reserved by IANA
-      enum private241 {
-        value "241";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private242 {
-        value "242";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private243 {
-        value "243";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private244 {
-        value "244";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private245 {
-        value "245";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private246 {
-        value "246";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private247 {
-        value "247";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private248 {
-        value "248";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private249 {
-        value "249";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private250 {
-        value "250";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private251 {
-        value "251";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private252 {
-        value "252";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private253 {
-        value "253";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private254 {
-        value "254";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      // value 255 is reserved by IANA
-    }
-    description
-      "This typedef is a YANG enumeration of IANA-registered
-       subsequent address family identifiers (SAFI).";
-    reference
-      "IANA SAFI Values registry.
-       <http://www.iana.org/assignments/safi-namespace>";
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/iana-if-type@2017-01-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/iana-if-type@2017-01-19.yang
deleted file mode 100644 (file)
index 4a684aa..0000000
+++ /dev/null
@@ -1,1620 +0,0 @@
-module iana-if-type {
-  namespace "urn:ietf:params:xml:ns:yang:iana-if-type";
-  prefix ianaift;
-
-  import ietf-interfaces {
-    prefix if;
-  }
-
-  organization "IANA";
-  contact
-    "        Internet Assigned Numbers Authority
-
-     Postal: ICANN
-             12025 Waterfront Drive, Suite 300
-             Los Angeles, CA 90094-2536
-             United States
-
-     Tel:    +1 310 301 5800
-     <mailto:iana&iana.org>";
-  description
-    "This YANG module defines YANG identities for IANA-registered
-     interface types.
-
-     This YANG module is maintained by IANA and reflects the
-     'ifType definitions' registry.
-
-     The latest revision of this YANG module can be obtained from
-     the IANA web site.
-
-     Requests for new values should be made to IANA via
-     email (iana&iana.org).
-
-     Copyright (c) 2014 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     The initial version of this YANG module is part of RFC 7224;
-     see the RFC itself for full legal notices.";
-  reference
-    "IANA 'ifType definitions' registry.
-     <http://www.iana.org/assignments/smi-numbers>";
-
-  revision 2017-01-19 {
-    description
-      "Registered ifType 289.";
-  }
-
-  revision 2016-11-23 {
-    description
-      "Registered ifTypes 283-288.";
-  }
-
-  revision 2016-06-09 {
-    description
-      "Registered ifType 282.";
-  }
-  revision 2016-05-03 {
-    description
-      "Registered ifType 281.";
-  }
-  revision 2015-06-12 {
-    description
-      "Corrected formatting issue.";
-  }
-  revision 2014-09-24 {
-    description
-      "Registered ifType 280.";
-  }
-  revision 2014-09-19 {
-    description
-      "Registered ifType 279.";
-  }
-  revision 2014-07-03 {
-    description
-      "Registered ifTypes 277-278.";
-  }
-  revision 2014-05-19 {
-    description
-      "Updated the contact address.";
-  }
-  revision 2014-05-08 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 7224: IANA Interface Type YANG Module";
-  }
-
-  identity iana-interface-type {
-    base if:interface-type;
-    description
-      "This identity is used as a base for all interface types
-       defined in the 'ifType definitions' registry.";
-  }
-
-  identity other {
-    base iana-interface-type;
-  }
-  identity regular1822 {
-    base iana-interface-type;
-  }
-  identity hdh1822 {
-    base iana-interface-type;
-  }
-  identity ddnX25 {
-    base iana-interface-type;
-  }
-  identity rfc877x25 {
-    base iana-interface-type;
-    reference
-      "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer";
-  }
-  identity ethernetCsmacd {
-    base iana-interface-type;
-    description
-      "For all Ethernet-like interfaces, regardless of speed,
-       as per RFC 3635.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity iso88023Csmacd {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Deprecated via RFC 3635.
-       Use ethernetCsmacd(6) instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity iso88024TokenBus {
-    base iana-interface-type;
-  }
-  identity iso88025TokenRing {
-    base iana-interface-type;
-  }
-  identity iso88026Man {
-    base iana-interface-type;
-  }
-  identity starLan {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Deprecated via RFC 3635.
-       Use ethernetCsmacd(6) instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity proteon10Mbit {
-    base iana-interface-type;
-  }
-  identity proteon80Mbit {
-    base iana-interface-type;
-  }
-  identity hyperchannel {
-    base iana-interface-type;
-  }
-  identity fddi {
-    base iana-interface-type;
-    reference
-      "RFC 1512 - FDDI Management Information Base";
-  }
-  identity lapb {
-    base iana-interface-type;
-    reference
-      "RFC 1381 - SNMP MIB Extension for X.25 LAPB";
-  }
-  identity sdlc {
-    base iana-interface-type;
-  }
-  identity ds1 {
-    base iana-interface-type;
-    description
-      "DS1-MIB.";
-    reference
-      "RFC 4805 - Definitions of Managed Objects for the
-                  DS1, J1, E1, DS2, and E2 Interface Types";
-  }
-  identity e1 {
-    base iana-interface-type;
-    status obsolete;
-    description
-      "Obsolete; see DS1-MIB.";
-    reference
-      "RFC 4805 - Definitions of Managed Objects for the
-                  DS1, J1, E1, DS2, and E2 Interface Types";
-  }
-  identity basicISDN {
-    base iana-interface-type;
-    description
-      "No longer used.  See also RFC 2127.";
-  }
-  identity primaryISDN {
-    base iana-interface-type;
-    description
-      "No longer used.  See also RFC 2127.";
-  }
-  identity propPointToPointSerial {
-    base iana-interface-type;
-    description
-      "Proprietary serial.";
-  }
-  identity ppp {
-    base iana-interface-type;
-  }
-  identity softwareLoopback {
-    base iana-interface-type;
-  }
-  identity eon {
-    base iana-interface-type;
-    description
-      "CLNP over IP.";
-  }
-  identity ethernet3Mbit {
-    base iana-interface-type;
-  }
-  identity nsip {
-    base iana-interface-type;
-    description
-      "XNS over IP.";
-  }
-  identity slip {
-    base iana-interface-type;
-    description
-      "Generic SLIP.";
-  }
-  identity ultra {
-    base iana-interface-type;
-    description
-      "Ultra Technologies.";
-  }
-  identity ds3 {
-    base iana-interface-type;
-    description
-      "DS3-MIB.";
-    reference
-      "RFC 3896 - Definitions of Managed Objects for the
-                  DS3/E3 Interface Type";
-  }
-  identity sip {
-    base iana-interface-type;
-    description
-      "SMDS, coffee.";
-    reference
-      "RFC 1694 - Definitions of Managed Objects for SMDS
-                  Interfaces using SMIv2";
-  }
-  identity frameRelay {
-    base iana-interface-type;
-    description
-      "DTE only.";
-    reference
-      "RFC 2115 - Management Information Base for Frame Relay
-                  DTEs Using SMIv2";
-  }
-  identity rs232 {
-    base iana-interface-type;
-    reference
-      "RFC 1659 - Definitions of Managed Objects for RS-232-like
-                  Hardware Devices using SMIv2";
-  }
-  identity para {
-    base iana-interface-type;
-    description
-      "Parallel-port.";
-    reference
-      "RFC 1660 - Definitions of Managed Objects for
-                  Parallel-printer-like Hardware Devices using
-                  SMIv2";
-  }
-  identity arcnet {
-    base iana-interface-type;
-    description
-      "ARCnet.";
-  }
-  identity arcnetPlus {
-    base iana-interface-type;
-    description
-      "ARCnet Plus.";
-  }
-  identity atm {
-    base iana-interface-type;
-    description
-      "ATM cells.";
-  }
-  identity miox25 {
-    base iana-interface-type;
-    reference
-      "RFC 1461 - SNMP MIB extension for Multiprotocol
-                  Interconnect over X.25";
-  }
-  identity sonet {
-    base iana-interface-type;
-    description
-      "SONET or SDH.";
-  }
-  identity x25ple {
-    base iana-interface-type;
-    reference
-      "RFC 2127 - ISDN Management Information Base using SMIv2";
-  }
-  identity iso88022llc {
-    base iana-interface-type;
-  }
-  identity localTalk {
-    base iana-interface-type;
-  }
-  identity smdsDxi {
-    base iana-interface-type;
-  }
-  identity frameRelayService {
-    base iana-interface-type;
-    description
-      "FRNETSERV-MIB.";
-    reference
-      "RFC 2954 - Definitions of Managed Objects for Frame
-                  Relay Service";
-  }
-  identity v35 {
-    base iana-interface-type;
-  }
-  identity hssi {
-    base iana-interface-type;
-  }
-  identity hippi {
-    base iana-interface-type;
-  }
-  identity modem {
-    base iana-interface-type;
-    description
-      "Generic modem.";
-  }
-  identity aal5 {
-    base iana-interface-type;
-    description
-      "AAL5 over ATM.";
-  }
-  identity sonetPath {
-    base iana-interface-type;
-  }
-  identity sonetVT {
-    base iana-interface-type;
-  }
-  identity smdsIcip {
-    base iana-interface-type;
-    description
-      "SMDS InterCarrier Interface.";
-  }
-  identity propVirtual {
-    base iana-interface-type;
-    description
-      "Proprietary virtual/internal.";
-    reference
-      "RFC 2863 - The Interfaces Group MIB";
-  }
-  identity propMultiplexor {
-    base iana-interface-type;
-    description
-      "Proprietary multiplexing.";
-    reference
-      "RFC 2863 - The Interfaces Group MIB";
-  }
-  identity ieee80212 {
-    base iana-interface-type;
-    description
-      "100BaseVG.";
-  }
-  identity fibreChannel {
-    base iana-interface-type;
-    description
-      "Fibre Channel.";
-  }
-  identity hippiInterface {
-    base iana-interface-type;
-    description
-      "HIPPI interfaces.";
-  }
-  identity frameRelayInterconnect {
-    base iana-interface-type;
-    status obsolete;
-    description
-      "Obsolete; use either
-       frameRelay(32) or frameRelayService(44).";
-  }
-  identity aflane8023 {
-    base iana-interface-type;
-    description
-      "ATM Emulated LAN for 802.3.";
-  }
-  identity aflane8025 {
-    base iana-interface-type;
-    description
-      "ATM Emulated LAN for 802.5.";
-  }
-  identity cctEmul {
-    base iana-interface-type;
-    description
-      "ATM Emulated circuit.";
-  }
-  identity fastEther {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Obsoleted via RFC 3635.
-       ethernetCsmacd(6) should be used instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity isdn {
-    base iana-interface-type;
-    description
-      "ISDN and X.25.";
-    reference
-      "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN
-                  in the Packet Mode";
-  }
-  identity v11 {
-    base iana-interface-type;
-    description
-      "CCITT V.11/X.21.";
-  }
-  identity v36 {
-    base iana-interface-type;
-    description
-      "CCITT V.36.";
-  }
-  identity g703at64k {
-    base iana-interface-type;
-    description
-      "CCITT G703 at 64Kbps.";
-  }
-  identity g703at2mb {
-    base iana-interface-type;
-    status obsolete;
-    description
-      "Obsolete; see DS1-MIB.";
-  }
-  identity qllc {
-    base iana-interface-type;
-    description
-      "SNA QLLC.";
-  }
-  identity fastEtherFX {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Obsoleted via RFC 3635.
-       ethernetCsmacd(6) should be used instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity channel {
-    base iana-interface-type;
-    description
-      "Channel.";
-  }
-  identity ieee80211 {
-    base iana-interface-type;
-    description
-      "Radio spread spectrum.";
-  }
-  identity ibm370parChan {
-    base iana-interface-type;
-    description
-      "IBM System 360/370 OEMI Channel.";
-  }
-  identity escon {
-    base iana-interface-type;
-    description
-      "IBM Enterprise Systems Connection.";
-  }
-  identity dlsw {
-    base iana-interface-type;
-    description
-      "Data Link Switching.";
-  }
-  identity isdns {
-    base iana-interface-type;
-    description
-      "ISDN S/T interface.";
-  }
-  identity isdnu {
-    base iana-interface-type;
-    description
-      "ISDN U interface.";
-  }
-  identity lapd {
-    base iana-interface-type;
-    description
-      "Link Access Protocol D.";
-  }
-  identity ipSwitch {
-    base iana-interface-type;
-    description
-      "IP Switching Objects.";
-  }
-  identity rsrb {
-    base iana-interface-type;
-    description
-      "Remote Source Route Bridging.";
-  }
-  identity atmLogical {
-    base iana-interface-type;
-    description
-      "ATM Logical Port.";
-    reference
-      "RFC 3606 - Definitions of Supplemental Managed Objects
-                  for ATM Interface";
-  }
-  identity ds0 {
-    base iana-interface-type;
-    description
-      "Digital Signal Level 0.";
-    reference
-      "RFC 2494 - Definitions of Managed Objects for the DS0
-                  and DS0 Bundle Interface Type";
-  }
-  identity ds0Bundle {
-    base iana-interface-type;
-    description
-      "Group of ds0s on the same ds1.";
-    reference
-      "RFC 2494 - Definitions of Managed Objects for the DS0
-                  and DS0 Bundle Interface Type";
-  }
-  identity bsc {
-    base iana-interface-type;
-    description
-      "Bisynchronous Protocol.";
-  }
-  identity async {
-    base iana-interface-type;
-    description
-      "Asynchronous Protocol.";
-  }
-  identity cnr {
-    base iana-interface-type;
-    description
-      "Combat Net Radio.";
-  }
-  identity iso88025Dtr {
-    base iana-interface-type;
-    description
-      "ISO 802.5r DTR.";
-  }
-  identity eplrs {
-    base iana-interface-type;
-    description
-      "Ext Pos Loc Report Sys.";
-  }
-  identity arap {
-    base iana-interface-type;
-    description
-      "Appletalk Remote Access Protocol.";
-  }
-  identity propCnls {
-    base iana-interface-type;
-    description
-      "Proprietary Connectionless Protocol.";
-  }
-  identity hostPad {
-    base iana-interface-type;
-    description
-      "CCITT-ITU X.29 PAD Protocol.";
-  }
-  identity termPad {
-    base iana-interface-type;
-    description
-      "CCITT-ITU X.3 PAD Facility.";
-  }
-  identity frameRelayMPI {
-    base iana-interface-type;
-    description
-      "Multiproto Interconnect over FR.";
-  }
-  identity x213 {
-    base iana-interface-type;
-    description
-      "CCITT-ITU X213.";
-  }
-  identity adsl {
-    base iana-interface-type;
-    description
-      "Asymmetric Digital Subscriber Loop.";
-  }
-  identity radsl {
-    base iana-interface-type;
-    description
-      "Rate-Adapt. Digital Subscriber Loop.";
-  }
-  identity sdsl {
-    base iana-interface-type;
-    description
-      "Symmetric Digital Subscriber Loop.";
-  }
-  identity vdsl {
-    base iana-interface-type;
-    description
-      "Very H-Speed Digital Subscrib. Loop.";
-  }
-  identity iso88025CRFPInt {
-    base iana-interface-type;
-    description
-      "ISO 802.5 CRFP.";
-  }
-  identity myrinet {
-    base iana-interface-type;
-    description
-      "Myricom Myrinet.";
-  }
-  identity voiceEM {
-    base iana-interface-type;
-    description
-      "Voice recEive and transMit.";
-  }
-  identity voiceFXO {
-    base iana-interface-type;
-    description
-      "Voice Foreign Exchange Office.";
-  }
-  identity voiceFXS {
-    base iana-interface-type;
-    description
-      "Voice Foreign Exchange Station.";
-  }
-  identity voiceEncap {
-    base iana-interface-type;
-    description
-      "Voice encapsulation.";
-  }
-  identity voiceOverIp {
-    base iana-interface-type;
-    description
-      "Voice over IP encapsulation.";
-  }
-  identity atmDxi {
-    base iana-interface-type;
-    description
-      "ATM DXI.";
-  }
-  identity atmFuni {
-    base iana-interface-type;
-    description
-      "ATM FUNI.";
-  }
-  identity atmIma {
-    base iana-interface-type;
-    description
-      "ATM IMA.";
-  }
-  identity pppMultilinkBundle {
-    base iana-interface-type;
-    description
-      "PPP Multilink Bundle.";
-  }
-  identity ipOverCdlc {
-    base iana-interface-type;
-    description
-      "IBM ipOverCdlc.";
-  }
-  identity ipOverClaw {
-    base iana-interface-type;
-    description
-      "IBM Common Link Access to Workstn.";
-  }
-  identity stackToStack {
-    base iana-interface-type;
-    description
-      "IBM stackToStack.";
-  }
-  identity virtualIpAddress {
-    base iana-interface-type;
-    description
-      "IBM VIPA.";
-  }
-  identity mpc {
-    base iana-interface-type;
-    description
-      "IBM multi-protocol channel support.";
-  }
-  identity ipOverAtm {
-    base iana-interface-type;
-    description
-      "IBM ipOverAtm.";
-    reference
-      "RFC 2320 - Definitions of Managed Objects for Classical IP
-                  and ARP Over ATM Using SMIv2 (IPOA-MIB)";
-  }
-  identity iso88025Fiber {
-    base iana-interface-type;
-    description
-      "ISO 802.5j Fiber Token Ring.";
-  }
-  identity tdlc {
-    base iana-interface-type;
-    description
-      "IBM twinaxial data link control.";
-  }
-  identity gigabitEthernet {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Obsoleted via RFC 3635.
-       ethernetCsmacd(6) should be used instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity hdlc {
-    base iana-interface-type;
-    description
-      "HDLC.";
-  }
-  identity lapf {
-    base iana-interface-type;
-    description
-      "LAP F.";
-  }
-  identity v37 {
-    base iana-interface-type;
-    description
-      "V.37.";
-  }
-  identity x25mlp {
-    base iana-interface-type;
-    description
-      "Multi-Link Protocol.";
-  }
-  identity x25huntGroup {
-    base iana-interface-type;
-    description
-      "X25 Hunt Group.";
-  }
-  identity transpHdlc {
-    base iana-interface-type;
-    description
-      "Transp HDLC.";
-  }
-  identity interleave {
-    base iana-interface-type;
-    description
-      "Interleave channel.";
-  }
-  identity fast {
-    base iana-interface-type;
-    description
-      "Fast channel.";
-  }
-  identity ip {
-    base iana-interface-type;
-    description
-      "IP (for APPN HPR in IP networks).";
-  }
-  identity docsCableMaclayer {
-    base iana-interface-type;
-    description
-      "CATV Mac Layer.";
-  }
-  identity docsCableDownstream {
-    base iana-interface-type;
-    description
-      "CATV Downstream interface.";
-  }
-  identity docsCableUpstream {
-    base iana-interface-type;
-    description
-      "CATV Upstream interface.";
-  }
-  identity a12MppSwitch {
-    base iana-interface-type;
-    description
-      "Avalon Parallel Processor.";
-  }
-  identity tunnel {
-    base iana-interface-type;
-    description
-      "Encapsulation interface.";
-  }
-  identity coffee {
-    base iana-interface-type;
-    description
-      "Coffee pot.";
-    reference
-      "RFC 2325 - Coffee MIB";
-  }
-  identity ces {
-    base iana-interface-type;
-    description
-      "Circuit Emulation Service.";
-  }
-  identity atmSubInterface {
-    base iana-interface-type;
-    description
-      "ATM Sub Interface.";
-  }
-  identity l2vlan {
-    base iana-interface-type;
-    description
-      "Layer 2 Virtual LAN using 802.1Q.";
-  }
-  identity l3ipvlan {
-    base iana-interface-type;
-    description
-      "Layer 3 Virtual LAN using IP.";
-  }
-  identity l3ipxvlan {
-    base iana-interface-type;
-    description
-      "Layer 3 Virtual LAN using IPX.";
-  }
-  identity digitalPowerline {
-    base iana-interface-type;
-    description
-      "IP over Power Lines.";
-  }
-  identity mediaMailOverIp {
-    base iana-interface-type;
-    description
-      "Multimedia Mail over IP.";
-  }
-  identity dtm {
-    base iana-interface-type;
-    description
-      "Dynamic synchronous Transfer Mode.";
-  }
-  identity dcn {
-    base iana-interface-type;
-    description
-      "Data Communications Network.";
-  }
-  identity ipForward {
-    base iana-interface-type;
-    description
-      "IP Forwarding Interface.";
-  }
-  identity msdsl {
-    base iana-interface-type;
-    description
-      "Multi-rate Symmetric DSL.";
-  }
-  identity ieee1394 {
-    base iana-interface-type;
-
-    description
-      "IEEE1394 High Performance Serial Bus.";
-  }
-  identity if-gsn {
-    base iana-interface-type;
-    description
-      "HIPPI-6400.";
-  }
-  identity dvbRccMacLayer {
-    base iana-interface-type;
-    description
-      "DVB-RCC MAC Layer.";
-  }
-  identity dvbRccDownstream {
-    base iana-interface-type;
-    description
-      "DVB-RCC Downstream Channel.";
-  }
-  identity dvbRccUpstream {
-    base iana-interface-type;
-    description
-      "DVB-RCC Upstream Channel.";
-  }
-  identity atmVirtual {
-    base iana-interface-type;
-    description
-      "ATM Virtual Interface.";
-  }
-  identity mplsTunnel {
-    base iana-interface-type;
-    description
-      "MPLS Tunnel Virtual Interface.";
-  }
-  identity srp {
-    base iana-interface-type;
-    description
-      "Spatial Reuse Protocol.";
-  }
-  identity voiceOverAtm {
-    base iana-interface-type;
-    description
-      "Voice over ATM.";
-  }
-  identity voiceOverFrameRelay {
-    base iana-interface-type;
-    description
-      "Voice Over Frame Relay.";
-  }
-  identity idsl {
-    base iana-interface-type;
-    description
-      "Digital Subscriber Loop over ISDN.";
-  }
-  identity compositeLink {
-    base iana-interface-type;
-    description
-      "Avici Composite Link Interface.";
-  }
-  identity ss7SigLink {
-    base iana-interface-type;
-    description
-      "SS7 Signaling Link.";
-  }
-  identity propWirelessP2P {
-    base iana-interface-type;
-    description
-      "Prop. P2P wireless interface.";
-  }
-  identity frForward {
-    base iana-interface-type;
-    description
-      "Frame Forward Interface.";
-  }
-  identity rfc1483 {
-    base iana-interface-type;
-    description
-      "Multiprotocol over ATM AAL5.";
-    reference
-      "RFC 1483 - Multiprotocol Encapsulation over ATM
-                  Adaptation Layer 5";
-  }
-  identity usb {
-    base iana-interface-type;
-    description
-      "USB Interface.";
-  }
-  identity ieee8023adLag {
-    base iana-interface-type;
-    description
-      "IEEE 802.3ad Link Aggregate.";
-  }
-  identity bgppolicyaccounting {
-    base iana-interface-type;
-    description
-      "BGP Policy Accounting.";
-  }
-  identity frf16MfrBundle {
-    base iana-interface-type;
-    description
-      "FRF.16 Multilink Frame Relay.";
-  }
-  identity h323Gatekeeper {
-    base iana-interface-type;
-    description
-      "H323 Gatekeeper.";
-  }
-  identity h323Proxy {
-    base iana-interface-type;
-    description
-      "H323 Voice and Video Proxy.";
-  }
-  identity mpls {
-    base iana-interface-type;
-    description
-      "MPLS.";
-  }
-  identity mfSigLink {
-    base iana-interface-type;
-    description
-      "Multi-frequency signaling link.";
-  }
-  identity hdsl2 {
-    base iana-interface-type;
-    description
-      "High Bit-Rate DSL - 2nd generation.";
-  }
-  identity shdsl {
-    base iana-interface-type;
-    description
-      "Multirate HDSL2.";
-  }
-  identity ds1FDL {
-    base iana-interface-type;
-    description
-      "Facility Data Link (4Kbps) on a DS1.";
-  }
-  identity pos {
-    base iana-interface-type;
-    description
-      "Packet over SONET/SDH Interface.";
-  }
-  identity dvbAsiIn {
-    base iana-interface-type;
-    description
-      "DVB-ASI Input.";
-  }
-  identity dvbAsiOut {
-    base iana-interface-type;
-    description
-      "DVB-ASI Output.";
-  }
-  identity plc {
-    base iana-interface-type;
-    description
-      "Power Line Communications.";
-  }
-  identity nfas {
-    base iana-interface-type;
-    description
-      "Non-Facility Associated Signaling.";
-  }
-  identity tr008 {
-    base iana-interface-type;
-    description
-      "TR008.";
-  }
-  identity gr303RDT {
-    base iana-interface-type;
-    description
-      "Remote Digital Terminal.";
-  }
-  identity gr303IDT {
-    base iana-interface-type;
-    description
-      "Integrated Digital Terminal.";
-  }
-  identity isup {
-    base iana-interface-type;
-    description
-      "ISUP.";
-  }
-  identity propDocsWirelessMaclayer {
-    base iana-interface-type;
-    description
-      "Cisco proprietary Maclayer.";
-  }
-  identity propDocsWirelessDownstream {
-    base iana-interface-type;
-    description
-      "Cisco proprietary Downstream.";
-  }
-  identity propDocsWirelessUpstream {
-    base iana-interface-type;
-    description
-      "Cisco proprietary Upstream.";
-  }
-  identity hiperlan2 {
-    base iana-interface-type;
-    description
-      "HIPERLAN Type 2 Radio Interface.";
-  }
-  identity propBWAp2Mp {
-    base iana-interface-type;
-    description
-      "PropBroadbandWirelessAccesspt2Multipt (use of this value
-       for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f
-       is deprecated, and ieee80216WMAN(237) should be used
-       instead).";
-  }
-  identity sonetOverheadChannel {
-    base iana-interface-type;
-    description
-      "SONET Overhead Channel.";
-  }
-  identity digitalWrapperOverheadChannel {
-    base iana-interface-type;
-    description
-      "Digital Wrapper.";
-  }
-  identity aal2 {
-    base iana-interface-type;
-    description
-      "ATM adaptation layer 2.";
-  }
-  identity radioMAC {
-    base iana-interface-type;
-    description
-      "MAC layer over radio links.";
-  }
-  identity atmRadio {
-    base iana-interface-type;
-    description
-      "ATM over radio links.";
-  }
-  identity imt {
-    base iana-interface-type;
-    description
-      "Inter-Machine Trunks.";
-  }
-  identity mvl {
-    base iana-interface-type;
-    description
-      "Multiple Virtual Lines DSL.";
-  }
-  identity reachDSL {
-    base iana-interface-type;
-    description
-      "Long Reach DSL.";
-  }
-  identity frDlciEndPt {
-    base iana-interface-type;
-    description
-      "Frame Relay DLCI End Point.";
-  }
-  identity atmVciEndPt {
-    base iana-interface-type;
-    description
-      "ATM VCI End Point.";
-  }
-  identity opticalChannel {
-    base iana-interface-type;
-    description
-      "Optical Channel.";
-  }
-  identity opticalTransport {
-    base iana-interface-type;
-    description
-      "Optical Transport.";
-  }
-  identity propAtm {
-    base iana-interface-type;
-    description
-      "Proprietary ATM.";
-  }
-  identity voiceOverCable {
-    base iana-interface-type;
-    description
-      "Voice Over Cable Interface.";
-  }
-  identity infiniband {
-    base iana-interface-type;
-    description
-      "Infiniband.";
-  }
-  identity teLink {
-    base iana-interface-type;
-    description
-      "TE Link.";
-  }
-  identity q2931 {
-    base iana-interface-type;
-    description
-      "Q.2931.";
-  }
-  identity virtualTg {
-    base iana-interface-type;
-    description
-      "Virtual Trunk Group.";
-  }
-  identity sipTg {
-    base iana-interface-type;
-    description
-      "SIP Trunk Group.";
-  }
-  identity sipSig {
-    base iana-interface-type;
-    description
-      "SIP Signaling.";
-  }
-  identity docsCableUpstreamChannel {
-    base iana-interface-type;
-    description
-      "CATV Upstream Channel.";
-  }
-  identity econet {
-    base iana-interface-type;
-    description
-      "Acorn Econet.";
-  }
-  identity pon155 {
-    base iana-interface-type;
-    description
-      "FSAN 155Mb Symetrical PON interface.";
-  }
-  identity pon622 {
-    base iana-interface-type;
-    description
-      "FSAN 622Mb Symetrical PON interface.";
-  }
-  identity bridge {
-    base iana-interface-type;
-    description
-      "Transparent bridge interface.";
-  }
-  identity linegroup {
-    base iana-interface-type;
-    description
-      "Interface common to multiple lines.";
-  }
-  identity voiceEMFGD {
-    base iana-interface-type;
-    description
-      "Voice E&M Feature Group D.";
-  }
-  identity voiceFGDEANA {
-    base iana-interface-type;
-    description
-      "Voice FGD Exchange Access North American.";
-  }
-  identity voiceDID {
-    base iana-interface-type;
-    description
-      "Voice Direct Inward Dialing.";
-  }
-  identity mpegTransport {
-    base iana-interface-type;
-    description
-      "MPEG transport interface.";
-  }
-  identity sixToFour {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "6to4 interface (DEPRECATED).";
-    reference
-      "RFC 4087 - IP Tunnel MIB";
-  }
-  identity gtp {
-    base iana-interface-type;
-    description
-      "GTP (GPRS Tunneling Protocol).";
-  }
-  identity pdnEtherLoop1 {
-    base iana-interface-type;
-    description
-      "Paradyne EtherLoop 1.";
-  }
-  identity pdnEtherLoop2 {
-    base iana-interface-type;
-    description
-      "Paradyne EtherLoop 2.";
-  }
-  identity opticalChannelGroup {
-    base iana-interface-type;
-    description
-      "Optical Channel Group.";
-  }
-  identity homepna {
-    base iana-interface-type;
-    description
-      "HomePNA ITU-T G.989.";
-  }
-  identity gfp {
-    base iana-interface-type;
-    description
-      "Generic Framing Procedure (GFP).";
-  }
-  identity ciscoISLvlan {
-    base iana-interface-type;
-    description
-      "Layer 2 Virtual LAN using Cisco ISL.";
-  }
-  identity actelisMetaLOOP {
-    base iana-interface-type;
-    description
-      "Acteleis proprietary MetaLOOP High Speed Link.";
-  }
-  identity fcipLink {
-    base iana-interface-type;
-    description
-      "FCIP Link.";
-  }
-  identity rpr {
-    base iana-interface-type;
-    description
-      "Resilient Packet Ring Interface Type.";
-  }
-  identity qam {
-    base iana-interface-type;
-    description
-      "RF Qam Interface.";
-  }
-  identity lmp {
-    base iana-interface-type;
-    description
-      "Link Management Protocol.";
-    reference
-      "RFC 4327 - Link Management Protocol (LMP) Management
-                  Information Base (MIB)";
-  }
-  identity cblVectaStar {
-    base iana-interface-type;
-    description
-      "Cambridge Broadband Networks Limited VectaStar.";
-  }
-  identity docsCableMCmtsDownstream {
-    base iana-interface-type;
-    description
-      "CATV Modular CMTS Downstream Interface.";
-  }
-  identity adsl2 {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Asymmetric Digital Subscriber Loop Version 2
-       (DEPRECATED/OBSOLETED - please use adsl2plus(238)
-       instead).";
-    reference
-      "RFC 4706 - Definitions of Managed Objects for Asymmetric
-                  Digital Subscriber Line 2 (ADSL2)";
-  }
-  identity macSecControlledIF {
-    base iana-interface-type;
-    description
-      "MACSecControlled.";
-  }
-  identity macSecUncontrolledIF {
-    base iana-interface-type;
-    description
-      "MACSecUncontrolled.";
-  }
-  identity aviciOpticalEther {
-    base iana-interface-type;
-    description
-      "Avici Optical Ethernet Aggregate.";
-  }
-  identity atmbond {
-    base iana-interface-type;
-    description
-      "atmbond.";
-  }
-  identity voiceFGDOS {
-    base iana-interface-type;
-    description
-      "Voice FGD Operator Services.";
-  }
-  identity mocaVersion1 {
-    base iana-interface-type;
-    description
-      "MultiMedia over Coax Alliance (MoCA) Interface
-       as documented in information provided privately to IANA.";
-  }
-  identity ieee80216WMAN {
-    base iana-interface-type;
-    description
-      "IEEE 802.16 WMAN interface.";
-  }
-  identity adsl2plus {
-    base iana-interface-type;
-    description
-      "Asymmetric Digital Subscriber Loop Version 2 -
-       Version 2 Plus and all variants.";
-  }
-  identity dvbRcsMacLayer {
-    base iana-interface-type;
-    description
-      "DVB-RCS MAC Layer.";
-    reference
-      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-  }
-  identity dvbTdm {
-    base iana-interface-type;
-    description
-      "DVB Satellite TDM.";
-    reference
-      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-  }
-  identity dvbRcsTdma {
-    base iana-interface-type;
-    description
-      "DVB-RCS TDMA.";
-    reference
-      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-  }
-  identity x86Laps {
-    base iana-interface-type;
-    description
-      "LAPS based on ITU-T X.86/Y.1323.";
-  }
-  identity wwanPP {
-    base iana-interface-type;
-    description
-      "3GPP WWAN.";
-  }
-  identity wwanPP2 {
-    base iana-interface-type;
-    description
-      "3GPP2 WWAN.";
-  }
-  identity voiceEBS {
-    base iana-interface-type;
-    description
-      "Voice P-phone EBS physical interface.";
-  }
-  identity ifPwType {
-    base iana-interface-type;
-    description
-      "Pseudowire interface type.";
-    reference
-      "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)";
-  }
-  identity ilan {
-    base iana-interface-type;
-    description
-      "Internal LAN on a bridge per IEEE 802.1ap.";
-  }
-  identity pip {
-    base iana-interface-type;
-    description
-      "Provider Instance Port on a bridge per IEEE 802.1ah PBB.";
-  }
-  identity aluELP {
-    base iana-interface-type;
-    description
-      "Alcatel-Lucent Ethernet Link Protection.";
-  }
-  identity gpon {
-    base iana-interface-type;
-    description
-      "Gigabit-capable passive optical networks (G-PON) as per
-       ITU-T G.948.";
-  }
-  identity vdsl2 {
-    base iana-interface-type;
-    description
-      "Very high speed digital subscriber line Version 2
-       (as per ITU-T Recommendation G.993.2).";
-    reference
-      "RFC 5650 - Definitions of Managed Objects for Very High
-                  Speed Digital Subscriber Line 2 (VDSL2)";
-  }
-  identity capwapDot11Profile {
-    base iana-interface-type;
-    description
-      "WLAN Profile Interface.";
-    reference
-      "RFC 5834 - Control and Provisioning of Wireless Access
-                  Points (CAPWAP) Protocol Binding MIB for
-                  IEEE 802.11";
-  }
-  identity capwapDot11Bss {
-    base iana-interface-type;
-    description
-      "WLAN BSS Interface.";
-    reference
-      "RFC 5834 - Control and Provisioning of Wireless Access
-                  Points (CAPWAP) Protocol Binding MIB for
-                  IEEE 802.11";
-  }
-  identity capwapWtpVirtualRadio {
-    base iana-interface-type;
-    description
-      "WTP Virtual Radio Interface.";
-    reference
-      "RFC 5833 - Control and Provisioning of Wireless Access
-                  Points (CAPWAP) Protocol Base MIB";
-  }
-  identity bits {
-    base iana-interface-type;
-    description
-      "bitsport.";
-  }
-  identity docsCableUpstreamRfPort {
-    base iana-interface-type;
-    description
-      "DOCSIS CATV Upstream RF Port.";
-  }
-  identity cableDownstreamRfPort {
-    base iana-interface-type;
-    description
-      "CATV downstream RF Port.";
-  }
-  identity vmwareVirtualNic {
-    base iana-interface-type;
-    description
-      "VMware Virtual Network Interface.";
-  }
-  identity ieee802154 {
-    base iana-interface-type;
-    description
-      "IEEE 802.15.4 WPAN interface.";
-    reference
-      "IEEE 802.15.4-2006";
-  }
-  identity otnOdu {
-    base iana-interface-type;
-    description
-      "OTN Optical Data Unit.";
-  }
-  identity otnOtu {
-    base iana-interface-type;
-    description
-      "OTN Optical channel Transport Unit.";
-  }
-  identity ifVfiType {
-    base iana-interface-type;
-    description
-      "VPLS Forwarding Instance Interface Type.";
-  }
-  identity g9981 {
-    base iana-interface-type;
-    description
-      "G.998.1 bonded interface.";
-  }
-  identity g9982 {
-    base iana-interface-type;
-    description
-      "G.998.2 bonded interface.";
-  }
-  identity g9983 {
-    base iana-interface-type;
-    description
-      "G.998.3 bonded interface.";
-  }
-
-  identity aluEpon {
-    base iana-interface-type;
-    description
-      "Ethernet Passive Optical Networks (E-PON).";
-  }
-  identity aluEponOnu {
-    base iana-interface-type;
-    description
-      "EPON Optical Network Unit.";
-  }
-  identity aluEponPhysicalUni {
-    base iana-interface-type;
-    description
-      "EPON physical User to Network interface.";
-  }
-  identity aluEponLogicalLink {
-    base iana-interface-type;
-    description
-      "The emulation of a point-to-point link over the EPON
-       layer.";
-  }
-  identity aluGponOnu {
-    base iana-interface-type;
-    description
-      "GPON Optical Network Unit.";
-    reference
-      "ITU-T G.984.2";
-  }
-  identity aluGponPhysicalUni {
-    base iana-interface-type;
-    description
-      "GPON physical User to Network interface.";
-    reference
-      "ITU-T G.984.2";
-  }
-  identity vmwareNicTeam {
-    base iana-interface-type;
-    description
-      "VMware NIC Team.";
-  }
-  identity docsOfdmDownstream {
-    base iana-interface-type;
-    description
-      "CATV Downstream OFDM interface.";
-  }
-  identity docsOfdmaUpstream {
-    base iana-interface-type;
-    description
-      "CATV Upstream OFDMA interface.";
-  }
-  identity gfast {
-    base iana-interface-type;
-    description
-      "G.fast port.";
-    reference
-      "ITU-T G.9701";
-  }
-  identity sdci {
-    base iana-interface-type;
-    description
-      "SDCI (IO-Link).";
-    reference
-      "IEC 61131-9 Edition 1.0 2013-09";
-  }
-  identity xboxWireless {
-    base iana-interface-type;
-    description
-      "Xbox wireless.";
-  }
-  identity fastdsl {
-    base iana-interface-type;
-    description
-      "FastDSL.";
-    reference
-      "BBF TR-355";
-  }
-  identity docsCableScte55d1FwdOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-1 OOB Forward Channel.";
-  }
-  identity docsCableScte55d1RetOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-1 OOB Return Channel.";
-  }
-  identity docsCableScte55d2DsOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-2 OOB Downstream Channel.";
-  }
-  identity docsCableScte55d2UsOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-2 OOB Upstream Channel.";
-  }
-  identity docsCableNdf {
-    base iana-interface-type;
-    description
-      "Cable Narrowband Digital Forward.";
-  }
-  identity docsCableNdr {
-    base iana-interface-type;
-    description
-      "Cable Narrowband Digital Return.";
-  }
-  identity ptm {
-    base iana-interface-type;
-    description
-      "Packet Transfer Mode.";
-  }
-}
-
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-inet-types@2013-07-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-inet-types@2013-07-15.yang
deleted file mode 100644 (file)
index 5c6f139..0000000
+++ /dev/null
@@ -1,457 +0,0 @@
-module ietf-inet-types {
-
-  namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types";
-  prefix "inet";
-
-  organization
-   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-
-  contact
-   "WG Web:   <http://tools.ietf.org/wg/netmod/>
-    WG List:  <mailto:netmod@ietf.org>
-
-    WG Chair: David Kessens
-              <mailto:david.kessens@nsn.com>
-
-    WG Chair: Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>
-
-    Editor:   Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>";
-
-  description
-   "This module contains a collection of generally useful derived
-    YANG data types for Internet addresses and related things.
-
-    Copyright (c) 2013 IETF Trust and the persons identified as
-    authors of the code.  All rights reserved.
-
-    Redistribution and use in source and binary forms, with or
-    without modification, is permitted pursuant to, and subject
-    to the license terms contained in, the Simplified BSD License
-    set forth in Section 4.c of the IETF Trust's Legal Provisions
-    Relating to IETF Documents
-    (http://trustee.ietf.org/license-info).
-
-    This version of this YANG module is part of RFC 6991; see
-    the RFC itself for full legal notices.";
-
-  revision 2013-07-15 {
-    description
-     "This revision adds the following new data types:
-      - ip-address-no-zone
-      - ipv4-address-no-zone
-      - ipv6-address-no-zone";
-    reference
-     "RFC 6991: Common YANG Data Types";
-  }
-
-  revision 2010-09-24 {
-    description
-     "Initial revision.";
-    reference
-     "RFC 6021: Common YANG Data Types";
-  }
-
-  /*** collection of types related to protocol fields ***/
-
-  typedef ip-version {
-    type enumeration {
-      enum unknown {
-        value "0";
-        description
-         "An unknown or unspecified version of the Internet
-          protocol.";
-      }
-      enum ipv4 {
-        value "1";
-        description
-         "The IPv4 protocol as defined in RFC 791.";
-      }
-      enum ipv6 {
-        value "2";
-        description
-         "The IPv6 protocol as defined in RFC 2460.";
-      }
-    }
-    description
-     "This value represents the version of the IP protocol.
-
-      In the value set and its semantics, this type is equivalent
-      to the InetVersion textual convention of the SMIv2.";
-    reference
-     "RFC  791: Internet Protocol
-      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
-      RFC 4001: Textual Conventions for Internet Network Addresses";
-  }
-
-  typedef dscp {
-    type uint8 {
-      range "0..63";
-    }
-    description
-     "The dscp type represents a Differentiated Services Code Point
-      that may be used for marking packets in a traffic stream.
-      In the value set and its semantics, this type is equivalent
-      to the Dscp textual convention of the SMIv2.";
-    reference
-     "RFC 3289: Management Information Base for the Differentiated
-                Services Architecture
-      RFC 2474: Definition of the Differentiated Services Field
-                (DS Field) in the IPv4 and IPv6 Headers
-      RFC 2780: IANA Allocation Guidelines For Values In
-                the Internet Protocol and Related Headers";
-  }
-
-  typedef ipv6-flow-label {
-    type uint32 {
-      range "0..1048575";
-    }
-    description
-     "The ipv6-flow-label type represents the flow identifier or Flow
-      Label in an IPv6 packet header that may be used to
-      discriminate traffic flows.
-
-      In the value set and its semantics, this type is equivalent
-      to the IPv6FlowLabel textual convention of the SMIv2.";
-    reference
-     "RFC 3595: Textual Conventions for IPv6 Flow Label
-      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification";
-  }
-
-  typedef port-number {
-    type uint16 {
-      range "0..65535";
-    }
-    description
-     "The port-number type represents a 16-bit port number of an
-      Internet transport-layer protocol such as UDP, TCP, DCCP, or
-      SCTP.  Port numbers are assigned by IANA.  A current list of
-      all assignments is available from <http://www.iana.org/>.
-
-      Note that the port number value zero is reserved by IANA.  In
-      situations where the value zero does not make sense, it can
-      be excluded by subtyping the port-number type.
-      In the value set and its semantics, this type is equivalent
-      to the InetPortNumber textual convention of the SMIv2.";
-    reference
-     "RFC  768: User Datagram Protocol
-      RFC  793: Transmission Control Protocol
-      RFC 4960: Stream Control Transmission Protocol
-      RFC 4340: Datagram Congestion Control Protocol (DCCP)
-      RFC 4001: Textual Conventions for Internet Network Addresses";
-  }
-
-  /*** collection of types related to autonomous systems ***/
-
-  typedef as-number {
-    type uint32;
-    description
-     "The as-number type represents autonomous system numbers
-      which identify an Autonomous System (AS).  An AS is a set
-      of routers under a single technical administration, using
-      an interior gateway protocol and common metrics to route
-      packets within the AS, and using an exterior gateway
-      protocol to route packets to other ASes.  IANA maintains
-      the AS number space and has delegated large parts to the
-      regional registries.
-
-      Autonomous system numbers were originally limited to 16
-      bits.  BGP extensions have enlarged the autonomous system
-      number space to 32 bits.  This type therefore uses an uint32
-      base type without a range restriction in order to support
-      a larger autonomous system number space.
-
-      In the value set and its semantics, this type is equivalent
-      to the InetAutonomousSystemNumber textual convention of
-      the SMIv2.";
-    reference
-     "RFC 1930: Guidelines for creation, selection, and registration
-                of an Autonomous System (AS)
-      RFC 4271: A Border Gateway Protocol 4 (BGP-4)
-      RFC 4001: Textual Conventions for Internet Network Addresses
-      RFC 6793: BGP Support for Four-Octet Autonomous System (AS)
-                Number Space";
-  }
-
-  /*** collection of types related to IP addresses and hostnames ***/
-
-  typedef ip-address {
-    type union {
-      type inet:ipv4-address;
-      type inet:ipv6-address;
-    }
-    description
-     "The ip-address type represents an IP address and is IP
-      version neutral.  The format of the textual representation
-      implies the IP version.  This type supports scoped addresses
-      by allowing zone identifiers in the address format.";
-    reference
-     "RFC 4007: IPv6 Scoped Address Architecture";
-  }
-
-  typedef ipv4-address {
-    type string {
-      pattern
-        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-      +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-      + '(%[\p{N}\p{L}]+)?';
-    }
-    description
-      "The ipv4-address type represents an IPv4 address in
-       dotted-quad notation.  The IPv4 address may include a zone
-       index, separated by a % sign.
-
-       The zone index is used to disambiguate identical address
-       values.  For link-local addresses, the zone index will
-       typically be the interface index number or the name of an
-       interface.  If the zone index is not present, the default
-       zone of the device will be used.
-
-       The canonical format for the zone index is the numerical
-       format";
-  }
-
-  typedef ipv6-address {
-    type string {
-      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
-            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
-            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
-            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
-            + '(%[\p{N}\p{L}]+)?';
-      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
-            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
-            + '(%.+)?';
-    }
-    description
-     "The ipv6-address type represents an IPv6 address in full,
-      mixed, shortened, and shortened-mixed notation.  The IPv6
-      address may include a zone index, separated by a % sign.
-
-      The zone index is used to disambiguate identical address
-      values.  For link-local addresses, the zone index will
-      typically be the interface index number or the name of an
-      interface.  If the zone index is not present, the default
-      zone of the device will be used.
-
-      The canonical format of IPv6 addresses uses the textual
-      representation defined in Section 4 of RFC 5952.  The
-      canonical format for the zone index is the numerical
-      format as described in Section 11.2 of RFC 4007.";
-    reference
-     "RFC 4291: IP Version 6 Addressing Architecture
-      RFC 4007: IPv6 Scoped Address Architecture
-      RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  typedef ip-address-no-zone {
-    type union {
-      type inet:ipv4-address-no-zone;
-      type inet:ipv6-address-no-zone;
-    }
-    description
-     "The ip-address-no-zone type represents an IP address and is
-      IP version neutral.  The format of the textual representation
-      implies the IP version.  This type does not support scoped
-      addresses since it does not allow zone identifiers in the
-      address format.";
-    reference
-     "RFC 4007: IPv6 Scoped Address Architecture";
-  }
-
-  typedef ipv4-address-no-zone {
-    type inet:ipv4-address {
-      pattern '[0-9\.]*';
-    }
-    description
-      "An IPv4 address without a zone index.  This type, derived from
-       ipv4-address, may be used in situations where the zone is
-       known from the context and hence no zone index is needed.";
-  }
-
-  typedef ipv6-address-no-zone {
-    type inet:ipv6-address {
-      pattern '[0-9a-fA-F:\.]*';
-    }
-    description
-      "An IPv6 address without a zone index.  This type, derived from
-       ipv6-address, may be used in situations where the zone is
-       known from the context and hence no zone index is needed.";
-    reference
-     "RFC 4291: IP Version 6 Addressing Architecture
-      RFC 4007: IPv6 Scoped Address Architecture
-      RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  typedef ip-prefix {
-    type union {
-      type inet:ipv4-prefix;
-      type inet:ipv6-prefix;
-    }
-    description
-     "The ip-prefix type represents an IP prefix and is IP
-      version neutral.  The format of the textual representations
-      implies the IP version.";
-  }
-
-  typedef ipv4-prefix {
-    type string {
-      pattern
-         '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-       +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-       + '/(([0-9])|([1-2][0-9])|(3[0-2]))';
-    }
-    description
-     "The ipv4-prefix type represents an IPv4 address prefix.
-      The prefix length is given by the number following the
-      slash character and must be less than or equal to 32.
-
-      A prefix length value of n corresponds to an IP address
-      mask that has n contiguous 1-bits from the most
-      significant bit (MSB) and all other bits set to 0.
-
-      The canonical format of an IPv4 prefix has all bits of
-      the IPv4 address set to zero that are not part of the
-      IPv4 prefix.";
-  }
-
-  typedef ipv6-prefix {
-    type string {
-      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
-            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
-            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
-            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
-            + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))';
-      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
-            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
-            + '(/.+)';
-    }
-    description
-     "The ipv6-prefix type represents an IPv6 address prefix.
-      The prefix length is given by the number following the
-      slash character and must be less than or equal to 128.
-
-      A prefix length value of n corresponds to an IP address
-      mask that has n contiguous 1-bits from the most
-      significant bit (MSB) and all other bits set to 0.
-
-      The IPv6 address should have all bits that do not belong
-      to the prefix set to zero.
-
-      The canonical format of an IPv6 prefix has all bits of
-      the IPv6 address set to zero that are not part of the
-      IPv6 prefix.  Furthermore, the IPv6 address is represented
-      as defined in Section 4 of RFC 5952.";
-    reference
-     "RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  /*** collection of domain name and URI types ***/
-
-  typedef domain-name {
-    type string {
-      pattern
-        '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
-      + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
-      + '|\.';
-      length "1..253";
-    }
-    description
-     "The domain-name type represents a DNS domain name.  The
-      name SHOULD be fully qualified whenever possible.
-
-      Internet domain names are only loosely specified.  Section
-      3.5 of RFC 1034 recommends a syntax (modified in Section
-      2.1 of RFC 1123).  The pattern above is intended to allow
-      for current practice in domain name use, and some possible
-      future expansion.  It is designed to hold various types of
-      domain names, including names used for A or AAAA records
-      (host names) and other records, such as SRV records.  Note
-      that Internet host names have a stricter syntax (described
-      in RFC 952) than the DNS recommendations in RFCs 1034 and
-      1123, and that systems that want to store host names in
-      schema nodes using the domain-name type are recommended to
-      adhere to this stricter standard to ensure interoperability.
-
-      The encoding of DNS names in the DNS protocol is limited
-      to 255 characters.  Since the encoding consists of labels
-      prefixed by a length bytes and there is a trailing NULL
-      byte, only 253 characters can appear in the textual dotted
-      notation.
-
-      The description clause of schema nodes using the domain-name
-      type MUST describe when and how these names are resolved to
-      IP addresses.  Note that the resolution of a domain-name value
-      may require to query multiple DNS records (e.g., A for IPv4
-      and AAAA for IPv6).  The order of the resolution process and
-      which DNS record takes precedence can either be defined
-      explicitly or may depend on the configuration of the
-      resolver.
-
-      Domain-name values use the US-ASCII encoding.  Their canonical
-      format uses lowercase US-ASCII characters.  Internationalized
-      domain names MUST be A-labels as per RFC 5890.";
-    reference
-     "RFC  952: DoD Internet Host Table Specification
-      RFC 1034: Domain Names - Concepts and Facilities
-      RFC 1123: Requirements for Internet Hosts -- Application
-                and Support
-      RFC 2782: A DNS RR for specifying the location of services
-                (DNS SRV)
-      RFC 5890: Internationalized Domain Names in Applications
-                (IDNA): Definitions and Document Framework";
-  }
-
-  typedef host {
-    type union {
-      type inet:ip-address;
-      type inet:domain-name;
-    }
-    description
-     "The host type represents either an IP address or a DNS
-      domain name.";
-  }
-
-  typedef uri {
-    type string;
-    description
-     "The uri type represents a Uniform Resource Identifier
-      (URI) as defined by STD 66.
-
-      Objects using the uri type MUST be in US-ASCII encoding,
-      and MUST be normalized as described by RFC 3986 Sections
-      6.2.1, 6.2.2.1, and 6.2.2.2.  All unnecessary
-      percent-encoding is removed, and all case-insensitive
-      characters are set to lowercase except for hexadecimal
-      digits, which are normalized to uppercase as described in
-      Section 6.2.2.1.
-
-      The purpose of this normalization is to help provide
-      unique URIs.  Note that this normalization is not
-      sufficient to provide uniqueness.  Two URIs that are
-      textually distinct after this normalization may still be
-      equivalent.
-
-      Objects using the uri type may restrict the schemes that
-      they permit.  For example, 'data:' and 'urn:' schemes
-      might not be appropriate.
-
-      A zero-length URI is not a valid URI.  This can be used to
-      express 'URI absent' where required.
-
-      In the value set and its semantics, this type is equivalent
-      to the Uri SMIv2 textual convention defined in RFC 5017.";
-    reference
-     "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
-      RFC 3305: Report from the Joint W3C/IETF URI Planning Interest
-                Group: Uniform Resource Identifiers (URIs), URLs,
-                and Uniform Resource Names (URNs): Clarifications
-                and Recommendations
-      RFC 5017: MIB Textual Conventions for Uniform Resource
-                Identifiers (URIs)";
-  }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-interfaces@2014-05-08.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-interfaces@2014-05-08.yang
deleted file mode 100644 (file)
index 5f42b15..0000000
+++ /dev/null
@@ -1,603 +0,0 @@
-module ietf-interfaces {
-  namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces";
-  prefix if;
-  import ietf-yang-types {
-    prefix yang;
-  }
-  organization
-    "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-  contact
-    "WG Web:   <http://tools.ietf.org/wg/netmod/>
-     WG List:  <mailto:netmod@ietf.org>
-     WG Chair: Thomas Nadeau
-               <mailto:tnadeau@lucidvision.com>
-     WG Chair: Juergen Schoenwaelder
-               <mailto:j.schoenwaelder@jacobs-university.de>
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>";
-  description
-    "This module contains a collection of YANG definitions for
-     managing network interfaces.
-     Copyright (c) 2014 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-     This version of this YANG module is part of RFC 7223; see
-     the RFC itself for full legal notices.";
-  revision 2014-05-08 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 7223: A YANG Data Model for Interface Management";
-  }
-  /*
-   * Typedefs
-   */
-  typedef interface-ref {
-    type leafref {
-      path "/if:interfaces/if:interface/if:name";
-    }
-    description
-      "This type is used by data models that need to reference
-       configured interfaces.";
-  }
-  typedef interface-state-ref {
-    type leafref {
-      path "/if:interfaces-state/if:interface/if:name";
-    }
-    description
-      "This type is used by data models that need to reference
-       the operationally present interfaces.";
-  }
-  /*
-   * Identities
-   */
-  identity interface-type {
-    description
-      "Base identity from which specific interface types are
-       derived.";
-  }
-  /*
-   * Features
-   */
-  feature arbitrary-names {
-    description
-      "This feature indicates that the device allows user-controlled
-       interfaces to be named arbitrarily.";
-  }
-  feature pre-provisioning {
-    description
-      "This feature indicates that the device supports
-       pre-provisioning of interface configuration, i.e., it is
-       possible to configure an interface whose physical interface
-       hardware is not present on the device.";
-  }
-  feature if-mib {
-    description
-      "This feature indicates that the device implements
-       the IF-MIB.";
-    reference
-      "RFC 2863: The Interfaces Group MIB";
-  }
-  /*
-   * Configuration data nodes
-   */
-  container interfaces {
-    description
-      "Interface configuration parameters.";
-    list interface {
-      key "name";
-      description
-        "The list of configured interfaces on the device.
-         The operational state of an interface is available in the
-         /interfaces-state/interface list.  If the configuration of a
-         system-controlled interface cannot be used by the system
-         (e.g., the interface hardware present does not match the
-         interface type), then the configuration is not applied to
-         the system-controlled interface shown in the
-         /interfaces-state/interface list.  If the configuration
-         of a user-controlled interface cannot be used by the system,
-         the configured interface is not instantiated in the
-         /interfaces-state/interface list.";
-     leaf name {
-        type string;
-        description
-          "The name of the interface.
-           A device MAY restrict the allowed values for this leaf,
-           possibly depending on the type of the interface.
-           For system-controlled interfaces, this leaf is the
-           device-specific name of the interface.  The 'config false'
-           list /interfaces-state/interface contains the currently
-           existing interfaces on the device.
-           If a client tries to create configuration for a
-           system-controlled interface that is not present in the
-           /interfaces-state/interface list, the server MAY reject
-           the request if the implementation does not support
-           pre-provisioning of interfaces or if the name refers to
-           an interface that can never exist in the system.  A
-           NETCONF server MUST reply with an rpc-error with the
-           error-tag 'invalid-value' in this case.
-           If the device supports pre-provisioning of interface
-           configuration, the 'pre-provisioning' feature is
-           advertised.
-           If the device allows arbitrarily named user-controlled
-           interfaces, the 'arbitrary-names' feature is advertised.
-           When a configured user-controlled interface is created by
-           the system, it is instantiated with the same name in the
-           /interface-state/interface list.";
-      }
-      leaf description {
-        type string;
-        description
-          "A textual description of the interface.
-           A server implementation MAY map this leaf to the ifAlias
-           MIB object.  Such an implementation needs to use some
-           mechanism to handle the differences in size and characters
-           allowed between this leaf and ifAlias.  The definition of
-           such a mechanism is outside the scope of this document.
-           Since ifAlias is defined to be stored in non-volatile
-           storage, the MIB implementation MUST map ifAlias to the
-           value of 'description' in the persistently stored
-           datastore.
-           Specifically, if the device supports ':startup', when
-           ifAlias is read the device MUST return the value of
-           'description' in the 'startup' datastore, and when it is
-           written, it MUST be written to the 'running' and 'startup'
-           datastores.  Note that it is up to the implementation to
-           decide whether to modify this single leaf in 'startup' or
-           perform an implicit copy-config from 'running' to
-           'startup'.
-           If the device does not support ':startup', ifAlias MUST
-           be mapped to the 'description' leaf in the 'running'
-           datastore.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAlias";
-      }
-      leaf type {
-        type identityref {
-          base interface-type;
-        }
-        mandatory true;
-        description
-          "The type of the interface.
-           When an interface entry is created, a server MAY
-           initialize the type leaf with a valid value, e.g., if it
-           is possible to derive the type from the name of the
-           interface.
-           If a client tries to set the type of an interface to a
-           value that can never be used by the system, e.g., if the
-           type is not supported or if the type does not match the
-           name of the interface, the server MUST reject the request.
-           A NETCONF server MUST reply with an rpc-error with the
-           error-tag 'invalid-value' in this case.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifType";
-      }
-      leaf enabled {
-        type boolean;
-        default "true";
-        description
-          "This leaf contains the configured, desired state of the
-           interface.
-           Systems that implement the IF-MIB use the value of this
-           leaf in the 'running' datastore to set
-           IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
-           has been initialized, as described in RFC 2863.
-           Changes in this leaf in the 'running' datastore are
-           reflected in ifAdminStatus, but if ifAdminStatus is
-           changed over SNMP, this leaf is not affected.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-      }
-      leaf link-up-down-trap-enable {
-        //if-feature if-mib;
-        type enumeration {
-          enum enabled {
-            value 1;
-          }
-          enum disabled {
-            value 2;
-          }
-        }
-        description
-          "Controls whether linkUp/linkDown SNMP notifications
-           should be generated for this interface.
-           If this node is not configured, the value 'enabled' is
-           operationally used by the server for interfaces that do
-           not operate on top of any other interface (i.e., there are
-           no 'lower-layer-if' entries), and 'disabled' otherwise.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifLinkUpDownTrapEnable";
-      }
-    }
-  }
-  /*
-   * Operational state data nodes
-   */
-  container interfaces-state {
-    config false;
-    description
-      "Data nodes for the operational state of interfaces.";
-    list interface {
-      key "name";
-      description
-        "The list of interfaces on the device.
-         System-controlled interfaces created by the system are
-         always present in this list, whether they are configured or
-         not.";
-      leaf name {
-        type string;
-        description
-          "The name of the interface.
-           A server implementation MAY map this leaf to the ifName
-           MIB object.  Such an implementation needs to use some
-           mechanism to handle the differences in size and characters
-           allowed between this leaf and ifName.  The definition of
-           such a mechanism is outside the scope of this document.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifName";
-      }
-      leaf type {
-        type identityref {
-          base interface-type;
-        }
-        mandatory true;
-        description
-          "The type of the interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifType";
-      }
-      leaf admin-status {
-        //if-feature if-mib;
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-            description
-              "Not ready to pass packets and not in some test mode.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.";
-          }
-        }
-        mandatory true;
-        description
-          "The desired state of the interface.
-           This leaf has the same read semantics as ifAdminStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-      }
-      leaf oper-status {
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-            description
-              "The interface does not pass any packets.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.  No operational packets can
-               be passed.";
-          }
-          enum unknown {
-            value 4;
-            description
-              "Status cannot be determined for some reason.";
-          }
-          enum dormant {
-            value 5;
-            description
-              "Waiting for some external event.";
-          }
-          enum not-present {
-            value 6;
-            description
-              "Some component (typically hardware) is missing.";
-          }
-          enum lower-layer-down {
-            value 7;
-            description
-              "Down due to state of lower-layer interface(s).";
-          }
-        }
-        mandatory true;
-        description
-          "The current operational state of the interface.
-           This leaf has the same semantics as ifOperStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOperStatus";
-      }
-      leaf last-change {
-        type yang:date-and-time;
-        description
-          "The time the interface entered its current operational
-           state.  If the current state was entered prior to the
-           last re-initialization of the local network management
-           subsystem, then this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifLastChange";
-      }
-      leaf if-index {
-        //if-feature if-mib;
-        type int32 {
-          range "1..2147483647";
-        }
-        mandatory true;
-        description
-          "The ifIndex value for the ifEntry represented by this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifIndex";
-      }
-      leaf phys-address {
-        type yang:phys-address;
-        description
-          "The interface's address at its protocol sub-layer.  For
-           example, for an 802.x interface, this object normally
-           contains a Media Access Control (MAC) address.  The
-           interface's media-specific modules must define the bit
-           and byte ordering and the format of the value of this
-           object.  For interfaces that do not have such an address
-           (e.g., a serial line), this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
-      }
-      leaf-list higher-layer-if {
-        type interface-state-ref;
-        description
-          "A list of references to interfaces layered on top of this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-      leaf-list lower-layer-if {
-        type interface-state-ref;
-        description
-          "A list of references to interfaces layered underneath this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-      leaf speed {
-        type yang:gauge64;
-        units "bits/second";
-        description
-            "An estimate of the interface's current bandwidth in bits
-             per second.  For interfaces that do not vary in
-             bandwidth or for those where no accurate estimation can
-             be made, this node should contain the nominal bandwidth.
-             For interfaces that have no concept of bandwidth, this
-             node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifSpeed, ifHighSpeed";
-      }
-      container statistics {
-        description
-          "A collection of interface-related statistics objects.";
-        leaf discontinuity-time {
-          type yang:date-and-time;
-          mandatory true;
-          description
-            "The time on the most recent occasion at which any one or
-             more of this interface's counters suffered a
-             discontinuity.  If no such discontinuities have occurred
-             since the last re-initialization of the local management
-             subsystem, then this node contains the time the local
-             management subsystem re-initialized itself.";
-        }
-        leaf in-octets {
-          type yang:counter64;
-          description
-            "The total number of octets received on the interface,
-             including framing characters.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
-        }
-        leaf in-unicast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were not addressed to a
-             multicast or broadcast address at this sub-layer.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
-        }
-        leaf in-broadcast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a broadcast
-             address at this sub-layer.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInBroadcastPkts";
-        }
-        leaf in-multicast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a multicast
-             address at this sub-layer.  For a MAC-layer protocol,
-             this includes both Group and Functional addresses.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInMulticastPkts";
-        }
-        leaf in-discards {
-          type yang:counter32;
-          description
-            "The number of inbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being deliverable to a higher-layer
-             protocol.  One possible reason for discarding such a
-             packet could be to free up buffer space.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInDiscards";
-        }
-        leaf in-errors {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of inbound
-             packets that contained errors preventing them from being
-             deliverable to a higher-layer protocol.  For character-
-             oriented or fixed-length interfaces, the number of
-             inbound transmission units that contained errors
-             preventing them from being deliverable to a higher-layer
-             protocol.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInErrors";
-        }
-        leaf in-unknown-protos {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of packets
-             received via the interface that were discarded because
-             of an unknown or unsupported protocol.  For
-             character-oriented or fixed-length interfaces that
-             support protocol multiplexing, the number of
-             transmission units received via the interface that were
-             discarded because of an unknown or unsupported protocol.
-             For any interface that does not support protocol
-             multiplexing, this counter is not present.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
-        }
-        leaf out-octets {
-          type yang:counter64;
-          description
-            "The total number of octets transmitted out of the
-             interface, including framing characters.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
-        }
-        leaf out-unicast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted, and that were not addressed
-             to a multicast or broadcast address at this sub-layer,
-             including those that were discarded or not sent.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
-        }
-        leaf out-broadcast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted, and that were addressed to a
-             broadcast address at this sub-layer, including those
-             that were discarded or not sent.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutBroadcastPkts";
-        }
-        leaf out-multicast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted, and that were addressed to a
-             multicast address at this sub-layer, including those
-             that were discarded or not sent.  For a MAC-layer
-             protocol, this includes both Group and Functional
-             addresses.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutMulticastPkts";
-        }
-        leaf out-discards {
-          type yang:counter32;
-          description
-            "The number of outbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being transmitted.  One possible reason
-             for discarding such a packet could be to free up buffer
-             space.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
-        }
-        leaf out-errors {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of outbound
-             packets that could not be transmitted because of errors.
-             For character-oriented or fixed-length interfaces, the
-             number of outbound transmission units that could not be
-             transmitted because of errors.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutErrors";
-        }
-      }
-    }
-  }
-}
-
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-monitoring-extension@2013-12-10.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-monitoring-extension@2013-12-10.yang
deleted file mode 100644 (file)
index e8f2ec3..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-module ietf-netconf-monitoring-extension {
-
-    yang-version 1;
-
-    namespace
-      "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring-extension";
-
-    prefix ncme;
-
-    import ietf-netconf-monitoring {
-      prefix ncm;
-    }
-
-    revision "2013-12-10" {
-      description "Initial revision.";
-
-    }
-
-    identity netconf-tcp {
-      base ncm:transport;
-      description
-        "NETCONF over TCP.";
-    }
-
-    augment "/ncm:netconf-state/ncm:sessions/ncm:session" {
-      leaf session-identifier {
-        type string;
-      }
-    }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-monitoring@2010-10-04.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-monitoring@2010-10-04.yang
deleted file mode 100644 (file)
index 730a416..0000000
+++ /dev/null
@@ -1,596 +0,0 @@
-module ietf-netconf-monitoring {
-
-    yang-version 1;
-
-    namespace
-      "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring";
-
-    prefix ncm;
-
-    import ietf-yang-types {
-      prefix yang;
-      revision-date "2013-07-15";
-    }
-
-    import ietf-inet-types {
-      prefix inet;
-      revision-date "2013-07-15";
-    }
-
-    organization
-      "IETF NETCONF (Network Configuration) Working Group";
-
-    contact
-      "WG Web:   <http://tools.ietf.org/wg/netconf/>
-     WG List:  <mailto:netconf@ietf.org>
-
-     WG Chair: Mehmet Ersue
-               <mailto:mehmet.ersue@nsn.com>
-
-     WG Chair: Bert Wijnen
-               <mailto:bertietf@bwijnen.net>
-
-     Editor:   Mark Scott
-               <mailto:mark.scott@ericsson.com>
-
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>";
-
-    description
-      "NETCONF Monitoring Module.
-     All elements in this module are read-only.
-
-     Copyright (c) 2010 IETF Trust and the persons identified as
-     authors of the code. All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD
-     License set forth in Section 4.c of the IETF Trust's
-     Legal Provisions Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC 6022; see
-     the RFC itself for full legal notices.";
-
-    revision "2010-10-04" {
-      description "Initial revision.";
-      reference
-        "RFC 6022: YANG Module for NETCONF Monitoring";
-
-    }
-
-
-    typedef netconf-datastore-type {
-      type enumeration {
-        enum "running" {
-          value 0;
-        }
-        enum "candidate" {
-          value 1;
-        }
-        enum "startup" {
-          value 2;
-        }
-      }
-      description
-        "Enumeration of possible NETCONF datastore types.";
-      reference
-        "RFC 4741: NETCONF Configuration Protocol";
-
-    }
-
-    identity transport {
-      description
-        "Base identity for NETCONF transport types.";
-    }
-
-    identity netconf-ssh {
-      base transport;
-      description
-        "NETCONF over Secure Shell (SSH).";
-      reference
-        "RFC 4742: Using the NETCONF Configuration Protocol
-              over Secure SHell (SSH)";
-
-    }
-
-    identity netconf-soap-over-beep {
-      base transport;
-      description
-        "NETCONF over Simple Object Access Protocol (SOAP) over
-       Blocks Extensible Exchange Protocol (BEEP).";
-      reference
-        "RFC 4743: Using NETCONF over the Simple Object
-              Access Protocol (SOAP)";
-
-    }
-
-    identity netconf-soap-over-https {
-      base transport;
-      description
-        "NETCONF over Simple Object Access Protocol (SOAP)
-      over Hypertext Transfer Protocol Secure (HTTPS).";
-      reference
-        "RFC 4743: Using NETCONF over the Simple Object
-              Access Protocol (SOAP)";
-
-    }
-
-    identity netconf-beep {
-      base transport;
-      description
-        "NETCONF over Blocks Extensible Exchange Protocol (BEEP).";
-      reference
-        "RFC 4744: Using the NETCONF Protocol over the
-              Blocks Extensible Exchange Protocol (BEEP)";
-
-    }
-
-    identity netconf-tls {
-      base transport;
-      description
-        "NETCONF over Transport Layer Security (TLS).";
-      reference
-        "RFC 5539: NETCONF over Transport Layer Security (TLS)";
-
-    }
-
-    identity schema-format {
-      description
-        "Base identity for data model schema languages.";
-    }
-
-    identity xsd {
-      base schema-format;
-      description
-        "W3C XML Schema Definition.";
-      reference
-        "W3C REC REC-xmlschema-1-20041028:
-          XML Schema Part 1: Structures";
-
-    }
-
-    identity yang {
-      base schema-format;
-      description
-        "The YANG data modeling language for NETCONF.";
-      reference
-        "RFC 6020:  YANG - A Data Modeling Language for the
-               Network Configuration Protocol (NETCONF)";
-
-    }
-
-    identity yin {
-      base schema-format;
-      description "The YIN syntax for YANG.";
-      reference
-        "RFC 6020:  YANG - A Data Modeling Language for the
-               Network Configuration Protocol (NETCONF)";
-
-    }
-
-    identity rng {
-      base schema-format;
-      description
-        "Regular Language for XML Next Generation (RELAX NG).";
-      reference
-        "ISO/IEC 19757-2:2008: RELAX NG";
-
-    }
-
-    identity rnc {
-      base schema-format;
-      description "Relax NG Compact Syntax";
-      reference
-        "ISO/IEC 19757-2:2008: RELAX NG";
-
-    }
-
-    grouping common-counters {
-      description
-        "Counters that exist both per session, and also globally,
-       accumulated from all sessions.";
-      leaf in-rpcs {
-        type yang:zero-based-counter32;
-        description
-          "Number of correct <rpc> messages received.";
-      }
-
-      leaf in-bad-rpcs {
-        type yang:zero-based-counter32;
-        description
-          "Number of messages received when an <rpc> message was expected,
-         that were not correct <rpc> messages.  This includes XML parse
-         errors and errors on the rpc layer.";
-      }
-
-      leaf out-rpc-errors {
-        type yang:zero-based-counter32;
-        description
-          "Number of <rpc-reply> messages sent that contained an
-         <rpc-error> element.";
-      }
-
-      leaf out-notifications {
-        type yang:zero-based-counter32;
-        description
-          "Number of <notification> messages sent.";
-      }
-    }  // grouping common-counters
-
-    container netconf-state {
-      config false;
-      description
-        "The netconf-state container is the root of the monitoring
-       data model.";
-      container capabilities {
-        description
-          "Contains the list of NETCONF capabilities supported by the
-         server.";
-        leaf-list capability {
-          type inet:uri;
-          description
-            "List of NETCONF capabilities supported by the server.";
-        }
-      }  // container capabilities
-
-      container datastores {
-        description
-          "Contains the list of NETCONF configuration datastores.";
-        list datastore {
-          key "name";
-          description
-            "List of NETCONF configuration datastores supported by
-           the NETCONF server and related information.";
-          leaf name {
-            type netconf-datastore-type;
-            description
-              "Name of the datastore associated with this list entry.";
-          }
-
-          container locks {
-            presence
-              "This container is present only if the datastore
-             is locked.";
-            description
-              "The NETCONF <lock> and <partial-lock> operations allow
-             a client to lock specific resources in a datastore.  The
-             NETCONF server will prevent changes to the locked
-             resources by all sessions except the one that acquired
-             the lock(s).
-
-             Monitoring information is provided for each datastore
-             entry including details such as the session that acquired
-             the lock, the type of lock (global or partial) and the
-             list of locked resources.  Multiple locks per datastore
-             are supported.";
-            grouping lock-info {
-              description
-                "Lock related parameters, common to both global and
-               partial locks.";
-              leaf locked-by-session {
-                type uint32;
-                mandatory true;
-                description
-                  "The session ID of the session that has locked
-                 this resource.  Both a global lock and a partial
-                 lock MUST contain the NETCONF session-id.
-
-                 If the lock is held by a session that is not managed
-                 by the NETCONF server (e.g., a CLI session), a session
-                 id of 0 (zero) is reported.";
-                reference
-                  "RFC 4741: NETCONF Configuration Protocol";
-
-              }
-
-              leaf locked-time {
-                type yang:date-and-time;
-                mandatory true;
-                description
-                  "The date and time of when the resource was
-                 locked.";
-              }
-            }  // grouping lock-info
-            choice lock-type {
-              description
-                "Indicates if a global lock or a set of partial locks
-               are set.";
-              container global-lock {
-                description
-                  "Present if the global lock is set.";
-                uses lock-info;
-              }  // container global-lock
-              list partial-lock {
-                key "lock-id";
-                description
-                  "List of partial locks.";
-                reference
-                  "RFC 5717: Partial Lock Remote Procedure Call (RPC) for
-                      NETCONF";
-
-                leaf lock-id {
-                  type uint32;
-                  description
-                    "This is the lock id returned in the <partial-lock>
-                   response.";
-                }
-
-                uses lock-info;
-
-                leaf-list select {
-                  type yang:xpath1.0;
-                  min-elements 1;
-                  description
-                    "The xpath expression that was used to request
-                   the lock.  The select expression indicates the
-                   original intended scope of the lock.";
-                }
-
-                leaf-list locked-node {
-                  type instance-identifier;
-                  description
-                    "The list of instance-identifiers (i.e., the
-                   locked nodes).
-
-                   The scope of the partial lock is defined by the list
-                   of locked nodes.";
-                }
-              }  // list partial-lock
-            }  // choice lock-type
-          }  // container locks
-        }  // list datastore
-      }  // container datastores
-
-      container schemas {
-        description
-          "Contains the list of data model schemas supported by the
-         server.";
-        list schema {
-          key "identifier version format";
-          description
-            "List of data model schemas supported by the server.";
-          leaf identifier {
-            type string;
-            description
-              "Identifier to uniquely reference the schema.  The
-             identifier is used in the <get-schema> operation and may
-             be used for other purposes such as file retrieval.
-
-             For modeling languages that support or require a data
-             model name (e.g., YANG module name) the identifier MUST
-             match that name.  For YANG data models, the identifier is
-             the name of the module or submodule.  In other cases, an
-             identifier such as a filename MAY be used instead.";
-          }
-
-          leaf version {
-            type string;
-            description
-              "Version of the schema supported.  Multiple versions MAY be
-             supported simultaneously by a NETCONF server.  Each
-             version MUST be reported individually in the schema list,
-             i.e., with same identifier, possibly different location,
-             but different version.
-
-             For YANG data models, version is the value of the most
-             recent YANG 'revision' statement in the module or
-             submodule, or the empty string if no 'revision' statement
-             is present.";
-          }
-
-          leaf format {
-            type identityref {
-              base schema-format;
-            }
-            description
-              "The data modeling language the schema is written
-             in (currently xsd, yang, yin, rng, or rnc).
-             For YANG data models, 'yang' format MUST be supported and
-             'yin' format MAY also be provided.";
-          }
-
-          leaf namespace {
-            type inet:uri;
-            mandatory true;
-            description
-              "The XML namespace defined by the data model.
-
-             For YANG data models, this is the module's namespace.
-             If the list entry describes a submodule, this field
-             contains the namespace of the module to which the
-             submodule belongs.";
-          }
-
-          leaf-list location {
-            type union {
-              type enumeration {
-                enum "NETCONF" {
-                  value 0;
-                }
-              }
-              type inet:uri;
-            }
-            description
-              "One or more locations from which the schema can be
-             retrieved.  This list SHOULD contain at least one
-             entry per schema.
-
-             A schema entry may be located on a remote file system
-             (e.g., reference to file system for ftp retrieval) or
-             retrieved directly from a server supporting the
-             <get-schema> operation (denoted by the value 'NETCONF').";
-          }
-        }  // list schema
-      }  // container schemas
-
-      container sessions {
-        description
-          "The sessions container includes session-specific data for
-         NETCONF management sessions.  The session list MUST include
-         all currently active NETCONF sessions.";
-        list session {
-          key "session-id";
-          description
-            "All NETCONF sessions managed by the NETCONF server
-           MUST be reported in this list.";
-          leaf session-id {
-            type uint32 {
-              range "1..max";
-            }
-            description
-              "Unique identifier for the session.  This value is the
-             NETCONF session identifier, as defined in RFC 4741.";
-            reference
-              "RFC 4741: NETCONF Configuration Protocol";
-
-          }
-
-          leaf transport {
-            type identityref {
-              base transport;
-            }
-            mandatory true;
-            description
-              "Identifies the transport for each session, e.g.,
-            'netconf-ssh', 'netconf-soap', etc.";
-          }
-
-          leaf username {
-            type string;
-            mandatory true;
-            description
-              "The username is the client identity that was authenticated
-            by the NETCONF transport protocol.  The algorithm used to
-            derive the username is NETCONF transport protocol specific
-            and in addition specific to the authentication mechanism
-            used by the NETCONF transport protocol.";
-          }
-
-          leaf source-host {
-            type inet:host;
-            description
-              "Host identifier of the NETCONF client.  The value
-             returned is implementation specific (e.g., hostname,
-             IPv4 address, IPv6 address)";
-          }
-
-          leaf login-time {
-            type yang:date-and-time;
-            mandatory true;
-            description
-              "Time at the server at which the session was established.";
-          }
-
-          uses common-counters {
-            description
-              "Per-session counters.  Zero based with following reset
-             behaviour:
-               - at start of a session
-               - when max value is reached";
-          }
-        }  // list session
-      }  // container sessions
-
-      container statistics {
-        description
-          "Statistical data pertaining to the NETCONF server.";
-        leaf netconf-start-time {
-          type yang:date-and-time;
-          description
-            "Date and time at which the management subsystem was
-           started.";
-        }
-
-        leaf in-bad-hellos {
-          type yang:zero-based-counter32;
-          description
-            "Number of sessions silently dropped because an
-          invalid <hello> message was received.  This includes <hello>
-          messages with a 'session-id' attribute, bad namespace, and
-          bad capability declarations.";
-        }
-
-        leaf in-sessions {
-          type yang:zero-based-counter32;
-          description
-            "Number of sessions started.  This counter is incremented
-           when a <hello> message with a <session-id> is sent.
-
-          'in-sessions' - 'in-bad-hellos' =
-              'number of correctly started netconf sessions'";
-        }
-
-        leaf dropped-sessions {
-          type yang:zero-based-counter32;
-          description
-            "Number of sessions that were abnormally terminated, e.g.,
-           due to idle timeout or transport close.  This counter is not
-           incremented when a session is properly closed by a
-           <close-session> operation, or killed by a <kill-session>
-           operation.";
-        }
-
-        uses common-counters {
-          description
-            "Global counters, accumulated from all sessions.
-           Zero based with following reset behaviour:
-             - re-initialization of NETCONF server
-             - when max value is reached";
-        }
-      }  // container statistics
-    }  // container netconf-state
-
-    rpc get-schema {
-      description
-        "This operation is used to retrieve a schema from the
-       NETCONF server.
-
-       Positive Response:
-         The NETCONF server returns the requested schema.
-
-       Negative Response:
-         If requested schema does not exist, the <error-tag> is
-         'invalid-value'.
-
-         If more than one schema matches the requested parameters, the
-         <error-tag> is 'operation-failed', and <error-app-tag> is
-         'data-not-unique'.";
-      input {
-        leaf identifier {
-          type string;
-          mandatory true;
-          description
-            "Identifier for the schema list entry.";
-        }
-
-        leaf version {
-          type string;
-          description
-            "Version of the schema requested.  If this parameter is not
-           present, and more than one version of the schema exists on
-           the server, a 'data-not-unique' error is returned, as
-           described above.";
-        }
-
-        leaf format {
-          type identityref {
-            base schema-format;
-          }
-          description
-            "The data modeling language of the schema.  If this
-            parameter is not present, and more than one formats of
-            the schema exists on the server, a 'data-not-unique' error
-            is returned, as described above.";
-        }
-      }
-
-      output {
-        anyxml data {
-          description
-            "Contains the schema content.";
-        }
-      }
-    }  // rpc get-schema
-} // module
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-notifications@2012-02-06.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf-notifications@2012-02-06.yang
deleted file mode 100644 (file)
index 31352a1..0000000
+++ /dev/null
@@ -1,363 +0,0 @@
-module ietf-netconf-notifications {
-
-   namespace
-     "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications";
-
-   prefix ncn;
-
-   import ietf-inet-types { prefix inet; revision-date "2013-07-15";}
-   import ietf-netconf { prefix nc; revision-date "2011-06-01";}
-
-   organization
-     "IETF NETCONF (Network Configuration Protocol) Working Group";
-
-   contact
-     "WG Web:   <http://tools.ietf.org/wg/netconf/>
-      WG List:  <mailto:netconf@ietf.org>
-
-      WG Chair: Bert Wijnen
-                <mailto:bertietf@bwijnen.net>
-
-      WG Chair: Mehmet Ersue
-                <mailto:mehmet.ersue@nsn.com>
-
-      Editor:   Andy Bierman
-                <mailto:andy@netconfcentral.org>";
-
-   description
-     "This module defines a YANG data model for use with the
-      NETCONF protocol that allows the NETCONF client to
-      receive common NETCONF base event notifications.
-
-      Copyright (c) 2012 IETF Trust and the persons identified as
-      the document authors.  All rights reserved.
-
-      Redistribution and use in source and binary forms, with or
-      without modification, is permitted pursuant to, and subject
-      to the license terms contained in, the Simplified BSD License
-
-
-
-      set forth in Section 4.c of the IETF Trust's Legal Provisions
-      Relating to IETF Documents
-      (http://trustee.ietf.org/license-info).
-
-      This version of this YANG module is part of RFC 6470; see
-      the RFC itself for full legal notices.";
-
-   revision "2012-02-06" {
-     description
-       "Initial version. Errata 3957 added.";
-     reference
-       "RFC 6470: NETCONF Base Notifications";
-   }
-
-  grouping common-session-parms {
-    description
-      "Common session parameters to identify a
-       management session.";
-
-    leaf username {
-      type string;
-      mandatory true;
-      description
-        "Name of the user for the session.";
-    }
-
-    leaf session-id {
-      type nc:session-id-or-zero-type;
-      mandatory true;
-      description
-        "Identifier of the session.
-         A NETCONF session MUST be identified by a non-zero value.
-         A non-NETCONF session MAY be identified by the value zero.";
-    }
-
-    leaf source-host {
-      type inet:ip-address;
-      description
-        "Address of the remote host for the session.";
-    }
-  }
-
-
-
-
-
-
-
-
-   grouping changed-by-parms {
-    description
-      "Common parameters to identify the source
-       of a change event, such as a configuration
-       or capability change.";
-
-    container changed-by {
-      description
-        "Indicates the source of the change.
-         If caused by internal action, then the
-         empty leaf 'server' will be present.
-         If caused by a management session, then
-         the name, remote host address, and session ID
-         of the session that made the change will be reported.";
-      choice server-or-user {
-        mandatory true;
-        leaf server {
-          type empty;
-          description
-            "If present, the change was caused
-             by the server.";
-        }
-
-        case by-user {
-          uses common-session-parms;
-        }
-      } // choice server-or-user
-    } // container changed-by-parms
-  }
-
-
-  notification netconf-config-change {
-    description
-      "Generated when the NETCONF server detects that the
-       <running> or <startup> configuration datastore
-       has been changed by a management session.
-       The notification summarizes the edits that
-       have been detected.
-
-       The server MAY choose to also generate this
-       notification while loading a datastore during the
-       boot process for the device.";
-
-    uses changed-by-parms;
-
-
-
-
-
-    leaf datastore {
-      type enumeration {
-        enum running {
-          description "The <running> datastore has changed.";
-        }
-        enum startup {
-          description "The <startup> datastore has changed";
-        }
-      }
-      default "running";
-      description
-        "Indicates which configuration datastore has changed.";
-    }
-
-    list edit {
-      description
-        "An edit record SHOULD be present for each distinct
-         edit operation that the server has detected on
-         the target datastore.  This list MAY be omitted
-         if the detailed edit operations are not known.
-         The server MAY report entries in this list for
-         changes not made by a NETCONF session (e.g., CLI).";
-
-      leaf target {
-        type instance-identifier;
-        description
-          "Topmost node associated with the configuration change.
-           A server SHOULD set this object to the node within
-           the datastore that is being altered.  A server MAY
-           set this object to one of the ancestors of the actual
-           node that was changed, or omit this object, if the
-           exact node is not known.";
-      }
-
-      leaf operation {
-        type nc:edit-operation-type;
-        description
-          "Type of edit operation performed.
-           A server MUST set this object to the NETCONF edit
-           operation performed on the target datastore.";
-      }
-    } // list edit
-  } // notification netconf-config-change
-
-
-
-
-
-
-  notification netconf-capability-change {
-    description
-      "Generated when the NETCONF server detects that
-       the server capabilities have changed.
-       Indicates which capabilities have been added, deleted,
-       and/or modified.  The manner in which a server
-       capability is changed is outside the scope of this
-       document.";
-
-    uses changed-by-parms;
-
-    leaf-list added-capability {
-      type inet:uri;
-      description
-        "List of capabilities that have just been added.";
-    }
-
-    leaf-list deleted-capability {
-      type inet:uri;
-      description
-        "List of capabilities that have just been deleted.";
-    }
-
-    leaf-list modified-capability {
-      type inet:uri;
-      description
-        "List of capabilities that have just been modified.
-         A capability is considered to be modified if the
-         base URI for the capability has not changed, but
-         one or more of the parameters encoded at the end of
-         the capability URI have changed.
-         The new modified value of the complete URI is returned.";
-    }
-  } // notification netconf-capability-change
-
-
-  notification netconf-session-start {
-    description
-      "Generated when a NETCONF server detects that a
-       NETCONF session has started.  A server MAY generate
-       this event for non-NETCONF management sessions.
-       Indicates the identity of the user that started
-       the session.";
-    uses common-session-parms;
-  } // notification netconf-session-start
-
-
-
-
-  notification netconf-session-end {
-    description
-      "Generated when a NETCONF server detects that a
-       NETCONF session has terminated.
-       A server MAY optionally generate this event for
-       non-NETCONF management sessions.  Indicates the
-       identity of the user that owned the session,
-       and why the session was terminated.";
-
-    uses common-session-parms;
-
-    leaf killed-by {
-      when "../termination-reason = 'killed'";
-      type nc:session-id-type;
-      description
-        "The ID of the session that directly caused this session
-         to be abnormally terminated.  If this session was abnormally
-         terminated by a non-NETCONF session unknown to the server,
-         then this leaf will not be present.";
-    }
-
-    leaf termination-reason {
-      type enumeration {
-        enum "closed" {
-          description
-            "The session was terminated by the client in normal
-             fashion, e.g., by the NETCONF <close-session>
-             protocol operation.";
-        }
-        enum "killed" {
-          description
-            "The session was terminated in abnormal
-             fashion, e.g., by the NETCONF <kill-session>
-             protocol operation.";
-        }
-        enum "dropped" {
-          description
-            "The session was terminated because the transport layer
-             connection was unexpectedly closed.";
-        }
-        enum "timeout" {
-          description
-            "The session was terminated because of inactivity,
-             e.g., waiting for the <hello> message or <rpc>
-             messages.";
-        }
-
-
-
-        enum "bad-hello" {
-          description
-            "The client's <hello> message was invalid.";
-        }
-        enum "other" {
-          description
-            "The session was terminated for some other reason.";
-        }
-      }
-      mandatory true;
-      description
-        "Reason the session was terminated.";
-    }
-  } // notification netconf-session-end
-
-
-  notification netconf-confirmed-commit {
-    description
-      "Generated when a NETCONF server detects that a
-       confirmed-commit event has occurred.  Indicates the event
-       and the current state of the confirmed-commit procedure
-       in progress.";
-    reference
-      "RFC 6241, Section 8.4";
-
-    uses common-session-parms {
-      when "confirm-event != 'timeout'";
-    }
-
-    leaf confirm-event {
-      type enumeration {
-        enum "start" {
-          description
-            "The confirmed-commit procedure has started.";
-        }
-        enum "cancel" {
-          description
-            "The confirmed-commit procedure has been canceled,
-             e.g., due to the session being terminated, or an
-             explicit <cancel-commit> operation.";
-        }
-        enum "timeout" {
-          description
-            "The confirmed-commit procedure has been canceled
-             due to the confirm-timeout interval expiring.
-             The common session parameters will not be present
-             in this sub-mode.";
-        }
-
-        enum "extend" {
-          description
-            "The confirmed-commit timeout has been extended,
-             e.g., by a new <confirmed-commit> operation.";
-        }
-        enum "complete" {
-          description
-            "The confirmed-commit procedure has been completed.";
-        }
-      }
-      mandatory true;
-      description
-        "Indicates the event that caused the notification.";
-    }
-
-    leaf timeout {
-      when
-        "../confirm-event = 'start' or ../confirm-event = 'extend'";
-      type uint32;
-      units "seconds";
-      description
-        "The configured timeout value if the event type
-         is 'start' or 'extend'.  This value represents
-         the approximate number of seconds from the event
-         time when the 'timeout' event might occur.";
-    }
-  } // notification netconf-confirmed-commit
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf@2011-06-01.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-netconf@2011-06-01.yang
deleted file mode 100644 (file)
index 4bbb1c2..0000000
+++ /dev/null
@@ -1,928 +0,0 @@
-module ietf-netconf {
-
-  // the namespace for NETCONF XML definitions is unchanged
-  // from RFC 4741, which this document replaces
-  namespace "urn:ietf:params:xml:ns:netconf:base:1.0";
-
-  prefix nc;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-
-  organization
-    "IETF NETCONF (Network Configuration) Working Group";
-
-  contact
-    "WG Web:   <http://tools.ietf.org/wg/netconf/>
-     WG List:  <netconf@ietf.org>
-
-     WG Chair: Bert Wijnen
-               <bertietf@bwijnen.net>
-
-     WG Chair: Mehmet Ersue
-               <mehmet.ersue@nsn.com>
-
-     Editor:   Martin Bjorklund
-               <mbj@tail-f.com>
-
-     Editor:   Juergen Schoenwaelder
-               <j.schoenwaelder@jacobs-university.de>
-
-     Editor:   Andy Bierman
-               <andy.bierman@brocade.com>";
-  description
-    "NETCONF Protocol Data Types and Protocol Operations.
-
-     Copyright (c) 2011 IETF Trust and the persons identified as
-     the document authors.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC 6241; see
-     the RFC itself for full legal notices.";
-
-  revision 2011-06-01 {
-    description
-      "Initial revision;";
-    reference
-      "RFC 6241: Network Configuration Protocol";
-  }
-
-  extension get-filter-element-attributes {
-    description
-      "If this extension is present within an 'anyxml'
-       statement named 'filter', which must be conceptually
-       defined within the RPC input section for the <get>
-       and <get-config> protocol operations, then the
-       following unqualified XML attribute is supported
-       within the <filter> element, within a <get> or
-       <get-config> protocol operation:
-
-         type : optional attribute with allowed
-                value strings 'subtree' and 'xpath'.
-                If missing, the default value is 'subtree'.
-
-       If the 'xpath' feature is supported, then the
-       following unqualified XML attribute is
-       also supported:
-
-         select: optional attribute containing a
-                 string representing an XPath expression.
-                 The 'type' attribute must be equal to 'xpath'
-                 if this attribute is present.";
-  }
-
-  // NETCONF capabilities defined as features
-  feature writable-running {
-    description
-      "NETCONF :writable-running capability;
-       If the server advertises the :writable-running
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.2";
-  }
-
-  feature candidate {
-    description
-      "NETCONF :candidate capability;
-       If the server advertises the :candidate
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.3";
-  }
-
-  feature confirmed-commit {
-    if-feature candidate;
-    description
-      "NETCONF :confirmed-commit:1.1 capability;
-       If the server advertises the :confirmed-commit:1.1
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-
-    reference "RFC 6241, Section 8.4";
-  }
-
-  feature rollback-on-error {
-    description
-      "NETCONF :rollback-on-error capability;
-       If the server advertises the :rollback-on-error
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.5";
-  }
-
-  feature validate {
-    description
-      "NETCONF :validate:1.1 capability;
-       If the server advertises the :validate:1.1
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.6";
-  }
-
-  feature startup {
-    description
-      "NETCONF :startup capability;
-       If the server advertises the :startup
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.7";
-  }
-
-  feature url {
-    description
-      "NETCONF :url capability;
-       If the server advertises the :url
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.8";
-  }
-
-  feature xpath {
-    description
-      "NETCONF :xpath capability;
-       If the server advertises the :xpath
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.9";
-  }
-
-  // NETCONF Simple Types
-
-  typedef session-id-type {
-    type uint32 {
-      range "1..max";
-    }
-    description
-      "NETCONF Session Id";
-  }
-
-  typedef session-id-or-zero-type {
-    type uint32;
-    description
-      "NETCONF Session Id or Zero to indicate none";
-  }
-  typedef error-tag-type {
-    type enumeration {
-       enum in-use {
-         description
-           "The request requires a resource that
-            already is in use.";
-       }
-       enum invalid-value {
-         description
-           "The request specifies an unacceptable value for one
-            or more parameters.";
-       }
-       enum too-big {
-         description
-           "The request or response (that would be generated) is
-            too large for the implementation to handle.";
-       }
-       enum missing-attribute {
-         description
-           "An expected attribute is missing.";
-       }
-       enum bad-attribute {
-         description
-           "An attribute value is not correct; e.g., wrong type,
-            out of range, pattern mismatch.";
-       }
-       enum unknown-attribute {
-         description
-           "An unexpected attribute is present.";
-       }
-       enum missing-element {
-         description
-           "An expected element is missing.";
-       }
-       enum bad-element {
-         description
-           "An element value is not correct; e.g., wrong type,
-            out of range, pattern mismatch.";
-       }
-       enum unknown-element {
-         description
-           "An unexpected element is present.";
-       }
-       enum unknown-namespace {
-         description
-           "An unexpected namespace is present.";
-       }
-       enum access-denied {
-         description
-           "Access to the requested protocol operation or
-            data model is denied because authorization failed.";
-       }
-       enum lock-denied {
-         description
-           "Access to the requested lock is denied because the
-            lock is currently held by another entity.";
-       }
-       enum resource-denied {
-         description
-           "Request could not be completed because of
-            insufficient resources.";
-       }
-       enum rollback-failed {
-         description
-           "Request to roll back some configuration change (via
-            rollback-on-error or <discard-changes> operations)
-            was not completed for some reason.";
-
-       }
-       enum data-exists {
-         description
-           "Request could not be completed because the relevant
-            data model content already exists.  For example,
-            a 'create' operation was attempted on data that
-            already exists.";
-       }
-       enum data-missing {
-         description
-           "Request could not be completed because the relevant
-            data model content does not exist.  For example,
-            a 'delete' operation was attempted on
-            data that does not exist.";
-       }
-       enum operation-not-supported {
-         description
-           "Request could not be completed because the requested
-            operation is not supported by this implementation.";
-       }
-       enum operation-failed {
-         description
-           "Request could not be completed because the requested
-            operation failed for some reason not covered by
-            any other error condition.";
-       }
-       enum partial-operation {
-         description
-           "This error-tag is obsolete, and SHOULD NOT be sent
-            by servers conforming to this document.";
-       }
-       enum malformed-message {
-         description
-           "A message could not be handled because it failed to
-            be parsed correctly.  For example, the message is not
-            well-formed XML or it uses an invalid character set.";
-       }
-     }
-     description "NETCONF Error Tag";
-     reference "RFC 6241, Appendix A";
-  }
-
-  typedef error-severity-type {
-    type enumeration {
-      enum error {
-        description "Error severity";
-      }
-      enum warning {
-        description "Warning severity";
-      }
-    }
-    description "NETCONF Error Severity";
-    reference "RFC 6241, Section 4.3";
-  }
-
-  typedef edit-operation-type {
-    type enumeration {
-      enum merge {
-        description
-          "The configuration data identified by the
-           element containing this attribute is merged
-           with the configuration at the corresponding
-           level in the configuration datastore identified
-           by the target parameter.";
-      }
-      enum replace {
-        description
-          "The configuration data identified by the element
-           containing this attribute replaces any related
-           configuration in the configuration datastore
-           identified by the target parameter.  If no such
-           configuration data exists in the configuration
-           datastore, it is created.  Unlike a
-           <copy-config> operation, which replaces the
-           entire target configuration, only the configuration
-           actually present in the config parameter is affected.";
-      }
-      enum create {
-        description
-          "The configuration data identified by the element
-           containing this attribute is added to the
-           configuration if and only if the configuration
-           data does not already exist in the configuration
-           datastore.  If the configuration data exists, an
-           <rpc-error> element is returned with an
-           <error-tag> value of 'data-exists'.";
-      }
-      enum delete {
-        description
-          "The configuration data identified by the element
-           containing this attribute is deleted from the
-           configuration if and only if the configuration
-           data currently exists in the configuration
-           datastore.  If the configuration data does not
-           exist, an <rpc-error> element is returned with
-           an <error-tag> value of 'data-missing'.";
-      }
-      enum remove {
-        description
-          "The configuration data identified by the element
-           containing this attribute is deleted from the
-           configuration if the configuration
-           data currently exists in the configuration
-           datastore.  If the configuration data does not
-           exist, the 'remove' operation is silently ignored
-           by the server.";
-      }
-    }
-    default "merge";
-    description "NETCONF 'operation' attribute values";
-    reference "RFC 6241, Section 7.2";
-  }
-
-  // NETCONF Standard Protocol Operations
-
-  rpc get-config {
-    description
-      "Retrieve all or part of a specified configuration.";
-
-    reference "RFC 6241, Section 7.1";
-
-    input {
-      container source {
-        description
-          "Particular configuration to retrieve.";
-
-        choice config-source {
-          mandatory true;
-          description
-            "The configuration to retrieve.";
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config source.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config source.
-               This is optional-to-implement on the server because
-               not all servers will support filtering for this
-               datastore.";
-          }
-        }
-      }
-
-      anyxml filter {
-        description
-          "Subtree or XPath filter to use.";
-        nc:get-filter-element-attributes;
-      }
-    }
-
-    output {
-      anyxml data {
-        description
-          "Copy of the source datastore subset that matched
-           the filter criteria (if any).  An empty data container
-           indicates that the request did not produce any results.";
-      }
-    }
-  }
-
-  rpc edit-config {
-    description
-      "The <edit-config> operation loads all or part of a specified
-       configuration to the specified target configuration.";
-
-    reference "RFC 6241, Section 7.2";
-
-    input {
-      container target {
-        description
-          "Particular configuration to edit.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            if-feature writable-running;
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-        }
-      }
-
-      leaf default-operation {
-        type enumeration {
-          enum merge {
-            description
-              "The default operation is merge.";
-          }
-          enum replace {
-            description
-              "The default operation is replace.";
-          }
-          enum none {
-            description
-              "There is no default operation.";
-          }
-        }
-        default "merge";
-        description
-          "The default operation to use.";
-      }
-
-      leaf test-option {
-        if-feature validate;
-        type enumeration {
-          enum test-then-set {
-            description
-              "The server will test and then set if no errors.";
-          }
-          enum set {
-            description
-              "The server will set without a test first.";
-          }
-
-          enum test-only {
-            description
-              "The server will only test and not set, even
-               if there are no errors.";
-          }
-        }
-        default "test-then-set";
-        description
-          "The test option to use.";
-      }
-
-      leaf error-option {
-        type enumeration {
-          enum stop-on-error {
-            description
-              "The server will stop on errors.";
-          }
-          enum continue-on-error {
-            description
-              "The server may continue on errors.";
-          }
-          enum rollback-on-error {
-            description
-              "The server will roll back on errors.
-               This value can only be used if the 'rollback-on-error'
-               feature is supported.";
-          }
-        }
-        default "stop-on-error";
-        description
-          "The error option to use.";
-      }
-
-      choice edit-content {
-        mandatory true;
-        description
-          "The content for the edit operation.";
-
-        anyxml config {
-          description
-            "Inline Config content.";
-        }
-        leaf url {
-          if-feature url;
-          type inet:uri;
-          description
-            "URL-based config content.";
-        }
-      }
-    }
-  }
-
-  rpc copy-config {
-    description
-      "Create or replace an entire configuration datastore with the
-       contents of another complete configuration datastore.";
-
-    reference "RFC 6241, Section 7.3";
-
-    input {
-      container target {
-        description
-          "Particular configuration to copy to.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target of the copy operation.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            if-feature writable-running;
-            type empty;
-            description
-              "The running configuration is the config target.
-               This is optional-to-implement on the server.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config target.";
-          }
-        }
-      }
-
-      container source {
-        description
-          "Particular configuration to copy from.";
-
-        choice config-source {
-          mandatory true;
-          description
-            "The configuration source for the copy operation.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config source.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config source.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config source.";
-          }
-          anyxml config {
-            description
-              "Inline Config content: <config> element.  Represents
-               an entire configuration datastore, not
-               a subset of the running datastore.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc delete-config {
-    description
-      "Delete a configuration datastore.";
-
-    reference "RFC 6241, Section 7.4";
-
-    input {
-      container target {
-        description
-          "Particular configuration to delete.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target to delete.";
-
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config target.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc lock {
-    description
-      "The lock operation allows the client to lock the configuration
-       system of a device.";
-
-    reference "RFC 6241, Section 7.5";
-
-    input {
-      container target {
-        description
-          "Particular configuration to lock.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target to lock.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config target.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc unlock {
-    description
-      "The unlock operation is used to release a configuration lock,
-       previously obtained with the 'lock' operation.";
-
-    reference "RFC 6241, Section 7.6";
-
-    input {
-      container target {
-        description
-          "Particular configuration to unlock.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target to unlock.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config target.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc get {
-    description
-      "Retrieve running configuration and device state information.";
-
-    reference "RFC 6241, Section 7.7";
-
-    input {
-      anyxml filter {
-        description
-          "This parameter specifies the portion of the system
-           configuration and state data to retrieve.";
-        nc:get-filter-element-attributes;
-      }
-    }
-
-    output {
-      anyxml data {
-        description
-          "Copy of the running datastore subset and/or state
-           data that matched the filter criteria (if any).
-           An empty data container indicates that the request did not
-           produce any results.";
-      }
-    }
-  }
-
-  rpc close-session {
-    description
-      "Request graceful termination of a NETCONF session.";
-
-    reference "RFC 6241, Section 7.8";
-  }
-
-  rpc kill-session {
-    description
-      "Force the termination of a NETCONF session.";
-
-    reference "RFC 6241, Section 7.9";
-
-    input {
-      leaf session-id {
-        type session-id-type;
-        mandatory true;
-        description
-          "Particular session to kill.";
-      }
-    }
-  }
-
-  rpc commit {
-    if-feature candidate;
-
-    description
-      "Commit the candidate configuration as the device's new
-       current configuration.";
-
-    reference "RFC 6241, Section 8.3.4.1";
-
-    input {
-      leaf confirmed {
-        if-feature confirmed-commit;
-        type empty;
-        description
-          "Requests a confirmed commit.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-      leaf confirm-timeout {
-        if-feature confirmed-commit;
-        type uint32 {
-          range "1..max";
-        }
-        units "seconds";
-        default "600";   // 10 minutes
-        description
-          "The timeout interval for a confirmed commit.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-      leaf persist {
-        if-feature confirmed-commit;
-        type string;
-        description
-          "This parameter is used to make a confirmed commit
-           persistent.  A persistent confirmed commit is not aborted
-           if the NETCONF session terminates.  The only way to abort
-           a persistent confirmed commit is to let the timer expire,
-           or to use the <cancel-commit> operation.
-
-           The value of this parameter is a token that must be given
-           in the 'persist-id' parameter of <commit> or
-           <cancel-commit> operations in order to confirm or cancel
-           the persistent confirmed commit.
-
-           The token should be a random string.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-      leaf persist-id {
-        if-feature confirmed-commit;
-        type string;
-        description
-          "This parameter is given in order to commit a persistent
-           confirmed commit.  The value must be equal to the value
-           given in the 'persist' parameter to the <commit> operation.
-           If it does not match, the operation fails with an
-          'invalid-value' error.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-    }
-  }
-
-  rpc discard-changes {
-    if-feature candidate;
-
-    description
-      "Revert the candidate configuration to the current
-       running configuration.";
-    reference "RFC 6241, Section 8.3.4.2";
-  }
-
-  rpc cancel-commit {
-    if-feature confirmed-commit;
-    description
-      "This operation is used to cancel an ongoing confirmed commit.
-       If the confirmed commit is persistent, the parameter
-       'persist-id' must be given, and it must match the value of the
-       'persist' parameter.";
-    reference "RFC 6241, Section 8.4.4.1";
-
-    input {
-      leaf persist-id {
-        type string;
-        description
-          "This parameter is given in order to cancel a persistent
-           confirmed commit.  The value must be equal to the value
-           given in the 'persist' parameter to the <commit> operation.
-           If it does not match, the operation fails with an
-          'invalid-value' error.";
-      }
-    }
-  }
-
-  rpc validate {
-    if-feature validate;
-
-    description
-      "Validates the contents of the specified configuration.";
-
-    reference "RFC 6241, Section 8.6.4.1";
-
-    input {
-      container source {
-        description
-          "Particular configuration to validate.";
-
-        choice config-source {
-          mandatory true;
-          description
-            "The configuration source to validate.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config source.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config source.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config source.";
-          }
-          anyxml config {
-            description
-              "Inline Config content: <config> element.  Represents
-               an entire configuration datastore, not
-               a subset of the running datastore.";
-          }
-        }
-      }
-    }
-  }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-network-topology@2015-06-08.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-network-topology@2015-06-08.yang
deleted file mode 100644 (file)
index 0aeb2e5..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-module ietf-network-topology {
-  yang-version 1;
-  namespace "urn:ietf:params:xml:ns:yang:ietf-network-topology";
-  prefix lnk;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-  import ietf-network {
-    prefix nd;
-  }
-
-  organization "TBD";
-  contact
-    "WILL-BE-DEFINED-LATER";
-  description
-    "This module defines a common base model for network topology,
-     augmenting the base network model with links to connect nodes,
-     as well as termination points to terminate links on nodes.";
-
-  revision 2015-06-08 {
-    description
-      "Initial revision.";
-    reference "draft-ietf-i2rs-yang-network-topo-01";
-  }
-
-  typedef link-id {
-    type inet:uri;
-    description
-      "An identifier for a link in a topology.
-       The identifier may be opaque.
-       The identifier SHOULD be chosen such that the same link in a
-       real network topology will always be identified through the
-       same identifier, even if the model is instantiated in
-       separate datastores. An implementation MAY choose to capture
-       semantics in the identifier, for example to indicate the type
-       of link and/or the type of topology that the link is a part
-       of.";
-  }
-
-  typedef tp-id {
-    type inet:uri;
-    description
-      "An identifier for termination points on a node.
-       The identifier may be opaque.
-       The identifier SHOULD be chosen such that the same TP in a
-       real network topology will always be identified through the
-       same identifier, even if the model is instantiated in
-       separate datastores. An implementation MAY choose to capture
-       semantics in the identifier, for example to indicate the type
-       of TP and/or the type of node and topology that the TP is a
-       part of.";
-  }
-
-  grouping link-ref {
-    description
-      "References a link in a specific network.";
-    leaf link-ref {
-      type leafref {
-        path "/nd:network[nd:network-id=current()/../"+
-          "nd:network-ref]/link/link-id";
-      }
-      description
-        "A type for an absolute reference a link instance.
-         (This type should not be used for relative references.
-         In such a case, a relative path should be used instead.)";
-    }
-    uses nd:network-ref;
-  }
-
-  grouping tp-ref {
-    description
-      "References a termination point in a specific node.";
-    leaf tp-ref {
-      type leafref {
-        path "/nd:network[nd:network-id=current()/../"+
-          "nd:network-ref]/nd:node[nd:node-id=current()/../"+
-          "nd:node-ref]/termination-point/tp-id";
-      }
-      description
-        "A type for an absolute reference to a termination point.
-         (This type should not be used for relative references.
-         In such a case, a relative path should be used instead.)";
-    }
-    uses nd:node-ref;
-  }
-
-  augment "/nd:network" {
-    description
-      "Add links to the network model.";
-    list link {
-      key "link-id";
-      description
-        "A Network Link connects a by Local (Source) node and
-         a Remote (Destination) Network Nodes via a set of the
-         nodes' termination points.
-         As it is possible to have several links between the same
-         source and destination nodes, and as a link could
-         potentially be re-homed between termination points, to
-         ensure that we would always know to distinguish between
-         links, every link is identified by a dedicated link
-         identifier.
-         Note that a link models a point-to-point link, not a
-         multipoint link.
-         Layering dependencies on links in underlay topologies are
-         not represented as the layering information of nodes and of
-         termination points is sufficient.";
-      container source {
-        description
-          "This container holds the logical source of a particular
-           link.";
-        leaf source-node {
-          type leafref {
-            path "../../../nd:node/nd:node-id";
-          }
-          mandatory true;
-          description
-            "Source node identifier, must be in same topology.";
-        }
-        leaf source-tp {
-          type leafref {
-            path "../../../nd:node[nd:node-id=current()/../"+
-              "source-node]/termination-point/tp-id";
-          }
-          description
-            "Termination point within source node that terminates
-             the link.";
-        }
-      }
-      container destination {
-        description
-          "This container holds the logical destination of a
-           particular link.";
-        leaf dest-node {
-          type leafref {
-            path "../../../nd:node/nd:node-id";
-          }
-          mandatory true;
-          description
-            "Destination node identifier, must be in the same
-             network.";
-        }
-        leaf dest-tp {
-          type leafref {
-            path "../../../nd:node[nd:node-id=current()/../"+
-              "dest-node]/termination-point/tp-id";
-          }
-          description
-            "Termination point within destination node that
-             terminates the link.";
-        }
-      }
-      leaf link-id {
-        type link-id;
-        description
-          "The identifier of a link in the topology.
-           A link is specific to a topology to which it belongs.";
-      }
-      list supporting-link {
-        key "network-ref link-ref";
-        description
-          "Identifies the link, or links, that this link
-           is dependent on.";
-        leaf network-ref {
-          type leafref {
-            path "../../../nd:supporting-network/nd:network-ref";
-          }
-          description
-            "This leaf identifies in which underlay topology
-             supporting link is present.";
-        }
-        leaf link-ref {
-          type leafref {
-            path "/nd:network[nd:network-id=current()/.."+
-              "/network-ref]/link/link-id";
-          }
-          description
-            "This leaf identifies a link which is a part
-             of this link's underlay. Reference loops, in which
-             a link identifies itself as its underlay, either
-             directly or transitively, are not allowed.";
-        }
-      }
-    }
-  }
-  augment "/nd:network/nd:node" {
-    description
-      "Augment termination points which terminate links.
-       Termination points can ultimately be mapped to interfaces.";
-    list termination-point {
-      key "tp-id";
-      description
-        "A termination point can terminate a link.
-         Depending on the type of topology, a termination point
-         could, for example, refer to a port or an interface.";
-      leaf tp-id {
-        type tp-id;
-        description
-          "Termination point identifier.";
-      }
-      list supporting-termination-point {
-        key "network-ref node-ref tp-ref";
-        description
-          "The leaf list identifies any termination points that
-           the termination point is dependent on, or maps onto.
-           Those termination points will themselves be contained
-           in a supporting node.
-           This dependency information can be inferred from
-           the dependencies between links.  For this reason,
-           this item is not separately configurable.  Hence no
-           corresponding constraint needs to be articulated.
-           The corresponding information is simply provided by the
-           implementing system.";
-        leaf network-ref {
-          type leafref {
-            path "../../../nd:supporting-node/nd:network-ref";
-          }
-          description
-            "This leaf identifies in which topology the
-             supporting termination point is present.";
-        }
-        leaf node-ref {
-          type leafref {
-            path "../../../nd:supporting-node/nd:node-ref";
-          }
-          description
-            "This leaf identifies in which node the supporting
-             termination point is present.";
-        }
-        leaf tp-ref {
-          type leafref {
-            path "/nd:network[nd:network-id=current()/../"+
-              "network-ref]/nd:node[nd:node-id=current()/../"+
-              "node-ref]/termination-point/tp-id";
-          }
-          description
-            "Reference to the underlay node, must be in a
-             different topology";
-        }
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-network@2015-06-08.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-network@2015-06-08.yang
deleted file mode 100644 (file)
index 9e2dadf..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-module ietf-network {
-  yang-version 1;
-  namespace "urn:ietf:params:xml:ns:yang:ietf-network";
-  prefix nd;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-
-  organization "TBD";
-  contact
-    "WILL-BE-DEFINED-LATER";
-  description
-    "This module defines a common base model for a collection
-     of nodes in a network. Node definitions s are further used
-     in network topologies and inventories.";
-
-  revision 2015-06-08 {
-    description
-      "Initial revision.";
-    reference "draft-ietf-i2rs-yang-network-topo-01";
-  }
-
-  typedef node-id {
-    type inet:uri;
-    description
-      "Identifier for a node.";
-  }
-
-  typedef network-id {
-    type inet:uri;
-    description
-      "Identifier for a network.";
-  }
-
-  grouping network-ref {
-    description
-      "Contains the information necessary to reference a network,
-       for example an underlay network.";
-    leaf network-ref {
-      type leafref {
-        path "/network/network-id";
-      }
-      description
-        "Used to reference a network, for example an underlay
-         network.";
-    }
-  }
-
-  grouping node-ref {
-    description
-      "Contains the information necessary to reference a node.";
-    leaf node-ref {
-      type leafref {
-        path "/network[network-id=current()/../network-ref]"+
-          "/node/node-id";
-      }
-      description
-        "Used to reference a node.
-         Nodes are identified relative to the network they are
-         contained in.";
-    }
-    uses network-ref;
-  }
-
-  list network {
-    key "network-id";
-    description
-      "Describes a network.
-       A network typically contains an inventory of nodes,
-       topological information (augmented through
-       network-topology model), as well as layering
-       information.";
-    container network-types {
-      description
-        "Serves as an augmentation target.
-         The network type is indicated through corresponding
-         presence containers augmented into this container.";
-    }
-    leaf network-id {
-      type network-id;
-      description
-        "Identifies a network.";
-    }
-    leaf server-provided {
-      type boolean;
-      config false;
-      description
-        "Indicates whether the information concerning this
-         particular network is populated by the server
-         (server-provided true, the general case for network
-         information discovered from the server),
-         or whether it is configured by a client
-         (server-provided true, possible e.g. for
-         service overlays managed through a controller).";
-    }
-    list supporting-network {
-      key "network-ref";
-      description
-        "An underlay network, used to represent layered network
-         topologies.";
-      leaf network-ref {
-        type leafref {
-          path "/network/network-id";
-        }
-        description
-          "References the underlay network.";
-      }
-    }
-    list node {
-      key "node-id";
-      description
-        "The inventory of nodes of this network.";
-      leaf node-id {
-        type node-id;
-        description
-          "Identifies a node uniquely within the containing
-           network.";
-      }
-      list supporting-node {
-        key "network-ref node-ref";
-        description
-          "Represents another node, in an underlay network, that
-           this node is supported by.  Used to represent layering
-           structure.";
-        leaf network-ref {
-          type leafref {
-            path "../../../supporting-network/network-ref";
-          }
-          description
-            "References the underlay network that the
-             underlay node is part of.";
-        }
-        leaf node-ref {
-          type leafref {
-            path "/network/node/node-id";
-          }
-          description
-            "References the underlay node itself.";
-        }
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-yang-types@2013-07-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/ietf-yang-types@2013-07-15.yang
deleted file mode 100644 (file)
index bdff18c..0000000
+++ /dev/null
@@ -1,467 +0,0 @@
-module ietf-yang-types {
-
-     namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types";
-     prefix "yang";
-
-     organization
-      "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-
-     contact
-      "WG Web:   <http://tools.ietf.org/wg/netmod/>
-       WG List:  <mailto:netmod@ietf.org>
-       WG Chair: David Kessens
-                 <mailto:david.kessens@nsn.com>
-
-       WG Chair: Juergen Schoenwaelder
-                 <mailto:j.schoenwaelder@jacobs-university.de>
-
-       Editor:   Juergen Schoenwaelder
-                 <mailto:j.schoenwaelder@jacobs-university.de>";
-
-     description
-      "This module contains a collection of generally useful derived
-       YANG data types.
-
-       Copyright (c) 2013 IETF Trust and the persons identified as
-       authors of the code.  All rights reserved.
-
-       Redistribution and use in source and binary forms, with or
-       without modification, is permitted pursuant to, and subject
-       to the license terms contained in, the Simplified BSD License
-       set forth in Section 4.c of the IETF Trust's Legal Provisions
-       Relating to IETF Documents
-       (http://trustee.ietf.org/license-info).
-
-       This version of this YANG module is part of RFC 6991; see
-       the RFC itself for full legal notices.";
-
-     revision 2013-07-15 {
-       description
-        "This revision adds the following new data types:
-         - yang-identifier
-         - hex-string
-         - uuid
-         - dotted-quad";
-       reference
-        "RFC 6991: Common YANG Data Types";
-     }
-
-     revision 2010-09-24 {
-       description
-        "Initial revision.";
-       reference
-        "RFC 6021: Common YANG Data Types";
-     }
-
-     /*** collection of counter and gauge types ***/
-
-     typedef counter32 {
-       type uint32;
-       description
-        "The counter32 type represents a non-negative integer
-         that monotonically increases until it reaches a
-         maximum value of 2^32-1 (4294967295 decimal), when it
-         wraps around and starts increasing again from zero.
-
-         Counters have no defined 'initial' value, and thus, a
-         single value of a counter has (in general) no information
-         content.  Discontinuities in the monotonically increasing
-         value normally occur at re-initialization of the
-         management system, and at other times as specified in the
-         description of a schema node using this type.  If such
-         other times can occur, for example, the creation of
-         a schema node of type counter32 at times other than
-         re-initialization, then a corresponding schema node
-         should be defined, with an appropriate type, to indicate
-         the last discontinuity.
-
-         The counter32 type should not be used for configuration
-         schema nodes.  A default statement SHOULD NOT be used in
-         combination with the type counter32.
-
-         In the value set and its semantics, this type is equivalent
-         to the Counter32 type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef zero-based-counter32 {
-       type yang:counter32;
-       default "0";
-       description
-        "The zero-based-counter32 type represents a counter32
-         that has the defined 'initial' value zero.
-
-         A schema node of this type will be set to zero (0) on creation
-         and will thereafter increase monotonically until it reaches
-         a maximum value of 2^32-1 (4294967295 decimal), when it
-         wraps around and starts increasing again from zero.
-
-         Provided that an application discovers a new schema node
-         of this type within the minimum time to wrap, it can use the
-         'initial' value as a delta.  It is important for a management
-         station to be aware of this minimum time and the actual time
-         between polls, and to discard data if the actual time is too
-         long or there is no defined minimum time.
-        In the value set and its semantics, this type is equivalent
-         to the ZeroBasedCounter32 textual convention of the SMIv2.";
-       reference
-         "RFC 4502: Remote Network Monitoring Management Information
-                    Base Version 2";
-     }
-
-     typedef counter64 {
-       type uint64;
-       description
-        "The counter64 type represents a non-negative integer
-         that monotonically increases until it reaches a
-         maximum value of 2^64-1 (18446744073709551615 decimal),
-         when it wraps around and starts increasing again from zero.
-
-         Counters have no defined 'initial' value, and thus, a
-         single value of a counter has (in general) no information
-         content.  Discontinuities in the monotonically increasing
-         value normally occur at re-initialization of the
-         management system, and at other times as specified in the
-         description of a schema node using this type.  If such
-         other times can occur, for example, the creation of
-         a schema node of type counter64 at times other than
-         re-initialization, then a corresponding schema node
-         should be defined, with an appropriate type, to indicate
-         the last discontinuity.
-
-         The counter64 type should not be used for configuration
-         schema nodes.  A default statement SHOULD NOT be used in
-         combination with the type counter64.
-
-         In the value set and its semantics, this type is equivalent
-         to the Counter64 type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef zero-based-counter64 {
-       type yang:counter64;
-       default "0";
-       description
-        "The zero-based-counter64 type represents a counter64 that
-         has the defined 'initial' value zero.
-         A schema node of this type will be set to zero (0) on creation
-         and will thereafter increase monotonically until it reaches
-         a maximum value of 2^64-1 (18446744073709551615 decimal),
-         when it wraps around and starts increasing again from zero.
-
-         Provided that an application discovers a new schema node
-         of this type within the minimum time to wrap, it can use the
-         'initial' value as a delta.  It is important for a management
-         station to be aware of this minimum time and the actual time
-         between polls, and to discard data if the actual time is too
-         long or there is no defined minimum time.
-
-         In the value set and its semantics, this type is equivalent
-         to the ZeroBasedCounter64 textual convention of the SMIv2.";
-       reference
-        "RFC 2856: Textual Conventions for Additional High Capacity
-                   Data Types";
-     }
-
-     typedef gauge32 {
-       type uint32;
-       description
-        "The gauge32 type represents a non-negative integer, which
-         may increase or decrease, but shall never exceed a maximum
-         value, nor fall below a minimum value.  The maximum value
-         cannot be greater than 2^32-1 (4294967295 decimal), and
-         the minimum value cannot be smaller than 0.  The value of
-         a gauge32 has its maximum value whenever the information
-         being modeled is greater than or equal to its maximum
-         value, and has its minimum value whenever the information
-         being modeled is smaller than or equal to its minimum value.
-         If the information being modeled subsequently decreases
-         below (increases above) the maximum (minimum) value, the
-         gauge32 also decreases (increases).
-
-         In the value set and its semantics, this type is equivalent
-         to the Gauge32 type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef gauge64 {
-       type uint64;
-       description
-        "The gauge64 type represents a non-negative integer, which
-         may increase or decrease, but shall never exceed a maximum
-         value, nor fall below a minimum value.  The maximum value
-         cannot be greater than 2^64-1 (18446744073709551615), and
-         the minimum value cannot be smaller than 0.  The value of
-         a gauge64 has its maximum value whenever the information
-         being modeled is greater than or equal to its maximum
-         value, and has its minimum value whenever the information
-         being modeled is smaller than or equal to its minimum value.
-         If the information being modeled subsequently decreases
-         below (increases above) the maximum (minimum) value, the
-         gauge64 also decreases (increases).
-
-         In the value set and its semantics, this type is equivalent
-         to the CounterBasedGauge64 SMIv2 textual convention defined
-         in RFC 2856";
-       reference
-        "RFC 2856: Textual Conventions for Additional High Capacity
-                   Data Types";
-     }
-
-     /*** collection of identifier-related types ***/
-
-     typedef object-identifier {
-       type string {
-         pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))'
-               + '(\.(0|([1-9]\d*)))*';
-       }
-       description
-        "The object-identifier type represents administratively
-         assigned names in a registration-hierarchical-name tree.
-
-         Values of this type are denoted as a sequence of numerical
-         non-negative sub-identifier values.  Each sub-identifier
-         value MUST NOT exceed 2^32-1 (4294967295).  Sub-identifiers
-         are separated by single dots and without any intermediate
-         whitespace.
-
-         The ASN.1 standard restricts the value space of the first
-         sub-identifier to 0, 1, or 2.  Furthermore, the value space
-         of the second sub-identifier is restricted to the range
-         0 to 39 if the first sub-identifier is 0 or 1.  Finally,
-         the ASN.1 standard requires that an object identifier
-         has always at least two sub-identifiers.  The pattern
-         captures these restrictions.
-
-         Although the number of sub-identifiers is not limited,
-         module designers should realize that there may be
-         implementations that stick with the SMIv2 limit of 128
-         sub-identifiers.
-         This type is a superset of the SMIv2 OBJECT IDENTIFIER type
-         since it is not restricted to 128 sub-identifiers.  Hence,
-         this type SHOULD NOT be used to represent the SMIv2 OBJECT
-         IDENTIFIER type; the object-identifier-128 type SHOULD be
-         used instead.";
-       reference
-        "ISO9834-1: Information technology -- Open Systems
-         Interconnection -- Procedures for the operation of OSI
-         Registration Authorities: General procedures and top
-         arcs of the ASN.1 Object Identifier tree";
-     }
-
-     typedef object-identifier-128 {
-       type object-identifier {
-         pattern '\d*(\.\d*){1,127}';
-       }
-       description
-        "This type represents object-identifiers restricted to 128
-         sub-identifiers.
-
-         In the value set and its semantics, this type is equivalent
-         to the OBJECT IDENTIFIER type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef yang-identifier {
-       type string {
-         length "1..max";
-         pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*';
-         pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*';
-       }
-       description
-         "A YANG identifier string as defined by the 'identifier'
-          rule in Section 12 of RFC 6020.  An identifier must
-          start with an alphabetic character or an underscore
-          followed by an arbitrary sequence of alphabetic or
-          numeric characters, underscores, hyphens, or dots.
-
-          A YANG identifier MUST NOT start with any possible
-          combination of the lowercase or uppercase character
-          sequence 'xml'.";
-       reference
-         "RFC 6020: YANG - A Data Modeling Language for the Network
-                    Configuration Protocol (NETCONF)";
-     }
-     /*** collection of types related to date and time***/
-
-     typedef date-and-time {
-       type string {
-         pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?'
-               + '(Z|[\+\-]\d{2}:\d{2})';
-       }
-       description
-        "The date-and-time type is a profile of the ISO 8601
-         standard for representation of dates and times using the
-         Gregorian calendar.  The profile is defined by the
-         date-time production in Section 5.6 of RFC 3339.
-
-         The date-and-time type is compatible with the dateTime XML
-         schema type with the following notable exceptions:
-
-         (a) The date-and-time type does not allow negative years.
-
-         (b) The date-and-time time-offset -00:00 indicates an unknown
-             time zone (see RFC 3339) while -00:00 and +00:00 and Z
-             all represent the same time zone in dateTime.
-
-         (c) The canonical format (see below) of data-and-time values
-             differs from the canonical format used by the dateTime XML
-             schema type, which requires all times to be in UTC using
-             the time-offset 'Z'.
-
-         This type is not equivalent to the DateAndTime textual
-         convention of the SMIv2 since RFC 3339 uses a different
-         separator between full-date and full-time and provides
-         higher resolution of time-secfrac.
-
-         The canonical format for date-and-time values with a known time
-         zone uses a numeric time zone offset that is calculated using
-         the device's configured known offset to UTC time.  A change of
-         the device's offset to UTC time will cause date-and-time values
-         to change accordingly.  Such changes might happen periodically
-         in case a server follows automatically daylight saving time
-         (DST) time zone offset changes.  The canonical format for
-         date-and-time values with an unknown time zone (usually
-         referring to the notion of local time) uses the time-offset
-         -00:00.";
-       reference
-        "RFC 3339: Date and Time on the Internet: Timestamps
-         RFC 2579: Textual Conventions for SMIv2
-         XSD-TYPES: XML Schema Part 2: Datatypes Second Edition";
-     }
-     typedef timeticks {
-       type uint32;
-       description
-        "The timeticks type represents a non-negative integer that
-         represents the time, modulo 2^32 (4294967296 decimal), in
-         hundredths of a second between two epochs.  When a schema
-         node is defined that uses this type, the description of
-         the schema node identifies both of the reference epochs.
-
-         In the value set and its semantics, this type is equivalent
-         to the TimeTicks type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef timestamp {
-       type yang:timeticks;
-       description
-        "The timestamp type represents the value of an associated
-         timeticks schema node at which a specific occurrence
-         happened.  The specific occurrence must be defined in the
-         description of any schema node defined using this type.  When
-         the specific occurrence occurred prior to the last time the
-         associated timeticks attribute was zero, then the timestamp
-         value is zero.  Note that this requires all timestamp values
-         to be reset to zero when the value of the associated timeticks
-         attribute reaches 497+ days and wraps around to zero.
-
-         The associated timeticks schema node must be specified
-         in the description of any schema node using this type.
-
-         In the value set and its semantics, this type is equivalent
-         to the TimeStamp textual convention of the SMIv2.";
-       reference
-        "RFC 2579: Textual Conventions for SMIv2";
-     }
-
-     /*** collection of generic address types ***/
-
-     typedef phys-address {
-       type string {
-         pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
-       }
-       description
-        "Represents media- or physical-level addresses represented
-         as a sequence octets, each octet represented by two hexadecimal
-         numbers.  Octets are separated by colons.  The canonical
-         representation uses lowercase characters.
-
-         In the value set and its semantics, this type is equivalent
-         to the PhysAddress textual convention of the SMIv2.";
-       reference
-        "RFC 2579: Textual Conventions for SMIv2";
-     }
-
-     typedef mac-address {
-       type string {
-         pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}';
-       }
-       description
-        "The mac-address type represents an IEEE 802 MAC address.
-         The canonical representation uses lowercase characters.
-
-         In the value set and its semantics, this type is equivalent
-         to the MacAddress textual convention of the SMIv2.";
-       reference
-        "IEEE 802: IEEE Standard for Local and Metropolitan Area
-                   Networks: Overview and Architecture
-         RFC 2579: Textual Conventions for SMIv2";
-     }
-
-     /*** collection of XML-specific types ***/
-
-     typedef xpath1.0 {
-       type string;
-       description
-        "This type represents an XPATH 1.0 expression.
-
-         When a schema node is defined that uses this type, the
-         description of the schema node MUST specify the XPath
-         context in which the XPath expression is evaluated.";
-       reference
-        "XPATH: XML Path Language (XPath) Version 1.0";
-     }
-
-     /*** collection of string types ***/
-
-     typedef hex-string {
-       type string {
-         pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
-       }
-       description
-        "A hexadecimal string with octets represented as hex digits
-         separated by colons.  The canonical representation uses
-         lowercase characters.";
-     }
-
-     typedef uuid {
-       type string {
-         pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'
-               + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}';
-       }
-       description
-        "A Universally Unique IDentifier in the string representation
-         defined in RFC 4122.  The canonical representation uses
-         lowercase characters.
-
-         The following is an example of a UUID in string representation:
-         f81d4fae-7dec-11d0-a765-00a0c91e6bf6
-         ";
-       reference
-        "RFC 4122: A Universally Unique IDentifier (UUID) URN
-                   Namespace";
-     }
-
-     typedef dotted-quad {
-       type string {
-         pattern
-           '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-         + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
-       }
-       description
-         "An unsigned 32-bit number expressed in the dotted-quad
-          notation, i.e., four octets written as decimal numbers
-          and separated with the '.' (full stop) character.";
-     }
-   }
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/notifications@2008-07-14.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/notifications@2008-07-14.yang
deleted file mode 100644 (file)
index 77fbe98..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-module notifications {
-
-    namespace "urn:ietf:params:xml:ns:netconf:notification:1.0";
-    prefix "ncEvent";
-
-    import ietf-yang-types { prefix yang; revision-date "2013-07-15";}
-
-    organization
-      "IETF NETCONF WG";
-
-    contact
-      "netconf@ops.ietf.org";
-
-    description
-      "Conversion of the 'ncEvent' XSD in the
-       NETCONF Notifications RFC.";
-
-    reference
-      "RFC 5277.";
-
-    revision 2008-07-14 {
-      description "RFC 5277 version.";
-    }
-
-    typedef streamNameType {
-      description
-        "The name of an event stream.";
-      type string;
-    }
-
-    rpc create-subscription {
-      description
-        "The command to create a notification subscription. It
-         takes as argument the name of the notification stream
-         and filter. Both of those options limit the content of
-         the subscription. In addition, there are two time-related
-         parameters, startTime and stopTime, which can be used to
-         select the time interval of interest to the notification
-         replay feature.";
-
-      input {
-        leaf stream {
-          description
-            "An optional parameter that indicates which stream of events
-             is of interest. If not present, then events in the default
-             NETCONF stream will be sent.";
-          type streamNameType;
-          default "NETCONF";
-        }
-
-        anyxml filter {
-          description
-            "An optional parameter that indicates which subset of all
-             possible events is of interest. The format of this
-             parameter is the same as that of the filter parameter
-             in the NETCONF protocol operations. If not present,
-             all events not precluded by other parameters will
-             be sent.";
-        }
-
-        leaf startTime {
-          description
-            "A parameter used to trigger the replay feature and
-             indicates that the replay should start at the time
-             specified. If start time is not present, this is not a
-             replay subscription.";
-          type yang:date-and-time;
-        }
-
-        leaf stopTime {
-          // must ". >= ../startTime";
-          description
-            "An optional parameter used with the optional replay
-             feature to indicate the newest notifications of
-             interest. If stop time is not present, the notifications
-             will continue until the subscription is terminated.
-             Must be used with startTime.";
-          type yang:date-and-time;
-        }
-      }
-    }
-}
-
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-alarm@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-alarm@2018-10-19.yang
deleted file mode 100644 (file)
index 6168ed3..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-module org-openroadm-alarm {
-  namespace "http://org/openroadm/alarm";
-  prefix org-openroadm-alarm;
-
-  import ietf-yang-types {
-    prefix yang;
-    revision-date 2013-07-15;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-resource {
-    prefix org-openroadm-resource;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-probable-cause {
-    prefix org-openroadm-probable-cause;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of an alarm.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping alarm {
-    leaf id {
-      type string;
-      mandatory true;
-      description
-        "Uniquely id for this alarm, within the given management domain";
-    }
-    container resource {
-      description
-        "Resource under alarm";
-      uses org-openroadm-resource:resource;
-    }
-    container probableCause {
-      description
-        "Probable cause of alarm";
-      uses org-openroadm-probable-cause:probable-cause;
-    }
-    leaf raiseTime {
-      type yang:date-and-time;
-      mandatory true;
-      description
-        "Time alarm was raised";
-    }
-    leaf severity {
-      type org-openroadm-common-types:severity;
-      mandatory true;
-      description
-        "Severity of alarm. Based on X.733 perceived severity.";
-    }
-    leaf circuit-id {
-      type string;
-      description
-        "Circuit-id for alarm correlation.";
-    }
-    leaf additional-detail {
-      type string;
-      description
-        "Provide additional descriptive text about the probable cause.";
-    }
-    leaf corrective-action {
-      type string;
-      description
-        "Provide recommended corrective actions for this probable cause, i.e. replace or restart a circuit pack, check wiring for the reported source, or secondary failure to be correlated ";
-    }
-  }
-
-  notification alarm-notification {
-    description
-      "Notification sent on initial alarm creation, as well as any time the alarm changes state, including clear";
-    uses alarm;
-  }
-  container active-alarm-list {
-    config false;
-    description
-      "List of currently active alarms. An alarm is removed from this table when the state transitions to clear.";
-    list activeAlarms {
-      key "id";
-      uses alarm;
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-common-types@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-common-types@2018-10-19.yang
deleted file mode 100644 (file)
index 6f2d9fe..0000000
+++ /dev/null
@@ -1,675 +0,0 @@
-module org-openroadm-common-types {
-  namespace "http://org/openroadm/common-types";
-  prefix org-openroadm-common-types;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of common types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity och-rate-identity {
-    description
-      "A unique och rate identification";
-  }
-
-  identity R200G {
-    base och-rate-identity;
-    description
-      "Identity for 200G Rate";
-  }
-
-  identity R100G {
-    base och-rate-identity;
-    description
-      "Identity for 100G Rate";
-  }
-
-  identity R10.7G {
-    base och-rate-identity;
-    description
-      "Identity for 10.7G Rate";
-  }
-
-  identity R11.1G {
-    base och-rate-identity;
-    description
-      "Identity for 11.1G Rate";
-  }
-
-  typedef node-types {
-    type enumeration {
-      enum "rdm" {
-        value 1;
-      }
-      enum "xpdr" {
-        value 2;
-      }
-      enum "ila" {
-        value 3;
-      }
-      enum "extplug" {
-        value 4;
-      }
-    }
-    description
-      "Identifier for node type
-       1. rdm for ROADM
-       2. xpdr for Transponder, Regen
-       3. ila for in-line amplifier
-       4. extplug for external plugable";
-  }
-
-  typedef node-id-type {
-    type string {
-      length "7..63";
-      pattern "([a-zA-Z][a-zA-Z0-9-]{5,18}[a-zA-Z0-9])" {
-        error-message
-          "A node-id must be 7 to 63 characters in length.
-           A node-id can contain letters, numbers, and hyphens.
-           The first character must be a letter.
-           The last character must be a letter or number.";
-      }
-    }
-    description
-      "Globally unique identifer for a device.";
-  }
-
-  typedef xpdr-node-types {
-    type enumeration {
-      enum "tpdr" {
-        value 1;
-      }
-      enum "mpdr" {
-        value 2;
-      }
-      enum "switch" {
-        value 3;
-      }
-      enum "regen" {
-        value 4;
-      }
-      enum "regen-uni" {
-        value 5;
-      }
-    }
-    description
-      "Identifier for Xponder node type
-       1. Transponder
-       2. Muxponder
-       3. OTN switchponder
-       4. Regenerator
-       5. Regenerator based on unidirectional model";
-  }
-
-  typedef frequency-THz {
-    type decimal64 {
-      fraction-digits 8;
-    }
-    units "THz";
-    description
-      "Frequency value in THz.";
-  }
-
-  typedef frequency-GHz {
-    type decimal64 {
-      fraction-digits 5;
-    }
-    units "GHz";
-    description
-      "Frequency value in GHz.";
-  }
-
-  typedef power-dBm {
-    type decimal64 {
-      fraction-digits 2;
-    }
-    units "dBm";
-    description
-      "Power value in dBm.";
-  }
-
-  typedef ratio-dB {
-    type decimal64 {
-      fraction-digits 3;
-    }
-    units "dB";
-    description
-      "Power ratio in dB.";
-  }
-
-  typedef fiber-pmd {
-    type decimal64 {
-      fraction-digits 2;
-    }
-    units "ps/(km[1/2])";
-    description
-      "Polarization Mode Dispersion expressed in ps/km(1/2).";
-  }
-
-  typedef amplifier-types {
-    type enumeration {
-      enum "standard" {
-        value 1;
-      }
-    }
-    description
-      "identifier for amplifier type
-       1. standard for amplifier as defined initially in the ROADM MSA specifications
-       To be completed if/when additional amplifier types are required ";
-  }
-
-  typedef line-amplifier-control-mode {
-    type enumeration {
-      enum "gainLoss" {
-        value 2;
-      }
-      enum "off" {
-        value 3;
-      }
-    }
-    description
-      "Identifies the line amplifier control mode, either off or gain.";
-  }
-
-  typedef amplifier-gain-range {
-    type enumeration {
-      enum "gain-range-1" {
-        value 1;
-      }
-      enum "gain-range-2" {
-        value 2;
-      }
-      enum "gain-range-3" {
-        value 3;
-      }
-      enum "gain-range-4" {
-        value 4;
-      }
-    }
-    description
-      "Operational mode for the amplifier:
-       this parameter allows modeling different operational modes (gain ranges) ,notably for switched-gain amplifiers.
-       It indicates which performance model shall be used by the path feasibility engine.
-       For standard amplifier, or when performance evaluation is based on incremental noise, use gain-range-1.
-       When performance evaluation is based on advanced parameters, specify used gain-range (1 to 4).
-       Up to release 2.1, only gain-range-1 is to be used (default value) ";
-  }
-
-  typedef severity {
-    type enumeration {
-      enum "critical" {
-        value 1;
-      }
-      enum "major" {
-        value 2;
-      }
-      enum "minor" {
-        value 3;
-      }
-      enum "warning" {
-        value 4;
-      }
-      enum "clear" {
-        value 5;
-      }
-      enum "indeterminate" {
-        value 6;
-      }
-    }
-    description
-      "Severity, based on X.733 perceived severity";
-  }
-
-  typedef activate-notification-type {
-    type enumeration {
-      enum "activate" {
-        value 1;
-        description
-          "software or database activation";
-      }
-      enum "commit" {
-        value 2;
-        description
-          "commit the software or database.
-           For software activate, this event can happen in the following scenarios:
-             1) immediately when user issue db-activate command without rollBackTimer
-                or if the rollBackTimer is specified as 00-00-00;
-             2) when user issue cancel-rollback-timer before it expires and with accept=true.
-           For database activate, this event can occur in the following scenarios:
-             1) immediately when user issue db-activate command without rollBackTimer
-                or if the rollBackTimer is specified as 00-00-00;
-             2) when user issue cancel-rollback-timer before it expires and with accept=true.";
-      }
-      enum "cancel" {
-        value 3;
-        description
-          "cancel the database or software activation operation.
-           For software activate, this event can happen in the following cases:
-             1) when the rollBackTimer expires;
-             2) when the user issues cancel-rollback-timer with accept=false.
-           For database activate, this event can happen in the following cases:
-             1) when the rollBackTimer expires;
-             2) when the user issues cancel-rollback-timer with accept=false.";
-      }
-    }
-    description
-      "Type of notification on software or database activation events";
-  }
-
-  typedef rpc-status {
-    type enumeration {
-      enum "Successful" {
-        value 1;
-      }
-      enum "Failed" {
-        value 2;
-      }
-    }
-    description
-      "status of RPC ";
-  }
-
-  typedef extended-rpc-status {
-    type enumeration {
-      enum "Successful" {
-        value 1;
-      }
-      enum "Failed" {
-        value 2;
-      }
-      enum "In-progress" {
-        value 3;
-      }
-    }
-    description
-      "status of RPC ";
-  }
-
-  typedef openroadm-version-type {
-    type enumeration {
-      enum "1.0" {
-        value 1;
-        description
-          "value for 1.0";
-      }
-      enum "2.0" {
-        value 2;
-        description
-          "value for 2.0";
-      }
-      enum "2.1" {
-        value 3;
-        description
-          "value for 2.1";
-      }
-      enum "2.2" {
-        value 4;
-        description
-          "value for 2.2";
-      }
-      enum "2.2.1" {
-        value 8;
-        description
-          "value for 2.2";
-      }
-    }
-    description
-      "OpenROADM version enum type";
-  }
-
-  typedef lifecycle-state {
-    type enumeration {
-      enum "deployed" {
-        value 1;
-      }
-      enum "planned" {
-        value 2;
-      }
-      enum "maintenance" {
-        value 3;
-      }
-      enum "deploying" {
-        value 4;
-      }
-      enum "undeploying" {
-        value 5;
-      }
-      enum "undeployed" {
-        value 6;
-      }
-      enum "proposed" {
-        value 7;
-      }
-      enum "draft" {
-        value 8;
-      }
-      enum "deploy-failed" {
-        value 9;
-      }
-      enum "undeploy-failed" {
-        value 10;
-      }
-    }
-    description
-      "Lifecycle state.";
-  }
-
-  typedef state {
-    type enumeration {
-      enum "inService" {
-        value 1;
-      }
-      enum "outOfService" {
-        value 2;
-      }
-      enum "degraded" {
-        value 3;
-      }
-    }
-    description
-      "State that indicates whether the resource is able to provide fullfill its role - carry traffic, etc.";
-  }
-
-  typedef optic-types {
-    type enumeration {
-      enum "gray" {
-        value 1;
-      }
-      enum "dwdm" {
-        value 2;
-      }
-    }
-  }
-
-  typedef equipment-type-enum {
-    type enumeration {
-      enum "other" {
-        value 1;
-      }
-      enum "powerSupply" {
-        value 2;
-      }
-      enum "shelfProcessor" {
-        value 3;
-      }
-      enum "crossConnect" {
-        value 4;
-      }
-      enum "fan" {
-        value 5;
-      }
-      enum "accessPanel" {
-        value 6;
-      }
-      enum "circuitPack" {
-        value 7;
-      }
-    }
-  }
-
-  typedef optical-control-mode {
-    type enumeration {
-      enum "power" {
-        value 1;
-      }
-      enum "gainLoss" {
-        value 2;
-      }
-      enum "off" {
-        value 3;
-      }
-    }
-    description
-      "Optical Control Mode: identifies specific algorithm related to power management and general optical control.";
-    reference "openroadm.org: Open ROADM MSA Specification.";
-  }
-
-  typedef direction {
-    type enumeration {
-      enum "tx" {
-        value 1;
-      }
-      enum "rx" {
-        value 2;
-      }
-      enum "bidirectional" {
-        value 3;
-      }
-      enum "notApplicable" {
-        value 4;
-      }
-    }
-  }
-
-  typedef location {
-    type enumeration {
-      enum "notApplicable" {
-        value 1;
-      }
-      enum "nearEnd" {
-        value 2;
-      }
-      enum "farEnd" {
-        value 3;
-      }
-    }
-  }
-
-  typedef wavelength-duplication-type {
-    type enumeration {
-      enum "one-per-srg" {
-        value 1;
-        description
-          "The SRG cannot handle wavelength duplication. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will result in failure.";
-      }
-      enum "one-per-degree" {
-        value 2;
-        description
-          "The SRG can handle wavelength duplication, but only one per degree. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will succeed, so long as the connections are not using the same degree.";
-      }
-    }
-    description
-      "One per srg is applied to C/D add/drop group
-       one per degree is applied to C/D/C add drop group";
-  }
-
-  typedef port-qual {
-    type enumeration {
-      enum "roadm-internal" {
-        value 1;
-      }
-      enum "roadm-external" {
-        value 2;
-      }
-      enum "xpdr-network" {
-        value 3;
-      }
-      enum "xpdr-client" {
-        value 4;
-      }
-      enum "otdr" {
-        value 5;
-      }
-      enum "switch-network" {
-        value 6;
-      }
-      enum "switch-client" {
-        value 7;
-      }
-      enum "ila-external" {
-        value 8;
-      }
-      enum "ila-internal" {
-        value 9;
-      }
-    }
-  }
-
-  typedef modulation-format {
-    type enumeration {
-      enum "bpsk" {
-        value 0;
-        description
-          "binary phase-shift keying";
-      }
-      enum "dc-dp-bpsk" {
-        value 1;
-        description
-          "DC dual-polarization binary phase-shift keying";
-      }
-      enum "qpsk" {
-        value 2;
-        description
-          "quadrature phase-shift keying";
-      }
-      enum "dp-qpsk" {
-        value 3;
-        description
-          "dual-polarization binary phase-shift keying";
-      }
-      enum "qam16" {
-        value 4;
-        description
-          "quadrature amplitude modulation 16";
-      }
-      enum "dp-qam16" {
-        value 5;
-        description
-          "dual-polarization quadrature amplitude modulation 16";
-      }
-      enum "dc-dp-qam16" {
-        value 6;
-        description
-          "DC dual-polarization quadrature amplitude modulation 16";
-      }
-      enum "qam8" {
-        value 7;
-        description
-          "quadrature amplitude modulation 8";
-      }
-      enum "dp-qam8" {
-        value 8;
-        description
-          "dual-polarization quadrature amplitude modulation 8";
-      }
-      enum "dc-dp-qam8" {
-        value 9;
-        description
-          "DC dual-polarization quadrature amplitude modulation 8";
-      }
-    }
-    description
-      "Modulation format";
-  }
-
-  grouping physical-location {
-    leaf rack {
-      type string;
-      mandatory false;
-    }
-    leaf shelf {
-      type string;
-      mandatory false;
-    }
-    leaf slot {
-      type string;
-      mandatory false;
-    }
-    leaf subSlot {
-      type string;
-      mandatory false;
-    }
-  }
-
-  grouping rpc-response-status {
-    leaf status {
-      type rpc-status;
-      mandatory true;
-      description
-        "Successful or Failed";
-    }
-    leaf status-message {
-      type string;
-      description
-        "Gives a more detailed status";
-    }
-  }
-
-  grouping extended-rpc-response-status {
-    leaf status {
-      type extended-rpc-status;
-      mandatory true;
-      description
-        "Successful, Failed or In-progress";
-    }
-    leaf status-message {
-      type string;
-      description
-        "Gives a more detailed status.";
-    }
-  }
-
-  grouping equipment-type {
-    leaf type {
-      type equipment-type-enum;
-      config false;
-      mandatory true;
-    }
-    leaf extension {
-      type string;
-      config false;
-      mandatory false;
-      description
-        "Populated with equipment type when enum value is set to vendorExtension";
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-equipment-states-types@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-equipment-states-types@2017-12-15.yang
deleted file mode 100644 (file)
index 0c951ae..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-module org-openroadm-equipment-states-types {
-  namespace "http://org/openroadm/equipment/states/types";
-  prefix org-openroadm-equipment-states-types;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for types of states of equipment (slot/subslot).
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef admin-states {
-    type enumeration {
-      enum "inService" {
-        value 1;
-      }
-      enum "outOfService" {
-        value 2;
-      }
-      enum "maintenance" {
-        value 3;
-      }
-    }
-  }
-
-  typedef states {
-    type enumeration {
-      enum "reserved-for-facility-planned" {
-        value 1;
-        description
-          "equipment is planned for use by a service";
-      }
-      enum "not-reserved-planned" {
-        value 2;
-        description
-          "equipment is planned by not reserved for any purpose";
-      }
-      enum "reserved-for-maintenance-planned" {
-        value 3;
-        description
-          "equipment is planned for use as a maintenance spare";
-      }
-      enum "reserved-for-facility-unvalidated" {
-        value 4;
-        description
-          "equipment is reserved for use by a service but not
-           validated against planned equipment";
-      }
-      enum "not-reserved-unvalidated" {
-        value 5;
-        description
-          "equipment is not reserved for any purpose and
-           not validated against planned equipment";
-      }
-      enum "unknown-unvalidated" {
-        value 6;
-        description
-          "unknown equipment not validated against planned equipment";
-      }
-      enum "reserved-for-maintenance-unvalidated" {
-        value 7;
-        description
-          "equipment is to be used for use as a maintenance spare
-           but not validated against planned equipment";
-      }
-      enum "reserved-for-facility-available" {
-        value 8;
-        description
-          "reserved for use by a service and available";
-      }
-      enum "not-reserved-available" {
-        value 9;
-        description
-          "not reserved for use by a service and available";
-      }
-      enum "reserved-for-maintenance-available" {
-        value 10;
-        description
-          "reserved as a maintenance spare and available";
-      }
-      enum "reserved-for-reversion-inuse" {
-        value 11;
-        description
-          "equipment that is reserved as part of a home path
-           for a service that has been temporarily re-routed";
-      }
-      enum "not-reserved-inuse" {
-        value 12;
-        description
-          "equipment in use for a service";
-      }
-      enum "reserved-for-maintenance-inuse" {
-        value 13;
-        description
-          "maintenance spare equipment that is in use as a
-           maintenance spare";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-layerRate@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-layerRate@2017-12-15.yang
deleted file mode 100644 (file)
index f922156..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-module org-openroadm-layerRate {
-  namespace "http://org/openroadm/layerRate";
-  prefix org-openroadm-layerRate;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of layer rates.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef layer-rate-enum {
-    type enumeration {
-      enum "vendorExtension" {
-        value 1;
-        description
-          "vendor extension";
-      }
-      enum "layer2" {
-        value 2;
-        description
-          "2";
-      }
-      enum "layer3" {
-        value 3;
-        description
-          "3";
-      }
-      enum "layer4" {
-        value 4;
-        description
-          "4";
-      }
-      enum "layer5" {
-        value 5;
-        description
-          "5";
-      }
-      enum "layer6" {
-        value 6;
-        description
-          "6";
-      }
-    }
-  }
-
-  grouping layer-rate {
-    description
-      "Set list of layer rates, plus the ability to report layer rates not yet in set list.";
-    leaf type {
-      type layer-rate-enum;
-      mandatory true;
-    }
-    leaf extension {
-      type string;
-      mandatory false;
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-maintenance@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-maintenance@2018-10-19.yang
deleted file mode 100644 (file)
index 748055f..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-module org-openroadm-maintenance {
-  namespace "http://org/openroadm/maintenance";
-  prefix org-openroadm-mainteance;
-
-  import org-openroadm-resource {
-    prefix org-openroadm-resource;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of maintenace operations.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef maintenance-operation {
-    type enumeration {
-      enum "terminalLoopback" {
-        value 1;
-      }
-      enum "facilityLoopback" {
-        value 2;
-      }
-      enum "testSignal" {
-        value 3;
-      }
-    }
-    description
-      "Maintenance Operation.";
-  }
-
-  grouping maintenance {
-    leaf id {
-      type string;
-      mandatory true;
-      description
-        "Uniquely identify maintenance activity";
-    }
-    container resource {
-      description
-        "Resource under maintenance";
-      uses org-openroadm-resource:resource;
-    }
-    leaf operation {
-      type maintenance-operation;
-    }
-  }
-
-  container maintenance-list {
-    description
-      "A list of active maintenance operations. Adding an entry to this list creates an active maintenance operation.  Removing an entry from this terminates a maintenance activity";
-    list maintenance {
-      key "id";
-      uses maintenance;
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-manifest-file@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-manifest-file@2017-12-15.yang
deleted file mode 100644 (file)
index 6f74fcd..0000000
+++ /dev/null
@@ -1,933 +0,0 @@
-module org-openroadm-manifest-file {
-  namespace "http://org/openroadm/manifest-file";
-  prefix org-openroadm-manifest-file;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of sw-manifest-file
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2017,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF netconf.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-    reference "This module serves as the manifest file reference.";
-  }
-
-  identity manifest-commands {
-    description
-      "base identity for defining manifest-commands.";
-  }
-
-  identity download-file {
-    base manifest-commands;
-    description
-      "download-file (transfer from OWB-C to Device)";
-  }
-
-  identity upload-file {
-    base manifest-commands;
-    description
-      "upload-file (transfer from Device to OWB-C)";
-  }
-
-  identity delete-file {
-    base manifest-commands;
-    description
-      "delete-file from device";
-  }
-
-  identity sw-manifest-commands {
-    base manifest-commands;
-    description
-      "base identity for defining manifest-commands specific to sw-manifest.";
-  }
-
-  identity sw-stage {
-    base sw-manifest-commands;
-    description
-      "sw-stage sw-manifest-command";
-  }
-
-  identity sw-activate {
-    base sw-manifest-commands;
-    description
-      "sw-activate sw-manifest-command";
-  }
-
-  identity db-backup-manifest-commands {
-    base manifest-commands;
-    description
-      "base identity for defining manifest-commands specific to db-backup-manifest.";
-  }
-
-  identity db-backup {
-    base db-backup-manifest-commands;
-    description
-      "db-backup db-backup-manifest-command";
-  }
-
-  identity db-restore-manifest-commands {
-    base manifest-commands;
-    description
-      "base identity for defining manifest-commands specific to db-restore-manifest.";
-  }
-
-  identity db-restore {
-    base db-restore-manifest-commands;
-    description
-      "db-restore db-restore-manifest-command";
-  }
-
-  identity db-activate {
-    base db-restore-manifest-commands;
-    description
-      "db-activate db-restore-manifest-command";
-  }
-
-  grouping base-manifest {
-    description
-      "base set of variables in all manifest files";
-    leaf vendor {
-      type string;
-      mandatory true;
-      description
-        "This field should match the /org-openroadm-device/info/vendor.
-         It is assumed that the vendor value does not change during the
-         processing of the manifest file.
-
-         The controller agent would use the vendor and model to find the
-         manifest for an Open ROADM NE. The controller agent would also
-         use the vendor and model to validate that this is a valid manifest
-         for the Open ROADM NE.
-        ";
-    }
-    leaf model {
-      type string;
-      mandatory true;
-      description
-        "This field should match the /org-openroadm-device/info/model.
-         It is assumed that the model value does not change during the
-         processing of the manifest file.
-
-         The controller agent would use the vendor and model to find the
-         manifest for an Open ROADM NE. The controller agent would also
-         use the vendor and model to validate that this is a valid manifest
-         for the Open ROADM NE.
-        ";
-    }
-    leaf sw-version {
-      type string;
-      description
-        "This field should match the
-             /org-openroadm-device/info/softwareVersion.
-         This is the value in the info tree AFTER an upgrade.
-        ";
-    }
-    leaf global-async-timeout {
-      type uint16;
-      default "900";
-      description
-        "global-async-timeout - time in seconds to wait for command processing to
-         complete.
-
-         Upon timeout, the controller may either:
-           - assume success;
-           - assume failure;
-           - poll the device to determine success/failure of the operation
-
-         This global-async-timeout applies to any asynchronous command.
-        ";
-    }
-    leaf global-sync-timeout {
-      type uint16;
-      description
-        "global-sync-timeout - time in seconds to wait for the rpc response for
-         synchronous commands.
-
-         This global-sync-timeout applies to any synchronous command.
-
-         Upon timeout, the controller may either:
-           - assume success;
-           - assume failure;
-           - poll the device to determine success/failure of the operation
-
-         No default is modeled; if not provided, defaults to the global
-         timeout supported by the controller for rpc responses.
-        ";
-    }
-  }
-
-  grouping timeout-command {
-    description
-      "timeout-command is to be used by any manifest command supporting a timeout";
-    leaf timeout {
-      type uint16;
-      description
-        "See command for additional details.
-         if command is async,
-           - overrides the global-async-timeout;
-           - defaults to the global-async-timeout if not provided.
-         if command is sync,
-           - overrides the global-sync-timeout;
-           - defaults to the global-sync-timeout if not provided.
-        ";
-    }
-  }
-
-  grouping is-async-command {
-    description
-      "is-async-command is to be supported by all manifest commands even if only
-       supported as sync or async. In such cases, a must statement should be
-       included to limit support to either sync or async.";
-    leaf is-async {
-      type boolean;
-      default "true";
-      description
-        "command can be supported as either an async or sync command by a vendor.
-         When supported as a sync command, the OWB-C will determine the success/failure
-         of the command based on the RPC response instead of waiting for transient
-         notifications from the device.";
-    }
-  }
-
-  grouping transfer-command {
-    description
-      "transfer-command defines the common set of variables used by download-file
-       and upload-file";
-    leaf remote-filename {
-      type string;
-      mandatory true;
-      description
-        "See command for detailed description.";
-    }
-    leaf local-file-path {
-      type string;
-      mandatory true;
-      description
-        "See command for detailed description.";
-    }
-    uses timeout-command;
-    uses is-async-command;
-  }
-
-  grouping file-command {
-    description
-      "file-command is used by all manifest files needing a filename";
-    leaf filename {
-      type string;
-      description
-        "filename is mandatory for delete-file; optional otherwise.
-         See command for detailed description.";
-    }
-  }
-
-  grouping command-reboot {
-    description
-      "command-reboot is used by manifest commands which result in a
-       device restart.";
-    leaf auto-reboot {
-      type uint16;
-      mandatory true;
-      description
-        "See command for detailed description.";
-    }
-  }
-
-  grouping download-file-command {
-    description
-      "down-file-command";
-    container download-file {
-      when "../command = 'download-file'";
-      description
-        "Transfer a file from the SFTP server to the device.
-         format: download-file remote-filename local-file-path [timeout]
-         where
-           remote-filename is the filename of the file to transfer on the SFTP
-           server. The filename can include a relative path that represents the
-           subdirectory structure of the vendor's software directory. This file
-           (and optional path) must exist in the software release directory on
-           the SFTP server.
-
-           local-file-path is the local path and filename to transfer the file on
-           the device.
-
-           timeout - see timeout-command grouping for basic details;
-                     if command is async,
-                       - Receipt of an in-progress (version 2)
-                         transfer-notification resets the timeout.
-
-         Maps to the transfer rpc with
-            action = download
-            local-file-path = local-file-path
-            remote-file-path =
-               sftp://user:password@host[:port]/path/remote-filename
-
-            The remote-file-path attribute on the transfer command would be
-            constructed by the software download agent by appending the sftp URL
-            (which includes username, password, host, port, and path to the
-            software release directory) with the remote_filename.
-
-         In the context of the transfer, remote is the SFTP server (e.g., located
-         on the software download agent) and local is on the Open ROADM device.
-
-         Expected notifications: transfer-notification
-        ";
-      uses transfer-command;
-    }
-  }
-
-  grouping upload-file-command {
-    description
-      "upload-file-command";
-    container upload-file {
-      when "../command = 'upload-file'";
-      description
-        "Transfer a file from the device to the SFTP server.
-         format: upload-file remote-filename local-file-path [timeout]
-         where
-           remote-filename is the filename of the file to receive the upload
-           on the SFTP server. The filename can include a relative path that
-           represents the subdirectory structure of the vendor's software
-           directory.
-
-           local-file-path is the local path and filename of the file on
-           the device to be uploaded to the SFTP server. This file must exist on
-           the device.
-
-           timeout - see timeout-command grouping for basic details;
-                     if command is async,
-                       - Receipt of an in-progress (version 2)
-                         transfer-notification resets the timeout.
-
-         Maps to the transfer rpc with
-            action = upload
-            local-file-path = local-file-path
-            remote-file-path =
-               sftp://user:password@host[:port]/path/remote-filename
-
-            The remote-file-path attribute on the transfer command would be
-            constructed by the software download agent by appending the sftp URL
-            (which includes username, password, host, port, and path to the
-            software release directory) with the remote_filename.
-
-         In the context of the transfer, remote is the SFTP server (e.g., located
-         on the software download agent) and local is on the Open ROADM device.
-
-         Expected notifications: transfer-notification
-        ";
-      uses transfer-command;
-    }
-  }
-
-  grouping delete-file-command {
-    description
-      "delete-file-command";
-    container delete-file {
-      when "../command = 'delete-file'";
-      must "is-async != 'false'" {
-        error-message "delete-file is only supported as sync command";
-      }
-      description
-        "Delete a file from the device's file system.
-         format: delete-file filename [timeout]
-         where
-           filename is the filename to be deleted from the device. The filename
-           may include path information.
-
-           timeout - overrides the global-sync-timeout; defaults to the
-                     global-sync-timeout if not provided.
-
-         Maps to the delete-file rpc:
-            delete-file filename
-        ";
-      uses file-command {
-        refine "filename" {
-          mandatory true;
-        }
-      }
-      uses timeout-command;
-      uses is-async-command;
-    }
-  }
-
-  grouping sw-stage-command {
-    description
-      "sw-stage-command";
-    container sw-stage {
-      when "../command = 'sw-stage'";
-      description
-        "Stage a file in the device.  The details of what a device does during
-         the staging operation is vendor specific.  However, the vendor may
-         initiate additional file transfers from the SFTP server during the
-         staging operation.  It is expected that the files will only be
-         transferred from the software release directory.
-
-         format: sw-stage [filename] [timeout]
-         where
-           filename is the filename of the file to stage. If filename is not
-           provided, the software download application will send the sw-stage
-           command without a filename.
-
-           timeout - overrides the global-async-timeout; defaults to the
-                     global-async-timeout if not provided.
-
-
-         Maps to the sw-stage rpc:
-            sw-stage [filename]
-
-         Expected notifications: sw-stage-notification
-        ";
-      uses file-command;
-      uses timeout-command;
-      uses is-async-command;
-    }
-  }
-
-  grouping sw-activate-command {
-    description
-      "sw-activate-command";
-    container sw-activate {
-      when "../command = 'sw-activate'";
-      must "is-async != 'true'" {
-        error-message "sw-activate is only supported as async command";
-      }
-      description
-        "Activate a software load in a device.  The details of what a device does
-         during the activation phase is vendor specific.  The device initiates
-         an automatic reboot as part of the activation.
-
-         format:  sw-activate version [validation-timer] [timeout] auto-reboot
-         where:
-           version: The version of software that is being activated. (The current
-           YANG model indicates that version is optional; however, version should
-           be a mandatory attribute of the sw-activate command in the manifest
-           file).
-
-           validation-timer: Validation timer setting for the software activation.
-           Format is expected to be in the form HH-MM-SS per the YANG model. The
-           software download application expects this format in order to treat
-           00-00-00 and no validation timer as the same use case.
-
-           timeout - overrides the global-async-timeout; defaults to the
-           global-async-timeout if not provided. This timer begins as soon as the
-           sw-activate processing begins. timeout must be greater than the
-           auto-reboot time.
-
-           auto-reboot: time (in seconds) to wait to for the device to reboot.
-           This is the device restart time (e.g. the length of time from device
-           comm loss until the device is ready for login). This timer begins when
-           the controller detects the comm-loss from the device. If login is not
-           successful when this timer expires, the sw-activate is failed.
-
-           NOTE: if controller swdl application is not doing the login directly,
-           the controller may need to augment the auto-reboot timer to account for
-           the login time.
-
-         Maps to the sw-activate rpc:
-           sw-activate version [validationTimer]
-
-         Expected notifications: sw-activate-notification
-           When no validation timer (or validation-timer = 00-00-00), two
-           notifications will be expected: one for activate, the other for
-           commit. Otherwise, only the activate notification is expected.
-
-           NOTE: the sw-activate-notifications (for activate) may be received
-           before or after the reboot; it is assumed the sw-activate-notification
-           (for commit) always occurs after the reboot. Any polling due to missed
-           sw-activate-notifications (activate and/or commit) should not be done
-           until after the reboot login; processing of sw-activate does not
-           complete until after receipt of the notifications and the reboot login.
-        ";
-      leaf version {
-        type string;
-        mandatory true;
-        description
-          "Although version is optional in the sw-activate rpc, it is
-           mandatory in the manifest file command.";
-      }
-      leaf validation-timer {
-        type string;
-        description
-          "hh-mm-ss";
-      }
-      uses timeout-command;
-      uses command-reboot;
-      uses is-async-command;
-    }
-  }
-
-  grouping db-backup-command {
-    description
-      "db-backup-command";
-    container db-backup {
-      when "../command = 'db-backup'";
-      description
-        "Perform a database backup on the device.
-
-         format: db-backup [filename] [timeout]
-         where
-           filename is the filename of the backup file to be generated on the
-           device. If filename is not provided, the database backup application
-           will send the db-backup command without a filename. It's possible the
-           filename will not be statically provided in the manifest file, but
-           provided by the database backup application.
-
-           timeout - see timeout-command grouping for basic details;
-
-         Maps to the db-backup rpc:
-           db-backup [filename]
-
-         Expected notifications: db-backup-notification
-        ";
-      uses file-command;
-      uses timeout-command;
-      uses is-async-command;
-    }
-  }
-
-  grouping db-restore-command {
-    description
-      "db-restore-command";
-    container db-restore {
-      when "../command = 'db-restore'";
-      description
-        "Perform a database restore on the device.
-
-         format: db-restore [filename] [node-id-check] [timeout]
-         where
-           filename is the filename of the file to be restored on the
-           device. If filename is not provided, the database restore application
-           will send the db-restore command without a filename. It's possible the
-           filename will not be statically provided in the manifest file, but
-           provided by the database restore application.
-
-           node-id-check is a boolean indicating whether sysNameCheck is required.
-
-           timeout - see timeout-command grouping for basic details;
-
-         Maps to the db-restore rpc:
-           db-restore [filename] [nodeIDCheck]
-
-         Expected notifications: db-restore-notification
-        ";
-      uses file-command;
-      leaf node-id-check {
-        type string;
-        default "true";
-        description
-          "Defined as an string here so that manifest file can parameterize
-           the value for user input. __NODE-ID-CHECK is used for that purpose. Other valid
-           values are true or false. Maps to a boolean value in the rpc invocation.";
-      }
-      uses timeout-command;
-      uses is-async-command;
-    }
-  }
-
-  grouping db-activate-command {
-    description
-      "db-activate-command";
-    container db-activate {
-      when "../command = 'db-activate'";
-      must "is-async != 'true'" {
-        error-message "db-activate is only supported as async command";
-      }
-      description
-        "Activate a database on a device.  The details of what a device does
-         during the activation phase is vendor specific.  The device initiates
-         an automatic reboot as part of the activation.
-
-         format:  db-activate [rollback-timer] [timeout] auto-reboot
-         where:
-           rollback-timer: Rollback timer setting for the database activation.
-           Format is expected to be in the form HH-MM-SS per the YANG model. The
-           database activation application expects this format in order to treat
-           00-00-00 and no validation timer as the same use case.
-
-           timeout - overrides the global-async-timeout; defaults to the
-           global-async-timeout if not provided. This timer begins as soon as the
-           db-activate processing begins. timeout must be greater than the
-           auto-reboot time.
-
-           auto-reboot: time (in seconds) to wait to for the device to reboot.
-           This is the device restart time (e.g. the length of time from device
-           comm loss until the device is ready for login). This timer begins when
-           the controller detects the comm-loss from the device. If login is not
-           successful when this timer expires, the db-activate is failed.
-
-           NOTE: if controller database application is not doing the login
-           directly, the controller may need to augment the auto-reboot timer to
-           account for the login time.
-
-         Maps to the db-activate rpc:
-           db-activate [rollBackTimer]
-
-         Expected notifications: db-activate-notification
-           When no rollback timer (or rollback-timer = 00-00-00), two
-           notifications will be expected: one for activate, the other for
-           commit. Otherwise, only the activate notification is expected.
-
-           NOTE: the db-activate-notifications (for activate) may be received
-           before or after the reboot; it is assumed the db-activate-notification
-           (for commit) always occurs after the reboot. Any polling due to missed
-           db-activate-notifications (activate and/or commit) should not be done
-           until after the reboot login; processing of db-activate does not
-           complete until after receipt of the notifications and the reboot login.
-        ";
-      leaf rollback-timer {
-        type string;
-        description
-          "hh-mm-ss";
-      }
-      uses timeout-command;
-      uses command-reboot;
-      uses is-async-command;
-    }
-  }
-
-  container sw-manifest {
-    presence "The sw-manifest instructions for swdl operations have been defined.";
-    description
-      "The manifest file provides instructions to a software download
-       application to download and install a new software load into a vendor’s
-       equipment.
-
-       Software download files
-           All vendor files for a software release should be stored in a
-       separate directory. A unique directory would be used for each vendor,
-       model and software release combination. This directory and all files in
-       that directory will be accessible by the SFTP server.
-           The software directory can be flat or hierarchical with
-       subdirectories. The manifest file should be in the root directory of the
-       software directory.
-           A software directory must contain files for one and only one
-       software release.
-
-       Manifest file name
-           Each software release directory shall contain a manifest file for
-       that release. The filename for the manifest file shall be sw-manifest.json.
-      ";
-    uses base-manifest {
-      refine "sw-version" {
-        mandatory true;
-      }
-    }
-    list instruction-set {
-      key "index";
-      description
-        "The instruction set for a list of sw-versions that can be upgraded to
-         the sw-version specified at the top of the manifest file.";
-      leaf index {
-        type uint8;
-        description
-          "The index for this instruction set.";
-      }
-      leaf-list from-sw-version {
-        type string;
-        description
-          "The optional list of sw-versions that can be upgraded to the
-           sw-version specified at the top of the sw-manifest file.
-
-           If not specified, this instruction set is used to upgrade from
-           any sw-version to the sw-version specified at the top of the
-           sw-manifest file.
-
-           If multiple instruction sets are provided, from-sw-version
-           should always be defined.";
-      }
-      leaf is-commit-sw-activate-async {
-        type boolean;
-        default "true";
-        description
-          "Is cancel-validation-timer (accept = true) supported as an
-           async or sync command on the device? If supported as sync, the rpc response
-           is used to determine success/failure instead of waiting for transient notifications
-           of the result.
-           NOTE: cancel-validation-timer (accept = false) requires a reboot so is
-           always considered async";
-      }
-      leaf cancel-validation-timer-async-timeout {
-        type uint16;
-        description
-          "timeout value to use for cancel-validation-timer when supported as
-           an async command. If not specified, the global-async-timeout is used.";
-      }
-      leaf cancel-validation-timer-sync-timeout {
-        type uint16;
-        description
-          "timeout value to use for cancel-validation-timer (accept = true) when
-           supported as a sync command. If not specified, the global-sync-timeout
-           is used.";
-      }
-      container sw-manifest-commands {
-        description
-          "The ordered list of commands to be processed. Since some yang
-           implementations do not support ordered-by user, the list is also
-           indexed by command-order. The commands should be processed
-           in the order of command-order.
-
-           Processing moves to the next command when:
-           1. command is synchronous and rpc returns a successful result.
-           2. command is asynchronous, the rpc returns a successful result,
-           and
-           2.1 expected successful notification(s) have been received; or
-           2.2 timeout occurs.
-           \t\t
-           Processing of the manifest file is aborted when:
-           1. command is synchronous and rpc returns a failed result.
-           2. command is asynchronous, and:
-           2.1 the rpc returns a failed result; or
-           2.2 a failed notification is received; or
-           2.3 timeout occurs.
-           \t\t
-           NOTE: behavior for timeouts (synchronous or asynchronous) may depend upon
-           controller implementation per command. It may be considered either:
-           - as a successful result
-           - as a failed result
-           - as a success or failure based on polling the device
-          ";
-        list sw-manifest-command {
-          key "command-order";
-          ordered-by user;
-          description
-            "The list of commands to be processed.";
-          leaf command-order {
-            type uint8;
-            description
-              "The order in which commands should be processed.";
-          }
-          leaf command {
-            type identityref {
-              base sw-manifest-commands;
-            }
-            mandatory true;
-            description
-              "The command to be processed.";
-          }
-          uses download-file-command;
-          uses delete-file-command;
-          uses sw-stage-command;
-          uses sw-activate-command;
-        }
-      }
-    }
-  }
-  container db-backup-manifest {
-    presence "The db-backup-manifest template for db-backup operations has been defined.";
-    description
-      "The manifest file provides instructions to a database operations
-       application to backup the database on a device.
-
-       Since the files used for these operations are likely user selected,
-       these manifest files are more likely used by the controller as a
-       template to control the overall flow of a backup operation and provide
-       a means of providing customized timeout values.
-
-       The following strings will be recognized as parameters to be replaced
-       by the user selected values: __LOCAL-FILE-PATH, __REMOTE-FILENAME.
-
-       Manifest file name
-           Each vendor/model combination can have a separate manifest file
-       defined for backup. These shall be named db-backup-manifest.json.
-      ";
-    uses base-manifest;
-    container db-backup-manifest-commands {
-      description
-        "The ordered list of commands to be processed. Since some yang
-         implementations do not support ordered-by user, the list is also
-         indexed by command-order. The commands should be processed
-         in the order of command-order.
-
-         Processing moves to the next command when:
-            1. command is synchronous and rpc returns a successful result.
-            2. command is asynchronous, the rpc returns a successful result,
-               and
-               2.1 expected successful notification(s) have been received; or
-               2.2 timeout occurs.
-
-         Processing of the manifest file is aborted when:
-            1. command is synchronous and rpc returns a failed result.
-            2. command is asynchronous, and:
-               2.1 the rpc returns a failed result; or
-               2.2 a failed notification is received; or
-               2.3 timeout occurs.
-
-         NOTE: behavior for timeouts (synchronous or asynchronous) may depend upon
-         controller implementation per command. It may be considered either:
-             - as a successful result
-             - as a failed result
-             - as a success or failure based on polling the device
-        ";
-      list db-backup-manifest-command {
-        key "command-order";
-        ordered-by user;
-        description
-          "The list of commands to be processed.";
-        leaf command-order {
-          type uint8;
-          description
-            "The order in which commands should be processed.";
-        }
-        leaf command {
-          type identityref {
-            base db-backup-manifest-commands;
-          }
-          mandatory true;
-          description
-            "The command to be processed.";
-        }
-        uses upload-file-command;
-        uses delete-file-command;
-        uses db-backup-command;
-      }
-    }
-  }
-  container db-restore-manifest {
-    presence "The db-restore-manifest template for db-restore operations has been defined.";
-    description
-      "The manifest file provides instructions to a database operations
-       application to restore the database on a device.
-
-       Since the files used for these operations are likely user selected,
-       these manifest files are more likely used by the controller as a
-       template to control the overall flow of a restore operation and provide
-       a means of providing customized timeout and auto-reboot values.
-
-       The following strings will be recognized as parameters to be replaced
-       by the user selected values: __LOCAL-FILE-PATH, __REMOTE-FILENAME,
-       __NODE-ID-CHECK.
-
-       Manifest file name
-           Each vendor/model combination can have a separate manifest file
-       defined for restore. These shall be named db-restore-manifest.json.
-      ";
-    uses base-manifest;
-    leaf is-commit-db-activate-async {
-      type boolean;
-      default "true";
-      description
-        "Is cancel-rollback-timer (accept = true) supported as an
-         async or sync command on the device? If supported as sync, the rpc response
-         is used to determine success/failure instead of waiting for transient notifications
-         of the result.
-         NOTE: cancel-rollback-timer (accept = false) requires a reboot so is
-         always considered async";
-    }
-    leaf cancel-rollback-timer-async-timeout {
-      type uint16;
-      description
-        "timeout value to use for cancel-rollback-timer when supported as
-         an async command. If not specified, the global-async-timeout is used.";
-    }
-    leaf cancel-rollback-timer-sync-timeout {
-      type uint16;
-      description
-        "timeout value to use for cancel-rollback-timer (accept = true) when
-         supported as a sync command. If not specified, the global-sync-timeout
-         is used.";
-    }
-    leaf database-init-sync-timeout {
-      type uint16;
-      description
-        "timeout value to use for database-init command. If not specified,
-         the global-sync-timeout is used.";
-    }
-    container db-restore-manifest-commands {
-      description
-        "The ordered list of commands to be processed. Since some yang
-         implementations do not support ordered-by user, the list is also
-         indexed by command-order. The commands should be processed
-         in the order of command-order.
-
-         Processing moves to the next command when:
-            1. command is synchronous and rpc returns a successful result.
-            2. command is asynchronous, the rpc returns a successful result,
-               and
-               2.1 expected successful notification(s) have been received; or
-               2.2 timeout occurs.
-
-         Processing of the manifest file is aborted when:
-            1. command is synchronous and rpc returns a failed result.
-            2. command is asynchronous, and:
-               2.1 the rpc returns a failed result; or
-               2.2 a failed notification is received; or
-               2.3 timeout occurs.
-
-         NOTE: behavior for timeouts (synchronous or asynchronous) may depend upon
-         controller implementation per command. It may be considered either:
-             - as a successful result
-             - as a failed result
-             - as a success or failure based on polling the device
-        ";
-      list db-restore-manifest-command {
-        key "command-order";
-        ordered-by user;
-        description
-          "The list of commands to be processed.";
-        leaf command-order {
-          type uint8;
-          description
-            "The order in which commands should be processed.";
-        }
-        leaf command {
-          type identityref {
-            base db-restore-manifest-commands;
-          }
-          mandatory true;
-          description
-            "The command to be processed.";
-        }
-        uses download-file-command;
-        uses delete-file-command;
-        uses db-restore-command;
-        uses db-activate-command;
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-otn-common-types@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-otn-common-types@2017-12-15.yang
deleted file mode 100644 (file)
index 41f4cdf..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-module org-openroadm-otn-common-types {
-  namespace "http://org/openroadm/otn-common-types";
-  prefix org-openroadm-otn-common-types;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for common otn related type definitions.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-
-  identity otu-rate-identity {
-    description
-      "A unique rate identification of the OTU.";
-  }
-
-  identity OTU4 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU4";
-  }
-
-  identity OTU3 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU3";
-  }
-
-  identity OTU2 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU2";
-  }
-
-  identity OTU2e {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU2e";
-  }
-
-  identity OTU1 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU1";
-  }
-
-  identity OTU0 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU0";
-  }
-
-  identity OTUflex {
-    base otu-rate-identity;
-    description
-      "Identity for an OTUflex";
-  }
-
-  identity odu-rate-identity {
-    description
-      "A unique rate identification of the ODU.";
-  }
-
-  identity ODU4 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU4";
-  }
-
-  identity ODU3 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU3";
-  }
-
-  identity ODU2 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU2";
-  }
-
-  identity ODU2e {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU2e";
-  }
-
-  identity ODU1 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU1";
-  }
-
-  identity ODU0 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU0";
-  }
-
-  identity ODUflex-cbr {
-    base odu-rate-identity;
-    description
-      "Identity for an ODUflex-cbr";
-  }
-
-  identity ODUflex-gfp {
-    base odu-rate-identity;
-    description
-      "Identity for an ODUflex-gfp";
-  }
-
-  identity odtu-type-identity {
-    description
-      "A unique identification for the MSI odtu type.";
-  }
-
-  identity ODTU4.ts-Allocated {
-    base odtu-type-identity;
-    description
-      "OPU4 MSI - ODTU4.ts, OPU4 MSI TS is occupied/allocated.
-       Applies to all ODTU4.x mappings";
-  }
-
-  identity ODTU01 {
-    base odtu-type-identity;
-    description
-      "ODTU01 MSI type";
-  }
-
-  identity ODTU12 {
-    base odtu-type-identity;
-    description
-      "ODTU12 MSI type";
-  }
-
-  identity ODTU13 {
-    base odtu-type-identity;
-    description
-      "ODTU13 MSI type";
-  }
-
-  identity ODTU23 {
-    base odtu-type-identity;
-    description
-      "ODTU23 MSI type";
-  }
-
-  identity ODTU2.ts {
-    base odtu-type-identity;
-    description
-      "ODTU2.ts MSI type";
-  }
-
-  identity ODTU3.ts {
-    base odtu-type-identity;
-    description
-      "ODTU3.ts MSI type";
-  }
-
-  identity unallocated {
-    base odtu-type-identity;
-    description
-      "Unallocated MSI type";
-  }
-
-  identity odu-function-identity {
-    description
-      "A unique identification of the ODUk interface function.";
-  }
-
-  identity ODU-TTP {
-    base odu-function-identity;
-    description
-      "ODU TTP facility facing trail termination";
-  }
-
-  identity ODU-CTP {
-    base odu-function-identity;
-    description
-      "ODU CTP connection termination";
-  }
-
-  identity ODU-TTP-CTP {
-    base odu-function-identity;
-    description
-      "ODU CTP mapper level connection termination with trail termination and client adaptation";
-  }
-
-  typedef payload-type-def {
-    type string {
-      length "2";
-      pattern "[0-9a-fA-F]*";
-    }
-    description
-      "Common type definition for odu payload-type";
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-pm-types@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-pm-types@2017-12-15.yang
deleted file mode 100644 (file)
index 2501ee3..0000000
+++ /dev/null
@@ -1,483 +0,0 @@
-module org-openroadm-pm-types {
-  namespace "http://org/openroadm/pm-types";
-  prefix org-openroadm-pm-types;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of performance management types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef pm-granularity {
-    type enumeration {
-      enum "notApplicable" {
-        value 1;
-        description
-          "This is for total statistic counters on devices that support
-              them.";
-      }
-      enum "15min" {
-        value 2;
-      }
-      enum "24Hour" {
-        value 3;
-      }
-    }
-    description
-      "Granularity of PM bin";
-  }
-
-  typedef pm-data-type {
-    type union {
-      type uint64;
-      type int64;
-      type decimal64 {
-        fraction-digits 2;
-      }
-      type decimal64 {
-        fraction-digits 17;
-      }
-    }
-  }
-
-  typedef validity {
-    type enumeration {
-      enum "complete" {
-        value 1;
-      }
-      enum "partial" {
-        value 2;
-      }
-      enum "suspect" {
-        value 3;
-      }
-    }
-    description
-      "Validity of data";
-  }
-
-  typedef pm-names-enum {
-    type enumeration {
-      enum "vendorExtension" {
-        value 1;
-        description
-          "vendor extension";
-      }
-      enum "bitErrorRate" {
-        value 2;
-        description
-          "Bit error rate (BER)";
-      }
-      enum "opticalPowerOutput" {
-        value 3;
-        description
-          "Optical Power Output (OPOUT-OTS, OPOUT-OMS, OPT-OCH). Total optical power includes Variable Optical Attenuator (VOA) attenuation";
-      }
-      enum "opticalReturnLoss" {
-        value 4;
-        description
-          "Optical Return Loss (ORL-OTS) - at MW port(s) B";
-      }
-      enum "opticalPowerInput" {
-        value 5;
-        description
-          "Optical Power Input (OPIN-OTS, OPIN-OMS, OPR-OCH). Total optical power";
-      }
-      enum "codeViolations" {
-        value 8;
-        description
-          "Code Violations (CV)";
-      }
-      enum "erroredSeconds" {
-        value 9;
-        description
-          "Errored Seconds (ES)";
-      }
-      enum "severelyErroredSeconds" {
-        value 10;
-        description
-          "Severely Errored Seconds (SES)";
-      }
-      enum "unavailableSeconds" {
-        value 11;
-        description
-          "Unavailable Seconds (UAS)";
-      }
-      enum "inFrames" {
-        value 12;
-        description
-          "In frames (INFRAMES-E)";
-      }
-      enum "inFramesErrored" {
-        value 13;
-        description
-          "In frames errored (INFRAMESERR-E)";
-      }
-      enum "outFrames" {
-        value 14;
-        description
-          "Out frames (OUTFRAMES-E)";
-      }
-      enum "erroredSecondsEthernet" {
-        value 15;
-        description
-          "Errored Seconds Ethernet (ES-E)";
-      }
-      enum "severelyErroredSecondsEthernet" {
-        value 16;
-        description
-          "Severly Errored Seconds, Ethernet (SES-E)";
-      }
-      enum "unavailableSecondsEthernet" {
-        value 17;
-        description
-          "Unavailable Seconds, Ethernet (UAS-E)";
-      }
-      enum "erroredBlockCount" {
-        value 18;
-        description
-          "Errored block count";
-      }
-      enum "delay" {
-        value 19;
-        description
-          "Number of frames between a DMValue toggle event and the received DMp signal value toggle event";
-      }
-      enum "defectSeconds" {
-        value 20;
-        description
-          "Defect Seconds (DS)";
-      }
-      enum "backwardIncomingAlignmentError" {
-        value 21;
-        description
-          "Backward Incoming Alignment Error (BIAE)";
-      }
-      enum "incomingAlignmentError" {
-        value 22;
-        description
-          "Incoming Alignment Error (IAE)";
-      }
-      enum "opticalPowerOutputMin" {
-        value 23;
-        description
-          "Minimum Optical Power Output (OPOUT-OTS). Total optical power includes Variable Optical Attenuator (VOA) attenuation";
-      }
-      enum "opticalPowerOutputMax" {
-        value 24;
-        description
-          "Maximum Optical Power Output (OPOUT-OTS). Total optical power includes Variable Optical Attenuator (VOA) attenuation";
-      }
-      enum "opticalPowerOutputAvg" {
-        value 25;
-        description
-          "Average Optical Power Output (OPOUT-OTS). Total optical power includes Variable Optical Attenuator (VOA) attenuation";
-      }
-      enum "opticalPowerInputMin" {
-        value 26;
-        description
-          "Minimum Optical Power Input (OPIN-OTS). Total optical power";
-      }
-      enum "opticalPowerInputMax" {
-        value 27;
-        description
-          "Maximum Optical Power Input (OPIN-OTS). Total optical power";
-      }
-      enum "opticalPowerInputAvg" {
-        value 28;
-        description
-          "Average Optical Power Input (OPIN-OTS). Total optical power";
-      }
-      enum "opticalPowerOutputOSC" {
-        value 29;
-        description
-          "OSC Optical Power Output (OPT-OSC). OSC Transmit power on MW port";
-      }
-      enum "opticalPowerOutputOSCMin" {
-        value 30;
-        description
-          "Minimum OSC Optical Power Output (OPT-OSC). OSC Transmit power on MW port";
-      }
-      enum "opticalPowerOutputOSCMax" {
-        value 31;
-        description
-          "Maximum OSC Optical Power Output (OPT-OSC). OSC Transmit power on MW port";
-      }
-      enum "opticalPowerOutputOSCAvg" {
-        value 32;
-        description
-          "Average OSC Optical Power Output (OPT-OSC). OSC Transmit power on MW port";
-      }
-      enum "opticalPowerInputOSC" {
-        value 33;
-        description
-          "OSC Optical Power Input (OPR-OSC). OSC Receive power on MW port";
-      }
-      enum "opticalPowerInputOSCMin" {
-        value 34;
-        description
-          "Minimum OSC Optical Power Input (OPR-OSC). OSC Receive power on MW port";
-      }
-      enum "opticalPowerInputOSCMax" {
-        value 35;
-        description
-          "Maximum OSC Optical Power Input (OPR-OSC). OSC Receive power on MW port";
-      }
-      enum "opticalPowerInputOSCAvg" {
-        value 36;
-        description
-          "Average OSC Optical Power Input (OPR-OSC). OSC Receive power on MW port";
-      }
-      enum "preFECCorrectedErrors" {
-        value 37;
-        description
-          "pFEC corrected Errors";
-      }
-      enum "totalOpticalPowerInput" {
-        value 38;
-        description
-          "Total Optical Power Input.";
-      }
-      enum "totalOpticalPowerInputMin" {
-        value 39;
-        description
-          "Minumun Total Optical Power Input.";
-      }
-      enum "totalOpticalPowerInputMax" {
-        value 40;
-        description
-          "Maximum Total Optical Power Input.";
-      }
-      enum "totalOpticalPowerInputAvg" {
-        value 41;
-        description
-          "Average Total Optical Power Input.";
-      }
-      enum "FECCorrectableBlocks" {
-        value 42;
-        description
-          "FEC Correctable Blocks.";
-      }
-      enum "FECUncorrectableBlocks" {
-        value 43;
-        description
-          "FEC Uncorrectable Blocks.";
-      }
-      enum "BIPErrorCounter" {
-        value 56;
-        description
-          "BIP Error Counter";
-      }
-      enum "protectionSwitchingCount" {
-        value 57;
-        description
-          "Protection Switching Count (PSC)";
-      }
-      enum "protectionSwitchingDuration" {
-        value 58;
-        description
-          "Protection Switching Duration in seconds (PSD)";
-      }
-      enum "erroredBlockCountTCM1-up" {
-        value 59;
-        description
-          "errored Blocks Count on TCM1 up direction.";
-      }
-      enum "erroredBlockCountTCM2-up" {
-        value 60;
-        description
-          "errored Blocks Count on TCM2 up direction.";
-      }
-      enum "erroredBlockCountTCM3-up" {
-        value 61;
-        description
-          "errored Blocks Count on TCM3 up direction.";
-      }
-      enum "erroredBlockCountTCM4-up" {
-        value 62;
-        description
-          "errored Blocks Count on TCM4 up direction.";
-      }
-      enum "erroredBlockCountTCM5-up" {
-        value 63;
-        description
-          "errored Blocks Count on TCM5 up direction.";
-      }
-      enum "erroredBlockCountTCM6-up" {
-        value 64;
-        description
-          "errored Blocks Count on TCM6 up direction.";
-      }
-      enum "delayTCM1-up" {
-        value 65;
-        description
-          "Delay on TCM1 up direction.";
-      }
-      enum "delayTCM2-up" {
-        value 66;
-        description
-          "Delay on TCM2 up direction.";
-      }
-      enum "delayTCM3-up" {
-        value 67;
-        description
-          "Delay on TCM3 up direction.";
-      }
-      enum "delayTCM4-up" {
-        value 68;
-        description
-          "Delay on TCM4 up direction.";
-      }
-      enum "delayTCM5-up" {
-        value 69;
-        description
-          "Delay on TCM5 up direction.";
-      }
-      enum "delayTCM6-up" {
-        value 70;
-        description
-          "Delay on TCM6 up direction.";
-      }
-      enum "erroredBlockCountTCM1-down" {
-        value 71;
-        description
-          "errored Blocks Count on TCM1 down direction.";
-      }
-      enum "erroredBlockCountTCM2-down" {
-        value 72;
-        description
-          "errored Blocks Count on TCM2 down direction.";
-      }
-      enum "erroredBlockCountTCM3-down" {
-        value 73;
-        description
-          "errored Blocks Count on TCM3 down direction.";
-      }
-      enum "erroredBlockCountTCM4-down" {
-        value 74;
-        description
-          "errored Blocks Count on TCM4 down direction.";
-      }
-      enum "erroredBlockCountTCM5-down" {
-        value 75;
-        description
-          "errored Blocks Count on TCM5 down direction.";
-      }
-      enum "erroredBlockCountTCM6-down" {
-        value 76;
-        description
-          "errored Blocks Count on TCM6 down direction.";
-      }
-      enum "delayTCM1-down" {
-        value 77;
-        description
-          "Delay on TCM1 down direction.";
-      }
-      enum "delayTCM2-down" {
-        value 78;
-        description
-          "Delay on TCM2 down direction.";
-      }
-      enum "delayTCM3-down" {
-        value 79;
-        description
-          "Delay on TCM3 down direction.";
-      }
-      enum "delayTCM4-down" {
-        value 80;
-        description
-          "Delay on TCM4 down direction.";
-      }
-      enum "delayTCM5-down" {
-        value 81;
-        description
-          "Delay on TCM5 down direction.";
-      }
-      enum "delayTCM6-down" {
-        value 82;
-        description
-          "Delay on TCM6 down direction.";
-      }
-    }
-  }
-
-  grouping pm-measurement {
-    description
-      "Set of parameters related to a PM Measurement";
-    leaf pmParameterValue {
-      type pm-data-type;
-      config false;
-      mandatory true;
-    }
-    leaf pmParameterUnit {
-      type string;
-      mandatory false;
-      description
-        "Unit PM parameter has been measured - frames, packets, u, etc";
-    }
-    leaf validity {
-      type validity;
-      mandatory false;
-    }
-  }
-
-  grouping pm-names {
-    description
-      "Name of PM parameter. Consisists of a set list of parameters,
-       plus an extension field to support addition parameters.";
-    leaf type {
-      type pm-names-enum;
-      mandatory true;
-    }
-    leaf extension {
-      type string;
-      description
-        "name of parameter, when enum value set to vendorExtension because
-         name not found in pm-names-enum";
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-pm@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-pm@2018-10-19.yang
deleted file mode 100644 (file)
index 6254d9a..0000000
+++ /dev/null
@@ -1,299 +0,0 @@
-module org-openroadm-pm {
-  namespace "http://org/openroadm/pm";
-  prefix org-openroadm-pm;
-
-  import ietf-yang-types {
-    prefix yang;
-    revision-date 2013-07-15;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-resource {
-    prefix org-openroadm-resource;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-pm-types {
-    prefix org-openroadm-pm-types;
-    revision-date 2017-12-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of performance management.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping current-pm-group {
-    description
-      "PM Data with current values - both realtime (granularity=notApplicable)
-       and binned (granularity=15 minute, 24h))";
-    leaf pm-resource-instance {
-      type instance-identifier;
-      config false;
-      mandatory true;
-      description
-        "Retrieves all PM associate with the resource instance";
-    }
-    leaf pm-resource-type {
-      type org-openroadm-resource-types:resource-type-enum;
-      config false;
-      mandatory true;
-      description
-        "The supported pm-resource-type associated with the given resource instance.";
-    }
-    leaf pm-resource-type-extension {
-      type string;
-      config false;
-      description
-        "The resource type extension when the type is not defined in the resource-type-enum.";
-    }
-    leaf retrieval-time {
-      type yang:date-and-time;
-      config false;
-      mandatory true;
-      description
-        "Represents the time when the data is being read, not the bin start or end time.";
-    }
-    list current-pm {
-      key "type extension location direction";
-      config false;
-      uses current-pm-val-group;
-    }
-  }
-
-  grouping current-pm-val-group {
-    uses org-openroadm-pm-types:pm-names;
-    leaf location {
-      type org-openroadm-common-types:location;
-    }
-    leaf direction {
-      type org-openroadm-common-types:direction;
-    }
-    list measurement {
-      key "granularity";
-      leaf granularity {
-        type org-openroadm-pm-types:pm-granularity;
-      }
-      uses org-openroadm-pm-types:pm-measurement;
-    }
-  }
-
-  grouping historical-pm-group {
-    description
-      "PM Data with historical values - binned (granularity=15 minute, 24h))";
-    leaf pm-resource-instance {
-      type instance-identifier;
-      config false;
-      mandatory true;
-      description
-        "Retrieves all PM associate with the resource instance";
-    }
-    leaf pm-resource-type {
-      type org-openroadm-resource-types:resource-type-enum;
-      config false;
-      mandatory true;
-    }
-    leaf pm-resource-type-extension {
-      type string;
-      config false;
-      description
-        "The resource type extension when the type is not defined in the resource-type-enum.";
-    }
-    list historical-pm {
-      key "type extension location direction";
-      uses historical-pm-val-group;
-    }
-  }
-
-  grouping historical-pm-val-group {
-    description
-      "PM Data with historical values";
-    uses org-openroadm-pm-types:pm-names;
-    leaf location {
-      type org-openroadm-common-types:location;
-    }
-    leaf direction {
-      type org-openroadm-common-types:direction;
-    }
-    list measurement {
-      key "granularity bin-number";
-      leaf granularity {
-        type org-openroadm-pm-types:pm-granularity;
-        mandatory true;
-      }
-      leaf bin-number {
-        type uint16 {
-          range "1..max";
-        }
-        config false;
-        mandatory true;
-      }
-      uses org-openroadm-pm-types:pm-measurement;
-      leaf completion-time {
-        type yang:date-and-time;
-        config false;
-        mandatory true;
-        description
-          "The time at the end of the period; For example if bin starts at
-           01:15:00 and ends at 01:29:59, the completion-time is 01:29:59";
-      }
-    }
-  }
-
-  grouping collect-history-pm-group {
-    leaf pm-filename {
-      type string {
-        length "10..255";
-      }
-      description
-        "The file name to write the historical PM data.
-         The controller should be able to use this name to retrieve the file via ftp/sftp.
-         The file name should be unique for each RPC request since a new RPC request
-         could be initiated while the file transfer of the previous file is still in progress.
-
-         The file content should be written in xml format based on the historical-pm-list
-         yang definition and the file should be gzip compressed.";
-    }
-    uses org-openroadm-common-types:rpc-response-status;
-  }
-
-  rpc clear-pm {
-    description
-      "Command to initialize PM data";
-    input {
-      uses org-openroadm-resource:resource;
-      leaf pm-type {
-        type enumeration {
-          enum "current" {
-            value 1;
-          }
-          enum "all" {
-            value 2;
-          }
-        }
-        default "current";
-      }
-      leaf granularity {
-        type org-openroadm-pm-types:pm-granularity;
-        default "15min";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc collect-historical-pm-file {
-    description
-      "Command to query historical PM data.
-       The device should be able to process an rpc request for 15min data
-       and a separate request for 24hour data in parallel.";
-    input {
-      leaf from-bin-number {
-        type uint16 {
-          range "1..max";
-        }
-        default "1";
-        description
-          "The start bin-number of the range";
-      }
-      leaf to-bin-number {
-        type uint16 {
-          range "1..max";
-        }
-        default "1";
-        description
-          "The end bin-number of the range";
-      }
-      leaf granularity {
-        type org-openroadm-pm-types:pm-granularity;
-        default "15min";
-        description
-          "The granularity of the retrieve, default to 15 minitues PM";
-      }
-    }
-    output {
-      uses collect-history-pm-group;
-    }
-  }
-  notification historical-pm-collect-result {
-    description
-      "This Notification is sent when the pm collection is succesful or failed.";
-    uses collect-history-pm-group;
-  }
-  container current-pm-list {
-    config false;
-    description
-      "List of current PMs.";
-    list current-pm-entry {
-      key "pm-resource-type pm-resource-type-extension pm-resource-instance";
-      uses current-pm-group;
-    }
-  }
-  container historical-pm-list {
-    config false;
-    description
-      "List of historical PM";
-    list historical-pm-entry {
-      key "pm-resource-type pm-resource-type-extension pm-resource-instance";
-      uses historical-pm-group;
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-port-types@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-port-types@2018-10-19.yang
deleted file mode 100644 (file)
index 2319877..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-module org-openroadm-port-types {
-  namespace "http://org/openroadm/port/types";
-  prefix org-openroadm-port-types;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for port types.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity supported-if-capability {
-    description
-      "Base identity from which specific supported interfaces are derived";
-  }
-
-  identity if-100GE {
-    base supported-if-capability;
-  }
-
-  identity if-OMS {
-    base supported-if-capability;
-  }
-
-  identity if-OTS {
-    base supported-if-capability;
-  }
-
-  identity if-OCH {
-    base supported-if-capability;
-  }
-
-  identity if-1GE {
-    base supported-if-capability;
-  }
-
-  identity if-10GE {
-    base supported-if-capability;
-  }
-
-  identity if-40GE {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU1-ODU1 {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU2-ODU2 {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU2E-ODU2E {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU3-ODU3 {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU4-ODU4 {
-    base supported-if-capability;
-  }
-
-  identity if-OTU4-ODU4 {
-    base supported-if-capability;
-  }
-
-  identity if-OTU1-ODU1 {
-    base supported-if-capability;
-  }
-
-  identity if-OTU2-ODU2 {
-    base supported-if-capability;
-  }
-
-  identity if-OTU2e-ODU2e {
-    base supported-if-capability;
-  }
-
-  identity if-OTU3-ODU3 {
-    base supported-if-capability;
-  }
-
-  identity if-1GE-ODU0 {
-    base supported-if-capability;
-  }
-
-  identity if-10GE-ODU2 {
-    base supported-if-capability;
-  }
-
-  identity if-10GE-ODU2e {
-    base supported-if-capability;
-  }
-
-  identity if-40GE-ODU3 {
-    base supported-if-capability;
-  }
-
-  identity if-100GE-ODU4 {
-    base supported-if-capability;
-  }
-
-  identity supported-xpdr-capability {
-    description
-      "Base identity from which specific supported xponder are derived";
-  }
-
-  identity Transponder {
-    base supported-xpdr-capability;
-  }
-
-  identity Regen {
-    base supported-xpdr-capability;
-  }
-
-  typedef port-wavelength-types {
-    type enumeration {
-      enum "wavelength" {
-        value 1;
-        description
-          "Port on a transponder or ROADM SRG add drop";
-      }
-      enum "multi-wavelength" {
-        value 2;
-        description
-          "External port connecting to other roadm.";
-      }
-    }
-    description
-      "Port types.";
-  }
-
-  grouping common-port {
-    leaf port-power-capability-min-rx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the minimum power in the system spec for this port to
-         provide optimum function in rx direction";
-    }
-    leaf port-power-capability-min-tx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the minimum power in the system spec for this port to
-         provide optimum function in tx direction.";
-    }
-    leaf port-power-capability-max-rx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the maximum power in the system spec for this port to
-         provide optimum function in rx direction.";
-    }
-    leaf port-power-capability-max-tx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the maximum power in the system spec for this port to
-         provide optimum function in tx direction.";
-    }
-  }
-
-  grouping roadm-port {
-    uses common-port;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-probable-cause@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-probable-cause@2018-10-19.yang
deleted file mode 100644 (file)
index 030c93c..0000000
+++ /dev/null
@@ -1,767 +0,0 @@
-module org-openroadm-probable-cause {
-  namespace "http://org/openroadm/probableCause";
-  prefix org-openroadm-probable-cause;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of Probable Causes.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef probable-cause-enum {
-    type enumeration {
-      enum "vendorExtension" {
-        value 1;
-        description
-          "vendorExtension";
-      }
-      enum "openConnectionIndication" {
-        value 2;
-        description
-          "Open connection indication (OCI)";
-        reference "G.798";
-      }
-      enum "alarmIndicationSignal" {
-        value 3;
-        description
-          "Alarm indication signal";
-        reference "G.798";
-      }
-      enum "lossOfSignal" {
-        value 4;
-        description
-          "Loss of Signal";
-      }
-      enum "opticalLineFail" {
-        value 5;
-        description
-          "Optical Line Fail";
-      }
-      enum "opticalPowerDegraded" {
-        value 6;
-        description
-          "Optical Line Fail";
-      }
-      enum "automaticLaserShutdown" {
-        value 7;
-        description
-          "Optical Line Fail";
-      }
-      enum "serverSignalFail" {
-        value 8;
-        description
-          "Server Signal Fail (SSF)";
-        reference "G.798";
-      }
-      enum "lockedDefect" {
-        value 10;
-        description
-          "Locked defect (LCK)";
-        reference "G.798";
-      }
-      enum "trailTraceIdentifierMismatch" {
-        value 11;
-        description
-          "Trail trace Identifier Mismatch (TIM)";
-        reference "G.798";
-      }
-      enum "degradedDefect" {
-        value 12;
-        description
-          "Degraded defect (DEG)";
-        reference "G.798";
-      }
-      enum "backwardsDefectIndication" {
-        value 13;
-        description
-          "Backward Defect Indication (BDI)";
-        reference "G.798";
-      }
-      enum "otsSpanlossPowerOutOfSpecificationHigh" {
-        value 14;
-      }
-      enum "automaticShutoffDisabled" {
-        value 15;
-      }
-      enum "portLossOfLight" {
-        value 17;
-      }
-      enum "reflectionTooHigh" {
-        value 18;
-      }
-      enum "payloadMissingIndication" {
-        value 22;
-        description
-          "Will be applicable to ROADM when OSC signaling supported in future (G.709 2016-06 Figure 15-1A, 1B)";
-      }
-      enum "forwardDefectIndication" {
-        value 23;
-        description
-          "Will be applicable to ROADM when OSC signaling supported in future (G.709 2016-06 Figure 15-1A, 1B)";
-      }
-      enum "oscPowerOutOfSpecificationHigh" {
-        value 24;
-      }
-      enum "oscPowerOutOfSpecificationLow" {
-        value 25;
-      }
-      enum "powerOutOfSpecificationHigh" {
-        value 26;
-      }
-      enum "lossOfSynchronization" {
-        value 27;
-      }
-      enum "linkDown" {
-        value 28;
-      }
-      enum "equipmentFault" {
-        value 29;
-      }
-      enum "equipmentRemoved" {
-        value 30;
-      }
-      enum "equipmentMismatch" {
-        value 31;
-      }
-      enum "equipmentWarmup" {
-        value 32;
-      }
-      enum "equipmentLedOn" {
-        value 33;
-      }
-      enum "equipmentInterConnectFailure" {
-        value 34;
-      }
-      enum "equipmentMiscabledConnection" {
-        value 35;
-      }
-      enum "softwareVersionMismatch" {
-        value 36;
-      }
-      enum "softwareStageInProgress" {
-        value 37;
-      }
-      enum "databaseCorruption" {
-        value 38;
-      }
-      enum "databaseVersionMismatch" {
-        value 44;
-      }
-      enum "firmwareVersionMismatch" {
-        value 46;
-      }
-      enum "incompatibleFirmware" {
-        value 49;
-      }
-      enum "firmwareDownloadOrActivationFailure" {
-        value 50;
-      }
-      enum "firmwareInitInProgress" {
-        value 51;
-      }
-      enum "softwareReset" {
-        value 52;
-      }
-      enum "fanCoolingFail" {
-        value 53;
-      }
-      enum "administrativeDown" {
-        value 54;
-      }
-      enum "lampTest" {
-        value 55;
-      }
-      enum "powerProblemA" {
-        value 56;
-      }
-      enum "powerProblemB" {
-        value 57;
-      }
-      enum "shelfProvisioningMode" {
-        value 58;
-      }
-      enum "sysNameChanged" {
-        value 59;
-      }
-      enum "sysNtpNotSynchronized" {
-        value 60;
-      }
-      enum "lossOfFrame" {
-        value 63;
-      }
-      enum "lossOfMultiframe" {
-        value 64;
-      }
-      enum "backwardIncomingAlignmentError" {
-        value 65;
-      }
-      enum "incomingAlignmentError" {
-        value 66;
-      }
-      enum "payloadMismatch" {
-        value 67;
-      }
-      enum "clientSignalFailDefect" {
-        value 68;
-      }
-      enum "highBER" {
-        value 123;
-      }
-      enum "localFault" {
-        value 124;
-      }
-      enum "remoteFault" {
-        value 125;
-      }
-      enum "lossOfAlignment" {
-        value 126;
-      }
-      enum "lossOfFECAlignment" {
-        value 127;
-      }
-      enum "facilityLoopbackActive" {
-        value 128;
-      }
-      enum "facilityLoopback2Active" {
-        value 129;
-      }
-      enum "terminalLoopbackActive" {
-        value 130;
-      }
-      enum "facilityTestsignalActive" {
-        value 131;
-      }
-      enum "terminalTestsignalActive" {
-        value 132;
-      }
-      enum "certificateNotInstalled" {
-        value 134;
-      }
-      enum "lockoutOfProtection" {
-        value 135;
-      }
-      enum "forcedSwitchAwayFromWorking" {
-        value 136;
-      }
-      enum "forcedSwitchAwayFromProtect" {
-        value 137;
-      }
-      enum "automaticSwitchAwayFromWorkingDueToSF" {
-        value 138;
-      }
-      enum "automaticSwitchAwayFromProtectDueToSF" {
-        value 139;
-      }
-      enum "automaticSwitchDueToWTR" {
-        value 140;
-      }
-      enum "manualSwitchAwayFromWork" {
-        value 141;
-      }
-      enum "manualSwitchAwayFromProtect" {
-        value 142;
-      }
-      enum "automaticPowerReduction" {
-        value 143;
-      }
-      enum "lossOfSignalOSC" {
-        value 144;
-      }
-      enum "softwareValidateInProgress" {
-        value 145;
-      }
-      enum "databaseRollbackTimerInProgress" {
-        value 146;
-      }
-      enum "otdrScanInProgress" {
-        value 147;
-      }
-      enum "lldpFail" {
-        value 148;
-      }
-      enum "omsPowerOutOfSpecificationHigh" {
-        value 149;
-      }
-      enum "omsPowerOutOfSpecificationLow" {
-        value 150;
-      }
-      enum "automaticSwitchAwayFromWorkingDueToSD" {
-        value 151;
-      }
-      enum "automaticSwitchAwayFromProtectDueToSD" {
-        value 152;
-      }
-      enum "backwardIncomingAlignmentErrorTCM1-up" {
-        value 153;
-      }
-      enum "backwardIncomingAlignmentErrorTCM2-up" {
-        value 154;
-      }
-      enum "backwardIncomingAlignmentErrorTCM3-up" {
-        value 155;
-      }
-      enum "backwardIncomingAlignmentErrorTCM4-up" {
-        value 156;
-      }
-      enum "backwardIncomingAlignmentErrorTCM5-up" {
-        value 157;
-      }
-      enum "backwardIncomingAlignmentErrorTCM6-up" {
-        value 158;
-      }
-      enum "incomingAlignmentErrorTCM1-up" {
-        value 159;
-      }
-      enum "incomingAlignmentErrorTCM2-up" {
-        value 160;
-      }
-      enum "incomingAlignmentErrorTCM3-up" {
-        value 161;
-      }
-      enum "incomingAlignmentErrorTCM4-up" {
-        value 162;
-      }
-      enum "incomingAlignmentErrorTCM5-up" {
-        value 163;
-      }
-      enum "incomingAlignmentErrorTCM6-up" {
-        value 164;
-      }
-      enum "backwardsDefectIndicationTCM1-up" {
-        value 165;
-      }
-      enum "backwardsDefectIndicationTCM2-up" {
-        value 166;
-      }
-      enum "backwardsDefectIndicationTCM3-up" {
-        value 167;
-      }
-      enum "backwardsDefectIndicationTCM4-up" {
-        value 168;
-      }
-      enum "backwardsDefectIndicationTCM5-up" {
-        value 169;
-      }
-      enum "backwardsDefectIndicationTCM6-up" {
-        value 170;
-      }
-      enum "degradedDefectTCM1-up" {
-        value 171;
-      }
-      enum "degradedDefectTCM2-up" {
-        value 172;
-      }
-      enum "degradedDefectTCM3-up" {
-        value 173;
-      }
-      enum "degradedDefectTCM4-up" {
-        value 174;
-      }
-      enum "degradedDefectTCM5-up" {
-        value 175;
-      }
-      enum "degradedDefectTCM6-up" {
-        value 176;
-      }
-      enum "trailTraceIdentifierMisMatchTCM1-up" {
-        value 177;
-      }
-      enum "trailTraceIdentifierMisMatchTCM2-up" {
-        value 178;
-      }
-      enum "trailTraceIdentifierMisMatchTCM3-up" {
-        value 179;
-      }
-      enum "trailTraceIdentifierMisMatchTCM4-up" {
-        value 180;
-      }
-      enum "trailTraceIdentifierMisMatchTCM5-up" {
-        value 181;
-      }
-      enum "trailTraceIdentifierMisMatchTCM6-up" {
-        value 182;
-      }
-      enum "alarmIndicationSignalTCM1-up" {
-        value 183;
-      }
-      enum "alarmIndicationSignalTCM2-up" {
-        value 184;
-      }
-      enum "alarmIndicationSignalTCM3-up" {
-        value 185;
-      }
-      enum "alarmIndicationSignalTCM4-up" {
-        value 186;
-      }
-      enum "alarmIndicationSignalTCM5-up" {
-        value 187;
-      }
-      enum "alarmIndicationSignalTCM6-up" {
-        value 188;
-      }
-      enum "openConnectionIndicationTCM1-up" {
-        value 189;
-      }
-      enum "openConnectionIndicationTCM2-up" {
-        value 190;
-      }
-      enum "openConnectionIndicationTCM3-up" {
-        value 191;
-      }
-      enum "openConnectionIndicationTCM4-up" {
-        value 192;
-      }
-      enum "openConnectionIndicationTCM5-up" {
-        value 193;
-      }
-      enum "openConnectionIndicationTCM6-up" {
-        value 194;
-      }
-      enum "lockedDefectTCM1-up" {
-        value 195;
-      }
-      enum "lockedDefectTCM2-up" {
-        value 196;
-      }
-      enum "lockedDefectTCM3-up" {
-        value 197;
-      }
-      enum "lockedDefectTCM4-up" {
-        value 198;
-      }
-      enum "lockedDefectTCM5-up" {
-        value 199;
-      }
-      enum "lockedDefectTCM6-up" {
-        value 200;
-      }
-      enum "lossofTandemConnectionTCM1-up" {
-        value 201;
-      }
-      enum "lossofTandemConnectionTCM2-up" {
-        value 202;
-      }
-      enum "lossofTandemConnectionTCM3-up" {
-        value 203;
-      }
-      enum "lossofTandemConnectionTCM4-up" {
-        value 204;
-      }
-      enum "lossofTandemConnectionTCM5-up" {
-        value 205;
-      }
-      enum "lossofTandemConnectionTCM6-up" {
-        value 206;
-      }
-      enum "backwardIncomingAlignmentErrorTCM1-down" {
-        value 207;
-      }
-      enum "backwardIncomingAlignmentErrorTCM2-down" {
-        value 208;
-      }
-      enum "backwardIncomingAlignmentErrorTCM3-down" {
-        value 209;
-      }
-      enum "backwardIncomingAlignmentErrorTCM4-down" {
-        value 210;
-      }
-      enum "backwardIncomingAlignmentErrorTCM5-down" {
-        value 211;
-      }
-      enum "backwardIncomingAlignmentErrorTCM6-down" {
-        value 212;
-      }
-      enum "incomingAlignmentErrorTCM1-down" {
-        value 213;
-      }
-      enum "incomingAlignmentErrorTCM2-down" {
-        value 214;
-      }
-      enum "incomingAlignmentErrorTCM3-down" {
-        value 215;
-      }
-      enum "incomingAlignmentErrorTCM4-down" {
-        value 216;
-      }
-      enum "incomingAlignmentErrorTCM5-down" {
-        value 217;
-      }
-      enum "incomingAlignmentErrorTCM6-down" {
-        value 218;
-      }
-      enum "backwardsDefectIndicationTCM1-down" {
-        value 219;
-      }
-      enum "backwardsDefectIndicationTCM2-down" {
-        value 220;
-      }
-      enum "backwardsDefectIndicationTCM3-down" {
-        value 221;
-      }
-      enum "backwardsDefectIndicationTCM4-down" {
-        value 222;
-      }
-      enum "backwardsDefectIndicationTCM5-down" {
-        value 223;
-      }
-      enum "backwardsDefectIndicationTCM6-down" {
-        value 224;
-      }
-      enum "degradedDefectTCM1-down" {
-        value 225;
-      }
-      enum "degradedDefectTCM2-down" {
-        value 226;
-      }
-      enum "degradedDefectTCM3-down" {
-        value 227;
-      }
-      enum "degradedDefectTCM4-down" {
-        value 228;
-      }
-      enum "degradedDefectTCM5-down" {
-        value 229;
-      }
-      enum "degradedDefectTCM6-down" {
-        value 230;
-      }
-      enum "trailTraceIdentifierMisMatchTCM1-down" {
-        value 231;
-      }
-      enum "trailTraceIdentifierMisMatchTCM2-down" {
-        value 232;
-      }
-      enum "trailTraceIdentifierMisMatchTCM3-down" {
-        value 233;
-      }
-      enum "trailTraceIdentifierMisMatchTCM4-down" {
-        value 234;
-      }
-      enum "trailTraceIdentifierMisMatchTCM5-down" {
-        value 235;
-      }
-      enum "trailTraceIdentifierMisMatchTCM6-down" {
-        value 236;
-      }
-      enum "alarmIndicationSignalTCM1-down" {
-        value 237;
-      }
-      enum "alarmIndicationSignalTCM2-down" {
-        value 238;
-      }
-      enum "alarmIndicationSignalTCM3-down" {
-        value 239;
-      }
-      enum "alarmIndicationSignalTCM4-down" {
-        value 240;
-      }
-      enum "alarmIndicationSignalTCM5-down" {
-        value 241;
-      }
-      enum "alarmIndicationSignalTCM6-down" {
-        value 242;
-      }
-      enum "openConnectionIndicationTCM1-down" {
-        value 243;
-      }
-      enum "openConnectionIndicationTCM2-down" {
-        value 244;
-      }
-      enum "openConnectionIndicationTCM3-down" {
-        value 245;
-      }
-      enum "openConnectionIndicationTCM4-down" {
-        value 246;
-      }
-      enum "openConnectionIndicationTCM5-down" {
-        value 247;
-      }
-      enum "openConnectionIndicationTCM6-down" {
-        value 248;
-      }
-      enum "lockedDefectTCM1-down" {
-        value 249;
-      }
-      enum "lockedDefectTCM2-down" {
-        value 250;
-      }
-      enum "lockedDefectTCM3-down" {
-        value 251;
-      }
-      enum "lockedDefectTCM4-down" {
-        value 252;
-      }
-      enum "lockedDefectTCM5-down" {
-        value 253;
-      }
-      enum "lockedDefectTCM6-down" {
-        value 254;
-      }
-      enum "lossofTandemConnectionTCM1-down" {
-        value 255;
-      }
-      enum "lossofTandemConnectionTCM2-down" {
-        value 256;
-      }
-      enum "lossofTandemConnectionTCM3-down" {
-        value 257;
-      }
-      enum "lossofTandemConnectionTCM4-down" {
-        value 258;
-      }
-      enum "lossofTandemConnectionTCM5-down" {
-        value 259;
-      }
-      enum "lossofTandemConnectionTCM6-down" {
-        value 260;
-      }
-      enum "multiplexStructureIdentifierMismatch" {
-        value 261;
-        description
-          "G798 : 6.2.9 (dMSIM)";
-      }
-      enum "lossOfOmfIndication" {
-        value 262;
-        description
-          "G798 : 14.3.10.2 Figure 14-73 (dLOOMFI)";
-      }
-      enum "lossOfFrameAndLossOfMultiframe" {
-        value 263;
-        description
-          "G798 : 6.2.5.3 (dLOFLOM)";
-      }
-      enum "lossOfDatabaseRedundancy" {
-        value 264;
-        description
-          "loss of database redundancy";
-      }
-      enum "databaseLocked" {
-        value 265;
-        description
-          "Database locked";
-      }
-      enum "createTechInfoInProgress" {
-        value 266;
-        description
-          "create-tech-info in progress";
-      }
-      enum "circuitPackActivateFailed" {
-        value 267;
-        description
-          "circuit-pack activation failed";
-      }
-      enum "softwareSubsystemFailed" {
-        value 268;
-        description
-          "Software subsystem failed";
-      }
-      enum "diskFull" {
-        value 269;
-        description
-          "Disk full";
-      }
-    }
-  }
-
-  grouping probable-cause {
-    leaf cause {
-      type probable-cause-enum;
-      mandatory true;
-    }
-    leaf extension {
-      type string;
-      mandatory false;
-    }
-    leaf direction {
-      type org-openroadm-common-types:direction;
-      mandatory true;
-      description
-        "Direction indication of the alarm.";
-    }
-    leaf location {
-      type org-openroadm-common-types:location;
-      mandatory true;
-      description
-        "location indication of the alarm.";
-    }
-    leaf type {
-      type enumeration {
-        enum "communication" {
-          value 1;
-        }
-        enum "qualityOfService" {
-          value 2;
-        }
-        enum "processingError" {
-          value 3;
-        }
-        enum "equipment" {
-          value 4;
-        }
-        enum "environmental" {
-          value 5;
-        }
-      }
-      mandatory false;
-      description
-        "Type of alarm. Based on X.733 event Type.";
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-resource-types@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-resource-types@2018-10-19.yang
deleted file mode 100644 (file)
index 765c380..0000000
+++ /dev/null
@@ -1,362 +0,0 @@
-module org-openroadm-resource-types {
-  namespace "http://org/openroadm/resource/types";
-  prefix org-openroadm-resource-types;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of common resource types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef resource-type-enum {
-    type enumeration {
-      enum "other" {
-        value 1;
-        description
-          "Resource of type not found in list.";
-      }
-      enum "device" {
-        value 2;
-        description
-          "device - ROAMD, Xponder, etc";
-      }
-      enum "degree" {
-        value 3;
-        description
-          "degree";
-      }
-      enum "shared-risk-group" {
-        value 4;
-        description
-          "shared-risk-group";
-      }
-      enum "connection" {
-        value 5;
-        description
-          "connection - this is used by roadm-connection and odu-connection
-           since they are mutually exclusive in the model";
-      }
-      enum "connection-map" {
-        value 6;
-        description
-          "connection-map";
-      }
-      enum "port" {
-        value 7;
-        description
-          "port";
-      }
-      enum "circuit-pack" {
-        value 8;
-        description
-          "circuit pack";
-      }
-      enum "internal-link" {
-        value 9;
-        description
-          "internal-link";
-      }
-      enum "physical-link" {
-        value 10;
-        description
-          "physical-link";
-      }
-      enum "interface" {
-        value 11;
-        description
-          "interface";
-      }
-      enum "shelf" {
-        value 12;
-        description
-          "shelf";
-      }
-      enum "service" {
-        value 13;
-        description
-          "service";
-      }
-      enum "odu-sncp-pg" {
-        value 14;
-        description
-          "odu-sncp-pg";
-      }
-      enum "line-amplifier" {
-        value 15;
-        description
-          "line-amplifier";
-      }
-      enum "xponder" {
-        value 16;
-        description
-          "xponder";
-      }
-      enum "versioned-service" {
-        value 17;
-        description
-          "versioned-service";
-      }
-      enum "temp-service" {
-        value 18;
-        description
-          "temp-service";
-      }
-    }
-  }
-
-  typedef resource-notification-type {
-    type enumeration {
-      enum "resourceCreation" {
-        value 1;
-        description
-          "A new instance of a resource has been created.";
-      }
-      enum "resourceModification" {
-        value 2;
-        description
-          "An exhisting instance of a resource has been modified. This shall be triggered by changes in configuration, state, status etc.
-           It shall not be triggered by changes in performance measurements, power and temperature readings or any other data that is highlyvolatile. ";
-      }
-      enum "resourceDeletion" {
-        value 3;
-        description
-          "An exhisting instance of a resource has been removed.";
-      }
-    }
-    description
-      "Type of notification about a resource";
-  }
-
-  grouping resource-type {
-    leaf type {
-      type resource-type-enum;
-      mandatory true;
-    }
-    leaf extension {
-      type string;
-      mandatory false;
-    }
-  }
-
-  grouping device-id {
-    description
-      "Device identifier. Unique within the Controller.";
-    leaf node-id {
-      type org-openroadm-common-types:node-id-type;
-      description
-        "Node Id is a globally unique identifier for a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping circuit-pack-name {
-    leaf circuit-pack-name {
-      type string;
-      mandatory true;
-      description
-        "Circuit-Pack identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping port-name {
-    uses circuit-pack-name;
-    leaf port-name {
-      type string;
-      description
-        "Port identifier. Unique within the context of a circuit-pack.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping physical-link-name {
-    leaf physical-link-name {
-      type string;
-      mandatory true;
-      description
-        "Physical Link identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping internal-link-name {
-    leaf internal-link-name {
-      type string;
-      mandatory true;
-      description
-        "Internal Link identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping connection-name {
-    leaf connection-name {
-      type string;
-      description
-        "Connection name. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping degree-number {
-    leaf degree-number {
-      type uint16;
-      description
-        "Degree identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping srg-number {
-    leaf srg-number {
-      type uint16;
-      description
-        "Shared Risk Group identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping shelf-name {
-    leaf shelf-name {
-      type string;
-      mandatory true;
-      description
-        "Shelf-id identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping service-name {
-    leaf service-name {
-      type string;
-      mandatory true;
-      description
-        "Service identifier. Unique within the context of a network.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping versioned-service-name {
-    leaf versioned-service-name {
-      type string;
-      mandatory true;
-      description
-        "Service identifier. Unique within the context of a network.
-         Same as leafref value in model, if applicable.";
-    }
-    leaf version-number {
-      type uint64;
-      mandatory true;
-      description
-        "version-number of the service";
-    }
-  }
-
-  grouping temp-service-name {
-    leaf common-id {
-      type string;
-      mandatory true;
-      description
-        "Service identifier. Unique within the context of a network.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping interface-name {
-    leaf interface-name {
-      type string;
-      mandatory true;
-      description
-        "Interface identifier.";
-    }
-  }
-
-  grouping other-resource-id {
-    leaf other-resource-id {
-      type string;
-      mandatory true;
-      description
-        "resource-id for other.";
-    }
-  }
-
-  grouping odu-sncp-pg-name {
-    leaf odu-sncp-pg-name {
-      type string;
-      mandatory true;
-      description
-        "name of the odu-snc-pg";
-    }
-  }
-
-  grouping amp-number {
-    leaf amp-number {
-      type uint8;
-      mandatory true;
-      description
-        "number of the line-amplifier";
-    }
-  }
-
-  grouping xpdr-number {
-    leaf xpdr-number {
-      type uint16;
-      mandatory true;
-      description
-        "number of the xponder";
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-resource@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-resource@2018-10-19.yang
deleted file mode 100644 (file)
index 7baff87..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-module org-openroadm-resource {
-  namespace "http://org/openroadm/resource";
-  prefix org-openroadm-resource;
-
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of resources.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping resource {
-    description
-      "This resource identifier is intended to provide a generic identifer
-       for any resource that can be used without specific knowledge of
-       the resource.";
-    container device {
-      description
-        "Device of the resource, used only when the system using this
-         model report on more than one device. ";
-      uses org-openroadm-resource-types:device-id;
-    }
-    container resource {
-      choice resource {
-        case circuit-pack {
-          uses org-openroadm-resource-types:circuit-pack-name;
-        }
-        case port {
-          container port {
-            uses org-openroadm-resource-types:port-name;
-          }
-        }
-        case connection {
-          uses org-openroadm-resource-types:connection-name {
-            refine "connection-name" {
-              mandatory true;
-            }
-          }
-        }
-        case physical-link {
-          uses org-openroadm-resource-types:physical-link-name;
-        }
-        case internal-link {
-          uses org-openroadm-resource-types:internal-link-name;
-        }
-        case shelf {
-          uses org-openroadm-resource-types:shelf-name;
-        }
-        case srg {
-          uses org-openroadm-resource-types:srg-number {
-            refine "srg-number" {
-              mandatory true;
-            }
-          }
-        }
-        case degree {
-          uses org-openroadm-resource-types:degree-number {
-            refine "degree-number" {
-              mandatory true;
-            }
-          }
-        }
-        case service {
-          uses org-openroadm-resource-types:service-name;
-        }
-        case interface {
-          uses org-openroadm-resource-types:interface-name;
-        }
-        case odu-sncp-pg {
-          uses org-openroadm-resource-types:odu-sncp-pg-name;
-        }
-        case other {
-          uses org-openroadm-resource-types:other-resource-id;
-        }
-        case device {
-          uses org-openroadm-resource-types:device-id {
-            refine "node-id" {
-              mandatory true;
-            }
-          }
-        }
-        case line-amplifier {
-          uses org-openroadm-resource-types:amp-number;
-        }
-        case xponder {
-          uses org-openroadm-resource-types:xpdr-number;
-        }
-        case versioned-service {
-          uses org-openroadm-resource-types:versioned-service-name;
-        }
-        case temp-service {
-          uses org-openroadm-resource-types:temp-service-name;
-        }
-      }
-    }
-    container resourceType {
-      uses org-openroadm-resource-types:resource-type;
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-switching-pool-types@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-switching-pool-types@2017-12-15.yang
deleted file mode 100644 (file)
index 10cff01..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-module org-openroadm-switching-pool-types {
-  namespace "http://org/openroadm/switching-pool-types";
-  prefix org-openroadm-switching-pool-types;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of common types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-
-  typedef switching-pool-types {
-    type enumeration {
-      enum "non-blocking" {
-        value 1;
-        description
-          "Single non-blocking element";
-      }
-      enum "blocking" {
-        value 2;
-        description
-          "Multiple connected non-blocking lists";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-tca@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-tca@2018-10-19.yang
deleted file mode 100644 (file)
index 969a666..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-module org-openroadm-tca {
-  namespace "http://org/openroadm/tca";
-  prefix org-openroadm-tca;
-
-  import ietf-yang-types {
-    prefix yang;
-    revision-date 2013-07-15;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-pm-types {
-    prefix org-openroadm-pm-types;
-    revision-date 2017-12-15;
-  }
-  import org-openroadm-resource {
-    prefix org-openroadm-resource;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of Threshold Crossing Alert types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-08-28 {
-    description
-      "Version 2.0.2 - added back the missing pmParameterName container";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping tca {
-    leaf id {
-      type string;
-      mandatory true;
-    }
-    container resource {
-      uses org-openroadm-resource:resource;
-    }
-    container pmParameterName {
-      uses org-openroadm-pm-types:pm-names;
-    }
-    leaf granularity {
-      type org-openroadm-pm-types:pm-granularity;
-      mandatory true;
-    }
-    leaf location {
-      type org-openroadm-common-types:location;
-      mandatory true;
-    }
-    leaf direction {
-      type org-openroadm-common-types:direction;
-      mandatory true;
-    }
-  }
-
-  grouping potential-tca {
-    uses tca;
-    leaf lowThresholdValue {
-      type org-openroadm-pm-types:pm-data-type;
-    }
-    leaf highThresholdValue {
-      type org-openroadm-pm-types:pm-data-type;
-    }
-  }
-
-  notification tca-notification {
-    uses tca;
-    leaf thresholdValue {
-      type org-openroadm-pm-types:pm-data-type;
-      mandatory true;
-    }
-    leaf thresholdType {
-      type enumeration {
-        enum "high" {
-          value 1;
-        }
-        enum "low" {
-          value 2;
-        }
-      }
-      mandatory true;
-      description
-        "Threshold Crossed";
-    }
-    leaf pmParameterValue {
-      type org-openroadm-pm-types:pm-data-type;
-      mandatory true;
-    }
-    leaf raiseTime {
-      type yang:date-and-time;
-      mandatory true;
-    }
-  }
-  container potential-tca-list {
-    description
-      "This is the set of threshold crossing alerts monitored on the device. Alerts are
-       enabled/disabled by adding/deleting the high/low threshold values from the list.";
-    list tca {
-      key "id";
-      uses potential-tca;
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-user-mgmt@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/common/org-openroadm-user-mgmt@2017-12-15.yang
deleted file mode 100644 (file)
index cf55c1b..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-module org-openroadm-user-mgmt {
-  namespace "http://org/openroadm/user-mgmt";
-  prefix org-openroadm-user-mgmt;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of user managements.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef username-type {
-    type string {
-      length "3..32";
-      pattern "[a-z][a-z0-9]{2,31}" {
-        error-message
-          "A username must begin with a lowercase letter, The remainder
-           of the string may contain lowercase letters, or numbers 0 through 9.";
-      }
-    }
-    description
-      "The user name string identifying this entry.";
-  }
-
-  typedef password-type {
-    type string {
-      length "8..128";
-      pattern "[a-zA-Z0-9!$%\\^()\\[\\]_\\-~{}.+]*" {
-        error-message "Password content does not meet the requirements";
-      }
-    }
-    description
-      "The password for this entry. This shouldn't be in clear text
-       The Password must contain at least 2 characters from
-       each of the following groups:
-       a) Lower case alphabetic (a-z)
-       b) Upper case alphabetic (A-Z)
-       c) Numeric 0-9
-       d) Special characters Allowed !$%^()[]_-~{}.+
-       Password must not contain Username.";
-  }
-
-  grouping user-profile {
-    list user {
-      key "name";
-      description
-        "The list of local users configured on this device.";
-      leaf name {
-        type username-type;
-        description
-          "The user name string identifying this entry.";
-      }
-      leaf password {
-        type password-type;
-        description
-          "The password for this entry.";
-      }
-      leaf group {
-        type enumeration {
-          enum "sudo";
-        }
-        description
-          "The group to which the user is associated to.";
-      }
-    }
-  }
-
-  rpc chg-password {
-    input {
-      leaf currentPassword {
-        type password-type;
-        mandatory true;
-        description
-          "provide the current password";
-      }
-      leaf newPassword {
-        type password-type;
-        mandatory true;
-        description
-          "provide a new password";
-      }
-      leaf newPasswordConfirm {
-        type password-type;
-        mandatory true;
-        description
-          "re-enter the new password ";
-      }
-    }
-    output {
-      leaf status {
-        type enumeration {
-          enum "Successful" {
-            value 1;
-          }
-          enum "Failed" {
-            value 2;
-          }
-        }
-        mandatory true;
-        description
-          "Successful or Failed";
-      }
-      leaf status-message {
-        type string;
-        description
-          "Gives a more detailed reason for success / failure";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-database@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-database@2018-10-19.yang
deleted file mode 100644 (file)
index 63a21ba..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-module org-openroadm-database {
-  namespace "http://org/openroadm/database";
-  prefix org-openroadm-database;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "This module contains definitions for System Management.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  rpc db-backup {
-    description
-      "copy  running DB to user provided file to a given path";
-    input {
-      leaf filename {
-        type string {
-          length "10..255";
-        }
-        description
-          "Path and file name is used with back-up.(xxx.DBS)";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc db-restore {
-    description
-      "Restore database ";
-    input {
-      leaf filename {
-        type string {
-          length "10..255";
-        }
-        description
-          "PATH/file name use file name.(xxx.DBS)";
-      }
-      leaf nodeIDCheck {
-        type boolean;
-        default "true";
-        description
-          "Flag to indicate if sysNameCheck is required";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc db-activate {
-    description
-      "activate the database";
-    input {
-      leaf rollBackTimer {
-        type string;
-        description
-          "rollbackTimer ";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc cancel-rollback-timer {
-    description
-      "Cancel roll back timer which user provisioned as part of activate command";
-    input {
-      leaf accept {
-        type boolean;
-        description
-          " TRUE means rollback timer is cancelled and new load is accepted";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc database-init {
-    description
-      "Initialize the database to default DB";
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  notification db-backup-notification {
-    description
-      "notification for db-backup operation events.";
-    uses org-openroadm-common-types:rpc-response-status;
-  }
-  notification db-restore-notification {
-    description
-      "notification for db-restore operation events.";
-    uses org-openroadm-common-types:rpc-response-status;
-  }
-  notification db-activate-notification {
-    description
-      "notification for database activation events.";
-    leaf db-active-notification-type {
-      type org-openroadm-common-types:activate-notification-type;
-    }
-    uses org-openroadm-common-types:rpc-response-status;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-de-operations@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-de-operations@2018-10-19.yang
deleted file mode 100644 (file)
index e82f672..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-module org-openroadm-de-operations {
-  namespace "http://org/openroadm/de/operations";
-  prefix org-openroadm-de-operations;
-
-  import org-openroadm-resource {
-    prefix org-openroadm-resource;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of operations.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  rpc restart {
-    description
-      "Restart a resource with warm/cold option. If no resource is provided or only the device name is provided, then the device itself will be restarted.
-       Note that resources on the device will not be restartable";
-    input {
-      uses org-openroadm-resource:resource;
-      leaf option {
-        type enumeration {
-          enum "warm" {
-            value 1;
-          }
-          enum "cold" {
-            value 2;
-          }
-        }
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  notification restart-notification {
-    description
-      "This Notification is sent when a resource on a device has completed a restart. This is sent as a result of restarts triggered via the
-       restart RPC and other means.  The resource identified is the from the RPC request or the equivalment if the restart was triggered another way.";
-    uses org-openroadm-resource:resource;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-device@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-device@2018-10-19.yang
deleted file mode 100644 (file)
index c08187c..0000000
+++ /dev/null
@@ -1,1848 +0,0 @@
-module org-openroadm-device {
-  namespace "http://org/openroadm/device";
-  prefix org-openroadm-device;
-
-  import ietf-yang-types {
-    prefix ietf-yang-types;
-    revision-date 2013-07-15;
-  }
-  import ietf-inet-types {
-    prefix ietf-inet-types;
-    revision-date 2013-07-15;
-  }
-  import ietf-netconf {
-    prefix ietf-nc;
-    revision-date 2011-06-01;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-physical-types {
-    prefix org-openroadm-physical-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-user-mgmt {
-    prefix org-openroadm-user-mgmt;
-    revision-date 2017-12-15;
-  }
-  import org-openroadm-port-types {
-    prefix org-openroadm-port-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix org-openroadm-interfaces;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-swdl {
-    prefix org-openroadm-swdl;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-equipment-states-types {
-    prefix org-openroadm-equipment-states-types;
-    revision-date 2017-12-15;
-  }
-  import org-openroadm-switching-pool-types {
-    prefix org-openroadm-switching-pool-types;
-    revision-date 2017-12-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of ROADM device
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF netconf.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2017-02-06 {
-    description
-      "Version 1.2.1 - removed pattern for current-datetime in info tree and rpc";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping create-tech-info-group {
-    leaf shelf-id {
-      type leafref {
-        path "/org-openroadm-device/shelves/shelf-name";
-      }
-      description
-        "shelf ID";
-    }
-    leaf log-file-name {
-      type string;
-      description
-        "The log file name a vendor can specify for a given log collection operation";
-    }
-  }
-
-  grouping device-common {
-    leaf node-id {
-      type org-openroadm-common-types:node-id-type;
-      default "openroadm";
-      description
-        "Globally unique identifier for a device.";
-    }
-    leaf node-number {
-      type uint32;
-      description
-        "Number assigned to a ROADM node at a
-         given office";
-    }
-    leaf node-type {
-      type org-openroadm-common-types:node-types;
-      config true;
-      mandatory true;
-      description
-        "Identifier for node-type e.g Roadm, xponder.
-         Once the node-type is configured, it should not be modified.";
-    }
-    leaf clli {
-      type string;
-      description
-        "Common Language Location Identifier.";
-    }
-    uses org-openroadm-physical-types:node-info;
-    leaf ipAddress {
-      type ietf-inet-types:ip-address;
-      description
-        "IP Address of device";
-    }
-    leaf prefix-length {
-      type uint8 {
-        range "0..128";
-      }
-      description
-        "The length of the subnet prefix";
-    }
-    leaf defaultGateway {
-      type ietf-inet-types:ip-address;
-      description
-        "Default Gateway";
-    }
-    leaf source {
-      type enumeration {
-        enum "static" {
-          value 1;
-        }
-        enum "dhcp" {
-          value 2;
-        }
-      }
-      config false;
-    }
-    leaf current-ipAddress {
-      type ietf-inet-types:ip-address;
-      config false;
-      description
-        "Current IP Address of device";
-    }
-    leaf current-prefix-length {
-      type uint8 {
-        range "0..128";
-      }
-      config false;
-      description
-        "The current length of the subnet prefix";
-    }
-    leaf current-defaultGateway {
-      type ietf-inet-types:ip-address;
-      config false;
-      description
-        "Current Default Gateway";
-    }
-    leaf macAddress {
-      type ietf-yang-types:mac-address;
-      config false;
-      description
-        "MAC Address of device";
-    }
-    leaf softwareVersion {
-      type string;
-      config false;
-      description
-        "Software version";
-    }
-    leaf openroadm-version {
-      type org-openroadm-common-types:openroadm-version-type;
-      config false;
-      description
-        "openroadm version used on the device";
-    }
-    leaf template {
-      type string;
-      description
-        "Template information used in the deployment.";
-    }
-    leaf current-datetime {
-      type ietf-yang-types:date-and-time;
-      config false;
-      description
-        "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS.mm+ ";
-    }
-    container geoLocation {
-      description
-        "GPS location";
-      leaf latitude {
-        type decimal64 {
-          fraction-digits 16;
-          range "-90 .. 90";
-        }
-        description
-          "[From wikipedia] Latitude is an angle (defined below)
-           which ranges from 0 at the Equator to 90 (North or
-           South) at the poles";
-      }
-      leaf longitude {
-        type decimal64 {
-          fraction-digits 16;
-          range "-180 .. 180";
-        }
-        description
-          "[From wikipedia] The longitude is measured as the
-           angle east or west from the Prime Meridian, ranging
-           from 0 at the Prime Meridian to +180 eastward and
-           -180 westward.";
-      }
-    }
-  }
-
-  grouping slot-info {
-    description
-      "slots information. To be populated by NE during retrieval.";
-    leaf slot-name {
-      type string;
-      description
-        "The name of this slot.";
-    }
-    leaf label {
-      type string;
-      description
-        "Faceplate label";
-    }
-    leaf provisioned-circuit-pack {
-      type leafref {
-        path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-      }
-      description
-        "The supported circuit-pack. It will be empty if holder status is empty-not-prov, or installed-not-prov";
-    }
-    leaf slot-status {
-      type enumeration {
-        enum "empty-not-prov" {
-          value 1;
-          description
-            "Slot is empty and not provisioned";
-        }
-        enum "empty-prov-match" {
-          value 2;
-          description
-            "Slot is empty and expected type is provisioned";
-        }
-        enum "empty-prov-mismatch" {
-          value 3;
-          description
-            "Slot is empty and an unsupported type is provisioned";
-        }
-        enum "installed-not-prov" {
-          value 4;
-          description
-            "Slot is occupied but not provisioned";
-        }
-        enum "installed-prov-match" {
-          value 5;
-          description
-            "Slot is occupied with matching provisioned type";
-        }
-        enum "installed-prov-mismatch" {
-          value 6;
-          description
-            "Slot is occupied with mismatched provisioned type";
-        }
-      }
-    }
-  }
-
-  grouping shelves {
-    list shelves {
-      key "shelf-name";
-      uses shelf;
-    }
-  }
-
-  grouping shelf {
-    leaf shelf-name {
-      type string;
-      description
-        "Unique identifier for this shelf within a device";
-    }
-    leaf shelf-type {
-      type string;
-      mandatory true;
-      description
-        "The shelf type: describe the shelf with a unique string.";
-    }
-    leaf rack {
-      type string;
-      description
-        "Reflect the shelf physical location data including floor, aisle, bay values.";
-    }
-    leaf shelf-position {
-      type string;
-      description
-        "Reflect the shelf vertical position within an equipment bay.";
-    }
-    leaf administrative-state {
-      type org-openroadm-equipment-states-types:admin-states;
-      description
-        "Admin State of the shelf";
-    }
-    uses org-openroadm-physical-types:common-info;
-    leaf equipment-state {
-      type org-openroadm-equipment-states-types:states;
-      description
-        "equipment state for the shelf, used to track the lifecycle state.";
-    }
-    leaf due-date {
-      type ietf-yang-types:date-and-time;
-      description
-        "due date for the shelf.";
-    }
-    list slots {
-      key "slot-name";
-      config false;
-      description
-        "List of slots on this shelf. To be populated by NE during retrieval.";
-      uses slot-info;
-    }
-  }
-
-  grouping circuit-packs {
-    list circuit-packs {
-      key "circuit-pack-name";
-      description
-        "List of circuit packs. This includes common equipment, like fans, power supplies, etc.";
-      leaf circuit-pack-type {
-        type string;
-        mandatory true;
-        description
-          "Type of circuit-pack";
-      }
-      leaf circuit-pack-product-code {
-        type string;
-        description
-          "Product Code for the circuit-pack";
-      }
-      uses circuit-pack;
-    }
-  }
-
-  grouping circuit-pack-features {
-    leaf software-load-version {
-      type string;
-      config false;
-      description
-        "Software version running on the circuit pack.";
-    }
-    list circuit-pack-features {
-      config false;
-      container feature {
-        description
-          "List of features supported by the installed load and indications on whether the features have been applied or not.";
-        leaf description {
-          type string;
-          description
-            "Feature description.";
-        }
-        leaf activated {
-          type boolean;
-          description
-            "Indicator if the feature has been activated.";
-        }
-      }
-    }
-    list circuit-pack-components {
-      config false;
-      container component {
-        description
-          "Optional list of components on the circuit-pack and the load information applicable to those components.  If a load is not up to date and will upgrade when a cold restart occurs, the version that will be applied should also be listed.  If there is no misalignment, this does not need to be reported.";
-        leaf name {
-          type string;
-          description
-            "Name of a component on the circuit-pack that can have a load applied to it.";
-        }
-        leaf current-version {
-          type string;
-          description
-            "Name of the load version currently running on the component.";
-        }
-        leaf version-to-apply {
-          type string;
-          description
-            "Name of the load version for the component that will be applied when cold restart occurs on the circuit-pack.";
-        }
-      }
-    }
-  }
-
-  grouping circuit-pack {
-    leaf circuit-pack-name {
-      type string;
-      description
-        "Unique identifier for this circuit-pack within a device";
-    }
-    leaf administrative-state {
-      type org-openroadm-equipment-states-types:admin-states;
-      description
-        "Administrative state of circuit-pack";
-    }
-    uses org-openroadm-physical-types:common-info;
-    container circuit-pack-category {
-      config false;
-      description
-        "General type of circuit-pack";
-      uses org-openroadm-common-types:equipment-type;
-    }
-    leaf equipment-state {
-      type org-openroadm-equipment-states-types:states;
-      description
-        "Equipment state, which complements operational state.";
-    }
-    leaf circuit-pack-mode {
-      type string;
-      default "NORMAL";
-      description
-        "Circuit-pack mode allowed. e.g. NORMAL or REGEN";
-    }
-    leaf shelf {
-      type leafref {
-        path "/org-openroadm-device/shelves/shelf-name";
-      }
-      mandatory true;
-    }
-    leaf slot {
-      type string;
-      mandatory true;
-    }
-    leaf subSlot {
-      type string;
-      mandatory false;
-    }
-    leaf is-pluggable-optics {
-      type boolean;
-      config false;
-      mandatory true;
-      description
-        "True if circuitpack is pluggable optics";
-    }
-    leaf due-date {
-      type ietf-yang-types:date-and-time;
-      description
-        "due date for this circuit-pack.";
-    }
-    container parent-circuit-pack {
-      description
-        "In the case of circuit packs that contain other equipment (modules or pluggables), this captures the hierarchy of that equipment.  It is a vendor specific design decision if the ports for single-port pluggables are modeled as children of the parent circuit-pack, or as children of the pluggable circuit-pack contained in the parent circuit-pack.  For modules with multiple ports, it is recommended that ports be children of the module and not the carrier, to help in fault correlation and isolation in the case of a module failure.";
-      uses circuit-pack-name;
-      leaf cp-slot-name {
-        type string;
-        description
-          "Slot name on parent-circuit-pack.";
-      }
-    }
-    list cp-slots {
-      key "slot-name";
-      config false;
-      description
-        "List of circuit-pack slots on this circuit-pack. To be populated by NE during retrieval.";
-      uses slot-info;
-      leaf slot-type {
-        type enumeration {
-          enum "pluggable-optics-holder" {
-            value 1;
-            description
-              "slot accepts dedicated pluggable port circuit-pack";
-          }
-          enum "other" {
-            value 2;
-            description
-              "slot accepts parent circuit-pack";
-          }
-        }
-      }
-    }
-    uses circuit-pack-features;
-    list ports {
-      key "port-name";
-      description
-        "List of ports on this circuit-pack. Note that pluggables are considered independent circuit-packs.  All ports that are physically present on a pluggable, need to be modeled as a port against that pluggable circuit-pack, and not against the parent circuit-pack.";
-      uses port;
-      container roadm-port {
-        when "../port-qual='roadm-external'";
-        uses org-openroadm-port-types:roadm-port;
-      }
-      container transponder-port {
-        when "../port-qual='xpdr-network' or ../port-qual='xpdr-client' or ../port-qual='switch-network' or ../port-qual='switch-client'";
-        uses org-openroadm-port-types:common-port;
-      }
-      container otdr-port {
-        when "../port-qual='otdr'";
-        description
-          "Settings for otdr port.";
-        leaf launch-cable-length {
-          type uint32;
-          units "m";
-          default "30";
-        }
-        leaf port-direction {
-          type org-openroadm-common-types:direction;
-        }
-      }
-      container ila-port {
-        when "../port-qual='ila-external'";
-        uses org-openroadm-port-types:common-port;
-      }
-    }
-  }
-
-  grouping odu-connection {
-    description
-      "Grouping used to define odu-connections.";
-    leaf connection-name {
-      type string;
-      description
-        "roadm-connection and odu-connection share the same resource-type and resource definition (e.g. connection)";
-    }
-    leaf direction {
-      type enumeration {
-        enum "unidirectional" {
-          value 1;
-        }
-        enum "bidirectional" {
-          value 2;
-        }
-      }
-      default "bidirectional";
-      description
-        "Directionality of connection. If bidirectional, both directions are created.";
-    }
-    container source {
-      leaf src-if {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-        mandatory true;
-      }
-    }
-    container destination {
-      leaf dst-if {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-        mandatory true;
-      }
-    }
-  }
-
-  grouping connection {
-    description
-      "Grouping used to define connections.";
-    leaf connection-name {
-      type string;
-    }
-    leaf opticalControlMode {
-      type org-openroadm-common-types:optical-control-mode;
-      default "off";
-      description
-        "Whether connection is currently in power or gain/loss mode";
-      reference "openroadm.org: Open ROADM MSA Specification.";
-    }
-    leaf target-output-power {
-      type org-openroadm-common-types:power-dBm;
-      description
-        "The output target power for this connection. When set, the ROADM will work to ensure that current-output-power reaches this level.";
-    }
-    container source {
-      leaf src-if {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-        mandatory true;
-      }
-    }
-    container destination {
-      leaf dst-if {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-        mandatory true;
-      }
-    }
-  }
-
-  grouping degree {
-    leaf degree-number {
-      type uint16;
-      must "not( current() > /org-openroadm-device/info/max-degrees) and current() > 0" {
-        error-message "Degree not supported by device ";
-        description
-          "Validating if the degree is supported by device";
-      }
-    }
-    leaf max-wavelengths {
-      type uint16;
-      config false;
-      mandatory true;
-      description
-        "maximum number of wavelengths";
-    }
-    list circuit-packs {
-      key "index";
-      description
-        "list for Cards associated with a degree";
-      leaf index {
-        type uint32;
-      }
-      uses circuit-pack-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-      }
-    }
-    list connection-ports {
-      key "index";
-      description
-        "Port associated with degree: One if bi-directional; two if uni-directional";
-      leaf index {
-        type uint32;
-      }
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container otdr-port {
-      description
-        "otdr port associated with degree.";
-      uses port-name;
-    }
-    uses mc-capabilities-g;
-  }
-
-  grouping amplifier {
-    leaf amp-number {
-      type uint8 {
-        range "1..128";
-      }
-      description
-        "Unique identifier/number for the amplifier entry which corresponds to a logical amplifier";
-    }
-    leaf amp-type {
-      type org-openroadm-common-types:amplifier-types;
-      config false;
-      mandatory true;
-      description
-        "Amplifier type";
-    }
-    leaf control-mode {
-      type org-openroadm-common-types:line-amplifier-control-mode;
-      default "off";
-      description
-        "Whether the line amplifier is currently in off or gainLoss mode. control-mode can only be set to gainLoss when target-gain, target-tilt and egress-average-channel-power are set and the OMS interfaces are provisioned. The amplifier will be turned off when the control-mode is set to off";
-    }
-    leaf amp-gain-range {
-      type org-openroadm-common-types:amplifier-gain-range;
-      default "gain-range-1";
-      config false;
-      description
-        "Amplifier gain-range (gain-range 1 to 4 for switched gain amplifiers)
-         gain-range-1 (default value) for standard amplifiers";
-    }
-    leaf target-gain {
-      type org-openroadm-common-types:ratio-dB;
-      config true;
-      description
-        "Target overall Amplifier Signal gain, excluding ASE, including VOA attenuation.
-         Defined as optional for ODL support, but shall be considered as mandatory and provided
-         by the controller when the control-mode is set to gainLoss for amplifier setting";
-    }
-    leaf target-tilt {
-      type org-openroadm-common-types:ratio-dB;
-      config true;
-      description
-        "Target tilt configured in case of smart EDFA.
-         Tilt value provided as specified in Open-ROADM-MSA-specifications spreadsheet
-         Defined as optional for ODL support, but shall be considered as mandatory and provided
-         by the controller when the control-mode is set to gainLoss for amplifier setting";
-    }
-    leaf egress-average-channel-power {
-      type org-openroadm-common-types:power-dBm;
-      config true;
-      description
-        "Based upon the total max power across the 4.8 THz passband.
-         Defined as optional for ODL support, but shall be considered as mandatory and provided
-         by the controller when the control-mode is set to gainLoss for amplifier setting";
-    }
-    leaf out-voa-att {
-      type org-openroadm-common-types:ratio-dB;
-      config false;
-      description
-        "Used to provide the value output VOA attenuation, optional";
-    }
-    leaf partner-amp {
-      type leafref {
-        path "../amp-number";
-      }
-      config false;
-      description
-        "amp-number of amp module that is functionally associated to the amplifier
-         in the opposite direction";
-    }
-    leaf ila-direction-label {
-      type string;
-      description
-        "Amplifier direction. Each operators may have its own naming convention.
-         Shall be consistent with tx-instance-port-direction-label and rx-instance-port-direction-label.";
-    }
-  }
-
-  grouping external-links {
-    description
-      "YANG definitions for external links..
-       - physical links between ROADMs and between the ROADMs and XPonders, which can be added and removed manually.";
-    list external-link {
-      key "external-link-name";
-      uses external-link;
-    }
-  }
-
-  grouping external-link {
-    leaf external-link-name {
-      type string;
-    }
-    container source {
-      uses org-openroadm-resource-types:device-id {
-        refine "node-id" {
-          mandatory true;
-        }
-      }
-      uses org-openroadm-resource-types:port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container destination {
-      uses org-openroadm-resource-types:device-id {
-        refine "node-id" {
-          mandatory true;
-        }
-      }
-      uses org-openroadm-resource-types:port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-  }
-
-  grouping internal-links {
-    list internal-link {
-      key "internal-link-name";
-      config false;
-      uses internal-link;
-    }
-  }
-
-  grouping internal-link {
-    leaf internal-link-name {
-      type string;
-    }
-    container source {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container destination {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-  }
-
-  grouping physical-links {
-    description
-      "YANG definitions for physical links.
-       - physical links (fiber, cables,etc.) between ports within a node. ";
-    list physical-link {
-      key "physical-link-name";
-      uses physical-link;
-    }
-  }
-
-  grouping physical-link {
-    leaf physical-link-name {
-      type string;
-    }
-    container source {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container destination {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-  }
-
-  grouping srg {
-    leaf max-add-drop-ports {
-      type uint16;
-      config false;
-      mandatory true;
-      description
-        "The max number of ports available for a given srg";
-    }
-    leaf current-provisioned-add-drop-ports {
-      type uint16;
-      config false;
-      mandatory true;
-      description
-        "The number of ports currently provisioned for a given srg.";
-    }
-    leaf srg-number {
-      type uint16;
-      must "not(current()>/org-openroadm-device/info/max-srgs) and current()>0" {
-        error-message "invalid SRG";
-        description
-          "Validating if the srg is supported by add/drop group";
-      }
-    }
-    leaf wavelength-duplication {
-      type org-openroadm-common-types:wavelength-duplication-type;
-      config false;
-      mandatory true;
-      description
-        "Whether the SRG can handle duplicate wavelengths and if so to what extent.";
-    }
-    list circuit-packs {
-      key "index";
-      description
-        "list for Cards associated with an add/drop group and srg";
-      leaf index {
-        type uint32;
-      }
-      uses circuit-pack-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-      }
-    }
-    uses mc-capabilities-g;
-  }
-
-  grouping xponder {
-    leaf xpdr-number {
-      type uint16;
-      must "current() > 0" {
-        error-message "Xponder not supported by device ";
-        description
-          "Validating if the Xponder is supported by device";
-      }
-    }
-    leaf xpdr-type {
-      type org-openroadm-common-types:xpdr-node-types;
-      mandatory true;
-      description
-        "Identifier for xponder-type e.g Transponder, Muxponder";
-    }
-    leaf recolor {
-      type boolean;
-      config false;
-      description
-        "Indication if recolor is supported";
-    }
-    list xpdr-port {
-      key "index";
-      description
-        "Network Ports with in a Xponder";
-      leaf index {
-        type uint32;
-      }
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-      leaf eqpt-srg-id {
-        type uint32;
-        description
-          "Shared Risk Group identifier. All ports in a circuit-pack will have same srg-id";
-      }
-    }
-  }
-
-  grouping degree-number {
-    leaf degree-number {
-      type leafref {
-        path "/org-openroadm-device/degree/degree-number";
-      }
-      description
-        "Degree identifier. Unique within the context of a device.";
-    }
-  }
-
-  grouping circuit-pack-name {
-    leaf circuit-pack-name {
-      type leafref {
-        path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-      }
-      description
-        "Circuit-Pack identifier. Unique within the context of a device.";
-    }
-  }
-
-  grouping port-name {
-    uses circuit-pack-name;
-    leaf port-name {
-      type leafref {
-        path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
-      }
-      description
-        "Port identifier. Unique within the context of a circuit-pack.";
-    }
-  }
-
-  grouping srg-number {
-    leaf srg-number {
-      type leafref {
-        path "/org-openroadm-device/shared-risk-group/srg-number";
-      }
-      description
-        "Shared Risk Group identifier. Unique within the context of a device.";
-    }
-  }
-
-  grouping supporting-port-name {
-    leaf supporting-circuit-pack-name {
-      type leafref {
-        path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-      }
-      description
-        "Identifier of the supporting circuit-pack.";
-    }
-    leaf supporting-port {
-      type leafref {
-        path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../supporting-circuit-pack-name]/ports/port-name";
-      }
-      description
-        "Identifier of the supporting port.";
-    }
-  }
-
-  grouping interface-name {
-    leaf interface-name {
-      type leafref {
-        path "/org-openroadm-device/interface/name";
-      }
-      config false;
-      description
-        "Name of an interface. Unique within the context of a device.";
-    }
-  }
-
-  grouping interfaces-grp {
-    description
-      "OpenROADM Interface configuration parameters.";
-    list interface {
-      key "name";
-      description
-        "The list of configured interfaces on the device.";
-      leaf name {
-        type string;
-        description
-          "The name of the interface.";
-      }
-      leaf description {
-        type string;
-        description
-          "A textual description of the interface.";
-      }
-      leaf type {
-        type identityref {
-          base org-openroadm-interfaces:interface-type;
-        }
-        mandatory true;
-        description
-          "The type of the interface.";
-      }
-      leaf administrative-state {
-        type org-openroadm-equipment-states-types:admin-states;
-      }
-      leaf operational-state {
-        type org-openroadm-common-types:state;
-        config false;
-      }
-      leaf circuit-id {
-        type string {
-          length "0..45";
-        }
-        description
-          "circuit identifier/user label,
-           can be used in alarm correlation and/or connection management ";
-      }
-      leaf supporting-interface {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-      }
-      uses supporting-port-name;
-    }
-  }
-
-  grouping protection-groups {
-    description
-      "OpenROADM facility protection configuration parameters.";
-    container protection-grps {
-      description
-        "The list of configured protection groups on the device.";
-    }
-  }
-
-  grouping port {
-    description
-      "Grouping of attributes related to a port object.";
-    leaf port-name {
-      type string;
-      mandatory true;
-      description
-        "Identifier for a port, unique within a circuit pack";
-    }
-    leaf port-type {
-      type string;
-      description
-        "Type of the pluggable or fixed port.";
-    }
-    leaf port-qual {
-      type org-openroadm-common-types:port-qual;
-    }
-    leaf port-wavelength-type {
-      type org-openroadm-port-types:port-wavelength-types;
-      config false;
-      description
-        "Type of port - single, multiple-wavelength, etc.";
-    }
-    leaf port-direction {
-      type org-openroadm-common-types:direction;
-      config false;
-      mandatory true;
-      description
-        "Whether port is uni (tx/rx) or bi-directional and";
-    }
-    leaf label {
-      type string;
-      config false;
-      description
-        "Faceplate label";
-    }
-    leaf circuit-id {
-      type string {
-        length "0..45";
-      }
-      description
-        "circuit identifier/user label,
-         can be used in alarm correlation and/or connection management ";
-    }
-    leaf administrative-state {
-      type org-openroadm-equipment-states-types:admin-states;
-      default "outOfService";
-      description
-        "Administrative state of port. The value of this field independent of the state of its contained and containing resources.  Setting this a port to administratively down will impact both its operational state, as well the operational state of its contained resources.  If this port is an endpoint to a connection, internal-link, physical-link, etc, then administratively disabling this port will impact the operational state of those items unless they are using some form of port-protection schema.";
-    }
-    leaf operational-state {
-      type org-openroadm-common-types:state;
-      config false;
-      mandatory true;
-      description
-        "Operational state of a port";
-    }
-    leaf-list supported-interface-capability {
-      type identityref {
-        base org-openroadm-port-types:supported-if-capability;
-      }
-      config false;
-      description
-        "Interface types supported on this port";
-    }
-    leaf logical-connection-point {
-      type string;
-      description
-        "delete or replace with list logical-ports or connections?";
-    }
-    container partner-port {
-      config false;
-      description
-        "For ports which are not identified as having a direction of bidirectional, this field is used to identify the port which corresponds to the reverse direction. A port pair should include a port for each direction (tx, rx) and report their mate as partner-port.";
-      uses port-name;
-    }
-    container parent-port {
-      config false;
-      description
-        "In the case of port hierarchy, this is the parent port, which is also modeled as port within this circuit-pack. This is used in the case of a port that supports a parallel connector that contains subports.  The parent-port of the subport will be the port that contains this subport.  This can be used to help isolate faults when a single fault on a parallel connector introduces symptomatic failures on the contained subports.";
-      uses port-name;
-    }
-    list interfaces {
-      config false;
-      description
-        "List of the interfaces this port supports.  This is a list of names of instances in the flat instance list";
-      uses interface-name;
-    }
-  }
-
-  grouping org-openroadm-device-container {
-    container org-openroadm-device {
-      container info {
-        uses device-common;
-        leaf max-degrees {
-          type uint16;
-          config false;
-          description
-            "Max. number of degrees supported by device";
-        }
-        leaf max-srgs {
-          type uint16;
-          config false;
-          description
-            "Max. number of SRGs in an add/drop group";
-        }
-        leaf max-num-bin-15min-historical-pm {
-          type uint16;
-          config false;
-          description
-            "Max. number of bin the NE support for 15min historical PM";
-        }
-        leaf max-num-bin-24hour-historical-pm {
-          type uint16;
-          config false;
-          description
-            "Max. number of bin the NE support for 24hour historical PM";
-        }
-      }
-      container users {
-        description
-          "Stores a list of users";
-        uses org-openroadm-user-mgmt:user-profile;
-      }
-      container pending-sw {
-        config false;
-        uses org-openroadm-swdl:sw-bank;
-      }
-      uses shelves;
-      uses circuit-packs;
-      uses interfaces-grp;
-      uses protection-groups;
-      container protocols {
-        description
-          "Contains the supported protocols";
-      }
-      uses internal-links;
-      uses physical-links;
-      uses external-links;
-      list degree {
-        when "/org-openroadm-device/info/node-type='rdm'";
-        key "degree-number";
-        uses degree;
-      }
-      list shared-risk-group {
-        when "/org-openroadm-device/info/node-type='rdm'";
-        key "srg-number";
-        uses srg;
-      }
-      list line-amplifier {
-        when "/org-openroadm-device/info/node-type='ila'";
-        key "amp-number";
-        description
-          "lists amplifiers in different directions";
-        uses amplifier;
-        list circuit-pack {
-          key "index";
-          description
-            "list for Cards associated with an amplifier";
-          leaf index {
-            type uint32;
-          }
-          uses circuit-pack-name {
-            refine "circuit-pack-name" {
-              mandatory true;
-            }
-          }
-        }
-        list line-port {
-          key "port-direction";
-          description
-            "Port associated with an amplifier which face the line (ila-external): traffic port.";
-          leaf port-direction {
-            type org-openroadm-common-types:direction;
-            config true;
-            mandatory true;
-            description
-              "partly allows identifying ports associated with logical amp :TX for egress, RX for ingress
-               TXRX in case of bidirectional port";
-          }
-          leaf tx-instance-port-direction-label {
-            type string;
-            config true;
-            description
-              "Complements ports identification. Used notably in case of bidirectional ports,
-               and/or in multi-degree amplifier nodes. Allows associating one of the directions
-               specified in ila-direction-label. Shall be consistent with ila-direction-label";
-          }
-          leaf rx-instance-port-direction-label {
-            type string;
-            config true;
-            description
-              "Complements ports identification. Used notably in case of bidirectional ports,
-               and/or in multi-degree amplifier nodes. Allows associating one of the directions
-               specified in ila-direction-label. Shall be consistent with ila-direction-label";
-          }
-          uses port-name {
-            refine "circuit-pack-name" {
-              mandatory true;
-            }
-            refine "port-name" {
-              mandatory true;
-            }
-          }
-        }
-        list osc-port {
-          key "port-direction";
-          description
-            "Ports associated with OSC";
-          leaf port-direction {
-            type org-openroadm-common-types:direction;
-            config true;
-            mandatory true;
-            description
-              "allows identifying ports associated with logical amp :
-               TX for OSC circuit-pack IN RX for OSC circuit-pack OUT";
-          }
-          uses port-name {
-            refine "circuit-pack-name" {
-              mandatory true;
-            }
-            refine "port-name" {
-              mandatory true;
-            }
-          }
-        }
-        list otdr-port {
-          key "otdr-direction";
-          description
-            "otdr ports associated with an ILA";
-          leaf otdr-direction {
-            type string;
-            config true;
-            description
-              "allows identifying associated logical amp port in which OTDR is launched:
-               corresponds to rx-instance-port-direction-label of corresponding amplifier line-port";
-          }
-          uses port-name {
-            refine "circuit-pack-name" {
-              mandatory true;
-            }
-            refine "port-name" {
-              mandatory true;
-            }
-          }
-        }
-      }
-      list xponder {
-        when "/org-openroadm-device/info/node-type='xpdr'";
-        key "xpdr-number";
-        uses xponder;
-      }
-      list roadm-connections {
-        when "/org-openroadm-device/info/node-type='rdm'";
-        key "connection-name";
-        uses connection;
-      }
-      list odu-connection {
-        when "/org-openroadm-device/info/node-type='xpdr'";
-        key "connection-name";
-        uses odu-connection;
-      }
-      list connection-map {
-        key "connection-map-number";
-        config false;
-        leaf connection-map-number {
-          type uint32;
-          description
-            "Unique identifier for this connection-map entry";
-        }
-        container source {
-          leaf circuit-pack-name {
-            type leafref {
-              path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-            }
-            mandatory true;
-          }
-          leaf port-name {
-            type leafref {
-              path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
-            }
-            mandatory true;
-            description
-              "Port identifier. Unique within the context of a circuit-pack.";
-          }
-        }
-        list destination {
-          key "circuit-pack-name port-name";
-          min-elements 1;
-          leaf circuit-pack-name {
-            type leafref {
-              path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-            }
-            mandatory true;
-          }
-          leaf port-name {
-            type leafref {
-              path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
-            }
-            mandatory true;
-            description
-              "Port identifier. Unique within the context of a circuit-pack.";
-          }
-        }
-      }
-      list odu-switching-pools {
-        when "/org-openroadm-device/info/node-type='xpdr'";
-        key "switching-pool-number";
-        config false;
-        leaf switching-pool-number {
-          type uint16;
-          description
-            "Unique identifier for this odu-switching-pool";
-        }
-        leaf switching-pool-type {
-          type org-openroadm-switching-pool-types:switching-pool-types;
-        }
-        list non-blocking-list {
-          key "nbl-number";
-          config false;
-          description
-            "List of ports in a non-blocking switch element";
-          leaf nbl-number {
-            type uint16;
-            description
-              "Identifier for this non-blocking-list. Unique within odu-switching-pool";
-          }
-          leaf interconnect-bandwidth-unit {
-            type uint32;
-            config false;
-            description
-              "Switch fabric interconnect bandwidth unit rate in bits per second.
-               Represents granularity of switch fabric";
-          }
-          leaf interconnect-bandwidth {
-            type uint32;
-            config false;
-            description
-              "Total interconnect bandwidth for a non-blocking element expressed as
-               number of inter-connect-bandwidth units";
-          }
-          list port-list {
-            key "circuit-pack-name port-name";
-            leaf circuit-pack-name {
-              type leafref {
-                path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-              }
-              config false;
-            }
-            leaf port-name {
-              type leafref {
-                path "/org-openroadm-device/circuit-packs/ports/port-name";
-              }
-              config false;
-              description
-                "Port name. Unique within device";
-            }
-          }
-          list pluggable-optics-holder-list {
-            key "circuit-pack-name slot-name";
-            leaf circuit-pack-name {
-              type leafref {
-                path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-              }
-              config false;
-              description
-                "Name of parent circuit-pack";
-            }
-            leaf slot-name {
-              type leafref {
-                path "/org-openroadm-device/circuit-packs/cp-slots/slot-name";
-              }
-              config false;
-              description
-                "Name of pluggable-optics-holder";
-            }
-          }
-        }
-      }
-    }
-  }
-
-  grouping mc-capabilities-g {
-    container mc-capabilities {
-      config false;
-      description
-        "Capabilities of the media channel on a degree or SRG.  This is used to validate mc-ttp provisioning on degrees and SRGs.";
-      leaf slot-width-granularity {
-        type org-openroadm-common-types:frequency-GHz;
-        default "50";
-        config false;
-        description
-          "Width of a slot measured in GHz.";
-      }
-      leaf center-freq-granularity {
-        type org-openroadm-common-types:frequency-GHz;
-        default "50";
-        config false;
-        description
-          "Granularity of allowed center frequencies.  The base frequency for this computation is 193.1 THz (G.694.1)";
-      }
-      leaf min-slots {
-        type uint32;
-        default "1";
-        config false;
-        description
-          "Minimum number of slots permitted to be joined together to form a media channel.  Must be less than or equal to the max-slots";
-      }
-      leaf max-slots {
-        type uint32;
-        default "1";
-        config false;
-        description
-          "Maximum number of slots permitted to be joined together to form a media channel.  Must be greater than or equal to the min-slots";
-      }
-    }
-  }
-
-  grouping common-session-parms {
-    description
-      "Common session parameters to identify a
-       management session.";
-    leaf username {
-      type org-openroadm-user-mgmt:username-type;
-      mandatory true;
-      description
-        "Name of the user for the session.";
-    }
-    leaf session-id {
-      type ietf-nc:session-id-or-zero-type;
-      mandatory true;
-      description
-        "Identifier of the session.
-         A NETCONF session MUST be identified by a non-zero value.
-         A non-NETCONF session MAY be identified by the value zero.";
-    }
-    leaf source-host {
-      type ietf-inet-types:ip-address;
-      description
-        "Address of the remote host for the session.";
-    }
-  }
-
-  grouping changed-by-parms {
-    description
-      "Common parameters to identify the source
-       of a change event, such as a configuration
-       or capability change.";
-    container changed-by {
-      description
-        "Indicates the source of the change.
-         If caused by internal action, then the
-         empty leaf 'server' will be present.
-         If caused by a management session, then
-         the name, remote host address, and session ID
-         of the session that made the change will be reported.";
-      choice server-or-user {
-        leaf server {
-          type empty;
-          description
-            "If present, the change was caused
-             by the server.";
-        }
-        case by-user {
-          uses common-session-parms;
-        }
-      }
-    }
-  }
-
-  rpc led-control {
-    description
-      "This command is used to allow user to find an entity on the NE,
-       The specified entity will have LED blinking.
-       The equipmentLedOn alarm will be raised and cleared for the indication";
-    input {
-      choice equipment-entity {
-        mandatory true;
-        case shelf {
-          leaf shelf-name {
-            type leafref {
-              path "/org-openroadm-device/shelves/shelf-name";
-            }
-            mandatory true;
-            description
-              "shelf-name for the operation";
-          }
-        }
-        case circuit-pack {
-          leaf circuit-pack-name {
-            type leafref {
-              path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-            }
-            mandatory true;
-            description
-              "circuit-pack-name for the operation";
-          }
-        }
-      }
-      leaf enabled {
-        type boolean;
-        mandatory true;
-        description
-          "led-control enabled flag.
-           when enabled=true,  equipmentLedOn alarm will be raised
-           when enabled=false, equipmentLedOn alarm will be cleared";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc create-tech-info {
-    description
-      "Collects all log data for debugging and place it in a location accessible via ftp/sftp.
-       This model assumes ASYNC operation, i.e. the command will return after the device accepts the command,
-       A create-tech-info-notification will be send out later for the result of the operation.
-       The log-file is cleared at the start of every create-tech-info operation in order to ensure
-       the up-to-date logs are collected. If a vendor does not support concurrent log collection, the second
-       create-tech-info command will be rejected.";
-    input {
-      leaf shelf-id {
-        type leafref {
-          path "/org-openroadm-device/shelves/shelf-name";
-        }
-        description
-          "This optional field is used to specify the shelf for log collection.
-           When this filed is not provided, it is expected to collect logs for the whole node.
-           Vendor should reject the command if the whole node log collection is not supported.";
-      }
-      leaf log-option {
-        type string;
-        description
-          "The log type a vendor can specify. Maybe used in future";
-      }
-    }
-    output {
-      uses create-tech-info-group;
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc get-connection-port-trail {
-    input {
-      leaf connection-name {
-        type string;
-        mandatory true;
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-      list ports {
-        uses org-openroadm-common-types:physical-location;
-        uses port-name {
-          refine "circuit-pack-name" {
-            mandatory true;
-          }
-          refine "port-name" {
-            mandatory true;
-          }
-        }
-      }
-    }
-  }
-  rpc disable-automatic-shutoff {
-    input {
-      choice degree-or-amp {
-        mandatory true;
-        description
-          "The choice describes the option to specify the entity for the disable-automatic-shutoff RPC. It can be degree-number for rdm and amp-number for ila";
-        case degree {
-          leaf degree-number {
-            type leafref {
-              path "/org-openroadm-device/degree/degree-number";
-            }
-            mandatory true;
-            description
-              "The degree-number defined in degree";
-          }
-        }
-        case amp {
-          leaf amp-number {
-            type leafref {
-              path "/org-openroadm-device/line-amplifier/amp-number";
-            }
-            mandatory true;
-            description
-              "The amp-number defined in line-amplifier";
-          }
-        }
-      }
-      leaf support-timer {
-        type uint16 {
-          range "1..600";
-        }
-        default "20";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc start-scan {
-    input {
-      choice degree-or-amp {
-        mandatory true;
-        description
-          "The choice describes the option to specify the entity for the start-scan RPC. It can be degree-number for rdm and amp-number for ila";
-        case degree {
-          leaf degree-number {
-            type leafref {
-              path "/org-openroadm-device/degree/degree-number";
-            }
-            mandatory true;
-            description
-              "The degree-number defined in degree";
-          }
-        }
-        case amp {
-          leaf amp-number {
-            type leafref {
-              path "/org-openroadm-device/line-amplifier/amp-number";
-            }
-            mandatory true;
-            description
-              "The amp-number defined in line-amplifier";
-          }
-        }
-      }
-      leaf port-direction {
-        type org-openroadm-common-types:direction;
-      }
-      leaf distance {
-        type uint32;
-      }
-      leaf resolution {
-        type uint32;
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc set-current-datetime {
-    description
-      "Set the info/current-datetime leaf to the specified value.";
-    input {
-      leaf current-datetime {
-        type ietf-yang-types:date-and-time;
-        mandatory true;
-        description
-          "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  notification create-tech-info-notification {
-    description
-      "This Notification is sent when the create-tech-info is complete or failed.";
-    uses create-tech-info-group;
-    uses org-openroadm-common-types:rpc-response-status;
-  }
-  notification otdr-scan-result {
-    leaf status {
-      type enumeration {
-        enum "Completed" {
-          value 1;
-        }
-        enum "Failed" {
-          value 2;
-        }
-      }
-      mandatory true;
-      description
-        "Completed or Failed for the scan's final status";
-    }
-    leaf result-file {
-      type string;
-    }
-  }
-  notification change-notification {
-    description
-      "The Notification that a resource has been added, modified or removed.
-       This notification can be triggered by changes in configuration and operational data.
-       It shall contain the changed field pointed by the xpath.
-       Typically it is not intended for frequently changing volatile data e.g. PM, power levels";
-    leaf change-time {
-      type ietf-yang-types:date-and-time;
-      description
-        "The time the change occurs.";
-    }
-    uses changed-by-parms;
-    leaf datastore {
-      type enumeration {
-        enum "running" {
-          description
-            "The <running> datastore has changed.";
-        }
-        enum "startup" {
-          description
-            "The <startup> datastore has changed";
-        }
-      }
-      default "running";
-      description
-        "Indicates which configuration datastore has changed.";
-    }
-    list edit {
-      description
-        "An edit (change) record SHOULD be present for each distinct
-         edit operation that the server has detected on
-         the target datastore.  This list MAY be omitted
-         if the detailed edit operations are not known.
-         The server MAY report entries in this list for
-         changes not made by a NETCONF session.";
-      leaf target {
-        type instance-identifier;
-        description
-          "Top most node associated with the configuration or operational change.
-           A server SHOULD set this object to the node within
-           the datastore that is being altered.  A server MAY
-           set this object to one of the ancestors of the actual
-           node that was changed, or omit this object, if the
-           exact node is not known.";
-      }
-      leaf operation {
-        type ietf-nc:edit-operation-type;
-        description
-          "Type of edit operation performed.
-           A server MUST set this object to the NETCONF edit
-           operation performed on the target datastore.";
-      }
-    }
-  }
-  uses org-openroadm-device-container;
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-ethernet-interfaces@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-ethernet-interfaces@2018-10-19.yang
deleted file mode 100644 (file)
index cea829a..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-module org-openroadm-ethernet-interfaces {
-  namespace "http://org/openroadm/ethernet-interfaces";
-  prefix org-openroadm-eth-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-    revision-date 2017-06-26;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility ethernet interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping eth-attributes {
-    leaf speed {
-      type uint32;
-      description
-        "Set speed of the interface, unit mbps.
-         This is for ETH facility. ";
-    }
-    leaf fec {
-      type enumeration {
-        enum "off";
-        enum "rsfec";
-      }
-      description
-        "Forward Error Correction Choices. ";
-    }
-    leaf duplex {
-      type enumeration {
-        enum "half" {
-          value 0;
-          description
-            "half duplex";
-        }
-        enum "full" {
-          value 1;
-          description
-            "full duplex";
-        }
-      }
-      default "full";
-      description
-        "Set duplex selections.";
-    }
-    leaf mtu {
-      type uint32 {
-        range "1518..9000";
-      }
-      default "1522";
-      description
-        "Set Maximum Frame Size.";
-    }
-    leaf auto-negotiation {
-      type enumeration {
-        enum "enabled" {
-          value 1;
-          description
-            "Auto Negotiation enabled";
-        }
-        enum "disabled" {
-          value 0;
-          description
-            "Auto Negotiation disabled";
-        }
-      }
-      default "enabled";
-      description
-        "Set Auto Negotiation: Enabled/Disabled.";
-    }
-    leaf curr-speed {
-      type string;
-      config false;
-      description
-        "speed (UNKNOWN/AUTO/10/100/1000/10000) corresponding to the interface";
-    }
-    leaf curr-duplex {
-      type string;
-      config false;
-      description
-        "duplex (HALF/FULL) corresponding to the interface";
-    }
-  }
-
-  grouping ethernet-container {
-    container ethernet {
-      description
-        "Ethernet Interfaces";
-      uses eth-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:ethernetCsmacd'";
-    uses ethernet-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-file-transfer@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-file-transfer@2018-10-19.yang
deleted file mode 100644 (file)
index a895214..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-module org-openroadm-file-transfer {
-  namespace "http://org/openroadm/file-transfer";
-  prefix org-openroadm-file-txr;
-
-  import ietf-inet-types {
-    prefix inet;
-    revision-date 2013-07-15;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for file management related rpcs.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  rpc transfer {
-    description
-      "File transfer using FTP/SFTP";
-    input {
-      leaf action {
-        type enumeration {
-          enum "upload" {
-            description
-              "Specify the upload action. The NE (SFTP/FTP client) sends
-               the file identified by the local-file-path
-               to the remote-file-path.";
-          }
-          enum "download" {
-            description
-              "Specify the download action. The NE (SFTP/FTP client) retrieves
-               the file identified by the remote-file-path
-               to the local-file-path.";
-          }
-        }
-        mandatory true;
-        description
-          "Type of action - download/upload.";
-      }
-      leaf local-file-path {
-        type string;
-        mandatory true;
-        description
-          "Local file path.
-           Ex: /var/shared/example.txt";
-      }
-      leaf remote-file-path {
-        type inet:uri;
-        mandatory true;
-        description
-          "Remote file path.
-           A URI for the remote file path.
-
-           Format:sftp://user[:password]@host[:port]/path.
-           Ex: sftp://test:verify@[2001:db8:0:1::10]:22/home/user/sample";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc show-file {
-    description
-      "Show one or more files in the specified directory.";
-    input {
-      leaf filename {
-        type string {
-          length "1..255";
-        }
-        default "*";
-        description
-          "Specify file(s) to be listed (* is allowed as wild-card). ";
-      }
-    }
-    output {
-      leaf status {
-        type enumeration {
-          enum "Successful" {
-            value 1;
-          }
-          enum "Failed" {
-            value 2;
-          }
-        }
-        mandatory true;
-        description
-          "Successful or Failed";
-      }
-      leaf-list status-message {
-        type string;
-        description
-          "Gives a more detailed reason for success / failure";
-      }
-    }
-  }
-  rpc delete-file {
-    description
-      "Delete one or more files in the specified directory.";
-    input {
-      leaf filename {
-        type string {
-          length "1..255";
-        }
-        mandatory true;
-        description
-          "Specify file(s) to be deleted (* is allowed as wild-card).";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  notification transfer-notification {
-    description
-      "notification for transfer operation events.";
-    leaf local-file-path {
-      type string;
-      description
-        "Local file path used in transfer RPC.";
-    }
-    uses org-openroadm-common-types:extended-rpc-response-status;
-    container progress {
-      when "current()/../status = 'In-progress'";
-      description
-        "progress status when response is in-progress";
-      leaf bytes-transferred {
-        type uint64;
-        description
-          "bytes transferred.";
-      }
-      leaf percentage-complete {
-        type uint8;
-        description
-          "percentage completed.";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-fwdl@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-fwdl@2018-10-19.yang
deleted file mode 100644 (file)
index 7fa5b8c..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-module org-openroadm-fwdl {
-  namespace "http://org/openroadm/fwdl";
-  prefix org-openroadm-fwdl;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "This module contains definitions for System Management.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  rpc fw-update {
-    description
-      "Fpga data update";
-    input {
-      leaf circuit-pack-name {
-        type string;
-        description
-          "Name of the circuit pack";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-interfaces@2017-06-26.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-interfaces@2017-06-26.yang
deleted file mode 100644 (file)
index 03f1da1..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-module org-openroadm-interfaces {
-  namespace "http://org/openroadm/interfaces";
-  prefix openROADM-if;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility interfaces.
-     Reused ietf-interfaces and some interface-type defined in iana-if-type.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity interface-type {
-    description
-      "Base identity from which specific interface types are
-       derived.";
-  }
-
-  identity ethernetCsmacd {
-    base interface-type;
-    description
-      "For all Ethernet-like interfaces, regardless of speed,
-       as per RFC 3635.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-
-  identity ip {
-    base interface-type;
-    description
-      "IP (for APPN HPR in IP networks).";
-  }
-
-  identity mediaChannelTrailTerminationPoint {
-    base interface-type;
-    description
-      "Media Channel Trail Termination Point";
-  }
-
-  identity networkMediaChannelConnectionTerminationPoint {
-    base interface-type;
-    description
-      "Network Media Channel Connection Termination Point";
-  }
-
-  identity opticalChannel {
-    base interface-type;
-    description
-      "Optical Channel.";
-  }
-
-  identity opticalTransport {
-    base interface-type;
-    description
-      "Optical Transport.";
-  }
-
-  identity otnOdu {
-    base interface-type;
-    description
-      "OTN Optical Data Unit.";
-  }
-
-  identity otnOtu {
-    base interface-type;
-    description
-      "OTN Optical channel Transport Unit.";
-  }
-
-  identity openROADMOpticalMultiplex {
-    base interface-type;
-    description
-      "Optical Transport Multiplex type for openROADM";
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-lldp@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-lldp@2018-10-19.yang
deleted file mode 100644 (file)
index 7603002..0000000
+++ /dev/null
@@ -1,328 +0,0 @@
-module org-openroadm-lldp {
-  namespace "http://org/openroadm/lldp";
-  prefix org-openroadm-lldp;
-
-  import ietf-inet-types {
-    prefix inet;
-    revision-date 2013-07-15;
-  }
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import iana-afn-safi {
-    prefix ianaaf;
-    revision-date 2013-07-04;
-  }
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-    revision-date 2018-10-19;
-  }
-  import ietf-yang-types {
-    prefix yang;
-    revision-date 2013-07-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for lldp protocol.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping nbr-info-grp {
-    description
-      "Display LLDP Neighbour ";
-    leaf remoteSysName {
-      type string;
-      description
-        "remote neighbour system name";
-    }
-    leaf remoteMgmtAddressSubType {
-      type ianaaf:address-family;
-      description
-        "remote neighbour Management Address Subtype Enumeration";
-    }
-    leaf remoteMgmtAddress {
-      type inet:ip-address;
-      description
-        "remote neighbour management address";
-    }
-    leaf remotePortIdSubType {
-      type enumeration {
-        enum "other" {
-          value 0;
-          description
-            "reserved";
-        }
-        enum "ifalias" {
-          value 1;
-          description
-            "Interface Alias (IfAlias - IETF RFC 2863) ";
-        }
-        enum "portcomponent" {
-          value 2;
-          description
-            "Port component (EntPhysicalAlias IETF RFC 4133)";
-        }
-        enum "macaddress" {
-          value 3;
-          description
-            "MAC address (IEEE Std 802) ";
-        }
-        enum "networkaddress" {
-          value 4;
-          description
-            "Network Address";
-        }
-        enum "ifname" {
-          value 5;
-          description
-            "Interface Name (ifName - IETF RFC 2863)";
-        }
-        enum "agentcircuitid" {
-          value 6;
-          description
-            "Agent Circuit Id (IETF RFC 3046)";
-        }
-        enum "local" {
-          value 7;
-          description
-            "Locally assigned";
-        }
-      }
-      description
-        "remote neighbour Port ID Subtype Enumeration";
-    }
-    leaf remotePortId {
-      type string;
-      description
-        "remote neighbour port Id";
-    }
-    leaf remoteChassisIdSubType {
-      type enumeration {
-        enum "reserved" {
-          value 0;
-          description
-            "reserved";
-        }
-        enum "chassiscomponent" {
-          value 1;
-          description
-            "Chassis component (EntPhysicalAlias IETF RFC 4133)";
-        }
-        enum "ifalias" {
-          value 2;
-          description
-            "Interface Alias (IfAlias - IETF RFC 2863) ";
-        }
-        enum "portcomponent" {
-          value 3;
-          description
-            "Port component (EntPhysicalAlias IETF RFC 4133)";
-        }
-        enum "macaddress" {
-          value 4;
-          description
-            "MAC address (IEEE Std 802) ";
-        }
-        enum "networkaddress" {
-          value 5;
-          description
-            "Network Address";
-        }
-        enum "ifname" {
-          value 6;
-          description
-            "Interface Name (ifName - IETF RFC 2863)";
-        }
-        enum "local" {
-          value 7;
-          description
-            "Locally assigned";
-        }
-      }
-      description
-        "Chassis ID Subtype Enumeration";
-    }
-    leaf remoteChassisId {
-      type string;
-      description
-        "remote neighbour Chassis Id";
-    }
-  }
-
-  grouping lldp-container {
-    container lldp {
-      description
-        "LLDP configurable and retrievable";
-      container global-config {
-        description
-          "LLDP global configurations";
-        leaf adminStatus {
-          type enumeration {
-            enum "disable" {
-              value 0;
-              description
-                "Disable the LLDP feature per NE";
-            }
-            enum "enable" {
-              value 1;
-              description
-                "Enable the LLDP feature per NE";
-            }
-          }
-          default "enable";
-          description
-            "LLDP feature Enable/Disable per NE";
-        }
-        leaf msgTxInterval {
-          type uint16 {
-            range "5..32768";
-          }
-          default "30";
-          description
-            "LLDP frame Retransmit Interval in seconds";
-        }
-        leaf msgTxHoldMultiplier {
-          type uint8 {
-            range "2..10";
-          }
-          default "4";
-          description
-            "TTL value for the TLVs transmitter over wire in seconds";
-        }
-      }
-      list port-config {
-        key "ifName";
-        description
-          "LLDP port configurations";
-        leaf ifName {
-          type leafref {
-            path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
-          }
-          description
-            "Ethernet interface name where LLDP runs";
-        }
-        leaf adminStatus {
-          type enumeration {
-            enum "disable" {
-              value 0;
-              description
-                "Disables the LLDP frames transmit and receive on specific interface";
-            }
-            enum "txandrx" {
-              value 1;
-              description
-                "Enable Transmit and Receive LLDP frames on specific interface";
-            }
-          }
-          default "txandrx";
-          description
-            "LLDP enable per port basis";
-        }
-      }
-      container nbr-list {
-        config false;
-        description
-          "LLDP Oper data - Neighbour List information";
-        list if-name {
-          key "ifName";
-          leaf ifName {
-            type string;
-            description
-              "Ethernet interface name where LLDP runs";
-          }
-          uses nbr-info-grp;
-        }
-      }
-    }
-  }
-
-  notification lldp-nbr-info-change {
-    description
-      "LLDP: Neighbor Information Changed
-       remoteSysName
-       remoteSysMgmtAddressSubType
-       remoteSysMgmtAddress
-       remotePortIdSubType
-       remotePortId
-       remoteChassisIdSubType
-       remoteChassisId
-       All of the above attributes are sent in event";
-    leaf notification-type {
-      type org-openroadm-resource-types:resource-notification-type;
-    }
-    leaf resource-type {
-      type org-openroadm-resource-types:resource-type-enum;
-      description
-        "resource-type for this notification is interface";
-    }
-    leaf resource {
-      type string;
-      description
-        "resource interface-name";
-    }
-    container nbr-info {
-      uses nbr-info-grp;
-    }
-    leaf event-time {
-      type yang:date-and-time;
-    }
-  }
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:protocols" {
-    when "/org-openroadm-device:org-openroadm-device/org-openroadm-device:info/org-openroadm-device:node-type='rdm' or /org-openroadm-device:org-openroadm-device/org-openroadm-device:info/org-openroadm-device:node-type='ila'";
-    uses lldp-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-maintenance-loopback@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-maintenance-loopback@2017-12-15.yang
deleted file mode 100644 (file)
index 996fabd..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-module org-openroadm-maintenance-loopback {
-  namespace "http://org/openroadm/maintenance-loopback";
-  prefix org-openroadm-maint-loopback;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for maintenance loopback.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping maint-loopback {
-    container maint-loopback {
-      leaf enabled {
-        type boolean;
-        default "false";
-        description
-          "loopback operation enable flag";
-      }
-      leaf type {
-        when "../enabled = 'true'";
-        type enumeration {
-          enum "fac" {
-            value 0;
-            description
-              "pre-FEC Loopback in the facility direction";
-          }
-          enum "term" {
-            value 1;
-            description
-              "Loopback in the terminal direction";
-          }
-          enum "fac2" {
-            value 2;
-            description
-              "post-FEC Loopback in the facility direction";
-          }
-        }
-        default "fac";
-        description
-          "Set Loopback type (or direction).";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-maintenance-testsignal@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-maintenance-testsignal@2017-12-15.yang
deleted file mode 100644 (file)
index e658e7f..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-module org-openroadm-maintenance-testsignal {
-  namespace "http://org/openroadm/maintenance-testsignal";
-  prefix org-openroadm-maint-testsignal;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for maintenance testsignal.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping maint-testsignal {
-    container maint-testsignal {
-      leaf enabled {
-        type boolean;
-        default "false";
-        description
-          "testsignal enabled flag";
-      }
-      leaf testPattern {
-        when "../enabled = 'true'";
-        type enumeration {
-          enum "PRBS" {
-            value 0;
-            description
-              "Unframed, inverted PN-31 pattern or PRBS31 pattern per IEEE 802.3 clause 50.3.8.2 (inverted PN-31at line rate)";
-          }
-          enum "PRBS31" {
-            value 1;
-            description
-              "PRBS31 with standard mapping per G.709";
-          }
-          enum "PRBS23" {
-            value 2;
-            description
-              "SONET/SDH Framed,inverted PN-23 pattern.";
-          }
-          enum "PRZEROS" {
-            value 3;
-            description
-              "pseudo-random with zeros data pattern per IEEE 802.3 clause 49.2.8";
-          }
-          enum "IDLE" {
-            value 4;
-            description
-              "Scrambled IDLE test-pattern per IEEE 802.3ba";
-          }
-        }
-        description
-          "Set test signal pattern";
-      }
-      leaf type {
-        when "../enabled = 'true'";
-        type enumeration {
-          enum "fac" {
-            value 0;
-            description
-              "test signal in the facility direction";
-          }
-          enum "term" {
-            value 1;
-            description
-              "test signal in the terminal direction";
-          }
-        }
-        default "fac";
-        description
-          "Set test signal type (or direction).";
-      }
-      leaf bitErrors {
-        when "../enabled = 'true' and ../type = 'fac'";
-        type uint32 {
-          range "0..4294967295";
-        }
-        config false;
-        description
-          "bit errors for test signal in facility direction.";
-      }
-      leaf bitErrorsTerminal {
-        when "../enabled = 'true' and ../type = 'term'";
-        type uint32 {
-          range "0..4294967295";
-        }
-        config false;
-        description
-          "bit errors for test signal in terminal direction.";
-      }
-      leaf syncSeconds {
-        when "../enabled = 'true' and ../type = 'fac'";
-        type string;
-        config false;
-        description
-          "number of seconds the received facility test signal is in sync.";
-      }
-      leaf syncSecondsTerminal {
-        when "../enabled = 'true' and ../type = 'term'";
-        type string;
-        config false;
-        description
-          "number of seconds the received terminal test signal is in sync.";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-media-channel-interfaces@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-media-channel-interfaces@2018-10-19.yang
deleted file mode 100644 (file)
index 8409455..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-module org-openroadm-media-channel-interfaces {
-  namespace "http://org/openroadm/media-channel-interfaces";
-  prefix org-openroadm-media-channel-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility och interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-
-  grouping mc-ttp-attributes {
-    description
-      "Media channel termination point. Models bandwidth allocation in physical media. Network media channels may be provisioned in the spectrum characterized by the frequency limits.";
-    leaf min-freq {
-      type org-openroadm-common-types:frequency-THz;
-      config true;
-      description
-        "Minimum Frequency in THz. Granularity is hardware dependent, based on pixel resolution. eg. ITU 12.5GHz frequency slots. Range covers C+L";
-    }
-    leaf max-freq {
-      type org-openroadm-common-types:frequency-THz;
-      config true;
-      description
-        "Maximum Frequency in THz. Granularity is hardware dependent, based on pixel resolution. eg. ITU 12.5GHz frequency slots. Range covers C+L";
-    }
-    leaf center-freq {
-      type org-openroadm-common-types:frequency-THz;
-      config false;
-      description
-        "Center Frequency in THz. Granularity is hardware dependent, based on center-freq-granularity.";
-    }
-    leaf slot-width {
-      type org-openroadm-common-types:frequency-GHz;
-      config false;
-      description
-        "Width of the slot.  Granularity is hardware dependent, based on slot-width-granularity";
-    }
-  }
-
-  grouping mc-ttp-container {
-    container mc-ttp {
-      description
-        "Media Channel Trail Termination Point (MC-TTP)";
-      uses mc-ttp-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:mediaChannelTrailTerminationPoint'";
-    uses mc-ttp-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-network-media-channel-interfaces@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-network-media-channel-interfaces@2018-10-19.yang
deleted file mode 100644 (file)
index 51f8946..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-module org-openroadm-network-media-channel-interfaces {
-  namespace "http://org/openroadm/network-media-channel-interfaces";
-  prefix org-openroadm-network-media-channel-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility och interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-
-  grouping nmc-ctp-attributes {
-    description
-      "Network Media Channel attributes";
-    leaf frequency {
-      type org-openroadm-common-types:frequency-THz;
-      config true;
-      description
-        "Center Frequency in THz.  This is not constrained by mc-capabilities.  It must fit (when combined with width) inside any containing media channel.";
-    }
-    leaf width {
-      type org-openroadm-common-types:frequency-GHz;
-      config true;
-      description
-        "Frequency width in GHz.  This is not constrained by mc-capabilities.  It must fit (when combined with frequency) inside any containing media channel.";
-    }
-  }
-
-  grouping nmc-ctp-container {
-    container nmc-ctp {
-      description
-        "Network Media Channel Connection Termination Point (NMC-CTP)";
-      uses nmc-ctp-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:networkMediaChannelConnectionTerminationPoint'";
-    uses nmc-ctp-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-optical-channel-interfaces@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-optical-channel-interfaces@2018-10-19.yang
deleted file mode 100644 (file)
index c944745..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-module org-openroadm-optical-channel-interfaces {
-  namespace "http://org/openroadm/optical-channel-interfaces";
-  prefix org-openroadm-optical-channel-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility och interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping och-attributes {
-    description
-      "Optical Channel attributes";
-    leaf rate {
-      type identityref {
-        base org-openroadm-common-types:och-rate-identity;
-      }
-      description
-        "rate";
-    }
-    leaf frequency {
-      type org-openroadm-common-types:frequency-THz;
-      config true;
-      description
-        "Center Frequency in THz.";
-    }
-    leaf width {
-      type org-openroadm-common-types:frequency-GHz;
-      config false;
-      description
-        "Frequency width in GHz.";
-    }
-    leaf modulation-format {
-      type org-openroadm-common-types:modulation-format;
-    }
-    leaf transmit-power {
-      type org-openroadm-common-types:power-dBm;
-      description
-        "The target transmit power for this channel. When set, the xponder will work to ensure that port-current-power reaches this level. Applicable only to channel on top of xpdr-network port";
-    }
-  }
-
-  grouping och-container {
-    container och {
-      description
-        "Optical Channel (OCh):
-         Models the optical channel interfaces for an Optical White Box.";
-      uses och-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:opticalChannel'";
-    uses och-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-optical-transport-interfaces@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-optical-transport-interfaces@2018-10-19.yang
deleted file mode 100644 (file)
index e1d39dc..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-module org-openroadm-optical-transport-interfaces {
-  namespace "http://org/openroadm/optical-transport-interfaces";
-  prefix org-openroadm-optical-transport-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "This module contains YANG definitions
-     for the Optical Transport Interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping ots-attributes {
-    description
-      "Optical Transport Section (OTS) attributes";
-    leaf fiber-type {
-      type enumeration {
-        enum "smf" {
-          value 0;
-          description
-            "Single Mode Fiber";
-        }
-        enum "eleaf" {
-          value 1;
-          description
-            "ELEAF";
-        }
-        enum "oleaf" {
-          value 2;
-          description
-            "OLEAF";
-        }
-        enum "dsf" {
-          value 3;
-          description
-            "DSF";
-        }
-        enum "truewave" {
-          value 4;
-          description
-            "TRUEWAVE Reduced Slope";
-        }
-        enum "truewavec" {
-          value 5;
-          description
-            "TRUEWAVE Classic";
-        }
-        enum "nz-dsf" {
-          value 6;
-          description
-            "NZ-DSF";
-        }
-        enum "ull" {
-          value 7;
-          description
-            "Ultra Low Loss (ULL)";
-        }
-      }
-      default "smf";
-      description
-        "fiber type
-         Default    : SMF ";
-    }
-    leaf span-loss-receive {
-      type org-openroadm-common-types:ratio-dB;
-      description
-        "Span loss on the receiver side. Set by the controller and used by device to set AMP gain.";
-    }
-    leaf span-loss-transmit {
-      type org-openroadm-common-types:ratio-dB;
-      description
-        "Span loss on the transmitter side. Set by the controller and used by device to configure MSA compliant channel launch power";
-    }
-    leaf ingress-span-loss-aging-margin {
-      type org-openroadm-common-types:ratio-dB;
-      default "0";
-      config true;
-      description
-        "Span-loss margin used to set optical amplifier gain and output-voa.
-         Day one attenuation of the link, at initial commissioning may increase across wdm link life.
-         span-loss-aging-margin defines the maximum additional loss the wdm link may experience in addition
-         to initial loss without requiring a new design (new amplifier settings). ";
-    }
-    leaf eol-max-load-pIn {
-      type org-openroadm-common-types:power-dBm;
-      config true;
-      description
-        "End Of Life Total input power at maximum load used for amplifier control.
-         Calculated during the design, this value shall be used by the amplifier device
-         for the setting so that the reasonable margin is kept to reach this value
-         at the end of life of the wdm link, considering span-loss aging margins are reached ";
-    }
-  }
-
-  grouping ots-container {
-    container ots {
-      description
-        "Optical Transport Section (OTS):
-          Models the optical interfaces for an Optical White Box.
-          The network side is represented by the OTS/OMS.";
-      uses ots-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:opticalTransport'";
-    uses ots-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-otn-common@2017-06-26.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-otn-common@2017-06-26.yang
deleted file mode 100644 (file)
index 1b2a9b8..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-module org-openroadm-otn-common {
-  namespace "http://org/openroadm/otn-common";
-  prefix org-openroadm-otn-common;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for common OTN interface atrtributes and types.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-
-  grouping trail-trace {
-    leaf tx-sapi {
-      type string {
-        length "0 .. 15";
-      }
-      description
-        "The provisioned 15 character transmit trace SAPI. Implementations shall add the [0] field automatically per ITU-T G.709";
-    }
-    leaf tx-dapi {
-      type string {
-        length "0 .. 15";
-      }
-      description
-        "The provisioned 15 character transmit trace DAPI. Implementations shall add the [0] field automatically per ITU-T G.709";
-    }
-    leaf tx-operator {
-      type string {
-        length "0 .. 32";
-      }
-      description
-        "The provisioned 32 character Operator Specific field";
-    }
-    leaf accepted-sapi {
-      type string;
-      config false;
-      description
-        "The accepted SAPI recovered from the recieved multi-frame TTI field.
-         Received SAPI contains the receive data, minus the sapi[0] and any 0x00 padding at the end";
-    }
-    leaf accepted-dapi {
-      type string;
-      config false;
-      description
-        "The accepted DAPI recovered from the recieved multi-frame TTI field
-         Received DAPI contains the receive data, minus the dapi[0] and any 0x00 padding at the end";
-    }
-    leaf accepted-operator {
-      type string;
-      config false;
-      description
-        "The accepted Operator Specific field recovered from the recieved multi-frame TTI field";
-    }
-    leaf expected-sapi {
-      type string {
-        length "0 .. 15";
-      }
-      description
-        "The provisioned expected SAPI, to be compared with accepted TTI";
-    }
-    leaf expected-dapi {
-      type string {
-        length "0 .. 15";
-      }
-      description
-        "The provisioned expected DAPI, to be compared with accepted TTI";
-    }
-    leaf tim-act-enabled {
-      type boolean;
-      default "false";
-      description
-        "Enables TTI Mismatch consequent actions.";
-    }
-    leaf tim-detect-mode {
-      type enumeration {
-        enum "Disabled" {
-          description
-            "TTI is ignored";
-        }
-        enum "SAPI" {
-          description
-            "Expected SAPI is compared to the Accpeted TTI. Other TTI fields are ignored";
-        }
-        enum "DAPI" {
-          description
-            "Expected DAPI is compared to the Accpeted TTI. Other TTI fields are ignored";
-        }
-        enum "SAPI-and-DAPI" {
-          description
-            "Expected SAPI and Expected DAPI are compared to the Accpeted TTI. Operator specific TTI field is ignored";
-        }
-      }
-      default "Disabled";
-    }
-  }
-
-  grouping deg-threshold {
-    leaf degm-intervals {
-      type uint8 {
-        range "2 .. 10";
-      }
-      default "2";
-      description
-        "G.806 - Consecutive bad intervals required for declare dDEG";
-    }
-    leaf degthr-percentage {
-      type uint16 {
-        range "1 .. 10000";
-      }
-      default "100";
-      description
-        "Percentage of errored blocks required to declare an interval bad, in units of 0.01%";
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-otn-odu-interfaces@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-otn-odu-interfaces@2018-10-19.yang
deleted file mode 100644 (file)
index 57f1fd5..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
-module org-openroadm-otn-odu-interfaces {
-  namespace "http://org/openroadm/otn-odu-interfaces";
-  prefix org-openroadm-otn-odu-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-maintenance-testsignal {
-    prefix org-openroadm-maint-testsignal;
-    revision-date 2017-12-15;
-  }
-  import org-openroadm-otn-common {
-    prefix org-openroadm-otn-common;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-otn-common-types {
-    prefix org-openroadm-otn-common-types;
-    revision-date 2017-12-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility otnodu interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping msi-entry {
-    leaf trib-slot {
-      type uint16;
-      description
-        "tributary slot (TS)";
-    }
-    leaf odtu-type {
-      type identityref {
-        base org-openroadm-otn-common-types:odtu-type-identity;
-      }
-      description
-        "ODTU type, part of the MSI (Multiplex Structure Identifier)";
-    }
-    leaf trib-port {
-      type uint16;
-      description
-        "Tributary Port Number (0-based), part of the MSI";
-    }
-    leaf trib-port-payload {
-      type string;
-      description
-        "interface name being mapped to trib-port";
-    }
-  }
-
-  grouping odu-attributes {
-    description
-      "ODU attributes";
-    leaf rate {
-      type identityref {
-        base org-openroadm-otn-common-types:odu-rate-identity;
-      }
-      description
-        "rate identity of the ODU. 'identityref' is used
-         to allow to extend for future higher rates";
-    }
-    leaf odu-function {
-      type identityref {
-        base org-openroadm-otn-common-types:odu-function-identity;
-      }
-      description
-        "function of the ODU interface";
-    }
-    leaf monitoring-mode {
-      type enumeration {
-        enum "not-terminated" {
-          description
-            "Not Terminated: no detection or generation.
-             Overhead is passed through the interface transparently in receive direction";
-        }
-        enum "terminated" {
-          description
-            "Terminated: detection and generation enabled.
-             Overhead is erased (replaced with all zeros) in receive direction";
-        }
-        enum "monitored" {
-          description
-            "Monitored: detection enabled.
-             Overhead is passed through the interface transparently in receive direction";
-        }
-      }
-      description
-        "Monitoring mode of the ODU Overhead";
-    }
-    leaf no-oam-function {
-      type empty;
-      description
-        "No OAM functionality exists for this ODU interface, the entity exists in software only. This entity does not report alarms or PM and does not support TCM, TTI, delay measurement, loopbacks, test signal and other hardware-based functions. This is an optional parameter, only needs to be present when no-oam-function supported for this interface.";
-    }
-    leaf proactive-delay-measurement-enabled {
-      type boolean;
-      description
-        "enable/disable proactive Delay Measurement";
-    }
-    uses parent-odu-allocation;
-    uses org-openroadm-otn-common:trail-trace;
-    uses org-openroadm-otn-common:deg-threshold;
-    list tcm {
-      key "layer tcm-direction";
-      max-elements "6";
-      description
-        "Tandem Connection Management";
-      uses tcm-attributes;
-    }
-    uses opu;
-  }
-
-  grouping parent-odu-allocation {
-    container parent-odu-allocation {
-      when "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface[org-openroadm-device:name = current()/../../org-openroadm-device:supporting-interface]/org-openroadm-device:type = 'openROADM-if:otnOdu'";
-      presence "Explicit assignment of parent ODU trib-slot and trib-port allocation. ";
-      leaf trib-port-number {
-        type uint16 {
-          range "1 .. 80";
-        }
-        mandatory true;
-        description
-          "Assigned tributary port number in parent OPU";
-      }
-      leaf-list trib-slots {
-        type uint16 {
-          range "1 .. 80";
-        }
-        min-elements 1;
-        max-elements "80";
-        description
-          "Assigned trib slots occupied in parent OPU MSI";
-      }
-    }
-  }
-
-  grouping opu {
-    container opu {
-      when "../monitoring-mode = 'terminated' or ../monitoring-mode = 'monitored'";
-      description
-        "Optical Channel Payload Unit (OPU)";
-      leaf payload-type {
-        type org-openroadm-otn-common-types:payload-type-def;
-        description
-          "Payload Type";
-      }
-      leaf rx-payload-type {
-        type org-openroadm-otn-common-types:payload-type-def;
-        description
-          "Received Payload Type";
-      }
-      leaf exp-payload-type {
-        type org-openroadm-otn-common-types:payload-type-def;
-        description
-          "Expected Payload Type";
-      }
-      leaf payload-interface {
-        type string;
-        description
-          "Expected Payload of OPU. It designates client interface name";
-      }
-      container msi {
-        when "../payload-type = '20' or ../payload-type = '21'";
-        list tx-msi {
-          key "trib-slot";
-          description
-            "Transmit MSI";
-          uses msi-entry;
-        }
-        list rx-msi {
-          key "trib-slot";
-          description
-            "Receive MSI";
-          uses msi-entry;
-        }
-        list exp-msi {
-          key "trib-slot";
-          description
-            "Expected MSI";
-          uses msi-entry;
-        }
-      }
-    }
-  }
-
-  grouping tcm-attributes {
-    description
-      "Tandem Connection Monitoring (TCM) attributes";
-    leaf layer {
-      type uint8 {
-        range "1..6";
-      }
-      description
-        "TCM layer";
-    }
-    leaf monitoring-mode {
-      type enumeration {
-        enum "not-terminated" {
-          description
-            "Not Terminated: no detection or generation.
-             Overhead is passed through the interface transparently in receive direction
-             unless extension is set for erase";
-        }
-        enum "terminated" {
-          description
-            "Terminated: detection and generation enabled.
-             Overhead is erased (replaced with all zeros) in receive direction, unless
-             extension is set to passthrough";
-        }
-        enum "monitored" {
-          description
-            "Monitored: detection enabled.
-             Overhead is passed through the interface transparently in receive direction
-             unless extension is set for erase";
-        }
-      }
-      description
-        "Monitoring mode of the TCM layer";
-    }
-    leaf ltc-act-enabled {
-      type boolean;
-      description
-        "enable/disable alarm transfer on detection of Loss of Tandem Connection (LTC)";
-    }
-    leaf proactive-delay-measurement-enabled {
-      type boolean;
-      description
-        "enable/disable proactive Delay Measurement for TCM";
-    }
-    leaf tcm-direction {
-      type enumeration {
-        enum "up-tcm" {
-          description
-            "TCM termination direction faces the switch fabric.";
-        }
-        enum "down-tcm" {
-          description
-            "TCM termination direction faces the facility";
-        }
-      }
-      description
-        "Direction of TCM.";
-    }
-    uses org-openroadm-otn-common:trail-trace;
-    uses org-openroadm-otn-common:deg-threshold;
-  }
-
-  grouping odu-container {
-    container odu {
-      presence "Attribute Nodes for Optical Data Unit (ODU)";
-      description
-        "Optical Channel Data Unit (ODU)";
-      uses odu-attributes {
-        refine "opu/rx-payload-type" {
-          config false;
-        }
-        refine "opu/msi" {
-          config false;
-        }
-        refine "no-oam-function" {
-          config false;
-        }
-      }
-      uses org-openroadm-maint-testsignal:maint-testsignal;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:otnOdu'";
-    uses odu-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-otn-otu-interfaces@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-otn-otu-interfaces@2018-10-19.yang
deleted file mode 100644 (file)
index 423bcd2..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-module org-openroadm-otn-otu-interfaces {
-  namespace "http://org/openroadm/otn-otu-interfaces";
-  prefix org-openroadm-otn-otu-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-maintenance-loopback {
-    prefix org-openroadm-maint-loopback;
-    revision-date 2017-12-15;
-  }
-  import org-openroadm-otn-common {
-    prefix org-openroadm-otn-common;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-otn-common-types {
-    prefix org-openroadm-otn-common-types;
-    revision-date 2017-12-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility otnotu interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping otu-attributes {
-    description
-      "OTU attributes";
-    leaf rate {
-      type identityref {
-        base org-openroadm-otn-common-types:otu-rate-identity;
-      }
-      description
-        "rate identity of the OTU. 'identityref' is used
-         to allow to extend for future higher rates";
-    }
-    leaf fec {
-      type enumeration {
-        enum "off" {
-          value 0;
-          description
-            "fec off";
-        }
-        enum "rsfec" {
-          value 1;
-          description
-            "rsfec";
-        }
-        enum "sdfeca1" {
-          value 2;
-          description
-            "Clariphy SDFEC";
-        }
-        enum "efec" {
-          value 3;
-          description
-            "G.975.1 I.4";
-        }
-        enum "ufec" {
-          value 4;
-          description
-            "G.975.1 I.7";
-        }
-        enum "sdfec" {
-          value 5;
-          description
-            "Soft decision FEC";
-        }
-        enum "sdfecb1" {
-          value 6;
-          description
-            "SDFEC with SCFEC";
-        }
-        enum "scfec" {
-          value 7;
-          description
-            "Stair case FEC";
-        }
-      }
-      description
-        "Forward Error Correction";
-    }
-    uses org-openroadm-otn-common:trail-trace;
-    uses org-openroadm-otn-common:deg-threshold;
-  }
-
-  grouping otu-container {
-    container otu {
-      description
-        "Optical Channel Transport Unit (OTU)";
-      uses otu-attributes;
-      uses org-openroadm-maint-loopback:maint-loopback;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:otnOtu'";
-    uses otu-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-physical-types@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-physical-types@2018-10-19.yang
deleted file mode 100644 (file)
index 8c6395d..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-module org-openroadm-physical-types {
-  namespace "http://org/openroadm/physical/types";
-  prefix org-openroadm-physical-types;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-  import ietf-yang-types {
-    prefix yang;
-    revision-date 2013-07-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of physical types.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping node-info {
-    description
-      "Physical inventory data used by the node";
-    leaf vendor {
-      type string;
-      config false;
-      mandatory true;
-      description
-        "Vendor of the equipment";
-    }
-    leaf model {
-      type string;
-      config false;
-      mandatory true;
-      description
-        "Physical resource model information.";
-    }
-    leaf serial-id {
-      type string;
-      config false;
-      mandatory true;
-      description
-        "Product Code for this physical resource";
-    }
-  }
-
-  grouping common-info {
-    description
-      "Physical inventory data used by all other entities";
-    uses node-info;
-    leaf type {
-      type string;
-      config false;
-      description
-        "The specific type of this physical resource - ie the type of
-         shelf, type of circuit-pack, etc.";
-    }
-    leaf product-code {
-      type string;
-      config false;
-      description
-        "Product Code for this physical resource";
-    }
-    leaf manufacture-date {
-      type yang:date-and-time;
-      config false;
-      description
-        "Manufacture date of physical resource";
-    }
-    leaf clei {
-      type string;
-      config false;
-      description
-        "CLEI for this physical resource";
-    }
-    leaf hardware-version {
-      type string;
-      config false;
-      description
-        "The version of the hardware.";
-    }
-    leaf operational-state {
-      type org-openroadm-common-types:state;
-      config false;
-      description
-        "Operational state of the physical resource";
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-pluggable-optics-holder-capability@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-pluggable-optics-holder-capability@2018-10-19.yang
deleted file mode 100644 (file)
index b27f58e..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-module org-openroadm-pluggable-optics-holder-capability {
-  namespace "http://org/openroadm/pluggable-optics-holder-capability";
-  prefix org-openroadm-pluggable-optics-holder-capability;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-port-capability {
-    prefix org-openroadm-port-capability;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for pluggable optics holder capability.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2017 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-
-  grouping pluggable-optics-holder-capability {
-    description
-      "Pluggable optics holder capability parameters.";
-    container pluggable-optics-holder-capability {
-      config false;
-      list supported-circuit-pack-types {
-        key "supported-circuit-pack-type";
-        leaf supported-circuit-pack-type {
-          type string;
-          mandatory true;
-          description
-            "Type of pluggable circuit-pack supported";
-        }
-        list ports {
-          key "port-name";
-          description
-            "Port reference on supported pluggable circuit-pack";
-          leaf port-name {
-            type string;
-            description
-              "Port name";
-          }
-          uses org-openroadm-port-capability:port-capability-grp;
-        }
-      }
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:cp-slots" {
-    when "org-openroadm-device:slot-type='pluggable-optics-holder'";
-    uses pluggable-optics-holder-capability;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-port-capability@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-port-capability@2018-10-19.yang
deleted file mode 100644 (file)
index de1d307..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-module org-openroadm-port-capability {
-  namespace "http://org/openroadm/port-capability";
-  prefix org-openroadm-port-capability;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-port-types {
-    prefix org-openroadm-port-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-prot-otn-linear-aps {
-    prefix org-openroadm-prot-otn-linear-aps;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-otn-common-types {
-    prefix org-openroadm-otn-common-types;
-    revision-date 2017-12-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility OTN linear APS protection groups.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2017 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-
-  typedef tcm-direction-capability-type {
-    type enumeration {
-      enum "up-tcm" {
-        description
-          "Port supports up TCM termination, e.g., direction facing the switch fabric";
-      }
-      enum "down-tcm" {
-        description
-          "Port supports down TCM termination, e.g., direction facing out of the equipment ";
-      }
-      enum "up-down-tcm" {
-        description
-          "Port supports both up and down TCM terminations";
-      }
-    }
-    description
-      "TCM direction capability for the port";
-  }
-
-  grouping port-id-grp {
-    leaf circuit-pack-name {
-      type leafref {
-        path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:circuit-pack-name";
-      }
-      description
-        "Circuit-Pack identifier. Unique within the context of a device.";
-    }
-    leaf port-name {
-      type leafref {
-        path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:ports/org-openroadm-device:port-name";
-      }
-      description
-        "Port index identifier. Unique within the context of a circuit-pack.";
-    }
-  }
-
-  grouping slot-id-grp {
-    leaf circuit-pack-name {
-      type leafref {
-        path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:circuit-pack-name";
-      }
-      description
-        "Circuit-Pack identifier. Unique within the context of a device.";
-    }
-    leaf slot-name {
-      type leafref {
-        path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:cp-slots/org-openroadm-device:slot-name";
-      }
-      description
-        "cp-slot name. Unique within the context of a circuit-pack.";
-    }
-  }
-
-  grouping port-capability-grp {
-    description
-      "OpenROADM port capability parameters.";
-    container port-capabilities {
-      config false;
-      list supported-interface-capability {
-        key "if-cap-type";
-        description
-          "Supported interface capability on the port.";
-        leaf if-cap-type {
-          type identityref {
-            base org-openroadm-port-types:supported-if-capability;
-          }
-          description
-            "Interface type/hierarchy/rate supported on this port";
-        }
-        container otn-capability {
-          leaf-list if-protection-capability {
-            type identityref {
-              base org-openroadm-prot-otn-linear-aps:otn-protection-type;
-            }
-            description
-              "supported protection types if protection is supported on this port";
-          }
-          leaf proactive-DMp {
-            type boolean;
-            description
-              "ODU PM delay measurement (DMp) (G.709 06-2016 15.8.2.1.6)";
-          }
-          leaf tcm-capable {
-            type boolean;
-            description
-              "only when tcm-capable=true, the following two are applicable (ie, proactive-DMt, tcm-direction";
-          }
-          leaf proactive-DMt {
-            when "../tcm-capable= 'true'";
-            type boolean;
-            description
-              "ODU TCM delay measurement (DMt) (G.709 06-2016 15.8.2.2.8)";
-          }
-          leaf tcm-direction-capability {
-            when "../tcm-capable= 'true'";
-            type tcm-direction-capability-type;
-            description
-              "Supported tcm direction capability on the ODUk associated with the port.";
-          }
-          leaf-list opu-payload-type-mapping {
-            type org-openroadm-otn-common-types:payload-type-def;
-            description
-              "OPU payload-type mapping OPU.";
-          }
-          container mpdr-client-restriction {
-            description
-              "Restriction rules for how LO ODUs are multiplexed into HO ODU
-               and the relation with mapped client ports.";
-            leaf network-ho-odu-circuit-pack-name {
-              type string;
-              mandatory true;
-              description
-                "Circuit-Pack identifier. Unique within the context of a device.";
-            }
-            leaf network-ho-odu-port-name {
-              type string;
-              mandatory true;
-              description
-                "port identifier.";
-            }
-            leaf odtu-type {
-              type identityref {
-                base org-openroadm-otn-common-types:odtu-type-identity;
-              }
-              mandatory true;
-              description
-                "ODTU type, part of the MSI (Multiplex Structure Identifier)";
-            }
-            leaf network-ho-odu-trib-port-number {
-              type uint16 {
-                range "1 .. 80";
-              }
-              mandatory true;
-              description
-                "Tributary port number";
-            }
-            leaf-list network-ho-odu-trib-slots {
-              type uint16 {
-                range "1 .. 80";
-              }
-              min-elements 1;
-              max-elements "80";
-            }
-          }
-          container odu-mux-hierarchy {
-            presence "HO ODU supported hierarchy.";
-            list mux-capability {
-              key "stage-number ho-odu-type ho-odu-payload-type";
-              leaf stage-number {
-                type uint8 {
-                  range "1 .. 2";
-                }
-              }
-              leaf ho-odu-type {
-                type identityref {
-                  base org-openroadm-otn-common-types:odu-rate-identity;
-                }
-              }
-              leaf ho-odu-payload-type {
-                type org-openroadm-otn-common-types:payload-type-def;
-                description
-                  "high order ODU payload type";
-              }
-              leaf-list supported-lo-odu-type {
-                type identityref {
-                  base org-openroadm-otn-common-types:odu-rate-identity;
-                }
-              }
-              leaf lo-odu-proactive-DMp {
-                type boolean;
-                description
-                  "lo order ODU PM delay measurement (DMp) (G.709 06-2016 15.8.2.1.6)";
-              }
-              leaf lo-odu-tcm-capable {
-                type boolean;
-                description
-                  "only when lo-odu-tcm-capable=true, the following two are applicable (ie, lo-odu-proactive-DMt, lo-odu-tcm-direction";
-              }
-              leaf lo-odu-proactive-DMt {
-                when "../lo-odu-tcm-capable= 'true'";
-                type boolean;
-                description
-                  "lo order ODU TCM delay measurement (DMt) (G.709 06-2016 15.8.2.2.8)";
-              }
-              leaf lo-odu-tcm-direction-capability {
-                when "../lo-odu-tcm-capable= 'true'";
-                type tcm-direction-capability-type;
-                description
-                  "Supported tcm direction capability for low order ODU associated with the port.";
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-
-  grouping port-group-restriction-grp {
-    container port-group-restriction {
-      config false;
-      list port-bandwidth-sharing {
-        key "port-sharing-id";
-        leaf port-sharing-id {
-          type uint16;
-        }
-        list port-list {
-          key "circuit-pack-name port-name";
-          uses port-id-grp;
-        }
-        list pluggable-optics-holder-list {
-          key "circuit-pack-name slot-name";
-          uses slot-id-grp;
-        }
-        leaf shared-bandwidth {
-          type uint16;
-          units "Gbps";
-        }
-        list possible-port-config {
-          key "config-id";
-          leaf config-id {
-            type uint16;
-          }
-          list port-if-type-config {
-            key "circuit-pack-name port-name";
-            uses port-id-grp;
-            leaf-list port-if-type {
-              type identityref {
-                base org-openroadm-port-types:supported-if-capability;
-              }
-            }
-          }
-          list slot-if-type-config {
-            key "circuit-pack-name slot-name port-name";
-            uses slot-id-grp;
-            leaf port-name {
-              type string;
-            }
-            leaf-list port-if-type {
-              type identityref {
-                base org-openroadm-port-types:supported-if-capability;
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:ports" {
-    uses port-capability-grp;
-  }
-  augment "/org-openroadm-device:org-openroadm-device" {
-    uses port-group-restriction-grp;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-prot-otn-linear-aps@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-prot-otn-linear-aps@2018-10-19.yang
deleted file mode 100644 (file)
index f9add97..0000000
+++ /dev/null
@@ -1,345 +0,0 @@
-module org-openroadm-prot-otn-linear-aps {
-  namespace "http://org/openroadm/prot/otn-linear-aps";
-  prefix org-openroadm-prot-otn-linear-aps;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility OTN linear APS protection groups.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-
-  identity otn-protection-type {
-    description
-      "OTN base protection identity from which
-         specific protection types are derived.";
-  }
-
-  identity odu-one-plus-one {
-    base otn-protection-type;
-    description
-      "ODU Linear Protection 1+1 permanant bridge";
-  }
-
-  grouping odu-sncp-protection-grps {
-    list odu-sncp-pg {
-      key "name";
-      leaf name {
-        type string;
-        description
-          "The odu-sncp-protection-group name";
-      }
-      leaf level {
-        type enumeration {
-          enum "line" {
-            value 1;
-          }
-          enum "path" {
-            value 2;
-          }
-        }
-        mandatory true;
-        description
-          "Designates protection group as Line or Path";
-      }
-      leaf prot-type {
-        type identityref {
-          base otn-protection-type;
-        }
-        default "odu-one-plus-one";
-        description
-          "The type of the protection group.";
-      }
-      leaf switching-direction {
-        type enumeration {
-          enum "unidirectional-switching" {
-            value 1;
-          }
-          enum "bidirectional-switching" {
-            value 2;
-          }
-        }
-        default "unidirectional-switching";
-        description
-          "Bidirectional refers to APS signaling enabled (G.873.1 Table 7-1 Table 8-1).";
-      }
-      leaf revertive {
-        type boolean;
-        default "false";
-        description
-          "Sets reversion behavior.";
-      }
-      leaf mode {
-        type enumeration {
-          enum "SNC/Ne" {
-            value 1;
-            description
-              "applicable to line or path switching";
-          }
-          enum "SNC/Ns" {
-            value 2;
-            description
-              "applicable to line or path switching";
-          }
-          enum "SNC/S" {
-            value 3;
-            description
-              "applicable to line or path switching";
-          }
-          enum "SNC/I" {
-            value 4;
-            description
-              "applicable to line switching only";
-          }
-          enum "CL-SNCG/I" {
-            value 5;
-            description
-              "applicable to line switching only";
-          }
-        }
-        mandatory true;
-        description
-          "Sets the protection mode";
-      }
-      leaf protection-trigger-level {
-        type enumeration {
-          enum "OTUk/ODUkA-SSF-SSD" {
-            value 1;
-            description
-              "applicable to SNC/I";
-          }
-          enum "ODUkP/ODUjA-SSF-SSD" {
-            value 2;
-            description
-              "applicable to CL-SNCG/I";
-          }
-          enum "ODUP-SSF-SSD" {
-            value 3;
-            description
-              "applicable to SNC/Ne";
-          }
-          enum "ODUT1" {
-            value 4;
-            description
-              "applicable to SNC/Ns or SNC/S";
-          }
-          enum "ODUT2" {
-            value 5;
-            description
-              "applicable to SNC/Ns or SNC/S";
-          }
-          enum "ODUT3" {
-            value 6;
-            description
-              "applicable to SNC/Ns or SNC/S";
-          }
-          enum "ODUT4" {
-            value 7;
-            description
-              "applicable to SNC/Ns or SNC/S";
-          }
-          enum "ODUT5" {
-            value 8;
-            description
-              "applicable to SNC/Ns or SNC/S";
-          }
-          enum "ODUT6" {
-            value 9;
-            description
-              "applicable to SNC/Ns or SNC/S";
-          }
-        }
-        description
-          "Indicates switch trigger.";
-      }
-      leaf wait-to-restore {
-        when "../revertive = 'true'";
-        type uint8 {
-          range "1..12";
-        }
-        units "minutes";
-        default "5";
-        description
-          "Wait to restore time in minutes";
-      }
-      container holdoff-timer {
-        leaf holdoff {
-          type uint8 {
-            range "0 | 20 | 100";
-          }
-          units "milliseconds";
-          default "0";
-          description
-            "switch hold-off time in milliseconds";
-        }
-        leaf holdoff-multiplier {
-          when "../holdoff= 100";
-          type uint8 {
-            range "1 .. 100";
-          }
-          default "1";
-          description
-            "switch holdoff time multiplier x100 milliseconds";
-        }
-      }
-      leaf working-if {
-        type leafref {
-          path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
-        }
-        mandatory true;
-        description
-          "Designated work interface";
-      }
-      leaf-list pg-interfaces {
-        type leafref {
-          path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
-        }
-        min-elements 1;
-        description
-          "List of interfaces in the PG";
-      }
-      leaf active-if {
-        type leafref {
-          path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
-        }
-        config false;
-        description
-          "Active interface in the PG";
-      }
-    }
-  }
-
-  rpc odu-sncp-protection-switch {
-    description
-      "ODU SNCP Protection Switch RPC with synchronous implementation";
-    input {
-      leaf protection-group {
-        type leafref {
-          path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:protection-grps/org-openroadm-prot-otn-linear-aps:odu-sncp-pg/org-openroadm-prot-otn-linear-aps:name";
-        }
-        mandatory true;
-        description
-          "Target protection group";
-      }
-      leaf pg-interface {
-        type leafref {
-          path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
-        }
-        mandatory true;
-        description
-          "Target protection group interface";
-      }
-      leaf switch-command {
-        type enumeration {
-          enum "Lock-Out-Protect" {
-            value 1;
-          }
-          enum "Force-Switch" {
-            value 2;
-          }
-          enum "Manual-Switch" {
-            value 3;
-          }
-          enum "Release" {
-            value 4;
-          }
-        }
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  notification odu-sncp-pg-switch-event {
-    leaf switch-status {
-      type enumeration {
-        enum "switched-to-protect" {
-          value 1;
-        }
-        enum "switched-back-to-working" {
-          value 2;
-        }
-      }
-      description
-        "Completed protection switch";
-    }
-    leaf odu-sncp-pg-name {
-      type string;
-      description
-        "The odu-sncp-protection-group name";
-    }
-  }
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:protection-grps" {
-    uses odu-sncp-protection-grps;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-rstp@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-rstp@2018-10-19.yang
deleted file mode 100644 (file)
index 7b70b45..0000000
+++ /dev/null
@@ -1,351 +0,0 @@
-module org-openroadm-rstp {
-  namespace "http://org/openroadm/rstp";
-  prefix org-openroadm-rstp;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for rstp protocol.
-
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef bridge-id-type {
-    type string;
-    description
-      "Unique Bridge Identifier";
-  }
-
-  grouping rstp-common-bridge-config {
-    leaf bridge-priority {
-      type uint32 {
-        range "0..61440";
-      }
-      default "32768";
-      description
-        "Bridge Priority Value";
-    }
-    leaf shutdown {
-      type empty;
-      description
-        "Bridge admin state";
-    }
-    leaf hold-time {
-      type uint32 {
-        range "1..10";
-      }
-      default "2";
-      description
-        "The time interval during which no more than two
-            BPDUs transmitted by this node in seconds - not used in rstp mode (in seconds)";
-    }
-    leaf hello-time {
-      type uint32 {
-        range "1..2";
-      }
-      default "2";
-      description
-        "The time between the transmission of BPDU's by this node on any
-            port, when role is root (in seconds)";
-    }
-    leaf max-age {
-      type uint32 {
-        range "6..40";
-      }
-      default "20";
-      description
-        "The value that all bridges use for MaxAge when this bridge
-            is acting as the root";
-    }
-    leaf forward-delay {
-      type uint32 {
-        range "4..30";
-      }
-      default "15";
-      description
-        "The port on the Switch spends this time in the listening
-            state while moving from the blocking state to the forwarding state (in seconds)";
-    }
-    leaf transmit-hold-count {
-      type uint32 {
-        range "1..10";
-      }
-      default "2";
-      description
-        "Maximum BPDU transmission rate";
-    }
-  }
-
-  grouping rstp-root-bridge-attr {
-    leaf root-bridge-port {
-      type uint32;
-      description
-        "Port id of the root port";
-    }
-    leaf root-path-cost {
-      type uint32;
-      description
-        "The cost of the path to the root as
-               seen from this bridge";
-    }
-    leaf root-bridge-priority {
-      type uint32;
-      description
-        "Root Bridge Priority Value";
-    }
-    leaf root-bridge-id {
-      type bridge-id-type;
-      description
-        "Root Bridge identifier";
-    }
-    leaf root-hold-time {
-      type uint32;
-      description
-        "The time interval during which no more than two
-               BPDUs transmitted by this node in seconds at root node (in seconds)";
-    }
-    leaf root-hello-time {
-      type uint32;
-      description
-        "The time between the transmission of BPDU's used at root node (in seconds)";
-    }
-    leaf root-max-age {
-      type uint32;
-      description
-        "The value that all bridges use for MaxAge used at root node";
-    }
-    leaf root-forward-delay {
-      type uint32;
-      description
-        "The time in seconds spent on the listening state used at root node (in seconds)";
-    }
-  }
-
-  grouping rstp-bridge-port-state-attr {
-    list rstp-bridge-port-table {
-      key "ifname";
-      max-elements "15";
-      description
-        "This table contains port-specific information for rstp state attributes";
-      leaf ifname {
-        type string {
-          length "1..255";
-        }
-        description
-          "Interface name of the port";
-      }
-      leaf bridge-port-state {
-        type enumeration {
-          enum "discarding";
-          enum "blocked";
-          enum "learning";
-          enum "forwarding";
-          enum "unknown";
-        }
-        description
-          "The port's current state";
-      }
-      leaf bridge-port-role {
-        type enumeration {
-          enum "designated";
-          enum "root";
-          enum "alternate";
-          enum "disabled";
-          enum "backup";
-          enum "unknown";
-        }
-        description
-          "The role payed by this port in the bridge";
-      }
-      leaf bridge-port-id {
-        type uint32;
-        description
-          "Unique port id of this port";
-      }
-      leaf oper-edge-bridge-port {
-        type empty;
-        description
-          "The operational value of the Edge Port parameter";
-      }
-      leaf designated-bridge-port {
-        type uint32;
-        description
-          "Port id of the designated port";
-      }
-      leaf designated-bridgeid {
-        type bridge-id-type;
-        description
-          "The Bridge Identifier of the bridge that this port considers
-           to be the Designated Bridge for this port's segment";
-      }
-    }
-  }
-
-  grouping rstp-bridge-port-attr {
-    list rstp-bridge-port-table {
-      key "ifname";
-      max-elements "15";
-      description
-        "Table contains port-specific information for rstp config";
-      leaf ifname {
-        type leafref {
-          path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
-        }
-        description
-          "Interface name of the port";
-      }
-      leaf cost {
-        type uint32 {
-          range "2000..200000";
-        }
-        default "20000";
-        description
-          "The contribution of this port to the path cost of
-                 paths towards the spanning tree root which include this port also";
-      }
-      leaf priority {
-        type uint32 {
-          range "0..240";
-        }
-        description
-          "The value of the priority field";
-      }
-    }
-  }
-
-  grouping rstp-container {
-    container rstp {
-      description
-        "Open ROADM RSTP top level";
-      list rstp-bridge-instance {
-        key "bridge-name";
-        max-elements "1";
-        description
-          "rstp bridge instance, max instance = 1";
-        leaf bridge-name {
-          type string {
-            length "1..255";
-          }
-          description
-            "unique name of the bridge";
-        }
-        container rstp-config {
-          description
-            "Collection of rstp configuration attributes";
-          uses rstp-common-bridge-config;
-          uses rstp-bridge-port-attr;
-        }
-        container rstp-state {
-          config false;
-          description
-            "Collection of rstp operational attributes";
-          container rstp-bridge-attr {
-            description
-              "Collection of operational rstp bridge attributes";
-            uses rstp-root-bridge-attr;
-            leaf bridge-id {
-              type bridge-id-type;
-              description
-                "Bridge identifier of the bridge";
-            }
-            leaf topo-change-count {
-              type uint32;
-              description
-                "The total number of topology changes";
-            }
-            leaf time-since-topo-change {
-              type uint32;
-              description
-                "Time since last topology changes occurred (in seconds)";
-            }
-          }
-          container rstp-bridge-port-attr {
-            description
-              "Collection of operational rstp port related attributes";
-            uses rstp-bridge-port-state-attr;
-          }
-        }
-      }
-    }
-  }
-
-  notification rstp-topology-change {
-    description
-      "RSTP: A topologyChange event is sent by a bridge when any of
-       its configured ports transitions from the Learning state
-       to the Forwarding state, or from the Forwarding state to
-       the Blocking state. The event is not sent if a rstp-new-root
-       event is sent for the same transition";
-    uses org-openroadm-resource-types:device-id;
-  }
-  notification rstp-new-root {
-    description
-      "RSTP:The rstp-new-root event indicates that the sending agent has
-       become the new root of the Spanning Tree ";
-    uses org-openroadm-resource-types:device-id;
-  }
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:protocols" {
-    when "/org-openroadm-device:org-openroadm-device/org-openroadm-device:info/org-openroadm-device:node-type='rdm' or /org-openroadm-device:org-openroadm-device/org-openroadm-device:info/org-openroadm-device:node-type='ila'";
-    uses rstp-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-swdl@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-swdl@2018-10-19.yang
deleted file mode 100644 (file)
index 03c5416..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-module org-openroadm-swdl {
-  namespace "http://org/openroadm/de/swdl";
-  prefix org-openroadm-swdl;
-
-  import ietf-yang-types {
-    prefix yang;
-    revision-date 2013-07-15;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "Yang definitions for System Management.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping sw-bank {
-    leaf sw-version {
-      type string;
-      description
-        "Gissue of the SW in this bank";
-    }
-    leaf sw-validation-timer {
-      type string {
-        pattern "(([0-1][0-9]|2[0-3])-([0-5][0-9])-([0-5][0-9]))";
-      }
-      description
-        "value of validation timer in hh-mm-ss";
-    }
-    leaf activation-date-time {
-      type yang:date-and-time;
-      description
-        "activation date and time: The date load was activated";
-    }
-  }
-
-  rpc sw-stage {
-    description
-      "SW stage - copies the SW from repo to staging bank";
-    input {
-      leaf filename {
-        type string {
-          length "10..255";
-        }
-        description
-          "file name which has the load";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc sw-activate {
-    description
-      "Activate new load";
-    input {
-      leaf version {
-        type string;
-        description
-          " software version of the new load which is being activated";
-      }
-      leaf validationTimer {
-        type string;
-        description
-          "validation timer hh-mm-ss";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc cancel-validation-timer {
-    description
-      "Cancel validation timer which user provisioned as part of activate command";
-    input {
-      leaf accept {
-        type boolean;
-        default "true";
-        description
-          " TRUE means  validation timer is cancelled and new load is accepted";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  notification sw-stage-notification {
-    description
-      "notification for sw-stage.";
-    uses org-openroadm-common-types:rpc-response-status;
-  }
-  notification sw-activate-notification {
-    description
-      "notification for sw-activate events.";
-    leaf sw-active-notification-type {
-      type org-openroadm-common-types:activate-notification-type;
-    }
-    uses org-openroadm-common-types:rpc-response-status;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-syslog@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-syslog@2017-12-15.yang
deleted file mode 100644 (file)
index 986dd78..0000000
+++ /dev/null
@@ -1,353 +0,0 @@
-module org-openroadm-syslog {
-  namespace "http://org/openroadm/syslog";
-  prefix org-openroadm-syslog;
-
-  import ietf-inet-types {
-    prefix inet;
-    revision-date 2013-07-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "This module contains a collection of YANG definitions
-     for Syslog configuration.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-  reference "RFC 5424: The Syslog Protocol";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  feature selector-sevop-config {
-    description
-      "This feature represents the ability to select messages
-       using the additional operators equal to, or not equal to
-       when comparing the Syslog message severity.";
-  }
-
-  feature selector-match-config {
-    description
-      "This feature represents the ability to select messages based
-       on a Posix 1003.2 regular expression pattern match.";
-  }
-
-  identity syslog-facility {
-    description
-      "The base identity to represent syslog facilities";
-  }
-
-  typedef severity {
-    type enumeration {
-      enum "emergency" {
-        value 0;
-        description
-          "Emergency Level Msg";
-      }
-      enum "alert" {
-        value 1;
-        description
-          "Alert Level Msg";
-      }
-      enum "critical" {
-        value 2;
-        description
-          "Critical Level Msg";
-      }
-      enum "error" {
-        value 3;
-        description
-          "Error Level Msg";
-      }
-      enum "warning" {
-        value 4;
-        description
-          "Warning Level Msg";
-      }
-      enum "notice" {
-        value 5;
-        description
-          "Notification Level Msg";
-      }
-      enum "info" {
-        value 6;
-        description
-          "Informational Level Msg";
-      }
-      enum "debug" {
-        value 7;
-        description
-          "Debugging Level Msg";
-      }
-      enum "all" {
-        value 8;
-        description
-          "This enum describes the case where all severities
-           are selected.";
-      }
-      enum "none" {
-        value 9;
-        description
-          "This enum describes the case where no severities
-           are selected.";
-      }
-    }
-    description
-      "The definitions for Syslog message severity as per RFC 5424.
-       Extended the RFC definition with enums for all and none";
-  }
-
-  grouping syslog-severity {
-    description
-      "This grouping defines the Syslog severity which is used to
-       select log messages.";
-    leaf severity {
-      type severity;
-      mandatory true;
-      description
-        "This leaf specifies the Syslog message severity. When
-         severity is specified, the default severity comparison
-         is all messages of the specified severity and greater are
-         selected. 'all' is a special case which means all severities
-         are selected. 'none' is a special case which means that
-         no selection should occur or disable this filter.";
-    }
-    leaf severity-operator {
-      when
-        "../severity != 'all' and
-                    ../severity != 'none'" {
-        description
-          "The severity-operator is not applicable for severity 'all' or
-           severity 'none'";
-      }
-      if-feature "selector-sevop-config";
-      type enumeration {
-        enum "equals-or-higher" {
-          description
-            "This enum specifies all messages of the specified
-             severity and higher are logged according to the
-             given log-action";
-        }
-        enum "equals" {
-          description
-            "This enum specifies all messages that are for
-             the specified severity are logged according to the
-             given log-action";
-        }
-        enum "not-equals" {
-          description
-            "This enum specifies all messages that are not for
-             the specified severity are logged according to the
-             given log-action";
-        }
-      }
-      default "equals-or-higher";
-      description
-        "This leaf describes the option to specify how the
-         severity comparison is performed.";
-    }
-  }
-
-  grouping syslog-selector {
-    description
-      "This grouping defines a Syslog selector which is used to
-       select log messages for the log-action (buffer, file,
-       etc). Choose one of the following:
-         no-log-facility
-         log-facility [<facility> <severity>...]";
-    container log-selector {
-      description
-        "This container describes the log selector parameters
-         for Syslog.";
-      choice selector-facility {
-        mandatory true;
-        description
-          "This choice describes the option to specify no
-           facilities, or a specific facility which can be
-           all for all facilities.";
-        case no-log-facility {
-          description
-            "This case specifies no facilities will match when
-             comparing the Syslog message facility. This is a
-             method that can be used to effectively disable a
-             particular log-action (buffer, file, etc).";
-          leaf no-facilities {
-            type empty;
-            description
-              "This leaf specifies that no facilities are selected
-               for this log-action.";
-          }
-        }
-        case log-facility {
-          description
-            "This case specifies one or more specified facilities
-             will match when comparing the Syslog message facility.";
-          list log-facility {
-            key "facility";
-            description
-              "This list describes a collection of Syslog
-               facilities and severities.";
-            leaf facility {
-              type union {
-                type identityref {
-                  base syslog-facility;
-                }
-                type enumeration {
-                  enum "all" {
-                    description
-                      "This enum describes the case where all
-                       facilities are requested.";
-                  }
-                }
-              }
-              description
-                "The leaf uniquely identifies a Syslog facility.";
-            }
-            uses syslog-severity;
-          }
-        }
-      }
-    }
-  }
-
-  container syslog {
-    description
-      "This container describes the configuration parameters for
-       Syslog.";
-    leaf local-syslog-filename {
-      type string;
-      config false;
-      mandatory true;
-      description
-        "The syslog file name. It should be a fully qualified name
-         so that the user can get the file using transfer RPC.";
-    }
-    container log-actions {
-      description
-        "This container describes the log-action parameters
-         for Syslog.";
-      container remote {
-        description
-          "This container describes the configuration parameters for
-           remote logging.";
-        list destination {
-          key "name";
-          description
-            "This list describes a collection of remote logging
-             destinations.";
-          leaf name {
-            type string;
-            description
-              "An arbitrary name for the endpoint to connect to.";
-          }
-          choice transport {
-            mandatory true;
-            description
-              "This choice describes the transport option.";
-            case tcp {
-              container tcp {
-                description
-                  "This container describes the TCP transport
-                   options.";
-                reference "RFC 6587: Transmission of Syslog Messages over TCP";
-                leaf address {
-                  type inet:host;
-                  description
-                    "The leaf uniquely specifies the address of
-                     the remote host. One of the following must
-                     be specified: an ipv4 address, an ipv6
-                     address, or a host name.";
-                }
-                leaf port {
-                  type inet:port-number;
-                  default "514";
-                  description
-                    "This leaf specifies the port number used to
-                     deliver messages to the remote server.";
-                }
-              }
-            }
-            case udp {
-              container udp {
-                description
-                  "This container describes the UDP transport
-                   options.";
-                reference "RFC 5426: Transmission of Syslog Messages over UDP";
-                leaf address {
-                  type inet:host;
-                  description
-                    "The leaf uniquely specifies the address of
-                     the remote host. One of the following must be
-                     specified: an ipv4 address, an ipv6 address,
-                     or a host name.";
-                }
-                leaf port {
-                  type inet:port-number;
-                  default "514";
-                  description
-                    "This leaf specifies the port number used to
-                     deliver messages to the remote server.";
-                }
-              }
-            }
-          }
-          uses syslog-selector;
-        }
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-wavelength-map@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/devices/org-openroadm-wavelength-map@2017-12-15.yang
deleted file mode 100644 (file)
index 3f254e3..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-module org-openroadm-wavelength-map {
-  namespace "http://org/openroadm/wavelength-map";
-  prefix org-openroadm-wavelength-map;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for mapping wavelength-number to center frequency and wavelength value.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping wavelength-map-g {
-    list wavelengths {
-      key "wavelength-number";
-      config false;
-      leaf wavelength-number {
-        type uint32;
-      }
-      leaf center-frequency {
-        type decimal64 {
-          fraction-digits 3;
-          range "191.350..196.100";
-        }
-        units "THz";
-        description
-          "Frequency of the transmit optical channel
-           Domain range:  191.350THz .. 196.100THz ";
-      }
-      leaf wavelength {
-        type decimal64 {
-          fraction-digits 2;
-          range "1528.77..1566.72";
-        }
-        units "nm";
-        description
-          "Lambda corresponding to transmit frequency
-           Domain range:  1528.72nm .. 1566.72nm ";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-alarm-types@2018-01-16.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-alarm-types@2018-01-16.yang
deleted file mode 100644 (file)
index 7ec8665..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-module openconfig-alarm-types {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/alarms/types";
-
-  prefix "oc-alarm-types";
-
-  // import some basic types
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines operational state data related to alarms
-    that the device is reporting.
-
-    This model reuses some data items defined in the draft IETF
-    YANG Alarm Module:
-    https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02
-
-    Portions of this code were derived from the draft IETF YANG Alarm
-    Module. Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "0.2.0";
-
-  revision "2018-01-16" {
-    description
-      "Moved alarm identities into separate types module";
-    reference "0.2.0";
-  }
-
-  // identity statements
-  identity OPENCONFIG_ALARM_TYPE_ID {
-    description
-      "Base identity for alarm type ID profiles";
-  }
-
-  identity AIS {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines an alarm indication signal type of alarm";
-  }
-
-  identity EQPT {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines an equipment related type of alarm that is specific
-       to the physical hardware";
-  }
-
-  identity LOS {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines a loss of signal type of alarm";
-  }
-
-  identity OTS {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines a optical transport signal type of alarm";
-  }
-
-  identity OPENCONFIG_ALARM_SEVERITY {
-    description
-      "Base identity for alarm severity profiles. Derived
-      identities are based on contents of the draft
-      IETF YANG Alarm Module";
-    reference
-      "IETF YANG Alarm Module: Draft - typedef severity
-      https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-
-  }
-
-  identity UNKNOWN {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates that the severity level could not be determined.
-      This level SHOULD be avoided.";
-  }
-
-  identity MINOR {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates the existence of a non-service affecting fault
-      condition and that corrective action should be taken in
-      order to prevent a more serious (for example, service
-      affecting) fault. Such a severity can be reported, for
-      example, when the detected alarm condition is not currently
-      degrading the capacity of the resource";
-  }
-
-  identity WARNING {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates the detection of a potential or impending service
-      affecting fault, before any significant effects have been felt.
-      Action should be taken to further diagnose (if necessary) and
-      correct the problem in order to prevent it from becoming a more
-      serious service affecting fault.";
-  }
-
-  identity MAJOR {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates that a service affecting condition has developed
-      and an urgent corrective action is required. Such a severity
-      can be reported, for example, when there is a severe
-      degradation in the capability of the resource and its full
-      capability must be restored.";
-  }
-
-  identity CRITICAL {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates that a service affecting condition has occurred
-      and an immediate corrective action is required. Such a
-      severity can be reported, for example, when a resource becomes
-      totally out of service and its capability must be restored.";
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-alarms@2018-01-16.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-alarms@2018-01-16.yang
deleted file mode 100644 (file)
index 4824e34..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-module openconfig-alarms {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/alarms";
-
-  prefix "oc-alarms";
-
-  // import some basic types
-  import openconfig-alarm-types { prefix oc-alarm-types; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-platform { prefix oc-platform; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines operational state data related to alarms
-    that the device is reporting.
-
-    This model reuses some data items defined in the draft IETF
-    YANG Alarm Module:
-    https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02
-
-    Portions of this code were derived from the draft IETF YANG Alarm
-    Module. Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "0.3.0";
-
-  revision "2018-01-16" {
-      description
-        "Moved alarm identities into separate types module";
-      reference "0.3.0";
-  }
-
-  revision "2018-01-10" {
-    description
-      "Make alarms list read only";
-    reference "0.2.0";
-  }
-
-  revision "2017-08-24" {
-    description
-      "Initial public release";
-    reference "0.1.0";
-  }
-
-
-  // grouping statements
-
-  grouping alarm-state {
-    description
-      "Operational state data for device alarms";
-
-    leaf id {
-      type string;
-      description
-        "Unique ID for the alarm -- this will not be a
-        configurable parameter on many implementations";
-    }
-
-    leaf resource {
-      type string;
-      description
-        "The item that is under alarm within the device. The
-        resource may be a reference to an item which is
-        defined elsewhere in the model. For example, it
-        may be a platform/component, interfaces/interface,
-        terminal-device/logical-channels/channel, etc. In this
-        case the system should match the name of the referenced
-        item exactly. The referenced item could alternatively be
-        the path of the item within the model.";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef resource
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-
-    leaf text {
-      type string;
-      description
-        "The string used to inform operators about the alarm. This
-         MUST contain enough information for an operator to be able
-         to understand the problem. If this string contains structure,
-         this format should be clearly documented for programs to be
-         able to parse that information";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef alarm-text
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-
-    leaf time-created {
-      type oc-types:timeticks64;
-      description
-        "The time at which the alarm was raised by the system.
-        This value is expressed as nanoseconds since the Unix Epoch";
-    }
-
-    leaf severity {
-      type identityref {
-        base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY;
-      }
-      description
-        "The severity level indicating the criticality and impact
-        of the alarm";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef severity
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-
-    leaf type-id {
-      type union {
-        type string;
-        type identityref {
-          base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID;
-        }
-      }
-      description
-        "The abbreviated name of the alarm, for example LOS,
-        EQPT, or OTS. Also referred to in different systems as
-        condition type, alarm identifier, or alarm mnemonic. It
-        is recommended to use the OPENCONFIG_ALARM_TYPE_ID
-        identities where possible and only use the string type
-        when the desired identityref is not yet defined";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef alarm-type-id
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-  }
-
-  grouping alarm-config {
-    description
-      "Configuration data for device alarms";
-  }
-
-  grouping alarms-top {
-    description
-      "Top-level grouping for device alarms";
-
-    container alarms {
-      description
-        "Top-level container for device alarms";
-
-      config false;
-
-      list alarm {
-        key "id";
-        description
-          "List of alarms, keyed by a unique id";
-
-        leaf id {
-          type leafref {
-            path "../state/id";
-          }
-
-          description
-            "References the unique alarm id";
-        }
-
-        container config {
-          description
-            "Configuration data for each alarm";
-
-          uses alarm-config;
-        }
-
-        container state {
-          config false;
-
-          description
-            "Operational state data for a device alarm";
-
-          uses alarm-config;
-          uses alarm-state;
-        }
-      }
-    }
-  }
-
-
-  // augments
-
-  augment "/oc-platform:components/oc-platform:component/oc-platform:state" {
-    description
-      "Adds specific alarms related to a component.";
-
-    leaf equipment-failure {
-      type boolean;
-      default "false";
-      description
-        "If true, the hardware indicates that the component's physical equipment
-        has failed";
-    }
-
-    leaf equipment-mismatch {
-      type boolean;
-      default "false";
-      description
-        "If true, the hardware indicates that the component inserted into the
-        affected component's physical location is of a different type than what
-        is configured";
-    }
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-extensions@2017-04-11.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-extensions@2017-04-11.yang
deleted file mode 100644 (file)
index f39ecf6..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-module openconfig-extensions {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/openconfig-ext";
-
-  prefix "oc-ext";
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module provides extensions to the YANG language to allow
-    OpenConfig specific functionality and meta-data to be defined.";
-
-  revision "2017-04-11" {
-    description
-      "rename password type to 'hashed' and clarify description";
-    reference "0.3.0";
-  }
-
-  revision "2017-01-29" {
-    description
-      "Added extension for annotating encrypted values.";
-    reference "0.2.0";
-  }
-
-  revision "2015-10-09" {
-    description
-      "Initial OpenConfig public release";
-    reference "0.1.0";
-  }
-
-
-  // extension statements
-  extension openconfig-version {
-    argument "semver" {
-      yin-element false;
-    }
-    description
-      "The OpenConfig version number for the module. This is
-      expressed as a semantic version number of the form:
-        x.y.z
-      where:
-        * x corresponds to the major version,
-        * y corresponds to a minor version,
-        * z corresponds to a patch version.
-      This version corresponds to the model file within which it is
-      defined, and does not cover the whole set of OpenConfig models.
-      Where several modules are used to build up a single block of
-      functionality, the same module version is specified across each
-      file that makes up the module.
-
-      A major version number of 0 indicates that this model is still
-      in development (whether within OpenConfig or with industry
-      partners), and is potentially subject to change.
-
-      Following a release of major version 1, all modules will
-      increment major revision number where backwards incompatible
-      changes to the model are made.
-
-      The minor version is changed when features are added to the
-      model that do not impact current clients use of the model.
-
-      The patch-level version is incremented when non-feature changes
-      (such as bugfixes or clarifications to human-readable
-      descriptions that do not impact model functionality) are made
-      that maintain backwards compatibility.
-
-      The version number is stored in the module meta-data.";
-  }
-
-  extension openconfig-hashed-value {
-    description
-      "This extension provides an annotation on schema nodes to
-      indicate that the corresponding value should be stored and
-      reported in hashed form.
-
-      Hash algorithms are by definition not reversible. Clients
-      reading the configuration or applied configuration for the node
-      should expect to receive only the hashed value. Values written
-      in cleartext will be hashed. This annotation may be used on
-      nodes such as secure passwords in which the device never reports
-      a cleartext value, even if the input is provided as cleartext.";
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-if-ethernet@2018-01-05.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-if-ethernet@2018-01-05.yang
deleted file mode 100644 (file)
index 354fb2d..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-module openconfig-if-ethernet {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/interfaces/ethernet";
-
-  prefix "oc-eth";
-
-  // import some basic types
-  import openconfig-interfaces { prefix oc-if; }
-  import iana-if-type { prefix ift; }
-  import openconfig-yang-types { prefix oc-yang; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "Model for managing Ethernet interfaces -- augments the OpenConfig
-    model for interface configuration and state.";
-
-  oc-ext:openconfig-version "2.3.0";
-
-  revision "2018-01-05" {
-    description
-      "Add logical loopback to interface.";
-    reference "2.3.0";
-  }
-
-  revision "2017-12-21" {
-    description
-      "Added IPv6 router advertisement configuration.";
-    reference "2.1.0";
-  }
-
-  revision "2017-07-14" {
-    description
-      "Added Ethernet/IP state data; Add dhcp-client;
-      migrate to OpenConfig types modules; Removed or
-      renamed opstate values";
-    reference "2.0.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes to Ethernet interfaces model";
-    reference "1.1.0";
-  }
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  identity ETHERNET_SPEED {
-    description "base type to specify available Ethernet link
-    speeds";
-  }
-
-  identity SPEED_10MB {
-    base ETHERNET_SPEED;
-    description "10 Mbps Ethernet";
-  }
-
-  identity SPEED_100MB {
-    base ETHERNET_SPEED;
-    description "100 Mbps Ethernet";
-  }
-
-  identity SPEED_1GB {
-    base ETHERNET_SPEED;
-    description "1 GBps Ethernet";
-  }
-
-  identity SPEED_10GB {
-    base ETHERNET_SPEED;
-    description "10 GBps Ethernet";
-  }
-
-  identity SPEED_25GB {
-    base ETHERNET_SPEED;
-    description "25 GBps Ethernet";
-  }
-
-  identity SPEED_40GB {
-    base ETHERNET_SPEED;
-    description "40 GBps Ethernet";
-  }
-
-  identity SPEED_50GB {
-    base ETHERNET_SPEED;
-    description "50 GBps Ethernet";
-  }
-
-  identity SPEED_100GB {
-    base ETHERNET_SPEED;
-    description "100 GBps Ethernet";
-  }
-
-  identity SPEED_UNKNOWN {
-    base ETHERNET_SPEED;
-    description
-      "Interface speed is unknown.  Systems may report
-      speed UNKNOWN when an interface is down or unpopuplated (e.g.,
-      pluggable not present).";
-  }
-
-  // typedef statements
-
-
-  // grouping statements
-
-  grouping ethernet-interface-config {
-    description "Configuration items for Ethernet interfaces";
-
-    leaf mac-address {
-      type oc-yang:mac-address;
-      description
-        "Assigns a MAC address to the Ethernet interface.  If not
-        specified, the corresponding operational state leaf is
-        expected to show the system-assigned MAC address.";
-    }
-
-    leaf auto-negotiate {
-      type boolean;
-      default true;
-      description
-        "Set to TRUE to request the interface to auto-negotiate
-        transmission parameters with its peer interface.  When
-        set to FALSE, the transmission parameters are specified
-        manually.";
-      reference
-        "IEEE 802.3-2012 auto-negotiation transmission parameters";
-    }
-
-    leaf duplex-mode {
-      type enumeration {
-        enum FULL {
-          description "Full duplex mode";
-        }
-        enum HALF {
-          description "Half duplex mode";
-        }
-      }
-      description
-        "When auto-negotiate is TRUE, this optionally sets the
-        duplex mode that will be advertised to the peer.  If
-        unspecified, the interface should negotiate the duplex mode
-        directly (typically full-duplex).  When auto-negotiate is
-        FALSE, this sets the duplex mode on the interface directly.";
-    }
-
-    leaf port-speed {
-      type identityref {
-        base ETHERNET_SPEED;
-      }
-      description
-        "When auto-negotiate is TRUE, this optionally sets the
-        port-speed mode that will be advertised to the peer for
-        negotiation.  If unspecified, it is expected that the
-        interface will select the highest speed available based on
-        negotiation.  When auto-negotiate is set to FALSE, sets the
-        link speed to a fixed value -- supported values are defined
-        by ETHERNET_SPEED identities";
-    }
-
-    leaf enable-flow-control {
-      type boolean;
-      default false;
-      description
-        "Enable or disable flow control for this interface.
-        Ethernet flow control is a mechanism by which a receiver
-        may send PAUSE frames to a sender to stop transmission for
-        a specified time.
-
-        This setting should override auto-negotiated flow control
-        settings.  If left unspecified, and auto-negotiate is TRUE,
-        flow control mode is negotiated with the peer interface.";
-      reference
-        "IEEE 802.3x";
-    }
-  }
-
-  grouping ethernet-interface-state-counters {
-    description
-      "Ethernet-specific counters and statistics";
-
-    // ingress counters
-
-    leaf in-mac-control-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer control frames received on the interface";
-    }
-
-    leaf in-mac-pause-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer PAUSE frames received on the interface";
-    }
-
-    leaf in-oversize-frames {
-      type oc-yang:counter64;
-      description
-        "Number of oversize frames received on the interface";
-    }
-
-    leaf in-jabber-frames {
-      type oc-yang:counter64;
-      description
-        "Number of jabber frames received on the
-        interface.  Jabber frames are typically defined as oversize
-        frames which also have a bad CRC.  Implementations may use
-        slightly different definitions of what constitutes a jabber
-        frame.  Often indicative of a NIC hardware problem.";
-    }
-
-    leaf in-fragment-frames {
-      type oc-yang:counter64;
-      description
-        "Number of fragment frames received on the interface.";
-    }
-
-    leaf in-8021q-frames {
-      type oc-yang:counter64;
-      description
-        "Number of 802.1q tagged frames received on the interface";
-    }
-
-    leaf in-crc-errors {
-      type oc-yang:counter64;
-      description
-        "Number of receive error events due to FCS/CRC check
-        failure";
-    }
-
-    // egress counters
-
-    leaf out-mac-control-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer control frames sent on the interface";
-    }
-
-    leaf out-mac-pause-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer PAUSE frames sent on the interface";
-    }
-
-    leaf out-8021q-frames {
-      type oc-yang:counter64;
-      description
-        "Number of 802.1q tagged frames sent on the interface";
-    }
-  }
-
-  grouping ethernet-interface-state {
-    description
-      "Grouping for defining Ethernet-specific operational state";
-
-    leaf hw-mac-address {
-      type oc-yang:mac-address;
-      description
-        "Represenets the 'burned-in',  or system-assigned, MAC
-        address for the Ethernet interface.";
-    }
-
-    leaf negotiated-duplex-mode {
-      type enumeration {
-        enum FULL {
-          description "Full duplex mode";
-        }
-        enum HALF {
-          description "Half duplex mode";
-        }
-      }
-      description
-        "When auto-negotiate is set to TRUE, and the interface has
-        completed auto-negotiation with the remote peer, this value
-        shows the duplex mode that has been negotiated.";
-    }
-
-    leaf negotiated-port-speed {
-      type identityref {
-        base ETHERNET_SPEED;
-      }
-      description
-        "When auto-negotiate is set to TRUE, and the interface has
-        completed auto-negotiation with the remote peer, this value
-        shows the interface speed that has been negotiated.";
-    }
-
-    container counters {
-      description "Ethernet interface counters";
-
-      uses ethernet-interface-state-counters;
-
-    }
-
-  }
-
-  // data definition statements
-
-  grouping ethernet-top {
-    description "top-level Ethernet config and state containers";
-
-    container ethernet {
-      description
-        "Top-level container for ethernet configuration
-        and state";
-
-      container config {
-        description "Configuration data for ethernet interfaces";
-
-        uses ethernet-interface-config;
-
-      }
-
-      container state {
-
-        config false;
-        description "State variables for Ethernet interfaces";
-
-        uses ethernet-interface-config;
-        uses ethernet-interface-state;
-
-      }
-
-    }
-  }
-
-  // augment statements
-
-  augment "/oc-if:interfaces/oc-if:interface" {
-    description "Adds addtional Ethernet-specific configuration to
-    interfaces model";
-
-    uses ethernet-top {
-      when "oc-if:state/oc-if:type = 'ift:ethernetCsmacd'" {
-      description "Additional interface configuration parameters when
-      the interface type is Ethernet";
-      }
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-interfaces@2018-01-05.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-interfaces@2018-01-05.yang
deleted file mode 100644 (file)
index 2c95ea4..0000000
+++ /dev/null
@@ -1,992 +0,0 @@
-module openconfig-interfaces {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/interfaces";
-
-  prefix "oc-if";
-
-  // import some basic types
-  import ietf-interfaces { prefix ietf-if; }
-  import openconfig-yang-types { prefix oc-yang; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "Model for managing network interfaces and subinterfaces.  This
-    module also defines convenience types / groupings for other
-    models to create references to interfaces:
-
-      base-interface-ref (type) -  reference to a base interface
-      interface-ref (grouping) -  container for reference to a
-        interface + subinterface
-      interface-ref-state (grouping) - container for read-only
-        (opstate) reference to interface + subinterface
-
-    This model reuses data items defined in the IETF YANG model for
-    interfaces described by RFC 7223 with an alternate structure
-    (particularly for operational state data) and with
-    additional configuration items.
-
-    Portions of this code were derived from IETF RFC 7223.
-    Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "2.3.0";
-
-  revision "2018-01-05" {
-    description
-      "Add logical loopback to interface.";
-    reference "2.3.0";
-  }
-
-  revision "2017-12-22" {
-    description
-      "Add IPv4 proxy ARP configuration.";
-    reference "2.2.0";
-  }
-
-  revision "2017-12-21" {
-    description
-      "Added IPv6 router advertisement configuration.";
-    reference "2.1.0";
-  }
-
-  revision "2017-07-14" {
-    description
-      "Added Ethernet/IP state data; Add dhcp-client;
-      migrate to OpenConfig types modules; Removed or
-      renamed opstate values";
-    reference "2.0.0";
-  }
-
-  revision "2017-04-03" {
-    description
-      "Update copyright notice.";
-    reference "1.1.1";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes to Ethernet interfaces model";
-    reference "1.1.0";
-  }
-
-
-  // typedef statements
-
-  typedef base-interface-ref {
-    type leafref {
-      path "/oc-if:interfaces/oc-if:interface/oc-if:name";
-    }
-    description
-      "Reusable type for by-name reference to a base interface.
-      This type may be used in cases where ability to reference
-      a subinterface is not required.";
-  }
-
-  typedef interface-id {
-    type string;
-    description
-      "User-defined identifier for an interface, generally used to
-      name a interface reference.  The id can be arbitrary but a
-      useful convention is to use a combination of base interface
-      name and subinterface index.";
-  }
-
-  // grouping statements
-
-  grouping interface-ref-common {
-    description
-      "Reference leafrefs to interface / subinterface";
-
-    leaf interface {
-      type leafref {
-        path "/oc-if:interfaces/oc-if:interface/oc-if:name";
-      }
-      description
-        "Reference to a base interface.  If a reference to a
-        subinterface is required, this leaf must be specified
-        to indicate the base interface.";
-    }
-
-    leaf subinterface {
-      type leafref {
-        path "/oc-if:interfaces/" +
-          "oc-if:interface[oc-if:name=current()/../interface]/" +
-          "oc-if:subinterfaces/oc-if:subinterface/oc-if:index";
-      }
-      description
-        "Reference to a subinterface -- this requires the base
-        interface to be specified using the interface leaf in
-        this container.  If only a reference to a base interface
-        is requuired, this leaf should not be set.";
-    }
-  }
-
-  grouping interface-ref-state-container {
-    description
-      "Reusable opstate w/container for a reference to an
-      interface or subinterface";
-
-    container state {
-      config false;
-      description
-        "Operational state for interface-ref";
-
-      uses interface-ref-common;
-    }
-  }
-
-  grouping interface-ref {
-    description
-      "Reusable definition for a reference to an interface or
-      subinterface";
-
-    container interface-ref {
-      description
-        "Reference to an interface or subinterface";
-
-      container config {
-        description
-          "Configured reference to interface / subinterface";
-
-        uses interface-ref-common;
-      }
-
-      uses interface-ref-state-container;
-    }
-  }
-
-  grouping interface-ref-state {
-    description
-      "Reusable opstate w/container for a reference to an
-      interface or subinterface";
-
-    container interface-ref {
-      description
-        "Reference to an interface or subinterface";
-
-      uses interface-ref-state-container;
-    }
-  }
-
-  grouping base-interface-ref-state {
-    description
-      "Reusable opstate w/container for a reference to a
-      base interface (no subinterface).";
-
-      container state {
-        config false;
-        description
-          "Operational state for base interface reference";
-
-        leaf interface {
-          type base-interface-ref;
-          description
-            "Reference to a base interface.";
-        }
-      }
-  }
-
-
-  grouping interface-common-config {
-    description
-      "Configuration data data nodes common to physical interfaces
-      and subinterfaces";
-
-    leaf description {
-      type string;
-      description
-        "A textual description of the interface.
-
-        A server implementation MAY map this leaf to the ifAlias
-        MIB object.  Such an implementation needs to use some
-        mechanism to handle the differences in size and characters
-        allowed between this leaf and ifAlias.  The definition of
-        such a mechanism is outside the scope of this document.
-
-        Since ifAlias is defined to be stored in non-volatile
-        storage, the MIB implementation MUST map ifAlias to the
-        value of 'description' in the persistently stored
-        datastore.
-
-        Specifically, if the device supports ':startup', when
-        ifAlias is read the device MUST return the value of
-        'description' in the 'startup' datastore, and when it is
-        written, it MUST be written to the 'running' and 'startup'
-        datastores.  Note that it is up to the implementation to
-
-        decide whether to modify this single leaf in 'startup' or
-        perform an implicit copy-config from 'running' to
-        'startup'.
-
-        If the device does not support ':startup', ifAlias MUST
-        be mapped to the 'description' leaf in the 'running'
-        datastore.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAlias";
-    }
-
-    leaf enabled {
-      type boolean;
-      default "true";
-      description
-        "This leaf contains the configured, desired state of the
-        interface.
-
-        Systems that implement the IF-MIB use the value of this
-        leaf in the 'running' datastore to set
-        IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
-        has been initialized, as described in RFC 2863.
-
-        Changes in this leaf in the 'running' datastore are
-        reflected in ifAdminStatus, but if ifAdminStatus is
-        changed over SNMP, this leaf is not affected.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-    }
-
-  }
-
-  grouping interface-phys-config {
-    description
-      "Configuration data for physical interfaces";
-
-    leaf name {
-      type string;
-      description
-        "The name of the interface.
-
-        A device MAY restrict the allowed values for this leaf,
-        possibly depending on the type of the interface.
-        For system-controlled interfaces, this leaf is the
-        device-specific name of the interface.  The 'config false'
-        list interfaces/interface[name]/state contains the currently
-        existing interfaces on the device.
-
-        If a client tries to create configuration for a
-        system-controlled interface that is not present in the
-        corresponding state list, the server MAY reject
-        the request if the implementation does not support
-        pre-provisioning of interfaces or if the name refers to
-        an interface that can never exist in the system.  A
-        NETCONF server MUST reply with an rpc-error with the
-        error-tag 'invalid-value' in this case.
-
-        The IETF model in RFC 7223 provides YANG features for the
-        following (i.e., pre-provisioning and arbitrary-names),
-        however they are omitted here:
-
-          If the device supports pre-provisioning of interface
-          configuration, the 'pre-provisioning' feature is
-          advertised.
-
-          If the device allows arbitrarily named user-controlled
-          interfaces, the 'arbitrary-names' feature is advertised.
-
-        When a configured user-controlled interface is created by
-        the system, it is instantiated with the same name in the
-        /interfaces/interface[name]/state list.";
-    }
-
-    leaf type {
-      type identityref {
-        base ietf-if:interface-type;
-      }
-      mandatory true;
-      description
-        "The type of the interface.
-
-        When an interface entry is created, a server MAY
-        initialize the type leaf with a valid value, e.g., if it
-        is possible to derive the type from the name of the
-        interface.
-
-        If a client tries to set the type of an interface to a
-        value that can never be used by the system, e.g., if the
-        type is not supported or if the type does not match the
-        name of the interface, the server MUST reject the request.
-        A NETCONF server MUST reply with an rpc-error with the
-        error-tag 'invalid-value' in this case.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifType";
-    }
-
-    leaf mtu {
-      type uint16;
-      description
-        "Set the max transmission unit size in octets
-        for the physical interface.  If this is not set, the mtu is
-        set to the operational default -- e.g., 1514 bytes on an
-        Ethernet interface.";
-    }
-
-    leaf loopback-mode {
-      type boolean;
-      default false;
-      description
-        "When set to true, the interface is logically looped back,
-        such that packets that are forwarded via the interface
-        are received on the same interface.";
-    }
-
-    uses interface-common-config;
-  }
-
-  grouping interface-phys-holdtime-config {
-    description
-      "Configuration data for interface hold-time settings --
-      applies to physical interfaces.";
-
-    leaf up {
-      type uint32;
-      units milliseconds;
-      default 0;
-      description
-        "Dampens advertisement when the interface
-        transitions from down to up.  A zero value means dampening
-        is turned off, i.e., immediate notification.";
-    }
-
-    leaf down {
-      type uint32;
-      units milliseconds;
-      default 0;
-      description
-        "Dampens advertisement when the interface transitions from
-        up to down.  A zero value means dampening is turned off,
-        i.e., immediate notification.";
-    }
-  }
-
-  grouping interface-phys-holdtime-state {
-    description
-      "Operational state data for interface hold-time.";
-  }
-
-  grouping interface-phys-holdtime-top {
-    description
-      "Top-level grouping for setting link transition
-      dampening on physical and other types of interfaces.";
-
-    container hold-time {
-      description
-        "Top-level container for hold-time settings to enable
-        dampening advertisements of interface transitions.";
-
-      container config {
-        description
-          "Configuration data for interface hold-time settings.";
-
-        uses interface-phys-holdtime-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for interface hold-time.";
-
-        uses interface-phys-holdtime-config;
-        uses interface-phys-holdtime-state;
-      }
-    }
-  }
-
-  grouping interface-common-state {
-    description
-      "Operational state data (in addition to intended configuration)
-      at the global level for this interface";
-
-    leaf ifindex {
-      type uint32;
-      description
-        "System assigned number for each interface.  Corresponds to
-        ifIndex object in SNMP Interface MIB";
-      reference
-        "RFC 2863 - The Interfaces Group MIB";
-    }
-
-    leaf admin-status {
-      type enumeration {
-        enum UP {
-          description
-            "Ready to pass packets.";
-        }
-        enum DOWN {
-          description
-            "Not ready to pass packets and not in some test mode.";
-        }
-        enum TESTING {
-          //TODO: This is generally not supported as a configured
-          //admin state, though it's in the standard interfaces MIB.
-          //Consider removing it.
-          description
-            "In some test mode.";
-        }
-      }
-      //TODO:consider converting to an identity to have the
-      //flexibility to remove some values defined by RFC 7223 that
-      //are not used or not implemented consistently.
-      mandatory true;
-      description
-        "The desired state of the interface.  In RFC 7223 this leaf
-        has the same read semantics as ifAdminStatus.  Here, it
-        reflects the administrative state as set by enabling or
-        disabling the interface.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-    }
-
-    leaf oper-status {
-      type enumeration {
-        enum UP {
-          value 1;
-          description
-            "Ready to pass packets.";
-        }
-        enum DOWN {
-          value 2;
-          description
-            "The interface does not pass any packets.";
-        }
-        enum TESTING {
-          value 3;
-          description
-            "In some test mode.  No operational packets can
-             be passed.";
-        }
-        enum UNKNOWN {
-          value 4;
-          description
-            "Status cannot be determined for some reason.";
-        }
-        enum DORMANT {
-          value 5;
-          description
-            "Waiting for some external event.";
-        }
-        enum NOT_PRESENT {
-          value 6;
-          description
-            "Some component (typically hardware) is missing.";
-        }
-        enum LOWER_LAYER_DOWN {
-          value 7;
-          description
-            "Down due to state of lower-layer interface(s).";
-        }
-      }
-      //TODO:consider converting to an identity to have the
-      //flexibility to remove some values defined by RFC 7223 that
-      //are not used or not implemented consistently.
-      mandatory true;
-      description
-        "The current operational state of the interface.
-
-         This leaf has the same semantics as ifOperStatus.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifOperStatus";
-    }
-
-    leaf last-change {
-      type oc-types:timeticks64;
-      units nanoseconds;
-      description
-        "This timestamp indicates the time of the last state change
-        of the interface (e.g., up-to-down transition). This
-        corresponds to the ifLastChange object in the standard
-        interface MIB.
-
-        The value is the timestamp in nanoseconds relative to
-        the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifLastChange";
-    }
-
-  }
-
-
-  grouping interface-counters-state {
-    description
-      "Operational state representing interface counters
-      and statistics.";
-
-      //TODO: we may need to break this list of counters into those
-      //that would appear for physical vs. subinterface or logical
-      //interfaces.  For now, just replicating the full stats
-      //grouping to both interface and subinterface.
-
-    container counters {
-      description
-        "A collection of interface-related statistics objects.";
-
-      leaf in-octets {
-        type oc-yang:counter64;
-        description
-          "The total number of octets received on the interface,
-          including framing characters.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
-      }
-
-      leaf in-unicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The number of packets, delivered by this sub-layer to a
-          higher (sub-)layer, that were not addressed to a
-          multicast or broadcast address at this sub-layer.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
-      }
-
-      leaf in-broadcast-pkts {
-        type oc-yang:counter64;
-        description
-          "The number of packets, delivered by this sub-layer to a
-          higher (sub-)layer, that were addressed to a broadcast
-          address at this sub-layer.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCInBroadcastPkts";
-      }
-
-      leaf in-multicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The number of packets, delivered by this sub-layer to a
-          higher (sub-)layer, that were addressed to a multicast
-          address at this sub-layer.  For a MAC-layer protocol,
-          this includes both Group and Functional addresses.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCInMulticastPkts";
-      }
-
-      leaf in-discards {
-        type oc-yang:counter64;
-        description
-          "The number of inbound packets that were chosen to be
-          discarded even though no errors had been detected to
-          prevent their being deliverable to a higher-layer
-          protocol.  One possible reason for discarding such a
-          packet could be to free up buffer space.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-
-
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInDiscards";
-      }
-
-      leaf in-errors {
-        type oc-yang:counter64;
-        description
-          "For packet-oriented interfaces, the number of inbound
-          packets that contained errors preventing them from being
-          deliverable to a higher-layer protocol.  For character-
-          oriented or fixed-length interfaces, the number of
-          inbound transmission units that contained errors
-          preventing them from being deliverable to a higher-layer
-          protocol.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInErrors";
-      }
-
-      leaf in-unknown-protos {
-        type oc-yang:counter64;
-        description
-          "For packet-oriented interfaces, the number of packets
-          received via the interface that were discarded because
-          of an unknown or unsupported protocol.  For
-          character-oriented or fixed-length interfaces that
-          support protocol multiplexing, the number of
-          transmission units received via the interface that were
-          discarded because of an unknown or unsupported protocol.
-          For any interface that does not support protocol
-          multiplexing, this counter is not present.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
-      }
-
-      leaf in-fcs-errors {
-        type oc-yang:counter64;
-        description
-          "Number of received packets which had errors in the
-          frame check sequence (FCS), i.e., framing errors.
-
-          Discontinuities in the value of this counter can occur
-          when the device is re-initialization as indicated by the
-          value of 'last-clear'.";
-      }
-
-      leaf out-octets {
-        type oc-yang:counter64;
-        description
-          "The total number of octets transmitted out of the
-          interface, including framing characters.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
-      }
-
-      leaf out-unicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets that higher-level protocols
-          requested be transmitted, and that were not addressed
-          to a multicast or broadcast address at this sub-layer,
-          including those that were discarded or not sent.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
-      }
-
-      leaf out-broadcast-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets that higher-level protocols
-          requested be transmitted, and that were addressed to a
-          broadcast address at this sub-layer, including those
-          that were discarded or not sent.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCOutBroadcastPkts";
-      }
-
-
-      leaf out-multicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets that higher-level protocols
-          requested be transmitted, and that were addressed to a
-          multicast address at this sub-layer, including those
-          that were discarded or not sent.  For a MAC-layer
-          protocol, this includes both Group and Functional
-          addresses.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCOutMulticastPkts";
-      }
-
-      leaf out-discards {
-        type oc-yang:counter64;
-        description
-          "The number of outbound packets that were chosen to be
-          discarded even though no errors had been detected to
-          prevent their being transmitted.  One possible reason
-          for discarding such a packet could be to free up buffer
-          space.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
-      }
-
-      leaf out-errors {
-        type oc-yang:counter64;
-        description
-          "For packet-oriented interfaces, the number of outbound
-          packets that could not be transmitted because of errors.
-          For character-oriented or fixed-length interfaces, the
-          number of outbound transmission units that could not be
-          transmitted because of errors.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOutErrors";
-      }
-
-      leaf carrier-transitions {
-        type oc-yang:counter64;
-        description
-          "Number of times the interface state has transitioned
-          between up and down since the time the device restarted
-          or the last-clear time, whichever is most recent.";
-      }
-
-      leaf last-clear {
-        type oc-types:timeticks64;
-        units nanoseconds;
-        description
-          "Timestamp of the last time the interface counters were
-          cleared.
-
-          The value is the timestamp in nanoseconds relative to
-          the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-      }
-    }
-  }
-
-  // data definition statements
-
-  grouping sub-unnumbered-config {
-    description
-      "Configuration data for unnumbered subinterfaces";
-
-    leaf enabled {
-      type boolean;
-      default false;
-      description
-        "Indicates that the subinterface is unnumbered.  By default
-        the subinterface is numbered, i.e., expected to have an
-        IP address configuration.";
-    }
-  }
-
-  grouping sub-unnumbered-state {
-    description
-      "Operational state data unnumbered subinterfaces";
-  }
-
-  grouping sub-unnumbered-top {
-    description
-      "Top-level grouping unnumbered subinterfaces";
-
-    container unnumbered {
-      description
-        "Top-level container for setting unnumbered interfaces.
-        Includes reference the interface that provides the
-        address information";
-
-      container config {
-        description
-          "Configuration data for unnumbered interface";
-
-        uses sub-unnumbered-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for unnumbered interfaces";
-
-        uses sub-unnumbered-config;
-        uses sub-unnumbered-state;
-      }
-
-      uses oc-if:interface-ref;
-    }
-  }
-
-  grouping subinterfaces-config {
-    description
-      "Configuration data for subinterfaces";
-
-    leaf index {
-      type uint32;
-      default 0;
-      description
-        "The index of the subinterface, or logical interface number.
-        On systems with no support for subinterfaces, or not using
-        subinterfaces, this value should default to 0, i.e., the
-        default subinterface.";
-    }
-
-    uses interface-common-config;
-
-  }
-
-  grouping subinterfaces-state {
-    description
-      "Operational state data for subinterfaces";
-
-    leaf name {
-      type string;
-      description
-        "The system-assigned name for the sub-interface.  This MAY
-        be a combination of the base interface name and the
-        subinterface index, or some other convention used by the
-        system.";
-    }
-
-    uses interface-common-state;
-    uses interface-counters-state;
-  }
-
-  grouping subinterfaces-top {
-    description
-      "Subinterface data for logical interfaces associated with a
-      given interface";
-
-    container subinterfaces {
-      description
-        "Enclosing container for the list of subinterfaces associated
-        with a physical interface";
-
-      list subinterface {
-        key "index";
-
-        description
-          "The list of subinterfaces (logical interfaces) associated
-          with a physical interface";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "The index number of the subinterface -- used to address
-            the logical interface";
-        }
-
-        container config {
-          description
-            "Configurable items at the subinterface level";
-
-          uses subinterfaces-config;
-        }
-
-        container state {
-
-          config false;
-          description
-            "Operational state data for logical interfaces";
-
-          uses subinterfaces-config;
-          uses subinterfaces-state;
-        }
-      }
-    }
-  }
-
-  grouping interfaces-top {
-    description
-      "Top-level grouping for interface configuration and
-      operational state data";
-
-    container interfaces {
-      description
-        "Top level container for interfaces, including configuration
-        and state data.";
-
-
-      list interface {
-        key "name";
-
-        description
-          "The list of named interfaces on the device.";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "References the configured name of the interface";
-            //TODO: need to consider whether this should actually
-            //reference the name in the state subtree, which
-            //presumably would be the system-assigned name, or the
-            //configured name.  Points to the config/name now
-            //because of YANG 1.0 limitation that the list
-            //key must have the same "config" as the list, and
-            //also can't point to a non-config node.
-        }
-
-        container config {
-          description
-            "Configurable items at the global, physical interface
-            level";
-
-          uses interface-phys-config;
-        }
-
-        container state {
-
-          config false;
-          description
-            "Operational state data at the global interface level";
-
-          uses interface-phys-config;
-          uses interface-common-state;
-          uses interface-counters-state;
-        }
-
-        uses interface-phys-holdtime-top;
-        uses subinterfaces-top;
-      }
-    }
-  }
-
-  uses interfaces-top;
-
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-linecard@2017-08-03.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-linecard@2017-08-03.yang
deleted file mode 100644 (file)
index b041fb8..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-module openconfig-platform-linecard {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform/linecard";
-
-  prefix "oc-linecard";
-
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-platform-types { prefix oc-platform-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines data related to LINECARD components in the openconfig-platform model";
-
-  oc-ext:openconfig-version "0.1.0";
-
-  revision "2017-08-03" {
-    description
-      "Initial revision";
-    reference "0.1.0";
-  }
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  // typedef statements
-
-  // grouping statements
-
-  grouping linecard-config {
-    description
-      "Configuration data for linecard components";
-
-    leaf power-admin-state {
-      type oc-platform-types:component-power-type;
-      default POWER_ENABLED;
-      description
-        "Enable or disable power to the linecard";
-    }
-  }
-
-  grouping linecard-state {
-    description
-      "Operational state data for linecard components";
-
-    leaf slot-id {
-      type string;
-      description
-        "Identifier for the slot or chassis position in which the
-        linecard is installed";
-    }
-  }
-
-  grouping linecard-top {
-    description
-      "Top-level grouping for linecard data";
-
-    container linecard {
-      description
-        "Top-level container for linecard data";
-
-      container config {
-        description
-          "Configuration data for linecards";
-
-        uses linecard-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for linecards";
-
-        uses linecard-config;
-        uses linecard-state;
-      }
-    }
-  }
-
-  // data definition statements
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    description
-      "Adding linecard data to physical inventory";
-
-    uses linecard-top {
-      when "current()/oc-platform:state/" +
-        "oc-platform:type = 'LINECARD'" {
-        description
-          "Augment is active when component is of type LINECARD";
-      }
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
-
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-port@2018-01-20.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-port@2018-01-20.yang
deleted file mode 100644 (file)
index 2039a8e..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-module openconfig-platform-port {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform/port";
-
-  prefix "oc-port";
-
-  // import some basic types
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-interfaces { prefix oc-if; }
-  import openconfig-if-ethernet { prefix oc-eth; }
-  import openconfig-extensions { prefix oc-ext; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines data related to PORT components in the openconfig-platform model";
-
-  oc-ext:openconfig-version "0.3.0";
-
-  revision "2018-01-20" {
-    description
-      "Added augmentation for interface-to-port reference";
-    reference "0.3.0";
-  }
-
-  revision "2017-11-17" {
-    description
-      "Corrected augmentation path for port data";
-    reference "0.2.0";
-  }
-
-  revision "2016-10-24" {
-    description
-      "Initial revision";
-    reference "0.1.0";
-  }
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  // typedef statements
-
-  // grouping statements
-
-  grouping port-breakout-config {
-    description
-      "Configuration data for the port breakout mode";
-
-    leaf num-channels {
-      type uint8;
-      description
-        "Sets the number of channels to 'breakout' on a port
-        capable of channelization";
-    }
-
-    leaf channel-speed {
-      type identityref {
-        base oc-eth:ETHERNET_SPEED;
-      }
-      description
-        "Sets the channel speed on each channel -- the
-        supported values are defined by the
-        ETHERNET_SPEED identity";
-    }
-  }
-
-  grouping port-breakout-state {
-    description
-      "Operational state data for the port breakout mode ";
-  }
-
-  grouping port-breakout-top {
-    description
-      "Top-level grouping for port breakout data";
-
-    container breakout-mode {
-      description
-        "Top-level container for port breakout data";
-
-      container config {
-        description
-          "Configuration data for port breakout";
-
-        uses port-breakout-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for port breakout";
-
-        uses port-breakout-config;
-        uses port-breakout-state;
-      }
-    }
-  }
-
-  // data definition statements
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component/" +
-    "oc-platform:port" {
-    description
-      "Adding port breakout data to physical platform data";
-
-    uses port-breakout-top {
-      when "./state/type = 'PORT'" {
-        description
-          "This data is valid only for PORT components";
-      }
-    }
-  }
-
-  augment "/oc-if:interfaces/oc-if:interface/oc-if:state" {
-    description
-      "Adds a reference from the base interface to the corresponding
-      port component in the device inventory.";
-
-    leaf hardware-port {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-platform:name";
-      }
-      description
-        "For non-channelized interfaces, references the hardware port
-        corresponding to the base interface.";
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-transceiver@2018-01-22.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-transceiver@2018-01-22.yang
deleted file mode 100644 (file)
index 6bb9bd9..0000000
+++ /dev/null
@@ -1,497 +0,0 @@
-module openconfig-platform-transceiver {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform/transceiver";
-
-  prefix "oc-transceiver";
-
-  // import some basic types
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-platform-port { prefix oc-port; }
-  import openconfig-interfaces { prefix oc-if; }
-  import openconfig-transport-types { prefix oc-opt-types; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-yang-types { prefix oc-yang; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines configuration and operational state data
-    for transceivers (i.e., pluggable optics).  The module should be
-    used in conjunction with the platform model where other
-    physical entity data are represented.
-
-    In the platform model, a component of type=TRANSCEIVER is
-    expected to be a subcomponent of a PORT component.  This
-    module defines a concrete schema for the associated data for
-    components with type=TRANSCEIVER.";
-
-  oc-ext:openconfig-version "0.4.1";
-
-  revision "2018-01-22" {
-    description
-      "Fixed physical-channel path reference";
-    reference "0.4.1";
-  }
-
-  revision "2017-09-18" {
-    description
-      "Use openconfig-yang-types module";
-    reference "0.4.0";
-  }
-
-  revision "2017-07-08" {
-    description
-      "Adds clarification on aggregate power measurement data";
-    reference "0.3.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Adds preconfiguration data and clarified units";
-    reference "0.2.0";
-  }
-
-  // identity statements
-
-  // typedef statements
-
-  // grouping statements
-
-  grouping optical-power-state {
-    description
-      "Reusable leaves related to optical power state -- these
-      are read-only state values. If avg/min/max statistics are
-      not supported, the target is expected to just supply the
-      instant value";
-
-    container output-power {
-      description
-        "The output optical power of a physical channel in units
-        of 0.01dBm, which may be associated with individual
-        physical channels, or an aggregate of multiple physical
-        channels (i.e., for the overall transceiver). For an
-        aggregate, this may be a measurement from a photodetector
-        or a a calculation performed on the device by summing up
-        all of the related individual physical channels.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container input-power {
-      description
-        "The input optical power of a physical channel in units
-        of 0.01dBm, which may be associated with individual
-        physical channels, or an aggregate of multiple physical
-        channels (i.e., for the overall transceiver). For an
-        aggregate, this may be a measurement from a photodetector
-        or a a calculation performed on the device by summing up
-        all of the related individual physical channels.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container laser-bias-current {
-      description
-        "The current applied by the system to the transmit laser to
-        achieve the output power. The current is expressed in mA
-        with up to two decimal precision. Values include the
-        instantaneous, average, minimum, and maximum statistics.
-        If avg/min/max statistics are not supported, the target is
-        expected to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-mA;
-    }
-  }
-
-  grouping output-optical-frequency {
-    description
-      "Reusable leaves related to optical output power -- this is
-      typically configurable on line side and read-only on the
-      client-side";
-
-    leaf output-frequency {
-      type oc-opt-types:frequency-type;
-      description
-        "The frequency in MHz of the individual physical channel
-        (e.g. ITU C50 - 195.0THz and would be reported as
-        195,000,000 MHz in this model). This attribute is not
-        configurable on most client ports.";
-    }
-  }
-
-
-  grouping physical-channel-config {
-    description
-      "Configuration data for physical client channels";
-
-    leaf index {
-      type uint16 {
-        range 0..max;
-      }
-      description
-        "Index of the physical channnel or lane within a physical
-        client port";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Text description for the client physical channel";
-    }
-
-    leaf tx-laser {
-      type boolean;
-      description
-        "Enable (true) or disable (false) the transmit label for the
-        channel";
-    }
-
-    leaf target-output-power {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "Target output optical power level of the optical channel,
-        expressed in increments of 0.01 dBm (decibel-milliwats)";
-    }
-  }
-
-  grouping physical-channel-state {
-    description
-      "Operational state data for client channels.";
-
-    uses output-optical-frequency;
-    uses optical-power-state;
-  }
-
-  grouping physical-channel-top {
-    description
-      "Top-level grouping for physical client channels";
-
-    container physical-channels {
-      description
-        "Enclosing container for client channels";
-
-      list channel {
-        key "index";
-        description
-          "List of client channels, keyed by index within a physical
-          client port.  A physical port with a single channel would
-          have a single zero-indexed element";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index number of the channel";
-        }
-
-        container config {
-          description
-            "Configuration data for physical channels";
-
-          uses physical-channel-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for channels";
-
-          uses physical-channel-config;
-          uses physical-channel-state;
-        }
-      }
-    }
-  }
-
-
-  grouping port-transceiver-config {
-    description
-      "Configuration data for client port transceivers";
-
-    leaf enabled {
-      type boolean;
-      description
-        "Turns power on / off to the transceiver -- provides a means
-        to power on/off the transceiver (in the case of SFP, SFP+,
-        QSFP,...) or enable high-power mode (in the case of CFP,
-        CFP2, CFP4) and is optionally supported (device can choose to
-        always enable).  True = power on / high power, False =
-        powered off";
-    }
-
-    leaf form-factor-preconf {
-      type identityref {
-        base oc-opt-types:TRANSCEIVER_FORM_FACTOR_TYPE;
-      }
-      description
-        "Indicates the type of optical transceiver used on this
-        port.  If the client port is built into the device and not
-        pluggable, then non-pluggable is the corresponding state. If
-        a device port supports multiple form factors (e.g. QSFP28
-        and QSFP+, then the value of the transceiver installed shall
-        be reported. If no transceiver is present, then the value of
-        the highest rate form factor shall be reported
-        (QSFP28, for example).
-
-        The form factor is included in configuration data to allow
-        pre-configuring a device with the expected type of
-        transceiver ahead of deployment.  The corresponding state
-        leaf should reflect the actual transceiver type plugged into
-        the system.";
-    }
-
-    leaf ethernet-pmd-preconf {
-      type identityref {
-        base oc-opt-types:ETHERNET_PMD_TYPE;
-      }
-      description
-        "The Ethernet PMD is a property of the optical transceiver
-        used on the port, indicating the type of physical connection.
-        It is included in configuration data to allow pre-configuring
-        a port/transceiver with the expected PMD.  The actual PMD is
-        indicated by the ethernet-pmd state leaf.";
-    }
-  }
-
-  grouping port-transceiver-state {
-    description
-      "Operational state data for client port transceivers";
-
-    leaf present {
-      type enumeration {
-        enum PRESENT {
-          description
-            "Transceiver is present on the port";
-        }
-        enum NOT_PRESENT {
-          description
-            "Transceiver is not present on the port";
-        }
-      }
-      description
-        "Indicates whether a transceiver is present in
-        the specified client port.";
-    }
-
-    leaf form-factor {
-      type identityref {
-        base oc-opt-types:TRANSCEIVER_FORM_FACTOR_TYPE;
-      }
-      description
-        "Indicates the type of optical transceiver used on this
-        port.  If the client port is built into the device and not
-        pluggable, then non-pluggable is the corresponding state. If
-        a device port supports multiple form factors (e.g. QSFP28
-        and QSFP+, then the value of the transceiver installed shall
-        be reported. If no transceiver is present, then the value of
-        the highest rate form factor shall be reported
-        (QSFP28, for example).";
-    }
-
-    leaf connector-type {
-      type identityref {
-        base oc-opt-types:FIBER_CONNECTOR_TYPE;
-      }
-      description
-        "Connector type used on this port";
-    }
-
-    leaf internal-temp {
-    // TODO: this should probably be removed if we add temperature
-    // as a top-level component property, i.e., transceiver temp
-    // should be reported there.
-      type int16 {
-        range -40..125;
-      }
-      description
-        "Internally measured temperature in degrees Celsius. MSA
-        valid range is between -40 and +125C. Accuracy shall be
-        better than +/- 3 degC over the whole temperature range.";
-    }
-
-    leaf vendor {
-      type string {
-        length 1..16;
-      }
-      description
-        "Full name of transceiver vendor. 16-octet field that
-        contains ASCII characters, left-aligned and padded on the
-        right with ASCII spaces (20h)";
-    }
-
-    leaf vendor-part {
-      type string {
-        length 1..16;
-      }
-      description
-        "Transceiver vendor's part number. 16-octet field that
-        contains ASCII characters, left-aligned and padded on the
-        right with ASCII spaces (20h). If part number is undefined,
-        all 16 octets = 0h";
-    }
-
-    leaf vendor-rev {
-      type string {
-        length 1..2;
-      }
-      description
-        "Transceiver vendor's revision number. 2-octet field that
-        contains ASCII characters, left-aligned and padded on the
-        right with ASCII spaces (20h)";
-    }
-
-    //TODO: these compliance code leaves should be active based on
-    //the type of port
-    leaf ethernet-pmd {
-      type identityref {
-        base oc-opt-types:ETHERNET_PMD_TYPE;
-      }
-      description
-        "Ethernet PMD (physical medium dependent sublayer) that the
-        transceiver supports. The SFF/QSFP MSAs have registers for
-        this and CFP MSA has similar.";
-    }
-
-    leaf sonet-sdh-compliance-code {
-      type identityref {
-        base oc-opt-types:SONET_APPLICATION_CODE;
-      }
-      description
-        "SONET/SDH application code supported by the port";
-    }
-
-    leaf otn-compliance-code {
-      type identityref {
-        base oc-opt-types:OTN_APPLICATION_CODE;
-      }
-      description
-        "OTN application code supported by the port";
-    }
-
-    leaf serial-no {
-      type string {
-        length 1..16;
-      }
-      description
-        "Transceiver serial number. 16-octet field that contains
-        ASCII characters, left-aligned and padded on the right with
-        ASCII spaces (20h). If part serial number is undefined, all
-        16 octets = 0h";
-    }
-
-    leaf date-code {
-      type oc-yang:date-and-time;
-      description
-        "Representation of the transceiver date code, typically
-        stored as YYMMDD.  The time portion of the value is
-        undefined and not intended to be read.";
-    }
-
-    leaf fault-condition {
-      type boolean;
-      description
-        "Indicates if a fault condition exists in the transceiver";
-    }
-
-    uses optical-power-state;
-
-  }
-
-  grouping port-transceiver-top {
-    description
-      "Top-level grouping for client port transceiver data";
-
-    container transceiver {
-      description
-        "Top-level container for client port transceiver data";
-
-      container config {
-        description
-          "Configuration data for client port transceivers";
-
-        uses port-transceiver-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for client port transceivers";
-
-        uses port-transceiver-config;
-        uses port-transceiver-state;
-      }
-      // physical channels are associated with a transceiver
-      // component
-      uses physical-channel-top;
-    }
-  }
-
-  // data definition statements
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    description
-      "Adding transceiver data to physical inventory";
-
-    uses port-transceiver-top {
-      when "current()/oc-platform:state/" +
-        "oc-platform:type = 'TRANSCEIVER'" {
-        description
-          "Augment is active when component is of type TRANSCEIVER";
-      }
-    }
-  }
-
-  augment "/oc-if:interfaces/oc-if:interface/oc-if:state" {
-    //TODO: add 'when' or other condition to make sure this
-    //leafref points to a component of type TRANSCEIVER.
-    description
-      "Adds a reference from the base interface to its corresponding
-      physical channels.";
-
-    leaf-list physical-channel {
-      type leafref {
-        path "/oc-platform:components/" +
-          "oc-platform:component[oc-platform:name=current()/../oc-port:hardware-port]/" +
-          "oc-transceiver:transceiver/" +
-          "oc-transceiver:physical-channels/oc-transceiver:channel/" +
-          "oc-transceiver:index";
-      }
-      description
-        "For a channelized interface, list of references to the
-        physical channels (lanes) corresponding to the interface.";
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-types@2018-01-16.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform-types@2018-01-16.yang
deleted file mode 100644 (file)
index 5ef3209..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-module openconfig-platform-types {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform-types";
-
-  prefix "oc-platform-types";
-
-  import openconfig-types { prefix oc-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines data types (e.g., YANG identities)
-    to support the OpenConfig component inventory model.";
-
-  oc-ext:openconfig-version "0.8.0";
-
-  revision "2018-01-16" {
-    description
-      "Added new per-component common data; add temp alarm";
-    reference "0.8.0";
-  }
-
-  revision "2017-12-14" {
-    description
-      "Added anchor containers for component data, added new
-      component types";
-    reference "0.7.0";
-  }
-
-  revision "2017-08-16" {
-    description
-      "Added power state enumerated type";
-    reference "0.6.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Added temperature state variable to component";
-    reference "0.5.0";
-  }
-
-  // grouping statements
-
-  grouping avg-min-max-instant-stats-precision1-celsius {
-    description
-      "Common grouping for recording temperature values in
-      Celsius with 1 decimal precision. Values include the
-      instantaneous, average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    leaf interval {
-      type oc-types:stat-interval;
-      description
-        "The time interval over which the min/max/average statistics
-        are computed by the system.";
-    }
-  }
-
-  // identity statements
-
-  identity OPENCONFIG_HARDWARE_COMPONENT {
-    description
-      "Base identity for hardware related components in a managed
-      device.  Derived identities are partially based on contents
-      of the IANA Entity MIB.";
-    reference
-      "IANA Entity MIB and RFC 6933";
-  }
-
-
-  identity OPENCONFIG_SOFTWARE_COMPONENT {
-    description
-      "Base identity for software-related components in a managed
-      device";
-  }
-
-  // hardware types
-
-  identity CHASSIS {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Chassis component, typically with multiple slots / shelves";
-  }
-
-  identity BACKPLANE {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Backplane component for aggregating traffic, typically
-      contained in a chassis component";
-  }
-
-  identity FABRIC {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Interconnect between ingress and egress ports on the
-      device (e.g., a crossbar switch).";
-  }
-
-  identity POWER_SUPPLY {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Component that is supplying power to the device";
-  }
-
-  identity FAN {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Cooling fan, or could be some other heat-reduction component";
-  }
-
-  identity SENSOR {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Physical sensor, e.g., a temperature sensor in a chassis";
-  }
-
-  identity FRU {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Replaceable hardware component that does not have a more
-      specific defined schema.";
-  }
-
-  identity LINECARD {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Linecard component, typically inserted into a chassis slot";
-  }
-
-  identity PORT {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Physical port, e.g., for attaching pluggables and networking
-      cables";
-  }
-
-  identity TRANSCEIVER {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Pluggable module present in a port";
-  }
-
-  identity CPU {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Processing unit, e.g., a management processor";
-  }
-
-  identity STORAGE {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "A storage subsystem on the device (disk, SSD, etc.)";
-  }
-
-  identity INTEGRATED_CIRCUIT {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "A special purpose processing unit, typically for traffic
-      switching/forwarding (e.g., switching ASIC, NPU, forwarding
-      chip, etc.)";
-  }
-
-  identity OPERATING_SYSTEM {
-    base OPENCONFIG_SOFTWARE_COMPONENT;
-    description
-      "Operating system running on a component";
-  }
-
-
-  identity COMPONENT_OPER_STATUS {
-    description
-      "Current operational status of a platform component";
-  }
-
-  identity ACTIVE {
-    base COMPONENT_OPER_STATUS;
-    description
-      "Component is enabled and active (i.e., up)";
-  }
-
-  identity INACTIVE {
-    base COMPONENT_OPER_STATUS;
-    description
-      "Component is enabled but inactive (i.e., down)";
-  }
-
-  identity DISABLED {
-    base COMPONENT_OPER_STATUS;
-    description
-      "Component is administratively disabled.";
-  }
-
-  // typedef statements
-
-  typedef component-power-type {
-    type enumeration {
-      enum POWER_ENABLED {
-        description
-          "Enable power on the component";
-      }
-      enum POWER_DISABLED {
-        description
-          "Disable power on the component";
-      }
-    }
-    description
-      "A generic type reflecting whether a hardware component
-      is powered on or off";
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform@2018-01-30.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-platform@2018-01-30.yang
deleted file mode 100644 (file)
index 5930278..0000000
+++ /dev/null
@@ -1,695 +0,0 @@
-module openconfig-platform {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform";
-
-  prefix "oc-platform";
-
-  import openconfig-platform-types { prefix oc-platform-types; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-alarm-types { prefix oc-alarm-types; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines a data model for representing a system
-    component inventory, which can include hardware or software
-    elements arranged in an arbitrary structure. The primary
-    relationship supported by the model is containment, e.g.,
-    components containing subcomponents.
-
-    It is expected that this model reflects every field replacable
-    unit on the device at a minimum (i.e., additional information
-    may be supplied about non-replacable components).
-
-    Every element in the inventory is termed a 'component' with each
-    component expected to have a unique name and type, and optionally
-    a unique system-assigned identifier and FRU number.  The
-    uniqueness is guaranteed by the system within the device.
-
-    Components may have properties defined by the system that are
-    modeled as a list of key-value pairs. These may or may not be
-    user-configurable.  The model provides a flag for the system
-    to optionally indicate which properties are user configurable.
-
-    Each component also has a list of 'subcomponents' which are
-    references to other components. Appearance in a list of
-    subcomponents indicates a containment relationship as described
-    above.  For example, a linecard component may have a list of
-    references to port components that reside on the linecard.
-
-    This schema is generic to allow devices to express their own
-    platform-specific structure.  It may be augmented by additional
-    component type-specific schemas that provide a common structure
-    for well-known component types.  In these cases, the system is
-    expected to populate the common component schema, and may
-    optionally also represent the component and its properties in the
-    generic structure.
-
-    The properties for each component may include dynamic values,
-    e.g., in the 'state' part of the schema.  For example, a CPU
-    component may report its utilization, temperature, or other
-    physical properties.  The intent is to capture all platform-
-    specific physical data in one location, including inventory
-    (presence or absence of a component) and state (physical
-    attributes or status).";
-
-  oc-ext:openconfig-version "0.9.0";
-
-  revision "2018-01-30" {
-    description
-      "Amended approach for modelling CPU - rather than having
-      a local CPU utilisation state variable, a component with
-      a CPU should create a subcomponent of type CPU to report
-      statistics.";
-    reference "0.9.0";
-  }
-
-  revision "2018-01-16" {
-    description
-      "Added new per-component common data; add temp alarm;
-      moved hardware-port reference to port model";
-    reference "0.8.0";
-  }
-
-  revision "2017-12-14" {
-    description
-      "Added anchor containers for component data, added new
-      component types";
-    reference "0.7.0";
-  }
-
-  revision "2017-08-16" {
-    description
-      "Added power state enumerated type";
-    reference "0.6.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Added temperature state variable to component";
-    reference "0.5.0";
-  }
-
-  // grouping statements
-
-
-  grouping platform-component-properties-config {
-    description
-      "System-defined configuration data for component properties";
-
-    leaf name {
-      type string;
-      description
-        "System-supplied name of the property -- this is typically
-        non-configurable";
-    }
-
-    leaf value {
-      type union {
-        type string;
-        // type boolean;
-        type int64;
-        type uint64;
-        type decimal64 {
-          fraction-digits 2;
-        }
-      }
-      description
-        "Property values can take on a variety of types.  Signed and
-        unsigned integer types may be provided in smaller sizes,
-        e.g., int8, uint16, etc.";
-    }
-  }
-
-  grouping platform-component-properties-state {
-    description
-      "Operational state data for component properties";
-
-    leaf configurable {
-      type boolean;
-      description
-        "Indication whether the property is user-configurable";
-    }
-  }
-
-  grouping platform-component-properties-top {
-    description
-      "Top-level grouping ";
-
-    container properties {
-      description
-        "Enclosing container ";
-
-      list property {
-        key "name";
-        description
-          "List of system properties for the component";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "Reference to the property name.";
-        }
-
-        container config {
-          description
-            "Configuration data for each property";
-
-          uses platform-component-properties-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for each property";
-
-          uses platform-component-properties-config;
-          uses platform-component-properties-state;
-        }
-      }
-    }
-  }
-
-  grouping platform-subcomponent-ref-config {
-    description
-      "Configuration data for subcomponent references";
-
-    leaf name {
-        type string;
-//      type leafref {
-//        path "../../config/name";
-//      }
-      description
-        "Reference to the name of the subcomponent";
-    }
-  }
-
-  grouping platform-subcomponent-ref-state {
-    description
-      "Operational state data for subcomponent references";
-
-  }
-
-  grouping platform-subcomponent-ref-top {
-    description
-      "Top-level grouping for list of subcomponent references";
-
-    container subcomponents {
-      description
-        "Enclosing container for subcomponent references";
-
-      list subcomponent {
-        key "name";
-        description
-          "List of subcomponent references";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "Reference to the name list key";
-        }
-
-        container config {
-          description
-            "Configuration data for the subcomponent";
-
-          uses platform-subcomponent-ref-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for the subcomponent";
-
-          uses platform-subcomponent-ref-config;
-          uses platform-subcomponent-ref-state;
-        }
-      }
-    }
-  }
-
-  grouping platform-component-config {
-    description
-      "Configuration data for components";
-
-    leaf name {
-      type string;
-      description
-        "Device name for the component -- this will not be a
-        configurable parameter on many implementations";
-    }
-  }
-
-  grouping platform-component-state {
-    description
-      "Operational state data for device components.";
-
-    leaf type {
-      type union {
-        type identityref {
-          base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT;
-        }
-        type identityref {
-          base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT;
-        }
-      }
-      description
-        "Type of component as identified by the system";
-    }
-
-    leaf id {
-      type string;
-      description
-        "Unique identifier assigned by the system for the
-        component";
-    }
-
-    leaf description {
-      type string;
-      description
-        "System-supplied description of the component";
-    }
-
-    leaf mfg-name {
-      type string;
-      description
-        "System-supplied identifier for the manufacturer of the
-        component.  This data is particularly useful when a
-        component manufacturer is different than the overall
-        device vendor.";
-    }
-
-    leaf hardware-version {
-      type string;
-      description
-        "For hardware components, this is the hardware revision of
-        the component.";
-    }
-
-    leaf firmware-version {
-      type string;
-      description
-        "For hardware components, this is the version of associated
-        firmware that is running on the component, if applicable.";
-    }
-
-    leaf software-version {
-      type string;
-      description
-        "For software components such as operating system or other
-        software module, this is the version of the currently
-        running software.";
-    }
-
-    leaf serial-no {
-      type string;
-      description
-        "System-assigned serial number of the component.";
-    }
-
-    leaf part-no {
-      type string;
-      description
-        "System-assigned part number for the component.  This should
-        be present in particular if the component is also an FRU
-        (field replacable unit)";
-    }
-
-    leaf oper-status {
-      type identityref {
-        base oc-platform-types:COMPONENT_OPER_STATUS;
-      }
-      description
-        "If applicable, this reports the current operational status
-        of the component.";
-    }
-  }
-
-  grouping platform-component-temp-alarm-state {
-    description
-      "Temperature alarm data for platform components";
-
-    // TODO(aashaikh): consider if these leaves could be in a
-    // reusable grouping (not temperature-specific); threshold
-    // may always need to be units specific.
-
-    leaf alarm-status {
-      type boolean;
-      description
-        "A value of true indicates the alarm has been raised or
-        asserted.  The value should be false when the alarm is
-        cleared.";
-    }
-
-    leaf alarm-threshold {
-      type uint32;
-      description
-        "The threshold value that was crossed for this alarm.";
-    }
-
-    leaf alarm-severity {
-      type identityref {
-        base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY;
-      }
-      description
-        "The severity of the current alarm.";
-    }
-  }
-
-  grouping platform-component-power-state {
-    description
-      "Power-related operational state for device components.";
-
-    leaf allocated-power {
-      type uint32;
-      units watts;
-      description
-        "Power allocated by the system for the component.";
-    }
-
-    leaf used-power {
-      type uint32;
-      units watts;
-      description
-        "Actual power used by the component.";
-    }
-  }
-
-  grouping platform-component-temp-state {
-    description
-      "Temperature state data for device components";
-
-    container temperature {
-      description
-        "Temperature in degrees Celsius of the component. Values include
-        the instantaneous, average, minimum, and maximum statistics. If
-        avg/min/max statistics are not supported, the target is expected
-        to just supply the instant value";
-
-      uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius;
-      uses platform-component-temp-alarm-state;
-    }
-  }
-
-  grouping platform-component-memory-state {
-    description
-      "Per-component memory statistics";
-
-    container memory {
-      description
-        "For components that have associated memory, these values
-        report information about available and utilized memory.";
-
-      leaf available {
-        type uint64;
-        units bytes;
-        description
-          "The available memory physically installed, or logically
-          allocated to the component.";
-      }
-
-      // TODO(aashaikh): consider if this needs to be a
-      // min/max/avg statistic
-      leaf utilized {
-        type uint64;
-        units bytes;
-        description
-          "The memory currently in use by processes running on
-          the component, not considering reserved memory that is
-          not available for use.";
-      }
-    }
-  }
-
-  grouping platform-anchors-top {
-    description
-      "This grouping is used to add containers for components that
-      are common across systems, but do not have a defined schema
-      within the openconfig-platform module.  Containers should be
-      added to this grouping for components that are expected to
-      exist in multiple systems, with corresponding modules
-      augmenting the config/state containers directly.";
-
-    container chassis {
-      description
-        "Data for chassis components";
-
-      container config {
-        description
-          "Configuration data for chassis components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for chassis components";
-      }
-    }
-
-// TODO(aashaikh): linecard container is already defined in
-// openconfig-platform-linecard; will move to this module
-// in future.
-  /*
-    container linecard {
-      description
-        "Data for linecard components";
-
-      container config {
-        description
-          "Configuration data for linecard components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for linecard components";
-      }
-    }
-  */
-
-    container port {
-      description
-        "Data for physical port components";
-
-      container config {
-        description
-          "Configuration data for physical port components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for physical port components";
-      }
-    }
-
-// TODO(aashaikh): transceiver container is already defined in
-// openconfig-platform-transceiver; will move to this module
-// in future.
-  /*
-    container transceiver {
-      description
-        "Data for transceiver components";
-
-      container config {
-        description
-          "Configuration data for transceiver components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for transceiver components";
-      }
-    }
-  */
-
-    container power-supply {
-      description
-        "Data for power supply components";
-
-      container config {
-        description
-          "Configuration data for power supply components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for power supply components";
-      }
-    }
-
-    container fan {
-      description
-        "Data for fan components";
-
-      container config {
-        description
-          "Configuration data for fan components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for fan components";
-      }
-    }
-
-    container fabric {
-      description
-        "Data for fabric components";
-
-      container config {
-        description
-          "Configuration data for fabric components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for fabric components";
-      }
-    }
-
-    container storage {
-      description
-        "Data for storage components";
-
-      container config {
-        description
-          "Configuration data for storage components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for storage components";
-      }
-    }
-
-    container cpu {
-      description
-        "Data for cpu components";
-
-      container config {
-        description
-          "Configuration data for cpu components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for cpu components";
-      }
-    }
-
-    container integrated-circuit {
-      description
-        "Data for chip components, such as ASIC, NPUs, etc.";
-
-      container config {
-        description
-          "Configuration data for chip components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for chip components";
-      }
-    }
-
-    container backplane {
-      description
-        "Data for backplane components";
-
-      container config {
-        description
-          "Configuration data for backplane components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for backplane components";
-      }
-    }
-  }
-
-  grouping platform-component-top {
-    description
-      "Top-level grouping for components in the device inventory";
-
-    container components {
-      description
-        "Enclosing container for the components in the system.";
-
-      list component {
-        key "name";
-        description
-          "List of components, keyed by component name.";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "References the component name";
-        }
-
-        container config {
-          description
-            "Configuration data for each component";
-
-          uses platform-component-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for each component";
-
-          uses platform-component-config;
-          uses platform-component-state;
-          uses platform-component-temp-state;
-          uses platform-component-memory-state;
-          uses platform-component-power-state;
-        }
-
-        uses platform-component-properties-top;
-        uses platform-subcomponent-ref-top;
-        uses platform-anchors-top;
-      }
-    }
-  }
-
-
-  // data definition statements
-
-  uses platform-component-top;
-
-
-  // augments
-
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-terminal-device@2017-07-08.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-terminal-device@2017-07-08.yang
deleted file mode 100644 (file)
index 0319a6c..0000000
+++ /dev/null
@@ -1,1141 +0,0 @@
-module openconfig-terminal-device {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/terminal-device";
-
-  prefix "oc-opt-term";
-
-  import openconfig-types { prefix oc-types; }
-  import openconfig-transport-types { prefix oc-opt-types; }
-  import openconfig-if-ethernet { prefix oc-eth; }
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-platform-transceiver { prefix oc-transceiver; }
-  import openconfig-extensions { prefix oc-ext; }
-  import ietf-yang-types { prefix yang; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module describes a terminal optics device model for
-    managing the terminal systems (client and line side) in a
-    DWDM transport network.
-
-    Elements of the model:
-
-    physical port: corresponds to a physical, pluggable client
-    port on the terminal device. Examples includes 10G, 40G, 100G
-    (e.g., 10x10G, 4x25G or 1x100G) and 400G/1T in the future.
-    Physical client ports will have associated operational state or
-    PMs.
-
-    physical channel: a physical lane or channel in the
-    physical client port.  Each physical client port has 1 or more
-    channels. An example is 100GBASE-LR4 client physical port having
-    4x25G channels. Channels have their own optical PMs and can be
-    monitored independently within a client physical port (e.g.,
-    channel power).  Physical client channels are defined in the
-    model as part of a physical client port, and are modeled
-    primarily for reading their PMs.
-
-    logical channel: a logical grouping of logical grooming elements
-    that may be assigned to subsequent grooming stages for
-    multiplexing / de-multiplexing, or to an optical channel for
-    line side transmission.  The logical channels can represent, for
-    example, an ODU/OTU logical packing of the client
-    data onto the line side.  Tributaries are similarly logical
-    groupings of demand that can be represented in this structure and
-    assigned to an optical channel.  Note that different types of
-    logical channels may be present, each with their corresponding
-    PMs.
-
-    optical channel:  corresponds to an optical carrier and is
-    assigned a wavelength/frequency.  Optical channels have PMs
-    such as power, BER, and operational mode.
-
-    Directionality:
-
-    To maintain simplicity in the model, the configuration is
-    described from client-to-line direction.  The assumption is that
-    equivalent reverse configuration is implicit, resulting in
-    the same line-to-client configuration.
-
-    Physical layout:
-
-    The model does not assume a particular physical layout of client
-    and line ports on the terminal device (e.g., such as number of
-    ports per linecard, separate linecards for client and line ports,
-    etc.).";
-
-  oc-ext:openconfig-version "1.0.0";
-
-  revision "2017-07-08" {
-    description
-      "Adds test-signal";
-    reference "1.0.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes and additions to terminal optics model";
-    reference "0.4.0";
-  }
-
-
-  grouping terminal-input-optical-power {
-    description
-      "Reusable leaves related to input optical power";
-
-    leaf input-power {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The input optical power of this port in units of 0.01dBm.
-        If the port is an aggregate of multiple physical channels,
-        this attribute is the total power or sum of all channels.";
-    }
-  }
-
-  grouping terminal-ethernet-protocol-config {
-    description
-      "Configuration data for logical channels with Ethernet
-      framing";
-
-    //TODO:currently a empty container
-  }
-
-  grouping terminal-ethernet-protocol-state {
-    description
-      "Ethernet-specific counters when logical channel
-      is using Ethernet protocol framing, e.g., 10GE, 100GE";
-
-      uses oc-eth:ethernet-interface-state-counters;
-  }
-
-  grouping terminal-ethernet-protocol-top {
-    description
-      "Top-level grouping for data related to Ethernet protocol
-      framing on logical channels";
-
-    container ethernet {
-      description
-        "Top level container for data related to Ethernet framing
-        for the logical channel";
-
-      container config {
-        description
-          "Configuration data for Ethernet protocol framing on
-          logical channels";
-
-        uses terminal-ethernet-protocol-config;
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for Ethernet protocol framing
-          on logical channels";
-
-        uses terminal-ethernet-protocol-state;
-      }
-    }
-  }
-
-  grouping terminal-otn-protocol-config {
-    description
-      "OTU configuration when logical channel
-      framing is using an OTU protocol, e.g., OTU1, OTU3, etc.";
-
-    leaf tti-msg-transmit {
-      type string;
-      description
-        "Trail trace identifier (TTI) message transmitted";
-    }
-
-    leaf tti-msg-expected {
-      type string;
-      description
-        "Trail trace identifier (TTI) message expected";
-    }
-
-    leaf tti-msg-auto {
-      type boolean;
-      description
-        "Trail trace identifier (TTI) transmit message automatically
-        created.  If true, then setting a custom transmit message
-        would be invalid.";
-    }
-  }
-
-  grouping terminal-otn-protocol-counter-stats {
-    description
-      "Counter based statistics containers for logical channels
-      using OTN framing";
-
-    leaf errored-seconds {
-      type yang:counter64;
-      description
-        "The number of seconds that at least one errored blocks
-        occurs, at least one code violation occurs, loss of sync is
-        detected or loss of signal is detected";
-    }
-
-    leaf severely-errored-seconds {
-      type yang:counter64;
-      description
-        "The number of seconds that loss of frame is detected OR
-        the number of errored blocks, code violations, loss of sync
-        or loss of signal is detected exceeds a predefined
-        threshold";
-    }
-
-    leaf unavailable-seconds {
-      type yang:counter64;
-      description
-        "The number of seconds during which the link is unavailable";
-    }
-
-    leaf code-violations {
-      type yang:counter64;
-      description
-        "For ethernet or fiberchannel links, the number of 8b/10b
-        coding violations. For SONET/SDH, the number of BIP (bit
-        interleaved parity) errors";
-    }
-
-    leaf fec-uncorrectable-words {
-      type yang:counter64;
-      description
-        "The number words that were uncorrectable by the FEC";
-    }
-
-    leaf fec-corrected-bytes {
-      type yang:counter64;
-      description
-        "The number of bytes that were corrected by the FEC";
-    }
-
-    leaf fec-corrected-bits {
-      type yang:counter64;
-      description
-        "The number of bits that were corrected by the FEC";
-    }
-
-    leaf background-block-errors {
-      type yang:counter64;
-      description
-        "The number of background block errors";
-    }
-  }
-
-  grouping terminal-otn-protocol-multi-stats {
-    description
-      "Multi-value statistics containers for logical channels using
-      OTN framing (e.g., max, min, avg, instant)";
-
-    container pre-fec-ber {
-      description
-        "Bit error rate before forward error correction -- computed
-        value with 18 decimal precision. Note that decimal64
-        supports values as small as i x 10^-18 where i is an
-        integer. Values smaller than this should be reported as 0
-        to inidicate error free or near error free performance.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision18-ber;
-    }
-
-    container post-fec-ber {
-      description
-        "Bit error rate after forward error correction -- computed
-        value with 18 decimal precision. Note that decimal64
-        supports values as small as i x 10^-18 where i is an
-        integer. Values smaller than this should be reported as 0
-        to inidicate error free or near error free performance.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision18-ber;
-    }
-
-    container q-value {
-      description
-        "Quality value (factor) in dB of a channel with two
-        decimal precision. Values include the instantaneous,
-        average, minimum, and maximum statistics. If avg/min/max
-        statistics are not supported, the target is expected
-        to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dB;
-    }
-
-    container esnr {
-      description
-        "Electrical signal to noise ratio. Baud rate
-        normalized signal to noise ratio based on
-        error vector magnitude in dB with two decimal
-        precision. Values include the instantaneous, average,
-        minimum, and maximum statistics. If avg/min/max
-        statistics are not supported, the target is expected
-        to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dB;
-    }
-  }
-
-  grouping terminal-otn-protocol-state {
-    description
-      "OTU operational state when logical channel
-      framing is using an OTU protocol, e.g., OTU1, OTU3, etc.";
-
-
-      leaf tti-msg-recv {
-        type string;
-        description
-          "Trail trace identifier (TTI) message received";
-      }
-
-      leaf rdi-msg {
-        type string;
-        description
-          "Remote defect indication (RDI) message received";
-      }
-      uses terminal-otn-protocol-counter-stats;
-      uses terminal-otn-protocol-multi-stats;
-  }
-
-  grouping terminal-otn-protocol-top {
-    description
-      "Top-level grouping for data related to OTN protocol framing";
-
-    container otn {
-      description
-        "Top level container for OTU configuration when logical
-        channel framing is using an OTU protocol, e.g., OTU1, OTU3,
-        etc.";
-
-      container config {
-        description
-          "Configuration data for OTN protocol framing";
-
-        uses terminal-otn-protocol-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for OTN protocol PMs, statistics,
-          etc.";
-
-        uses terminal-otn-protocol-config;
-        uses terminal-otn-protocol-state;
-      }
-    }
-  }
-
-  grouping terminal-client-port-assignment-config {
-    description
-      "Configuration data for assigning physical client ports to
-      logical channels";
-
-    leaf index {
-      type uint32;
-      description
-        "Index of the client port assignment";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Descriptive name for the client port-to-logical channel
-        mapping";
-    }
-
-    leaf logical-channel {
-      type leafref {
-        path "/oc-opt-term:terminal-device/oc-opt-term:logical-channels" +
-          "/oc-opt-term:channel/oc-opt-term:index";
-      }
-      description
-        "Reference to the logical channel for this
-        assignment";
-    }
-
-    leaf allocation {
-      type decimal64 {
-        fraction-digits 3;
-      }
-      units Gbps;
-      description
-        "Allocation of the client physical port to the assigned
-        logical channel expressed in Gbps.  In most cases,
-        the full client physical port rate is assigned to a single
-        logical channel.";
-    }
-
-  }
-
-  grouping terminal-client-port-assignment-state {
-    description
-      "Operational state data for assigning physical client ports
-      to logical channels";
-  }
-
-  grouping terminal-client-port-assignment-top {
-    description
-      "Top-level grouping for the assigment of client physical ports
-      to logical channels";
-    //TODO: this grouping could be removed, instead reusing a common
-    //grouping for logical client assignment pointers
-
-    container logical-channel-assignments {
-      description
-        "Enclosing container for client port to logical client
-        mappings";
-
-      list assignment {
-        key "index";
-        description
-          "List of assignments to logical clients";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index of this logical client
-            assignment";
-        }
-
-        container config {
-          description
-            "Configuration data for the logical client assignment";
-
-          uses terminal-client-port-assignment-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for the logical client
-            assignment";
-
-          uses terminal-client-port-assignment-config;
-          uses terminal-client-port-assignment-state;
-        }
-      }
-    }
-  }
-
-
-  grouping terminal-logical-chan-assignment-config {
-    description
-      "Configuration data for assigning client logical channels
-      to line-side tributaries";
-
-    leaf index {
-      type uint32;
-      description
-        "Index of the current logical client channel to tributary
-        mapping";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Name assigned to the logical client channel";
-    }
-
-    leaf assignment-type {
-      type enumeration {
-        enum LOGICAL_CHANNEL {
-          description
-            "Subsequent channel is a logical channel";
-        }
-        enum OPTICAL_CHANNEL {
-          description
-            "Subsequent channel is a optical channel / carrier";
-        }
-      }
-      description
-        "Each logical channel element may be assigned to subsequent
-        stages of logical elements to implement further grooming, or
-        can be assigned to a line-side optical channel for
-        transmission.  Each assignment also has an associated
-        bandwidth allocation.";
-    }
-
-    leaf logical-channel {
-      type leafref {
-        path "/oc-opt-term:terminal-device/" +
-          "oc-opt-term:logical-channels/oc-opt-term:channel/" +
-          "oc-opt-term:index";
-      }
-      must "../assignment-type = 'LOGICAL_CHANNEL'" {
-        description
-          "The assignment-type must be set to LOGICAL_CHANNEL for
-          this leaf to be valid";
-      }
-      description
-         "Reference to another stage of logical channel elements.";
-    }
-
-    leaf optical-channel {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-platform:name";
-      }
-      must "../assignment-type = 'OPTICAL_CHANNEL'" {
-        description
-          "The assignment-type must be set to OPTICAL_CHANNEL for
-          this leaf to be valid";
-      }
-      description
-        "Reference to the line-side optical channel that should
-        carry the current logical channel element.  Use this
-        reference to exit the logical element stage.";
-    }
-
-    leaf allocation {
-      type decimal64 {
-        fraction-digits 3;
-      }
-      units Gbps;
-      description
-        "Allocation of the logical client channel to the tributary
-        or sub-channel, expressed in Gbps";
-    }
-
-  }
-
-  grouping terminal-logical-chan-assignment-state {
-    description
-      "Operational state data for the assignment of logical client
-      channel to line-side tributary";
-  }
-
-  grouping terminal-logical-chan-assignment-top {
-    description
-      "Top-level grouping for the list of logical client channel-to-
-      tributary assignments";
-
-    container logical-channel-assignments {
-      //TODO: we need a commonly understood name for this logical
-      //channel structure
-      description
-        "Enclosing container for tributary assignments";
-
-      list assignment {
-        key "index";
-        description
-          "Logical channel elements may be assigned directly to
-          optical channels for line-side transmission, or can be
-          further groomed into additional stages of logical channel
-          elements.  The grooming can multiplex (i.e., split the
-          current element into multiple elements in the subsequent
-          stage) or de-multiplex (i.e., combine the current element
-          with other elements into the same element in the subsequent
-          stage) logical elements in each stage.
-
-          Note that to support the ability to groom the logical
-          elements, the list of logical channel elements should be
-          populated with an entry for the logical elements at
-          each stage, starting with the initial assignment from the
-          respective client physical port.
-
-          Each logical element assignment consists of a pointer to
-          an element in the next stage, or to an optical channel,
-          along with a bandwidth allocation for the corresponding
-          assignment (e.g., to split or combine signal).";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index for the current tributary
-            assignment";
-        }
-
-        container config {
-          description
-            "Configuration data for tributary assignments";
-
-          uses terminal-logical-chan-assignment-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for tributary assignments";
-
-          uses terminal-logical-chan-assignment-config;
-          uses terminal-logical-chan-assignment-state;
-        }
-      }
-    }
-  }
-
-  grouping terminal-logical-channel-ingress-config {
-    description
-      "Configuration data for ingress signal to logical channel";
-
-    leaf transceiver {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-        "oc-platform:name";
-      }
-      description
-        "Reference to the transceiver carrying the input signal
-        for the logical channel.  If specific physical channels
-        are mapped to the logical channel (as opposed to all
-        physical channels carried by the transceiver), they can be
-        specified in the list of physical channel references.";
-    }
-
-    leaf-list physical-channel {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-transceiver:transceiver/" +
-          "oc-transceiver:physical-channels/" +
-          "oc-transceiver:channel/oc-transceiver:index";
-      }
-      description
-        "This list should be populated with references
-        to the client physical channels that feed this logical
-        channel from the transceiver specified in the 'transceiver'
-        leaf, which must be specified.  If this leaf-list is empty,
-        all physical channels in the transceiver are assumed to be
-        mapped to the logical channel.";
-    }
-  }
-
-  grouping terminal-logical-channel-ingress-state {
-    description
-      "Operational state data for ingress signal to logical channel";
-  }
-
-  grouping terminal-logical-channel-ingress-top {
-    description
-      "Top-level grouping for ingress signal to logical channel";
-
-    container ingress {
-      description
-        "Top-level container for specifying references to the
-        source of signal for the logical channel, either a
-        transceiver or individual physical channels";
-
-      container config {
-        description
-          "Configuration data for the signal source for the
-          logical channel";
-
-        uses terminal-logical-channel-ingress-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for the signal source for the
-          logical channel";
-
-        uses terminal-logical-channel-ingress-config;
-        uses terminal-logical-channel-ingress-state;
-      }
-    }
-  }
-
-  grouping terminal-logical-channel-config {
-    description
-      "Configuration data for logical channels";
-
-    leaf index {
-      type uint32;
-      description
-        "Index of the current logical channel";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Description of the logical channel";
-    }
-
-    leaf admin-state {
-      type oc-opt-types:admin-state-type;
-      description
-          "Sets the admin state of the logical channel";
-    }
-
-    leaf rate-class {
-      type identityref {
-        base oc-opt-types:TRIBUTARY_RATE_CLASS_TYPE;
-      }
-      description
-        "Rounded bit rate of the tributary signal. Exact bit rate
-        will be refined by protocol selection.";
-    }
-
-    leaf trib-protocol {
-      type identityref {
-        base oc-opt-types:TRIBUTARY_PROTOCOL_TYPE;
-      }
-      description
-        "Protocol framing of the tributary signal. If this
-        LogicalChannel is directly connected to a Client-Port or
-        Optical-Channel, this is the protocol of the associated port.
-        If the LogicalChannel is connected to other LogicalChannels,
-        the TributaryProtocol of the LogicalChannels will define a
-        specific mapping/demapping or multiplexing/demultiplexing
-        function.
-
-        Not all protocols are valid, depending on the value
-        of trib-rate-class.  The expectation is that the NMS
-        will validate that a correct combination of rate class
-        and protocol are specfied.  Basic combinations are:
-
-        rate class: 1G
-        protocols: 1GE
-
-        rate class: 2.5G
-        protocols: OC48, STM16
-
-        rate class: 10G
-        protocols:  10GE LAN, 10GE WAN, OC192, STM64, OTU2, OTU2e,
-                    OTU1e, ODU2, ODU2e, ODU1e
-
-        rate class: 40G
-        protocols:  40GE, OC768, STM256, OTU3, ODU3
-
-        rate class: 100G
-        protocols:  100GE, 100G MLG, OTU4, OTUCn, ODU4";
-    }
-
-    leaf logical-channel-type {
-      type identityref {
-        base oc-opt-types:LOGICAL_ELEMENT_PROTOCOL_TYPE;
-      }
-      description
-        "The type / stage of the logical element determines the
-        configuration and operational state parameters (PMs)
-        available for the logical element";
-    }
-
-    leaf loopback-mode {
-      type oc-opt-types:loopback-mode-type;
-      description
-        "Sets the loopback type on the logical channel. Setting the
-        mode to something besides NONE activates the loopback in
-        the specified mode.";
-    }
-
-    leaf test-signal {
-      type boolean;
-      description
-        "When enabled the logical channel's DSP will generate a pseudo
-        randmon bit stream (PRBS) which can be used during testing.";
-    }
-  }
-
-
-  grouping terminal-logical-channel-state {
-    description
-      "Operational state data for logical client channels";
-
-    leaf link-state {
-      type enumeration {
-        enum UP {
-          description
-            "Logical channel is operationally up";
-        }
-        enum DOWN {
-          description
-            "Logical channel is operationally down";
-        }
-      }
-      description
-        "Link-state of the Ethernet protocol on the logical channel,
-        SONET / SDH framed signal, etc.";
-    }
-
-  }
-
-  grouping terminal-logical-channel-top {
-    description
-      "Top-level grouping for logical channels";
-
-    container logical-channels {
-      description
-        "Enclosing container the list of logical channels";
-
-      list channel {
-        key "index";
-        description
-          "List of logical channels";
-        //TODO: naming for this list of logical elements should be
-        //revisited.
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index of the logical channel";
-        }
-
-        container config {
-          description
-            "Configuration data for logical channels";
-
-          uses terminal-logical-channel-config;
-
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for logical channels";
-
-          uses terminal-logical-channel-config;
-          uses terminal-logical-channel-state;
-        }
-
-        uses terminal-otn-protocol-top {
-          when "config/logical-channel-type = 'PROT_OTN'" {
-            description
-              "Include the OTN protocol data only when the
-              channel is using OTN framing.";
-          }
-        }
-        uses terminal-ethernet-protocol-top {
-          when "config/logical-channel-type = 'PROT_ETHERNET'" {
-            description
-              "Include the Ethernet protocol statistics only when the
-              protocol used by the link is Ethernet.";
-          }
-        }
-        uses terminal-logical-channel-ingress-top;
-        uses terminal-logical-chan-assignment-top;
-      }
-    }
-  }
-
-
-  grouping terminal-optical-channel-config {
-    description
-      "Configuration data for describing optical channels";
-
-    leaf frequency {
-      type oc-opt-types:frequency-type;
-      description
-        "Frequency of the optical channel, expressed in MHz";
-    }
-
-    leaf target-output-power {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "Target output optical power level of the optical channel,
-        expressed in increments of 0.01 dBm (decibel-milliwats)";
-    }
-
-    leaf operational-mode {
-      type uint16;
-      description
-        "Vendor-specific mode identifier -- sets the operational
-        mode for the channel.  The specified operational mode must
-        exist in the list of supported operational modes supplied
-        by the device";
-      //
-      // Ideally, this leaf should be a leafref to the supported
-      // operational modes, but YANG 1.0 does not allow a r/w
-      // leaf to be a leafref to a r/o leaf.
-    }
-
-
-    leaf line-port {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-platform:name";
-      }
-      description
-        "Reference to the line-side physical port that carries
-        this optical channel.  The target port should be
-        a component in the physical inventory data model.";
-    }
-  }
-
-  grouping terminal-optical-channel-state {
-    description
-      "Operational state data for optical channels";
-
-    leaf group-id {
-      type uint32;
-      description
-        "If the device places constraints on which optical
-        channels must be managed together (e.g., transmitted on the
-        same line port), it can indicate that by setting the group-id
-        to the same value across related optical channels.";
-    }
-
-    uses oc-transceiver:optical-power-state;
-
-    container chromatic-dispersion {
-      description
-        "Chromatic Dispersion of an optical channel in
-        picoseconds / nanometer (ps/nm) as reported by receiver
-        with two decimal precision. Values include the instantaneous,
-        average, minimum, and maximum statistics. If avg/min/max
-        statistics are not supported, the target is expected to just
-        supply the instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision2-ps-nm;
-    }
-
-    container polarization-mode-dispersion {
-      description
-        "Polarization Mode Dispersion of an optical channel
-        in picosends (ps) as reported by receiver with two decimal
-        precision. Values include the instantaneous, average,
-        minimum, and maximum statistics. If avg/min/max statistics
-        are not supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision2-ps;
-    }
-
-    container second-order-polarization-mode-dispersion {
-      description
-        "Second Order Polarization Mode Dispersion of an optical
-        channel in picoseconds squared (ps^2) as reported by
-        receiver with two decimal precision. Values include the
-        instantaneous, average, minimum, and maximum statistics.
-        If avg/min/max statistics are not supported, the target
-        is expected to just supply the instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision2-ps2;
-    }
-
-    container polarization-dependent-loss {
-      description
-        "Polarization Dependent Loss of an optical channel
-        in dB as reported by receiver with two decimal precision.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dB;
-    }
-  }
-
-  grouping terminal-optical-channel-top {
-    description
-      "Top-level grouping for optical channel data";
-
-    container optical-channel {
-      description
-        "Enclosing container for the list of optical channels";
-
-      container config {
-        description
-          "Configuration data for optical channels";
-
-        uses terminal-optical-channel-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for optical channels";
-
-        uses terminal-optical-channel-config;
-        uses terminal-optical-channel-state;
-      }
-    }
-  }
-
-  grouping terminal-operational-mode-config {
-    description
-      "Configuration data for vendor-supported operational modes";
-  }
-
-  grouping terminal-operational-mode-state {
-    description
-      "Operational state data for vendor-supported operational
-      modes";
-
-      leaf mode-id {
-        type uint16;
-        description
-          "Two-octet encoding of the vendor-defined operational
-          mode";
-      }
-
-      leaf description {
-        type string;
-        description
-          "Vendor-supplied textual description of the characteristics
-          of this operational mode to enable operators to select the
-          appropriate mode for the application.";
-      }
-
-      //TODO: examples of the kind of info that would be useful to
-      //report in the operational mode:
-      //Symbol rate (32G, 40G, 43G, 64G, etc.)
-      //Modulation (QPSK, 8-QAM, 16-QAM, etc.)
-      //Differential encoding (on, off/pilot symbol, etc)
-      //State of polarization tracking mode (default, med.
-      //high-speed, etc.)
-      //Pulse shaping (RRC, RC, roll-off factor)
-      //FEC mode (SD, HD, % OH)
-
-      leaf vendor-id {
-        type string;
-        description
-          "Identifier to represent the vendor / supplier of the
-          platform and the associated operational mode information";
-      }
-  }
-
-  grouping terminal-operational-mode-top {
-    description
-      "Top-level grouping for vendor-supported operational modes";
-
-    container operational-modes {
-      description
-        "Enclosing container for list of operational modes";
-
-      list mode {
-        key "mode-id";
-        config false;
-        description
-          "List of operational modes supported by the platform.
-          The operational mode provides a platform-defined summary
-          of information such as symbol rate, modulation, pulse
-          shaping, etc.";
-
-        leaf mode-id {
-          type leafref {
-            path "../state/mode-id";
-          }
-          description
-            "Reference to mode-id";
-        }
-
-        container config {
-          description
-            "Configuration data for operational mode";
-
-          uses terminal-operational-mode-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for the platform-defined
-            operational mode";
-
-          uses terminal-operational-mode-config;
-          uses terminal-operational-mode-state;
-        }
-      }
-    }
-  }
-
-
-  grouping terminal-device-config {
-    description
-      "Configuration data for transport terminal devices at a
-      device-wide level";
-  }
-
-  grouping terminal-device-state {
-    description
-      "Operational state data for transport terminal devices at a
-      device-wide level";
-  }
-
-  grouping terminal-device-top {
-    description
-      "Top-level grouping for data for terminal devices";
-
-    container terminal-device {
-      description
-        "Top-level container for the terminal device";
-
-      container config {
-        description
-          "Configuration data for global terminal-device";
-
-        uses terminal-device-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for global terminal device";
-
-        uses terminal-device-config;
-        uses terminal-device-state;
-      }
-
-      uses terminal-logical-channel-top;
-      uses terminal-operational-mode-top;
-
-    }
-  }
-
-  // data definition statements
-
-  uses terminal-device-top;
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    when "/oc-platform:components/oc-platform:component/" +
-      "oc-platform:state/oc-platform:type = 'OPTICAL_CHANNEL'" {
-      description
-        "Augment is active when component is of type
-        OPTICAL_CHANNEL";
-    }
-    description
-      "Adding optical channel data to physical inventory";
-
-    uses terminal-optical-channel-top {
-    }
-  }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-transport-line-common@2017-09-08.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-transport-line-common@2017-09-08.yang
deleted file mode 100644 (file)
index 813ffa6..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-module openconfig-transport-line-common {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/transport-line-common";
-
-  prefix "oc-line-com";
-
-  // import some basic types
-  import iana-if-type { prefix ift; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-interfaces { prefix oc-if; }
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-transport-types { prefix oc-opt-types; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines common data elements for OpenConfig data
-    models for optical transport line system elements, such as
-    amplifiers and ROADMs (wavelength routers).";
-
-  oc-ext:openconfig-version "0.3.1";
-
-  revision "2017-09-08" {
-    description
-      "Correct bug with OSC interfaces";
-    reference "0.3.1";
-  }
-
-  revision "2017-07-08" {
-    description
-      "Add monitor port type and refs to hw ports, ";
-    reference "0.3.0";
-  }
-
-  revision "2017-03-28" {
-    description
-      "Added min/max/avg stats, status for media channels, OCM, APS";
-    reference "0.2.0";
-  }
-
-  revision "2016-03-31" {
-    description
-      "Initial public release";
-    reference "0.1.0";
-  }
-
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  identity OPTICAL_LINE_PORT_TYPE {
-    description
-      "Type definition for optical node port types";
-  }
-
-  identity INGRESS {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Ingress port, corresponding to a signal entering
-      a line device such as an amplifier or wavelength
-      router.";
-  }
-
-  identity EGRESS {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Egress port, corresponding to a signal exiting
-      a line device such as an amplifier or wavelength
-      router.";
-  }
-
-  identity ADD {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Add port, corresponding to a signal injected
-      at a wavelength router.";
-  }
-
-  identity DROP {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Drop port, corresponding to a signal dropped
-      at a wavelength router.";
-  }
-
-  identity MONITOR {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Monitor port, corresponding to a signal used by an optical
-      channel monitor. This is used to represent the connection
-      that a channel monitor port is connected to. This
-      connection may be via physical cable and faceplate ports or
-      internal to the device";
-  }
-
-  // typedef statements
-
-  // grouping statements
-
-   grouping optical-osc-config {
-    description
-      "Configuration data for OSC interfaces";
-
-    leaf interface {
-      type oc-if:base-interface-ref;
-      description
-        "Reference to an OSC interface";
-    }
-  }
-
-  grouping optical-osc-state {
-    description
-      "Operational state data for OSC interfaces";
-
-    container input-power {
-      description
-        "The input optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        the target is expected to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container output-power {
-      description
-        "The output optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        the target is expected to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container laser-bias-current {
-      description
-        "The current applied by the system to the transmit laser to
-        achieve the output power. The current is expressed in mA
-        with up to one decimal precision. If avg/min/max statistics
-        are not supported, the target is expected to just supply
-        the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-mA;
-    }
-  }
-
-
-
-  grouping optical-osc-top {
-    description
-      "Top-level grouping for configuration and operational state
-      data for optical supervisory channels (OSC) for amplifiers,
-      WSS/ROADM, nodes, etc.";
-
-    container config {
-      description
-        "Configuration data for OSCs";
-
-      uses optical-osc-config;
-    }
-
-    container state {
-
-      config false;
-
-      description
-        "Operational state data for OSCs";
-
-      uses optical-osc-config;
-      uses optical-osc-state;
-    }
-  }
-
-
-  grouping transport-line-common-port-config {
-    description
-      "Configuration data for optical line ports";
-
-    leaf admin-state {
-      type oc-opt-types:admin-state-type;
-      description
-          "Sets the admin state of the optical-port";
-    }
-  }
-
-  grouping transport-line-common-port-state {
-    description
-      "Operational state data describing optical line ports";
-
-    leaf optical-port-type {
-      type identityref {
-        base OPTICAL_LINE_PORT_TYPE;
-      }
-      description
-        "Indicates the type of transport line port.  This is an
-        informational field that should be made available by the
-        device (e.g., in the openconfig-platform model).";
-    }
-
-    container input-power {
-      description
-        "The total input optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container output-power {
-      description
-        "The total output optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-  }
-
-  grouping transport-line-common-port-top {
-    description
-      "Top-level grouping ";
-
-    container optical-port {
-      description
-        "Top-level container ";
-
-      container config {
-
-        description
-          "Operational config data for optical line ports";
-
-        uses transport-line-common-port-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for optical line ports";
-
-        uses transport-line-common-port-config;
-        uses transport-line-common-port-state;
-      }
-    }
-  }
-
-
-
-  // data definition statements
-
-  // uses optical-osc-top;
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    description
-      "Adding optical line port data to platform model";
-
-    uses transport-line-common-port-top {
-      when "/oc-platform:components/oc-platform:component/" +
-        "oc-platform:state/oc-platform:type = 'PORT'" {
-        description
-          "Augment is active when component is of type
-          PORT";
-      }
-    }
-  }
-
-  //TODO:this is placeholder until SONET model is added
-  //to interfaces model
-  augment "/oc-if:interfaces/oc-if:interface" {
-    when "oc-if:config/oc-if:type = 'ift:sonet'" {
-      description "Additional interface configuration parameters when
-      the interface type is SONET/SDH";
-    }
-    description "Adds additional SONET/SDH-specific data to
-    osc model";
-
-    container sonet {
-      description
-        "Data related to SONET/SDH interfaces";
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-transport-types@2017-08-16.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-transport-types@2017-08-16.yang
deleted file mode 100644 (file)
index 276f24b..0000000
+++ /dev/null
@@ -1,800 +0,0 @@
-module openconfig-transport-types {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/transport-types";
-
-  prefix "oc-opt-types";
-
-  import openconfig-platform-types { prefix oc-platform-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module contains general type definitions and identities
-    for optical transport models.";
-
-  oc-ext:openconfig-version "0.5.0";
-
-  revision "2017-08-16" {
-    description
-      "Added ODU Cn protocol type";
-    reference "0.5.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes and additions for terminal optics model";
-    reference "0.4.0";
-  }
-
-  // typedef statements
-
-  typedef frequency-type {
-    type uint64;
-    units "MHz";
-    description
-      "Type for optical spectrum frequency values";
-  }
-
-  typedef admin-state-type {
-    type enumeration {
-      enum ENABLED {
-        description
-        "Sets the channel admin state to enabled";
-      }
-      enum DISABLED {
-        description
-        "Sets the channel admin state to disabled";
-      }
-      enum MAINT {
-        description
-        "Sets the channel to maintenance / diagnostic mode";
-      }
-    }
-    description "Administrative state modes for
-    logical channels in the transponder model.";
-  }
-
-  typedef loopback-mode-type {
-    type enumeration {
-      enum NONE {
-        description
-          "No loopback is applied";
-      }
-      enum FACILITY {
-        description
-          "A loopback which directs traffic normally transmitted
-          on the port back to the device as if received on the same
-          port from an external source.";
-      }
-      enum TERMINAL {
-        description
-          "A loopback which directs traffic received from an external
-          source on the port back out the transmit side of the same
-          port.";
-      }
-    }
-    default NONE;
-    description
-      "Loopback modes for transponder logical channels";
-  }
-
-  // grouping statements
-
-  grouping avg-min-max-instant-stats-precision2-ps-nm {
-    description
-      "Common grouping for recording picosecond per nanometer
-      values with 2 decimal precision. Values include the
-      instantaneous, average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  grouping avg-min-max-instant-stats-precision2-ps {
-    description
-      "Common grouping for recording picosecond values with
-      2 decimal precision. Values include the instantaneous,
-      average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  grouping avg-min-max-instant-stats-precision2-ps2 {
-    description
-      "Common grouping for recording picosecond^2 values with
-      2 decimal precision. Values include the instantaneous,
-      average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  grouping avg-min-max-instant-stats-precision18-ber {
-    description
-      "Common grouping for recording bit error rate (BER) values
-      with 18 decimal precision. Note that decimal64 supports
-      values as small as i x 10^-18 where i is an integer. Values
-      smaller than this should be reported as 0 to inidicate error
-      free or near error free performance. Values include the
-      instantaneous, average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  // identity statements
-
-  identity TRIBUTARY_PROTOCOL_TYPE {
-    description
-      "Base identity for protocol framing used by tributary
-      signals.";
-  }
-
-  identity PROT_1GE {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "1G Ethernet protocol";
-  }
-
-  identity PROT_OC48 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OC48 protocol";
-  }
-
-  identity PROT_STM16 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "STM 16 protocol";
-  }
-
-  identity PROT_10GE_LAN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "10G Ethernet LAN protocol";
-  }
-
-  identity PROT_10GE_WAN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "10G Ethernet WAN protocol";
-  }
-
-  identity PROT_OC192 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OC 192 (9.6GB) port protocol";
-  }
-
-  identity PROT_STM64 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "STM 64 protocol";
-  }
-
-  identity PROT_OTU2 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 2 protocol";
-  }
-
-  identity PROT_OTU2E {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 2e protocol";
-  }
-
-  identity PROT_OTU1E {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 1e protocol";
-  }
-
-  identity PROT_ODU2 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 2 protocol";
-  }
-
-  identity PROT_ODU2E {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 2e protocol";
-  }
-
-  identity PROT_40GE {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "40G Ethernet port protocol";
-  }
-
-  identity PROT_OC768 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OC 768 protocol";
-  }
-
-  identity PROT_STM256 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "STM 256 protocol";
-  }
-
-  identity PROT_OTU3 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 3 protocol";
-  }
-
-  identity PROT_ODU3 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 3 protocol";
-  }
-
-  identity PROT_100GE {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "100G Ethernet protocol";
-  }
-
-  identity PROT_100G_MLG {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "100G MLG protocol";
-  }
-
-  identity PROT_OTU4 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU4 signal protocol (112G) for transporting
-    100GE signal";
-  }
-
-  identity PROT_OTUCN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU Cn protocol";
-  }
-
-  identity PROT_ODUCN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU Cn protocol";
-  }
-
-  identity PROT_ODU4 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 4 protocol";
-  }
-
-  identity TRANSCEIVER_FORM_FACTOR_TYPE {
-    description
-      "Base identity for identifying the type of pluggable optic
-      transceiver (i.e,. form factor) used in a port.";
-  }
-
-  identity CFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "C form-factor pluggable, that can support up to a
-      100 Gb/s signal with 10x10G or 4x25G physical channels";
-  }
-
-  identity CFP2 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "1/2 C form-factor pluggable, that can support up to a
-      200 Gb/s signal with 10x10G, 4x25G, or 8x25G physical
-      channels";
-  }
-
-  identity CFP2_ACO {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "CFP2 analog coherent optics transceiver, supporting
-      100 Gb, 200Gb, and 250 Gb/s signal.";
-  }
-
-  identity CFP4 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "1/4 C form-factor pluggable, that can support up to a
-      100 Gb/s signal with 10x10G or 4x25G physical channels";
-  }
-
-  identity QSFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "OriginalQuad Small Form-factor Pluggable transceiver that can
-      support 4x1G physical channels.  Not commonly used.";
-  }
-
-  identity QSFP_PLUS {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Quad Small Form-factor Pluggable transceiver that can support
-      up to 4x10G physical channels.";
-  }
-
-  identity QSFP28 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "QSFP pluggable optic with support for up to 4x28G physical
-      channels";
-  }
-
-  identity CPAK {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Cisco CPAK transceiver supporting 100 Gb/s.";
-  }
-
-  identity SFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Small form-factor pluggable transceiver supporting up to
-      10 Gb/s signal";
-  }
-
-  identity SFP_PLUS {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Enhanced small form-factor pluggable transceiver supporting
-      up to 16 Gb/s signals, including 10 GbE and OTU2";
-  }
-
-  identity XFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "10 Gigabit small form factor pluggable transceiver supporting
-      10 GbE and OTU2";
-  }
-
-  identity X2 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "10 Gigabit small form factor pluggable transceiver supporting
-      10 GbE using a XAUI inerface and 4 data channels.";
-  }
-
-  identity NON_PLUGGABLE {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Represents a port that does not require a pluggable optic,
-      e.g., with on-board optics like COBO";
-  }
-
-  identity OTHER {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Represents a transceiver form factor not otherwise listed";
-  }
-
-  identity FIBER_CONNECTOR_TYPE {
-    description
-      "Type of optical fiber connector";
-  }
-
-  identity SC_CONNECTOR {
-    base FIBER_CONNECTOR_TYPE;
-    description
-      "SC type fiber connector";
-  }
-
-  identity LC_CONNECTOR {
-    base FIBER_CONNECTOR_TYPE;
-    description
-      "LC type fiber connector";
-  }
-
-  identity MPO_CONNECTOR {
-    base FIBER_CONNECTOR_TYPE;
-    description
-      "MPO (multi-fiber push-on/pull-off) type fiber connector
-      1x12 fibers";
-  }
-
-  identity ETHERNET_PMD_TYPE {
-    description
-      "Ethernet compliance codes (PMD) supported by transceivers";
-  }
-
-  identity ETH_10GBASE_LRM {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_LRM";
-  }
-
-  identity ETH_10GBASE_LR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_LR";
-  }
-
-  identity ETH_10GBASE_ZR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_ZR";
-  }
-
-  identity ETH_10GBASE_ER {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_ER";
-  }
-
-  identity ETH_10GBASE_SR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_SR";
-  }
-
-  identity ETH_40GBASE_CR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_CR4";
-  }
-
-  identity ETH_40GBASE_SR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_SR4";
-  }
-
-  identity ETH_40GBASE_LR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_LR4";
-  }
-
-  identity ETH_40GBASE_ER4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_ER4";
-  }
-
-  identity ETH_40GBASE_PSM4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_PSM4";
-  }
-
-  identity ETH_4X10GBASE_LR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 4x10GBASE_LR";
-  }
-
-  identity ETH_4X10GBASE_SR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 4x10GBASE_SR";
-  }
-
-  identity ETH_100G_AOC {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100G_AOC";
-  }
-
-  identity ETH_100G_ACC {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100G_ACC";
-  }
-
-  identity ETH_100GBASE_SR10 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_SR10";
-  }
-
-  identity ETH_100GBASE_SR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_SR4";
-  }
-
-  identity ETH_100GBASE_LR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_LR4";
-  }
-
-  identity ETH_100GBASE_ER4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_ER4";
-  }
-
-  identity ETH_100GBASE_CWDM4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_CWDM4";
-  }
-
-  identity ETH_100GBASE_CLR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_CLR4";
-  }
-
-  identity ETH_100GBASE_PSM4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_PSM4";
-  }
-
-  identity ETH_100GBASE_CR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_CR4";
-  }
-
-  identity ETH_UNDEFINED {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: undefined";
-  }
-
-  identity SONET_APPLICATION_CODE {
-    description
-      "Supported SONET/SDH application codes";
-  }
-
-  identity VSR2000_3R2 {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: VSR2000_3R2";
-  }
-
-  identity VSR2000_3R3 {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: VSR2000_3R3";
-  }
-
-  identity VSR2000_3R5 {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: VSR2000_3R5";
-  }
-
-  identity SONET_UNDEFINED {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: undefined";
-  }
-
-  identity OTN_APPLICATION_CODE {
-    description
-      "Supported OTN application codes";
-  }
-
-  identity P1L1_2D1 {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: P1L1_2D1";
-  }
-
-  identity P1S1_2D2 {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: P1S1_2D2";
-  }
-
-  identity P1L1_2D2 {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: P1L1_2D2";
-  }
-
-  identity OTN_UNDEFINED {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: undefined";
-  }
-
-  identity TRIBUTARY_RATE_CLASS_TYPE {
-    description
-      "Rate of tributary signal _- identities will typically reflect
-      rounded bit rate.";
-  }
-
-  identity TRIB_RATE_1G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "1G tributary signal rate";
-  }
-
-  identity TRIB_RATE_2.5G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "2.5G tributary signal rate";
-  }
-
-  identity TRIB_RATE_10G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "10G tributary signal rate";
-  }
-
-  identity TRIB_RATE_40G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "40G tributary signal rate";
-  }
-
-  identity TRIB_RATE_100G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "100G tributary signal rate";
-  }
-
-  identity TRIB_RATE_150G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "150G tributary signal rate";
-  }
-
-  identity TRIB_RATE_200G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "200G tributary signal rate";
-  }
-
-  identity TRIB_RATE_250G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "250G tributary signal rate";
-  }
-
-  identity TRIB_RATE_300G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "300G tributary signal rate";
-  }
-
-  identity TRIB_RATE_400G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "400G tributary signal rate";
-  }
-
-  identity LOGICAL_ELEMENT_PROTOCOL_TYPE {
-    description
-      "Type of protocol framing used on the logical channel or
-      tributary";
-  }
-
-  identity PROT_ETHERNET {
-    base LOGICAL_ELEMENT_PROTOCOL_TYPE;
-    description
-      "Ethernet protocol framing";
-  }
-
-  identity PROT_OTN {
-    base LOGICAL_ELEMENT_PROTOCOL_TYPE;
-    description
-      "OTN protocol framing";
-  }
-
-  identity OPTICAL_CHANNEL {
-    base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Optical channels act as carriers for transport traffic
-      directed over a line system.  They are represented as
-      physical components in the physical inventory model.";
-  }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-types@2018-01-16.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-types@2018-01-16.yang
deleted file mode 100644 (file)
index 94eb65d..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-module openconfig-types {
-  yang-version "1";
-
-  namespace "http://openconfig.net/yang/openconfig-types";
-
-  prefix "oc-types";
-
-  // import statements
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization
-    "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "This module contains a set of general type definitions that
-    are used across OpenConfig models. It can be imported by modules
-    that make use of these types.";
-
-  oc-ext:openconfig-version "0.4.0";
-
-  revision "2018-01-16" {
-    description
-      "Add interval to min/max/avg stats; add percentage stat";
-    reference "0.4.0";
-  }
-
-  revision "2017-08-16" {
-    description
-      "Apply fix for ieetfloat32 length parameter";
-    reference "0.3.3";
-  }
-
-  revision "2017-01-13" {
-    description
-      "Add ADDRESS_FAMILY identity";
-    reference "0.3.2";
-  }
-
-  revision "2016-11-14" {
-    description
-      "Correct length of ieeefloat32";
-    reference "0.3.1";
-  }
-
-  revision "2016-11-11" {
-    description
-      "Additional types - ieeefloat32 and routing-password";
-    reference "0.3.0";
-  }
-
-  revision "2016-05-31" {
-    description
-      "OpenConfig public release";
-    reference "0.2.0";
-  }
-
-  typedef percentage {
-    type uint8 {
-      range "0..100";
-    }
-    description
-      "Integer indicating a percentage value";
-  }
-
-  typedef std-regexp {
-    type string;
-    description
-      "This type definition is a placeholder for a standard
-      definition of a regular expression that can be utilised in
-      OpenConfig models. Further discussion is required to
-      consider the type of regular expressions that are to be
-      supported. An initial proposal is POSIX compatible.";
-  }
-
-  typedef timeticks64 {
-    type uint64;
-    description
-     "This type is based on the timeticks type defined in
-     RFC 6991, but with 64-bit width.  It represents the time,
-     modulo 2^64, in hundredths of a second between two epochs.";
-    reference
-      "RFC 6991 - Common YANG Data Types";
-  }
-
-  typedef ieeefloat32 {
-    type binary {
-      length "4";
-    }
-    description
-      "An IEEE 32-bit floating point number. The format of this number
-      is of the form:
-        1-bit  sign
-        8-bit  exponent
-        23-bit fraction
-      The floating point value is calculated using:
-        (-1)**S * 2**(Exponent-127) * (1+Fraction)";
-  }
-
-  typedef routing-password {
-    type string;
-    description
-      "This type is indicative of a password that is used within
-      a routing protocol which can be returned in plain text to the
-      NMS by the local system. Such passwords are typically stored
-      as encrypted strings. Since the encryption used is generally
-      well known, it is possible to extract the original value from
-      the string - and hence this format is not considered secure.
-      Leaves specified with this type should not be modified by
-      the system, and should be returned to the end-user in plain
-      text. This type exists to differentiate passwords, which
-      may be sensitive, from other string leaves. It could, for
-      example, be used by the NMS to censor this data when
-      viewed by particular users.";
-  }
-
-  typedef stat-interval {
-    type uint64;
-    units nanoseconds;
-    description
-      "A time interval over which a set of statistics is computed.
-      A common usage is to report the interval over which
-      avg/min/max stats are computed and reported.";
-  }
-
-  grouping stat-interval-state {
-    description
-      "Reusable leaf definition for stats computation interval";
-
-    leaf interval {
-      type oc-types:stat-interval;
-      description
-        "The time interval over which the min/max/average statistics
-        are computed by the system.";
-    }
-  }
-
-  grouping avg-min-max-stats-precision1 {
-    description
-      "Common nodes for recording average, minimum, and
-      maximum values for a statistic.  These values all have
-      fraction-digits set to 1.";
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The maximum value of the statitic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-precision1 {
-    description
-      "Common grouping for recording an instantaneous statistic value
-      in addition to avg-min-max stats";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    uses avg-min-max-stats-precision1;
-  }
-
-  grouping avg-min-max-instant-stats-precision2-dB {
-    description
-      "Common grouping for recording dB values with 2 decimal
-      precision. Values include the instantaneous, average,
-      minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-precision2-dBm {
-    description
-      "Common grouping for recording dBm values with 2 decimal
-      precision. Values include the instantaneous, average,
-      minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-precision2-mA {
-    description
-      "Common grouping for recording mA values with 2 decimal
-      precision. Values include the instantaneous, average,
-      minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-pct {
-    description
-      "Common grouping for percentage statistics.";
-
-    leaf instant {
-      type oc-types:percentage;
-      description
-        "The instantaneous percentage value.";
-    }
-
-    leaf avg {
-      type oc-types:percentage;
-      description
-        "The arithmetic mean value of the percentage measure of the
-        statistic over the sampling period.";
-    }
-
-    leaf min {
-      type oc-types:percentage;
-      description
-        "The minimum value of the percentage measure of the
-        statistic over the sampling period";
-    }
-
-    leaf max {
-      type oc-types:percentage;
-      description
-        "The maximum value of the percentage measure of the
-        statistic over the sampling period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  identity ADDRESS_FAMILY {
-    description
-      "A base identity for all address families";
-  }
-
-  identity IPV4 {
-    base ADDRESS_FAMILY;
-    description
-      "The IPv4 address family";
-  }
-
-  identity IPV6 {
-    base ADDRESS_FAMILY;
-    description
-      "The IPv6 address family";
-  }
-
-  identity MPLS {
-    base ADDRESS_FAMILY;
-    description
-      "The MPLS address family";
-  }
-
-  identity L2_ETHERNET {
-    base ADDRESS_FAMILY;
-    description
-      "The 802.3 Ethernet address family";
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-yang-types@2017-07-30.yang b/tests/honeynode/2.2.1/honeynode-plugin-api/src/main/yang/openconfig/openconfig-yang-types@2017-07-30.yang
deleted file mode 100644 (file)
index 749fac4..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-module openconfig-yang-types {
-
-  yang-version "1";
-  namespace "http://openconfig.net/yang/types/yang";
-  prefix "oc-yang";
-
-  import openconfig-extensions { prefix "oc-ext"; }
-
-  organization
-    "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module contains a set of extension types to the
-    YANG builtin types that are used across multiple
-    OpenConfig models.
-
-    Portions of this code were derived from IETF RFC 6021.
-    Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "0.1.2";
-
-  revision 2017-07-30 {
-    description
-      "Fixed unprintable character";
-    reference "0.1.2";
-  }
-
-  revision 2017-04-03 {
-    description
-      "Update copyright notice.";
-    reference "0.1.1";
-  }
-
-  revision 2017-01-26 {
-    description
-      "Initial module for inet types";
-    reference "0.1.0";
-  }
-
-  typedef dotted-quad {
-    type string {
-      pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|'       +
-              '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' +
-              '[0-9]|25[0-5])$';
-    }
-    description
-      "An unsigned 32-bit integer expressed as a dotted quad. The
-      format is four octets written as decimal numbers separated
-      with a period character.";
-  }
-
-  typedef hex-string {
-    type string {
-      pattern '^[0-9a-fA-F]*$';
-    }
-    description
-      "A string consisting of a hexadecimal characters.";
-  }
-
-  typedef counter32 {
-    type uint32;
-    description
-
-      "A 32-bit counter. A counter value is a monotonically increasing
-      value which is used to express a count of a number of
-      occurrences of a particular event or entity. When the counter
-      reaches its maximum value, in this case 2^32-1, it wraps to 0.
-
-      Discontinuities in the counter are generally triggered only when
-      the counter is reset to zero.";
-  }
-
-  typedef counter64 {
-    type uint64;
-    description
-
-      "A 64-bit counter. A counter value is a monotonically increasing
-      value which is used to express a count of a number of
-      occurrences of a particular event or entity. When a counter64
-      reaches its maximum value, 2^64-1, it loops to zero.
-      Discontinuities in a counter are generally triggered only when
-      the counter is reset to zero, through operator or system
-      intervention.";
-  }
-
-  typedef date-and-time {
-    type string {
-      pattern
-        '^[0-9]{4}\-[0-9]{2}\-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}' +
-        '(\.[0-9]+)?Z[+-][0-9]{2}:[0-9]{2}$';
-    }
-    description
-      "A date and time, expressed in the format described in RFC3339.
-      That is to say:
-
-      YYYY-MM-DDTHH:MM:SSZ+-hh:mm
-
-      where YYYY is the year, MM is the month expressed as a two-digit
-      month (zero padding if required), DD is the day of the month,
-      expressed as a two digit value. T is the literal character 'T',
-      HH is the hour of the day expressed as a two digit number, using
-      the 24-hour clock, MM is the minute of the hour expressed as a
-      two digit number. Z is the literal character 'Z', followed by a
-      timezone offset expressed in hours (hh) and minutes (mm), both
-      expressed as two digit numbers. The time offset is specified as
-      a positive or negative offset to UTC using the '+' or '-'
-      character preceding the offset.
-
-      Optionally, fractional seconds can be expressed after the minute
-      of the hour as a decimal number of unspecified precision
-      reflecting fractions of a second.";
-    reference
-      "RFC3339 - Date and Time on the Internet: Timestamps";
-  }
-
-  typedef gauge64 {
-    type uint64;
-    description
-      "A gauge value may increase or decrease - and reflects a value
-      at a particular point in time. If the value of the variable
-      being modeled using the gauge exceeds its maximum - 2^64-1 in
-      this case - the gauge is set to its maximum value.";
-  }
-
-  typedef phys-address {
-    type string {
-      pattern '^([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?$';
-    }
-    description
-      "A physical layer address, expressed as a series of pairs of
-      hexadecimal digits.";
-  }
-
-  typedef mac-address {
-    type string {
-      pattern '^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$';
-    }
-    description
-      "An IEEE 802 MAC address";
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/asciidoc/Readme.adoc b/tests/honeynode/2.2.1/honeynode-plugin-impl/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index 5c2a93d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-= honeynode-plugin-impl
-
-Overview of honeynode-plugin-impl
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/pom.xml b/tests/honeynode/2.2.1/honeynode-plugin-impl/pom.xml
deleted file mode 100644 (file)
index de602b9..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (c) 2015 Cisco and/or its affiliates. Licensed under the Apache
-    License, Version 2.0 (the "License"); you may not use this file except in
-    compliance with the License. You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software distributed
-    under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
-    OR CONDITIONS OF ANY KIND, either express or implied. See the License for
-    the specific language governing permissions and limitations under the License. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>io.fd.honeycomb.common</groupId>
-        <artifactId>impl-parent</artifactId>
-        <version>1.19.04</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>io.fd.honeycomb.transportpce</groupId>
-    <artifactId>honeynode-plugin-impl</artifactId>
-    <name>honeynode-plugin-impl</name>
-    <packaging>bundle</packaging>
-    <properties>
-        <honeycomb.infra.version>1.19.04</honeycomb.infra.version>
-        <maven.javadoc.skip>true</maven.javadoc.skip>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-    </properties>
-    <dependencies>
-        <!-- Transportpce -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>honeynode-common</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>honeynode-plugin-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>minimal-distribution-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <!-- Honeycomb infrastructure -->
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>translate-api</artifactId>
-            <version>${honeycomb.infra.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>translate-spi</artifactId>
-            <version>${honeycomb.infra.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>cfg-init</artifactId>
-            <version>${honeycomb.infra.version}</version>
-        </dependency>
-        <!-- DI -->
-        <dependency>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>net.jmob</groupId>
-            <artifactId>guice.conf</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.inject.extensions</groupId>
-            <artifactId>guice-multibindings</artifactId>
-        </dependency>
-        <!-- Testing Dependencies -->
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <forkCount>0</forkCount>
-                    <argLine>-Xmx4096m -XX:MaxPermSize=1024m</argLine>
-                </configuration>
-            </plugin>
-        </plugins>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-clean-plugin</artifactId>
-                    <version>3.1.0</version>
-                    <configuration>
-                        <filesets>
-                            <fileset>
-                                <directory>src/main/resources/honeycomb-minimal-resources/config/yang</directory>
-                                <includes>
-                                    <include>**</include>
-                                </includes>
-                            </fileset>
-                        </filesets>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <artifactId>maven-resources-plugin</artifactId>
-                    <version>3.1.0</version>
-                    <executions>
-                        <execution>
-                            <id>copy-resources</id>
-                            <!-- here the phase you need -->
-                            <phase>validate</phase>
-                            <goals>
-                                <goal>copy-resources</goal>
-                            </goals>
-                            <configuration>
-                                <outputDirectory>${basedir}/src/main/resources/honeycomb-minimal-resources/config/yang</outputDirectory>
-                                <resources>
-                                    <resource>
-                                        <directory>../honeynode-plugin-api/src/main/yang</directory>
-                                    </resource>
-                                </resources>
-                            </configuration>
-                        </execution>
-                    </executions>
-                </plugin>
-                <!--This plugin's configuration is used to store Eclipse m2e settings
-                    only. It has no influence on the Maven build itself. -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.apache.maven.plugins
-                                        </groupId>
-                                        <artifactId>
-                                            maven-checkstyle-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [3.0.0,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.codehaus.gmavenplus
-                                        </groupId>
-                                        <artifactId>
-                                            gmavenplus-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [1.6.2,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.apache.maven.plugins
-                                        </groupId>
-                                        <artifactId>
-                                            maven-dependency-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [2.10,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>
-                                                copy-dependencies
-                                            </goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceBindingDataBrokerProvider.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceBindingDataBrokerProvider.java
deleted file mode 100644 (file)
index 562e0b8..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.binding.init.ProviderTrait;
-
-
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataBrokerAdapter;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-
-
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public final class DeviceBindingDataBrokerProvider  extends ProviderTrait<DataBroker> {
-
-    @Inject
-    @Named(DeviceModule.DEVICE_DATABROKER)
-    private DOMDataBroker domDataBroker;
-    @Inject
-    private BindingToNormalizedNodeCodec mappingService;
-
-    @Override
-    protected BindingDOMDataBrokerAdapter create() {
-        return new BindingDOMDataBrokerAdapter(domDataBroker, mappingService);
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceModule.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceModule.java
deleted file mode 100644 (file)
index 6d7eff3..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device;
-
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.inject.PrivateModule;
-import com.google.inject.Singleton;
-import com.google.inject.name.Names;
-
-import io.fd.honeycomb.infra.distro.data.DataStoreProvider;
-import io.fd.honeycomb.infra.distro.data.InmemoryDOMDataBrokerProvider;
-import io.fd.honeycomb.transportpce.device.configuration.DeviceConfigurationModule;
-import io.fd.honeycomb.transportpce.device.configuration.NetconfConfigurationModule;
-import io.fd.honeycomb.transportpce.device.configuration.OcPlatformConfigurationModule;
-import io.fd.honeycomb.transportpce.device.configuration.OcTerminalDeviceConfigurationModule;
-import io.fd.honeycomb.transportpce.device.configuration.PmConfigurationModule;
-
-/**
- * Module class instantiating device-plugin plugin components.
- */
-
-public final class DeviceModule extends PrivateModule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceModule.class);
-    public static final String DEVICE_DATABROKER = "device-databroker";
-    public static final String DEVICE_DATABROKER_NONPERSIST = "device-databroker-nopersist";
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Honeynode Modules");
-        // Create inmemory config data store for DEVICE
-        bind(InMemoryDOMDataStore.class).annotatedWith(Names.named(InmemoryDOMDataBrokerProvider.CONFIG))
-            .toProvider(new DataStoreProvider(InmemoryDOMDataBrokerProvider.CONFIG, org.opendaylight.mdsal.common.api.LogicalDatastoreType.CONFIGURATION))
-            .in(Singleton.class);
-        // Create inmemory operational data store for DEVICE
-        bind(InMemoryDOMDataStore.class).annotatedWith(Names.named(InmemoryDOMDataBrokerProvider.OPERATIONAL))
-            .toProvider(new DataStoreProvider(InmemoryDOMDataBrokerProvider.OPERATIONAL, org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL))
-            .in(Singleton.class);
-
-        // Wrap datastores as DOMDataBroker
-        // TODO make executor service configurable
-        bind(DOMDataBroker.class).annotatedWith(Names.named(DEVICE_DATABROKER))
-            .toProvider(InmemoryDOMDataBrokerProvider.class).in(Singleton.class);
-        expose(DOMDataBroker.class).annotatedWith(Names.named(DEVICE_DATABROKER));
-
-        // Wrap DOMDataBroker as BA data broker
-        bind(DataBroker.class).annotatedWith(Names.named(DEVICE_DATABROKER)).toProvider(DeviceBindingDataBrokerProvider.class)
-            .in(Singleton.class);
-        expose(DataBroker.class).annotatedWith(Names.named(DEVICE_DATABROKER));
-
-        //install device configuration module
-        install(new DeviceConfigurationModule());
-
-        //install pm configuration module
-        install(new PmConfigurationModule());
-        LOG.info("Device Module initialized !");
-
-        // install oc-platform configuration module
-        install(new OcPlatformConfigurationModule());
-        LOG.info("oc-platform-configuration Module initialized !");
-
-        // install oc-terminal-device configuration module
-        install(new OcTerminalDeviceConfigurationModule());
-        LOG.info("oc-terminal-device Module initialized !");
-
-        //install netconf configuration module
-        install(new NetconfConfigurationModule());
-        LOG.info("Netconf Module initialized !");
-    }
-
-}
-
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceNotificationModule.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceNotificationModule.java
deleted file mode 100644 (file)
index 418ddc4..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.multibindings.Multibinder;
-
-import io.fd.honeycomb.notification.ManagedNotificationProducer;
-import io.fd.honeycomb.transportpce.device.notifications.DeviceNotificationProducer;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public class DeviceNotificationModule extends AbstractModule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceNotificationModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Honeynode Notification Module");
-        final Multibinder<ManagedNotificationProducer> notifFactoryBinder = Multibinder.newSetBinder(binder(),
-                ManagedNotificationProducer.class);
-        notifFactoryBinder.addBinding().to(DeviceNotificationProducer.class);
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceReaderModule.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceReaderModule.java
deleted file mode 100644 (file)
index d76621b..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.multibindings.Multibinder;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.transportpce.device.read.DeviceReaderFactory;
-import io.fd.honeycomb.transportpce.device.read.NetconfStateReaderFactory;
-import io.fd.honeycomb.transportpce.device.read.OcPlatformReaderFactory;
-import io.fd.honeycomb.transportpce.device.read.OcTerminalDeviceReaderFactory;
-import io.fd.honeycomb.transportpce.device.read.PmReaderFactory;
-
-/**
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public class DeviceReaderModule extends AbstractModule {
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceReaderModule.class);
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see com.google.inject.AbstractModule#configure()
-     */
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Device, PM, Netconf, OcPlatform and OcTerminalDevice Readers Module");
-        final Multibinder<ReaderFactory> binder = Multibinder.newSetBinder(binder(), ReaderFactory.class);
-        binder.addBinding().to(NetconfStateReaderFactory.class);
-        binder.addBinding().to(DeviceReaderFactory.class);
-        binder.addBinding().to(PmReaderFactory.class);
-        binder.addBinding().to(OcPlatformReaderFactory.class);
-        binder.addBinding().to(OcTerminalDeviceReaderFactory.class);
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceRpcModule.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceRpcModule.java
deleted file mode 100644 (file)
index 66cc761..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.multibindings.Multibinder;
-
-import io.fd.honeycomb.rpc.RpcService;
-import io.fd.honeycomb.transportpce.device.rpcs.ConnectionPortTrailService;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public class DeviceRpcModule extends AbstractModule {
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceRpcModule.class);
-
-    /* (non-Javadoc)
-     * @see com.google.inject.AbstractModule#configure()
-     */
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Honeynode Rpcs Module");
-        // TODO Auto-generated method stub
-        final Multibinder<RpcService> rpcsBinder = Multibinder.newSetBinder(binder(), RpcService.class);
-        rpcsBinder.addBinding().to(ConnectionPortTrailService.class);
-    }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceWriterModule.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/DeviceWriterModule.java
deleted file mode 100644 (file)
index 727f508..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.multibindings.Multibinder;
-
-import io.fd.honeycomb.translate.write.WriterFactory;
-import io.fd.honeycomb.transportpce.device.write.DeviceWriterFactory;
-import io.fd.honeycomb.transportpce.device.write.OcPlatformWriterFactory;
-import io.fd.honeycomb.transportpce.device.write.OcTerminalDeviceWriterFactory;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public class DeviceWriterModule extends AbstractModule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceWriterModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Honeynode Writers Module");
-        final Multibinder<WriterFactory> writerFactoryBinder = Multibinder.newSetBinder(binder(), WriterFactory.class);
-        writerFactoryBinder.addBinding().to(DeviceWriterFactory.class);
-        writerFactoryBinder.addBinding().to(OcPlatformWriterFactory.class);
-        writerFactoryBinder.addBinding().to(OcTerminalDeviceWriterFactory.class);
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/DeviceConfiguration.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/DeviceConfiguration.java
deleted file mode 100644 (file)
index 582b172..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import java.io.File;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultDeviceFactory;
-import io.fd.honeycomb.transportpce.device.tools.ExtractXMLTag;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-/**
- * Class containing static configuration for honeynode-plugin module<br>
- * <p/>
- * Further documentation for the configuration injection can be found at:
- * https://github.com/yyvess/gconf
- */
-@BindConfig(value = "honeycomb", syntax = Syntax.JSON)
-public final class DeviceConfiguration {
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceConfiguration.class);
-    private static final String DEVICE_XSL = "device/OperToConfig.xsl";
-    private static final String CONFIG_XSL = "device/config.xsl";
-
-    public String config_device;
-    public OrgOpenroadmDevice oper_device;
-    private DataStoreContext dataStoreContextUtil;
-    private DefaultDeviceFactory defaultDeviceFactory;
-    private ClassLoader classLoader;
-    private Boolean register;
-
-    @InjectConfig("persisted-config-path")
-    public String peristConfigPath;
-
-    @InjectConfig("netconf-initial-config-xml")
-    public String DEVICE_DATA_SAMPLE_OPER_XML;
-
-    public DeviceConfiguration() {
-        classLoader = Thread.currentThread().getContextClassLoader();
-        dataStoreContextUtil = new DataStoreContextImpl();
-        defaultDeviceFactory = new DefaultDeviceFactory();
-        register = false;
-    }
-
-    public String getConfigDevice() {
-        return operToConfig();
-    }
-
-    public String getPeristConfigPath() {
-        return peristConfigPath;
-    }
-
-    public String getNetconfInitialConfigXml() {
-        return DEVICE_DATA_SAMPLE_OPER_XML;
-    }
-
-    public Boolean getRegister() {
-        return register;
-    }
-
-    public void setRegister(Boolean reg) {
-        this.register = reg;
-    }
-
-    public OrgOpenroadmDevice getDataDevice() {
-        OrgOpenroadmDevice result = null;
-        File device_data = new File(classLoader.getResource(DEVICE_DATA_SAMPLE_OPER_XML).getFile());
-        result = defaultDeviceFactory.createDefaultDevice(dataStoreContextUtil, device_data);
-        if (result != null) {
-            LOG.info("result info : {}", result.getInfo().getNodeId());
-        } else {
-            LOG.warn("Failed to get Device data !");
-        }
-        return result;
-    }
-
-    public OrgOpenroadmDevice getDeviceFromXML(String xml) {
-        String config_result = null;
-        LOG.info("process to transform xml file to config data");
-        TransformerFactory factory = TransformerFactory.newInstance();
-        Source xslt = new StreamSource(new File(classLoader.getResource(CONFIG_XSL).getFile()));
-        Transformer transformer;
-        Source text;
-        StringWriter device_config = new StringWriter();
-        OrgOpenroadmDevice result = null;
-        try {
-            LOG.info("transforming xml string to config device ...");
-            transformer = factory.newTransformer(xslt);
-            text = new StreamSource(new StringReader(xml));
-            transformer.transform(text, new StreamResult(device_config));
-            config_result = device_config.toString();
-            // LOG.info("config_result: {}",config_result);
-            result = defaultDeviceFactory.createDefaultDevice(dataStoreContextUtil, config_result);
-            if (result != null) {
-                LOG.info("result info : {}", result.getInfo().getNodeId());
-            }
-        } catch (TransformerException e) {
-            LOG.error("Transformer failed ");
-        }
-
-        return result;
-    }
-
-    /**
-     * Convert data xml to config xml device.
-     *
-     * @return String result
-     */
-    public String operToConfig() {
-        String result = null;
-        LOG.info("process to transform xml file {}",DEVICE_DATA_SAMPLE_OPER_XML);
-        TransformerFactory factory = TransformerFactory.newInstance();
-        Source xslt = new StreamSource(new File(classLoader.getResource(DEVICE_XSL).getFile()));
-        StringWriter tmpwriter = new StringWriter();
-        try {
-            LOG.info("transforming xml data to config device ...");
-            Transformer transformer = factory.newTransformer(xslt);
-            String extract_data = ExtractXMLTag.extractTagElement(DEVICE_DATA_SAMPLE_OPER_XML, "org-openroadm-device",
-                    "http://org/openroadm/device");
-            Source text = new StreamSource(new StringReader(extract_data));
-            LOG.info("text avant transform = {}", text.toString());
-            transformer.transform(text, new StreamResult(tmpwriter));
-            result = tmpwriter.toString();
-        } catch (TransformerException e) {
-            LOG.error("Transformer failed ", e);
-        }
-        return result;
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/DeviceConfigurationModule.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/DeviceConfigurationModule.java
deleted file mode 100644 (file)
index 728d8fa..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import com.google.inject.AbstractModule;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-/**
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public final class DeviceConfigurationModule extends AbstractModule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceConfigurationModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Device Readers Module");
-        install(ConfigurationModule.create());
-        requestInjection(DeviceConfiguration.class);
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/NetconfConfiguration.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/NetconfConfiguration.java
deleted file mode 100644 (file)
index bba6537..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import java.io.File;
-
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.Netconf;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.Streams;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultNetconfFactory;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-/**
- * Class containing static configuration for honeynode-plugin module<br>
- * <p/>
- * Further documentation for the configuration injection can be found at:
- * https://github.com/yyvess/gconf
- */
-@BindConfig(value = "honeycomb", syntax = Syntax.JSON)
-public final class NetconfConfiguration {
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfConfiguration.class);
-
-    private DataStoreContext dataStoreContextUtil;
-    private DefaultNetconfFactory defaultNetconf;
-    private ClassLoader classLoader;
-
-    @InjectConfig("netconf-initial-config-xml")
-    public String NETCONF_DATA_SAMPLE_OPER_XML;
-
-    public NetconfConfiguration() {
-        classLoader = Thread.currentThread().getContextClassLoader();
-        dataStoreContextUtil = new DataStoreContextImpl();
-        defaultNetconf = new DefaultNetconfFactory();
-    }
-
-    public String getNetconfInitialXml() {
-        return NETCONF_DATA_SAMPLE_OPER_XML;
-    }
-
-    public Streams getNetconfStreamsData() {
-        Streams result = null;
-        File netconf_data = new File(classLoader.getResource(NETCONF_DATA_SAMPLE_OPER_XML).getFile());
-        Netconf netconf = defaultNetconf.createDefaultNetconf(dataStoreContextUtil, netconf_data);
-        if (netconf != null) {
-            try {
-                result = netconf.getStreams();
-                LOG.info("netconf streams result : {}", netconf.getStreams());
-            } catch (NullPointerException e) {
-                LOG.error("failed to get Netconf Streams");
-            }
-        } else {
-            LOG.warn("failed to get Netconf Streams");
-        }
-        return result;
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/NetconfConfigurationModule.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/NetconfConfigurationModule.java
deleted file mode 100644 (file)
index 1feec55..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import com.google.inject.AbstractModule;
-
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public final class NetconfConfigurationModule extends AbstractModule {
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfConfigurationModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Netconf Readers Module");
-        install(ConfigurationModule.create());
-        requestInjection(NetconfConfiguration.class);
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcPlatformConfiguration.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcPlatformConfiguration.java
deleted file mode 100644 (file)
index 0588352..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import java.io.File;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130.platform.component.top.Components;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultOcPlatformFactory;
-import io.fd.honeycomb.transportpce.device.tools.ExtractXMLTag;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-/**
- * Class containing static configuration for honeynode-plugin module<br>
- * <p/>
- * Further documentation for the configuration injection can be found at:
- * https://github.com/yyvess/gconf
- */
-@BindConfig(value = "honeycomb", syntax = Syntax.JSON)
-public final class OcPlatformConfiguration {
-    private static final Logger LOG = LoggerFactory.getLogger(OcPlatformConfiguration.class);
-    private static final String OC_PLATFORM_XSL = "device/ocplatformOperToConfig.xsl";
-
-    private DataStoreContext dataStoreContextUtil;
-    private DefaultOcPlatformFactory defaultOcPlatformFactory;
-    private ClassLoader classLoader;
-    private Boolean register;
-    public String config_components;
-    public Components oper_components;
-
-    @InjectConfig("netconf-initial-config-xml")
-    public String OC_PLATFORM_DATA_SAMPLE_OPER_XML;
-
-    public OcPlatformConfiguration() {
-        LOG.info("initializing OcPlatformConfiguration");
-        classLoader = Thread.currentThread().getContextClassLoader();
-        dataStoreContextUtil = new DataStoreContextImpl();
-        defaultOcPlatformFactory = new DefaultOcPlatformFactory();
-        register = false;
-    }
-
-    public String getNetconfInitialOcPlatformXml() {
-        return OC_PLATFORM_DATA_SAMPLE_OPER_XML;
-    }
-
-    public String getConfigComponents() {
-        return operToConfig();
-    }
-
-    public Boolean getRegister() {
-        return register;
-    }
-
-    public void setRegister(Boolean reg) {
-        this.register = reg;
-    }
-
-    public Components getDataComponents() {
-        Components result = null;
-        File components_data = new File(classLoader.getResource(OC_PLATFORM_DATA_SAMPLE_OPER_XML).getFile());
-        result = defaultOcPlatformFactory.createDefaultComponents(dataStoreContextUtil, components_data);
-        if (result != null) {
-            LOG.info("reading initial data.");
-        } else {
-            LOG.warn("failed to get OC Platform Data");
-        }
-        return result;
-    }
-
-    public Components getComponentsFromXML(String xml) {
-        String config_result = null;
-        LOG.info("process to transform xml file to config data");
-        LOG.info("xml={}", xml);
-        Components result = null;
-        LOG.info("transforming xml string to config components ...");
-        config_result = xml.toString();
-        // LOG.info("config_result: {}",config_result);
-        result = defaultOcPlatformFactory.createDefaultComponents(dataStoreContextUtil, config_result);
-        if (result != null) {
-            LOG.info("result : {}", result);
-        }
-        return result;
-    }
-
-    /**
-     * Convert data xml to config xml device.
-     *
-     * @return String result
-     */
-    public String operToConfig() {
-        String result = null;
-        LOG.info("process to transform oper xml file to config xml file ");
-        TransformerFactory factory = TransformerFactory.newInstance();
-        Source xslt = new StreamSource(new File(classLoader.getResource(OC_PLATFORM_XSL).getFile()));
-        Transformer transformer;
-        Source text;
-        StringWriter tmpwriter = new StringWriter();
-        try {
-            LOG.info("transforming xml data to config components ...");
-            transformer = factory.newTransformer(xslt);
-            String extract_data = ExtractXMLTag.extractTagElement(OC_PLATFORM_DATA_SAMPLE_OPER_XML, "components",
-                    "http://openconfig.net/yang/platform");
-            text = new StreamSource(new StringReader(extract_data));
-            LOG.info("text avant transform = {}", text.toString());
-            transformer.transform(text, new StreamResult(tmpwriter));
-            result = tmpwriter.toString();
-            LOG.info(result);
-        } catch (TransformerException e) {
-            LOG.error("Transformer failed ");
-        }
-        return result;
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcPlatformConfigurationModule.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcPlatformConfigurationModule.java
deleted file mode 100644 (file)
index a8102b5..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import com.google.inject.AbstractModule;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-/**
- * @authors Gilles THOUENON and Christophe BETOULE ( gilles.thouenon@orange.com, christophe.betoule@orange.com )
- */
-public final class OcPlatformConfigurationModule extends AbstractModule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(OcPlatformConfigurationModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing openconfig platform Readers Module");
-        install(ConfigurationModule.create());
-        requestInjection(OcPlatformConfiguration.class);
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcTerminalDeviceConfiguration.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcTerminalDeviceConfiguration.java
deleted file mode 100644 (file)
index e452ac4..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import java.io.File;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.terminal.device.rev170708.terminal.device.top.TerminalDevice;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultOcTerminalDeviceFactory;
-import io.fd.honeycomb.transportpce.device.tools.ExtractXMLTag;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-/**
- * Class containing static configuration for honeynode-plugin module<br>
- * <p/>
- * Further documentation for the configuration injection can be found at:
- * https://github.com/yyvess/gconf
- */
-@BindConfig(value = "honeycomb", syntax = Syntax.JSON)
-public final class OcTerminalDeviceConfiguration {
-    private static final Logger LOG = LoggerFactory.getLogger(OcTerminalDeviceConfiguration.class);
-    private static final String OC_TERMINAL_DEVICE_XSL = "device/octerminaldeviceOperToConfig.xsl";
-
-    private DataStoreContext dataStoreContextUtil;
-    private DefaultOcTerminalDeviceFactory defaultOcTermminalDeviceFactory;
-    private ClassLoader classLoader;
-    private Boolean register;
-    public String config_terminalDevice;
-    public TerminalDevice oper_terminalDevice;
-
-    @InjectConfig("netconf-initial-config-xml")
-    public String OC_TERMINAL_DEVICE_DATA_SAMPLE_OPER_XML;
-
-    public OcTerminalDeviceConfiguration() {
-        LOG.info("initializing OcTerminalDeviceConfiguration");
-        classLoader = Thread.currentThread().getContextClassLoader();
-        dataStoreContextUtil = new DataStoreContextImpl();
-        defaultOcTermminalDeviceFactory = new DefaultOcTerminalDeviceFactory();
-        register = false;
-    }
-
-    public String getNetconfInitialOcTerminalDeviceXml() {
-        return OC_TERMINAL_DEVICE_DATA_SAMPLE_OPER_XML;
-    }
-
-    public String getConfigTerminalDevice() {
-        return operToConfig();
-    }
-
-    public Boolean getRegister() {
-        return register;
-    }
-
-    public void setRegister(Boolean reg) {
-        this.register = reg;
-    }
-
-    public TerminalDevice getDataTerminalDevice() {
-        TerminalDevice result = null;
-        File terminalDevice_data = new File(classLoader.getResource(OC_TERMINAL_DEVICE_DATA_SAMPLE_OPER_XML).getFile());
-        result = defaultOcTermminalDeviceFactory.createDefaultTerminalDevice(dataStoreContextUtil, terminalDevice_data);
-        if (result != null) {
-            LOG.info("reading initial data.");
-        } else {
-            LOG.warn("failed to get OC Platform Data");
-        }
-        return result;
-    }
-
-    public TerminalDevice getTerminalDeviceFromXML(String xml) {
-        String config_result = null;
-        LOG.info("process to transform xml file to config data");
-        TerminalDevice result = null;
-        LOG.info("transforming xml string to config components ...");
-        config_result = xml.toString();
-        // LOG.info("config_result: {}",config_result);
-        result = defaultOcTermminalDeviceFactory.createDefaultTerminalDevice(dataStoreContextUtil, config_result);
-        if (result != null) {
-            LOG.info("result : {}", result);
-        }
-        return result;
-    }
-
-    /**
-     * Convert data xml to config xml terminal-device.
-     *
-     * @return String result
-     */
-    public String operToConfig() {
-        String result = null;
-        LOG.info("process to transform oper xml file to config xml file for terminal-device");
-        TransformerFactory factory = TransformerFactory.newInstance();
-        Source xslt = new StreamSource(new File(classLoader.getResource(OC_TERMINAL_DEVICE_XSL).getFile()));
-        Transformer transformer;
-        Source text;
-        StringWriter tmpwriter = new StringWriter();
-        try {
-            LOG.info("transforming xml data to config terminal-device ...");
-            transformer = factory.newTransformer(xslt);
-            String extract_data = ExtractXMLTag.extractTagElement(OC_TERMINAL_DEVICE_DATA_SAMPLE_OPER_XML,
-                    "terminal-device", "http://openconfig.net/yang/terminal-device");
-            text = new StreamSource(new StringReader(extract_data));
-            LOG.info("text avant transform = {}", text.toString());
-            transformer.transform(text, new StreamResult(tmpwriter));
-            result = tmpwriter.toString();
-            LOG.info(result);
-        } catch (TransformerException e) {
-            LOG.error("Transformer failed ");
-        }
-        return result;
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcTerminalDeviceConfigurationModule.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/OcTerminalDeviceConfigurationModule.java
deleted file mode 100644 (file)
index f4dd40f..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import com.google.inject.AbstractModule;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-/**
- * @authors Gilles THOUENON and Christophe BETOULE ( gilles.thouenon@orange.com, christophe.betoule@orange.com )
- */
-public final class OcTerminalDeviceConfigurationModule extends AbstractModule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(OcTerminalDeviceConfigurationModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing openconfig-terminal-device Readers Module");
-        install(ConfigurationModule.create());
-        requestInjection(OcTerminalDeviceConfiguration.class);
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/PmConfiguration.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/PmConfiguration.java
deleted file mode 100644 (file)
index 9baab3f..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import java.io.File;
-
-import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.CurrentPmList;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultPmListFactory;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-/**
- * Class containing static configuration for honeynode-plugin module<br>
- * <p/>
- * Further documentation for the configuration injection can be found at:
- * https://github.com/yyvess/gconf
- */
-@BindConfig(value = "honeycomb", syntax = Syntax.JSON)
-public final class PmConfiguration {
-    private static final Logger LOG = LoggerFactory.getLogger(PmConfiguration.class);
-
-    private DataStoreContext dataStoreContextUtil;
-    private DefaultPmListFactory defaultPmListFactory;
-    private ClassLoader classLoader;
-
-    @InjectConfig("netconf-initial-config-xml")
-    public String PM_DATA_SAMPLE_OPER_XML;
-
-    public PmConfiguration() {
-        classLoader = Thread.currentThread().getContextClassLoader();
-        dataStoreContextUtil = new DataStoreContextImpl();
-        defaultPmListFactory = new DefaultPmListFactory();
-    }
-
-    public String getNetconfInitialPmXml() {
-        return PM_DATA_SAMPLE_OPER_XML;
-    }
-
-    public CurrentPmList getDataPm() {
-        CurrentPmList result = null;
-        File pm_list_data = new File(classLoader.getResource(PM_DATA_SAMPLE_OPER_XML).getFile());
-        result = defaultPmListFactory.createDefaultPmList(dataStoreContextUtil, pm_list_data);
-        if (result != null) {
-            LOG.info("result pm list size : {}", result.getCurrentPmEntry().size());
-        } else {
-            LOG.warn("Failed to get PM info !");
-        }
-        return result;
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/PmConfigurationModule.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/configuration/PmConfigurationModule.java
deleted file mode 100644 (file)
index f9d8ee0..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.configuration;
-
-import com.google.inject.AbstractModule;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-/**
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public final class PmConfigurationModule extends AbstractModule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(PmConfigurationModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Initializing Pm Readers Module");
-        install(ConfigurationModule.create());
-        requestInjection(PmConfiguration.class);
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/notifications/DeviceNotificationProducer.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/notifications/DeviceNotificationProducer.java
deleted file mode 100644 (file)
index c2e507a..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.notifications;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-
-import io.fd.honeycomb.notification.ManagedNotificationProducer;
-import io.fd.honeycomb.notification.NotificationCollector;
-
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-
-
-
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataObjectModification;
-import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
-import org.opendaylight.mdsal.binding.api.DataTreeModification;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.ChangeNotification;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.ChangeNotification.Datastore;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.ChangeNotificationBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.change.notification.Edit;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.change.notification.EditBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.changed.by.parms.ChangedBy;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.changed.by.parms.ChangedByBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.changed.by.parms.changed.by.server.or.user.ServerBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.circuit.pack.Ports;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.circuit.pack.PortsKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.circuit.packs.CircuitPacks;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.circuit.packs.CircuitPacksKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.interfaces.grp.Interface;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.EditOperationType;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.Notification;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public class DeviceNotificationProducer implements ManagedNotificationProducer {
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceNotificationProducer.class);
-    private static final InstanceIdentifier<OrgOpenroadmDevice> DEVICE_CONTAINER_ID = InstanceIdentifier
-            .create(OrgOpenroadmDevice.class);
-    private static final String INTERFACE_CLASS = Interface.class.getName();
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker dataBroker;
-
-    @Override
-    public Collection<Class<? extends Notification>> getNotificationTypes() {
-        final ArrayList<Class<? extends Notification>> classes = Lists.newArrayList();
-        classes.add(ChangeNotification.class);
-        return classes;
-    }
-
-    @Override
-    public void close() throws Exception {
-        stop();
-    }
-
-    @Override
-    public void start(NotificationCollector collector) {
-        LOG.info("Starting notification stream for OrgOpenroadmDevice");
-        Preconditions.checkArgument(this.dataBroker != null, "Device datastore is null");
-        this.dataBroker.registerDataTreeChangeListener(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, DEVICE_CONTAINER_ID),
-                 new DataTreeChangeListener<OrgOpenroadmDevice>() {
-                    @Override
-                    public void onDataTreeChanged(Collection<DataTreeModification<OrgOpenroadmDevice>> changes) {
-                        LOG.info("onDataTreeChanged");
-                        ChangeNotification changeNotification = null;
-                        try {
-                            changeNotification = transformToNotification(changes);
-                            LOG.info("Emitting notification : {}", changeNotification);
-                            collector.onNotification(changeNotification);
-                        } catch (NullPointerException e) {
-                            LOG.warn("Failed to emit notification");
-                        }
-                    }
-                });
-    }
-
-    @Override
-    public void stop() {
-        LOG.info("Stopping OrgOpenroadmDevice change notification");
-    }
-
-    /**
-     * Transform {@link Collection} of {@link DataTreeModification } to {@link ChangeNotification}
-     *
-     * @return changeNotification {@link ChangeNotification}
-     */
-    private ChangeNotification transformToNotification(Collection<DataTreeModification<OrgOpenroadmDevice>> changes) {
-        LOG.info("transforming changes to notification...");
-        ChangeNotification result = null;
-        List<Edit> editList = new ArrayList<Edit>();
-        for (DataTreeModification<OrgOpenroadmDevice> change : changes) {
-            LOG.info("Received Device change :\n{}", change.getRootNode().getModificationType());
-            final DataObjectModification<OrgOpenroadmDevice> rootNode = change.getRootNode();
-            final DataTreeIdentifier<OrgOpenroadmDevice> rootPath = change.getRootPath();
-            if (rootNode != null) {
-                Collection<? extends DataObjectModification<? extends DataObject>> modifiedChildren = rootNode.getModifiedChildren();
-                switch (rootNode.getModificationType()) {
-                case SUBTREE_MODIFIED: // OrgOpenroadmDevice
-                    if (!modifiedChildren.isEmpty()) {
-                        Iterator<? extends DataObjectModification<? extends DataObject>> iterator = modifiedChildren.iterator();
-                        while (iterator.hasNext()) {
-                            DataObjectModification<? extends DataObject> modified = iterator.next();
-                            LOG.info(
-                                    "modified = \ndataType : {}\nid : {}\nmodifiedType : {}\noldData : {}\nnewData : {} \n",
-                                    modified.getDataType(), modified.getIdentifier(), modified.getModificationType(),
-                                    modified.getDataBefore(), modified.getDataAfter());
-                            String dataType = modified.getDataType().getName();
-                            if (dataType.equals(INTERFACE_CLASS)) {
-                                Interface data = null;
-                                LOG.info("Interface type update !");
-                                switch (modified.getModificationType()) {
-                                case SUBTREE_MODIFIED:
-                                    data = (Interface) modified.getDataAfter();
-                                    break;
-                                case WRITE:
-                                    data = (Interface) modified.getDataAfter();
-                                    break;
-                                case DELETE:
-                                    data = (Interface) modified.getDataBefore();
-                                    break;
-                                default:
-                                    break;
-                                }
-                                if (data!= null) {
-                                    String circuitPackName = data.getSupportingCircuitPackName();
-                                    String port = data.getSupportingPort().toString();
-                                    String interfaceName = data.getName();
-                                    if (circuitPackName != null && port != null && interfaceName != null) {
-                                        InstanceIdentifier<Ports> portIId = InstanceIdentifier.create(OrgOpenroadmDevice.class).child(
-                                                CircuitPacks.class, new CircuitPacksKey(circuitPackName)).child(Ports.class,
-                                                    new PortsKey(port));
-                                        Edit edit = new EditBuilder()
-                                                .setOperation(EditOperationType.Merge)
-                                                .setTarget(portIId)
-                                                .build();
-                                        editList.add(edit);
-                                    }
-                                } else {
-                                    LOG.warn("Interface data is null !");
-                                }
-                            } else {
-                                LOG.warn("modifiedChild is not an interface !");
-                            }
-                        }
-                    }
-                    break;
-                case WRITE:
-                    LOG.info("device operational datastore is created !");
-                    break;
-                case DELETE:
-                    LOG.info("device operational datastore is deleted !");
-                    break;
-                default:
-                    break;
-                }
-            } else {
-                LOG.error("rootNode is null !");
-            }
-        }
-        if (!editList.isEmpty()) {
-            ChangedBy changedBy = new ChangedByBuilder().setServerOrUser(new ServerBuilder().setServer(true).build())
-                    .build();
-            String time = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX").format(new Date());
-            result = new ChangeNotificationBuilder().setChangedBy(changedBy).setChangeTime(new DateAndTime(time))
-                    .setDatastore(Datastore.Running).setEdit(editList).build();
-        } else {
-            LOG.warn("edit List is empty !");
-        }
-        return result;
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/DeviceReaderFactory.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/DeviceReaderFactory.java
deleted file mode 100644 (file)
index 05c09b4..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.read;
-
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDeviceBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.Netconf;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.Streams;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.StreamsBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.util.concurrent.FluentFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
-import io.fd.honeycomb.translate.util.read.BindingBrokerReader;
-import io.fd.honeycomb.transportpce.device.configuration.DeviceConfiguration;
-import io.fd.honeycomb.transportpce.device.configuration.NetconfConfiguration;
-
-/**
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public final class DeviceReaderFactory implements ReaderFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceReaderFactory.class);
-    public static final InstanceIdentifier<OrgOpenroadmDevice> DEVICE_CONTAINER_ID = InstanceIdentifier
-            .create(OrgOpenroadmDevice.class);
-    private static final String YANG_MODELS = "yang";
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker dataBroker;
-
-    @Inject
-    private DeviceConfiguration deviceConfiguration;
-
-    @Inject
-    private NetconfConfiguration netconfConfiguration;
-
-    @Override
-    public void init(final ModifiableReaderRegistryBuilder registry) {
-        registry.add(new BindingBrokerReader<>(DEVICE_CONTAINER_ID, dataBroker, LogicalDatastoreType.OPERATIONAL,
-                OrgOpenroadmDeviceBuilder.class));
-        if (writeXMLDataToOper()) {
-            writeNetconfStream();
-            loadConfigData();
-        }
-    }
-
-    /**
-     * Write xml data from {@link DeviceConfiguration} to operational data.
-     *
-     */
-    public boolean writeXMLDataToOper() {
-        Boolean res = false;
-        LOG.info("writting xml file data to oper datastore");
-        OrgOpenroadmDevice device = this.deviceConfiguration.getDataDevice();
-        if (device != null) {
-            String deviceId = device.getInfo().getNodeId().getValue();
-            LOG.info("Getting device info from xml file for device '{}'", deviceId);
-            OrgOpenroadmDeviceBuilder result = new OrgOpenroadmDeviceBuilder(device);
-            InstanceIdentifier<OrgOpenroadmDevice> iid = InstanceIdentifier.create(OrgOpenroadmDevice.class);
-            WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-            if (writeTx != null) {
-                LOG.info("WriteTransaction is ok, copy device info to oper datastore");
-                writeTx.put(LogicalDatastoreType.OPERATIONAL, iid, result.build());
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    Futures.getChecked(future, ExecutionException.class);
-                    LOG.info("device '{}' writed to oper datastore", deviceId);
-                    res = true;
-                } catch (ExecutionException e) {
-                    LOG.error("Failed to write Element '{}' to oper datastore", deviceId);
-                }
-            } else {
-                LOG.error("WriteTransaction object is null");
-            }
-        } else {
-            LOG.error("device data operation gets from xml file is null !");
-        }
-        return res;
-    }
-
-    /**
-     * Load data to config device datastore.
-     *
-     */
-    private boolean loadConfigData() {
-        Boolean res = false;
-        LOG.info("loading device configuration info from xml file...");
-        String xml = this.deviceConfiguration.getConfigDevice();
-        LOG.info("device info gets from xml file !");
-        if (xml != null) {
-            OrgOpenroadmDevice result = this.deviceConfiguration.getDeviceFromXML(xml);
-            if (result != null) {
-                LOG.info("OrgOpenroadmDevice info gets : {}", result.getInfo().getNodeId());
-                WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-                if (writeTx != null) {
-                    LOG.info("WriteTransaction is ok, copy device info to config datastore");
-                    writeTx.put(LogicalDatastoreType.CONFIGURATION, DEVICE_CONTAINER_ID, result);
-                    FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                    try {
-                        Futures.getChecked(future, ExecutionException.class);
-                        LOG.info("device writed to config datastore");
-                    } catch (ExecutionException e) {
-                        LOG.error("Failed to write device to config datastore");
-                    }
-                } else {
-                    LOG.error("WriteTransaction object is null");
-                }
-            } else {
-                LOG.error("device gets from xml is null !!");
-            }
-        } else {
-            LOG.error("device ID from input is not the same from xml file");
-        }
-        return res;
-    }
-
-    /**
-     * write {@link Streams} data to operational device datastore.
-     *
-     * @return result {@link Boolean}
-     */
-    public boolean writeNetconfStream() {
-        Boolean result = false;
-        LOG.info("writting netconf stream to oper datastore");
-        Streams streams = this.netconfConfiguration.getNetconfStreamsData();
-        if (streams != null) {
-            LOG.info("Netconf Data gets from xml file is present");
-            InstanceIdentifier<Streams> iid = InstanceIdentifier.create(Netconf.class).child(Streams.class);
-//            StreamNameType name = new StreamNameType("OPENROADM");
-//            Streams netconfStreams = new StreamsBuilder()
-//                    .setStream(Arrays.asList(new StreamBuilder()
-//                            .setKey(new StreamKey(name))
-//                            .setName(name)
-//                            .build()))
-//                    .build();
-            Streams netconfStreams = new StreamsBuilder(streams).build();
-            WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-            if (writeTx != null) {
-                LOG.info("WriteTransaction is ok");
-                writeTx.put(LogicalDatastoreType.OPERATIONAL, iid, netconfStreams);
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    Futures.getChecked(future, ExecutionException.class);
-                    LOG.info("netconf stream writed to oper datastore");
-                    result = true;
-                } catch (ExecutionException e) {
-                    LOG.error("Failed to write netconf stream to oper datastore");
-                }
-            } else {
-                LOG.error("WriteTransaction object is null");
-            }
-        } else {
-            LOG.error("Netconf data gets from xml file is null !");
-        }
-        return result;
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/DummyMonitoringService.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/DummyMonitoringService.java
deleted file mode 100644 (file)
index d141127..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.read;
-
-import java.util.Collections;
-import java.util.Set;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.monitoring.NetconfManagementSession;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.monitoring.SessionEvent;
-import org.opendaylight.netconf.api.monitoring.SessionListener;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.Yang;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.CapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.SchemasBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Sessions;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.SessionsBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema.Location;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema.Location.Enumeration;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.SchemaBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.SchemaKey;
-
-import com.google.common.base.Function;
-import com.google.common.collect.ArrayListMultimap;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-
-public class DummyMonitoringService implements NetconfMonitoringService {
-
-    private static final Sessions EMPTY_SESSIONS = new SessionsBuilder().setSession(Collections.emptyList()).build();
-    private static final Function<Capability, Uri> CAPABILITY_URI_FUNCTION =
-        capability -> new Uri(capability.getCapabilityUri());
-
-    private static final Function<Capability, Schema> CAPABILITY_SCHEMA_FUNCTION = new Function<Capability, Schema>() {
-        @Nullable
-        @Override
-        public Schema apply(@Nonnull final Capability capability) {
-            return new SchemaBuilder()
-                    .setIdentifier(capability.getModuleName().get())
-                    .setNamespace(new Uri(capability.getModuleNamespace().get()))
-                    .setFormat(Yang.class)
-                    .setVersion(capability.getRevision().get())
-                    .setLocation(Collections.singletonList(new Location(Enumeration.NETCONF)))
-                    .withKey(new SchemaKey(Yang.class, capability.getModuleName().get(),
-                        capability.getRevision().get()))
-                    .build();
-        }
-    };
-
-    private final Capabilities capabilities;
-    private final ArrayListMultimap<String, Capability> capabilityMultiMap;
-    private final Schemas schemas;
-
-    public DummyMonitoringService(final Set<Capability> capabilities) {
-
-        this.capabilities = new CapabilitiesBuilder().setCapability(
-                Lists.newArrayList(Collections2.transform(capabilities, CAPABILITY_URI_FUNCTION))).build();
-
-        Set<Capability> moduleCapabilities = Sets.newHashSet();
-        this.capabilityMultiMap = ArrayListMultimap.create();
-        for (Capability cap : capabilities) {
-            if (cap.getModuleName().isPresent()) {
-                capabilityMultiMap.put(cap.getModuleName().get(), cap);
-                moduleCapabilities.add(cap);
-            }
-        }
-
-        this.schemas = new SchemasBuilder().setSchema(
-            Lists.newArrayList(Collections2.transform(moduleCapabilities, CAPABILITY_SCHEMA_FUNCTION))).build();
-    }
-
-    @Override
-    public Sessions getSessions() {
-        return EMPTY_SESSIONS;
-    }
-
-    @Override
-    public SessionListener getSessionListener() {
-        return new SessionListener() {
-            @Override
-            public void onSessionUp(final NetconfManagementSession session) {
-                //no op
-            }
-
-            @Override
-            public void onSessionDown(final NetconfManagementSession session) {
-                //no op
-            }
-
-            @Override
-            public void onSessionEvent(final SessionEvent event) {
-                //no op
-            }
-        };
-    }
-
-    @Override
-    public Schemas getSchemas() {
-        return schemas;
-    }
-
-
-    @Override
-    public Capabilities getCapabilities() {
-        return capabilities;
-    }
-
-    @Override
-    public AutoCloseable registerCapabilitiesListener(final CapabilitiesListener listener) {
-        return null;
-    }
-
-    @Override
-    public AutoCloseable registerSessionsListener(final SessionsListener listener) {
-        return null;
-    }
-
-@Override
-public String getSchemaForCapability(String moduleName, java.util.Optional<String> revision) {
-   for (Capability capability : capabilityMultiMap.get(moduleName)) {
-            if (capability.getRevision().get().equals(revision.get())) {
-                return capability.getCapabilitySchema().get();
-            }
-        }
-        throw new IllegalArgumentException(
-            "Module with name: " + moduleName + " and revision: " + revision + " does not exist");
-}
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/NetconfStateReaderFactory.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/NetconfStateReaderFactory.java
deleted file mode 100644 (file)
index 9831e93..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.read;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.capability.YangModuleCapability;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfState;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfStateBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.Yang;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.SchemasBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema.Location;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema.Location.Enumeration;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.SchemaBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
-import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceFilter;
-import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation;
-import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
-import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
-import org.opendaylight.yangtools.yang.model.repo.spi.PotentialSchemaSource;
-import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceListener;
-import org.opendaylight.yangtools.yang.model.repo.util.FilesystemSchemaSourceCache;
-import org.opendaylight.yangtools.yang.parser.repo.SharedSchemaRepository;
-import org.opendaylight.yangtools.yang.parser.rfc7950.repo.TextToASTTransformer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Sets;
-import com.google.common.util.concurrent.FluentFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
-
-/**
- * @author Martial Coulibaly ( martial.coulibaly@gfi.com ) on behalf of Orange
- *
- */
-public class NetconfStateReaderFactory implements ReaderFactory {
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfStateReaderFactory.class);
-    public static final InstanceIdentifier<NetconfState> NETCONF_STATE_ID = InstanceIdentifier
-            .create(NetconfState.class);
-    private static final String YANG_MODELS = "yang";
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker dataBroker;
-
-    @Override
-    public void init(ModifiableReaderRegistryBuilder registry) {
-        writeNetconfState();
-    }
-
-    /**
-     * Write {@link NetconfState} data to operational device datastore.
-     *
-     * @return result {@link Boolean}
-     */
-    public boolean writeNetconfState() {
-        Boolean res = false;
-        LOG.info("writting netconf state to oper datastore");
-        final SharedSchemaRepository schemaRepo = new SharedSchemaRepository("honeynode-simulator");
-        final Set<Capability> capabilities = parseSchemasToModuleCapabilities(schemaRepo);
-        final Set<Capability> transformedCapabilities = Sets.newHashSet(capabilities);
-        DummyMonitoringService monitor = new DummyMonitoringService(transformedCapabilities);
-        List<Schema> schemaList = new ArrayList<Schema>();
-        List<Location> locationList = new ArrayList<Location>();
-        Location location = new Location(Enumeration.NETCONF);
-        locationList.add(location);
-        Schema schematobuild = null;
-        for (final Schema schema : monitor.getSchemas().getSchema()) {
-            schematobuild = new SchemaBuilder().setIdentifier(schema.getIdentifier())
-                    .setNamespace(schema.getNamespace()).setVersion(schema.getVersion()).setFormat(Yang.class)
-                    .setLocation(locationList).build();
-            schemaList.add(schematobuild);
-        }
-        Schemas schemas = new SchemasBuilder().setSchema(schemaList).build();
-        NetconfState netconfState = new NetconfStateBuilder().setSchemas(schemas).build();
-        if (netconfState != null) {
-            WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-            if (writeTx != null) {
-                LOG.info("WriteTransaction is ok, copy device info to oper datastore");
-                writeTx.put(LogicalDatastoreType.OPERATIONAL, NETCONF_STATE_ID, netconfState);
-                 @NonNull
-                 FluentFuture<? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    Futures.getChecked(future, ExecutionException.class);
-                    LOG.info("netconf state writed to oper datastore");
-                    res = true;
-                } catch (ExecutionException e) {
-                    LOG.error("Failed to write netconf state to oper datastore");
-                }
-            } else {
-                LOG.error("WriteTransaction object is null");
-            }
-        } else {
-            LOG.error("device data operation gets from xml file is null !");
-        }
-        return res;
-    }
-
-    private Set<Capability> parseSchemasToModuleCapabilities(final SharedSchemaRepository consumer) {
-        final Set<SourceIdentifier> loadedSources = Sets.newHashSet();
-        consumer.registerSchemaSourceListener(TextToASTTransformer.create(consumer, consumer));
-        consumer.registerSchemaSourceListener(new SchemaSourceListener() {
-            @Override
-            public void schemaSourceEncountered(final SchemaSourceRepresentation schemaSourceRepresentation) {
-            }
-
-            @Override
-            public void schemaSourceRegistered(final Iterable<PotentialSchemaSource<?>> potentialSchemaSources) {
-                for (final PotentialSchemaSource<?> potentialSchemaSource : potentialSchemaSources) {
-                    loadedSources.add(potentialSchemaSource.getSourceIdentifier());
-                }
-            }
-
-            @Override
-            public void schemaSourceUnregistered(final PotentialSchemaSource<?> potentialSchemaSource) {
-            }
-        });
-        LOG.info("Loading models from directory.");
-        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-        File models = new File(classLoader.getResource(YANG_MODELS).getFile());
-        if (models.exists() && models.isDirectory()) {
-            LOG.info("folder '{}' exists !", models.getAbsolutePath());
-            final FilesystemSchemaSourceCache<YangTextSchemaSource> cache = new FilesystemSchemaSourceCache<>(consumer,
-                    YangTextSchemaSource.class, models);
-            consumer.registerSchemaSourceListener(cache);
-        } else {
-            LOG.warn("folder '{}' not exists !", models.getAbsolutePath());
-            LOG.info("Custom module loading skipped.");
-        }
-        SchemaContext schemaContext;
-        try {
-            // necessary for creating mdsal data stores and operations
-            schemaContext = consumer.createSchemaContextFactory(SchemaSourceFilter.ALWAYS_ACCEPT)
-                    .createSchemaContext(loadedSources).get();
-        } catch (final InterruptedException | ExecutionException e) {
-            throw new RuntimeException("Cannot parse schema context", e);
-        }
-
-        final Set<Capability> capabilities = Sets.newHashSet();
-
-        for (final Module module : schemaContext.getModules()) {
-            for (final Module subModule : module.getSubmodules()) {
-                addModuleCapability(consumer, capabilities, subModule);
-            }
-            addModuleCapability(consumer, capabilities, module);
-        }
-        return capabilities;
-    }
-
-    private static void addModuleCapability(final SharedSchemaRepository consumer, final Set<Capability> capabilities,
-            final Module module) {
-        final SourceIdentifier moduleSourceIdentifier = RevisionSourceIdentifier.create(module.getName(),
-                module.getRevision());
-        try {
-            final String moduleContent = new String(
-                    consumer.getSchemaSource(moduleSourceIdentifier, YangTextSchemaSource.class).get().read());
-            capabilities.add(new YangModuleCapability(module, moduleContent));
-            // IOException would be thrown in creating SchemaContext already
-        } catch (ExecutionException | InterruptedException | IOException e) {
-            LOG.warn("Cannot retrieve schema source for module {} from schema repository",
-                    moduleSourceIdentifier.toString(), e);
-        }
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/OcPlatformReaderFactory.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/OcPlatformReaderFactory.java
deleted file mode 100644 (file)
index e2c6a9e..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.read;
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130.platform.component.top.Components;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130.platform.component.top.ComponentsBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.util.concurrent.FluentFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
-import io.fd.honeycomb.translate.util.read.BindingBrokerReader;
-import io.fd.honeycomb.transportpce.device.configuration.OcPlatformConfiguration;
-import io.fd.honeycomb.transportpce.device.configuration.PmConfiguration;
-
-/**
- * @authors Gilles THOUENON and Christophe BETOULE ( gilles.thouenon@orange.com, christophe.betoule@orange.com )
- */
-public class OcPlatformReaderFactory implements ReaderFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(OcPlatformReaderFactory.class);
-    public static final InstanceIdentifier<Components> COMPONENTS_ID =
-            InstanceIdentifier.create(Components.class);
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker dataBroker;
-
-    @Inject
-    private OcPlatformConfiguration ocPlatformConfiguration;
-
-
-    @Override
-    public void init(final ModifiableReaderRegistryBuilder registry) {
-        registry.add(new BindingBrokerReader<>(COMPONENTS_ID, dataBroker,LogicalDatastoreType.OPERATIONAL,
-                ComponentsBuilder.class));
-        if (writeXMLDataToOper()) {
-            loadConfigData();
-        };
-    }
-
-    /**
-     * Write xml data from {@link PmConfiguration}
-     * to operational data.
-     *
-     */
-    public boolean writeXMLDataToOper() {
-        Boolean res = false;
-        LOG.info("writting xml oc-platform file data to oper datastore");
-        Components components = this.ocPlatformConfiguration.getDataComponents();
-        if (components !=null && components.getComponent().size()> 0) {
-            LOG.info("Getting oc-platform info from xml file");
-            ComponentsBuilder result = new ComponentsBuilder(components);
-            InstanceIdentifier<Components> iid = InstanceIdentifier.create(Components.class);
-            WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-            if (writeTx != null ) {
-                LOG.info("WriteTransaction is ok, copy oc-platform to oper datastore");
-                writeTx.put(LogicalDatastoreType.OPERATIONAL, iid, result.build());
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    Futures.getChecked(future, ExecutionException.class);
-                    LOG.info("oc-platform writed to oper datastore");
-                    res = true;
-                } catch (ExecutionException e) {
-                    LOG.error("Failed to write oc-platform to oper datastore");
-                }
-            } else {
-                LOG.error("WriteTransaction object is null");
-            }
-        } else {
-            LOG.error("get oc-platform data from xml file is null !");
-        }
-        return res;
-    }
-
-    /**
-     * Load data to config oc-platform datastore.
-     *
-     */
-    private boolean loadConfigData() {
-        Boolean res = false;
-        LOG.info("loading oc-platform configuration info from config-xml file...");
-        String xml = this.ocPlatformConfiguration.getConfigComponents();
-        LOG.info("xml de loadConfigData = {}", xml);
-        LOG.info("get components data from xml file !");
-        if (xml != null) {
-            Components result = this.ocPlatformConfiguration.getComponentsFromXML(xml);
-            if (result != null) {
-                LOG.info("get components data : {}", result.getComponent().toString());
-                WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-                if (writeTx != null) {
-                    LOG.info("WriteTransaction is ok, copy device info to config datastore");
-                    writeTx.put(LogicalDatastoreType.CONFIGURATION, COMPONENTS_ID, result);
-                    FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                    try {
-                        Futures.getChecked(future, ExecutionException.class);
-                        LOG.info("components writed to config datastore");
-                    } catch (ExecutionException e) {
-                        LOG.error("Failed to write components to config datastore");
-                    }
-                } else {
-                    LOG.error("WriteTransaction object is null");
-                }
-            } else {
-                LOG.error("components from xml is null !!");
-            }
-        } else {
-            LOG.error("no components obtained from xml file");
-        }
-        return res;
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/OcTerminalDeviceReaderFactory.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/OcTerminalDeviceReaderFactory.java
deleted file mode 100644 (file)
index 213c764..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.read;
-
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.terminal.device.rev170708.terminal.device.top.TerminalDevice;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.terminal.device.rev170708.terminal.device.top.TerminalDeviceBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.util.concurrent.FluentFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
-import io.fd.honeycomb.translate.util.read.BindingBrokerReader;
-import io.fd.honeycomb.transportpce.device.configuration.OcTerminalDeviceConfiguration;
-
-/**
- * @authors Gilles THOUENON and Christophe BETOULE ( gilles.thouenon@orange.com, christophe.betoule@orange.com )
- */
-public class OcTerminalDeviceReaderFactory implements ReaderFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(OcTerminalDeviceReaderFactory.class);
-    public static final InstanceIdentifier<TerminalDevice> TERMINAL_DEVICE_ID =
-            InstanceIdentifier.create(TerminalDevice.class);
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker dataBroker;
-
-    @Inject
-    private OcTerminalDeviceConfiguration ocTerminalDeviceConfiguration;
-
-
-    @Override
-    public void init(final ModifiableReaderRegistryBuilder registry) {
-        registry.add(new BindingBrokerReader<>(TERMINAL_DEVICE_ID, dataBroker,LogicalDatastoreType.OPERATIONAL,
-                TerminalDeviceBuilder.class));
-        if (writeXMLDataToOper()) {
-        loadConfigData();
-        };
-    }
-
-    /**
-     * Write xml data from {@link terminal-device}
-     * to operational data.
-     *
-     */
-    public boolean writeXMLDataToOper() {
-        Boolean res = false;
-        LOG.info("writting xml oc-terminal-device file data to oper datastore");
-        TerminalDevice terminalDevice = this.ocTerminalDeviceConfiguration.getDataTerminalDevice();
-        if (terminalDevice !=null) {
-            LOG.info("Getting oc-terminal-device info from xml file");
-            TerminalDeviceBuilder result = new TerminalDeviceBuilder(terminalDevice);
-            InstanceIdentifier<TerminalDevice> iid = InstanceIdentifier.create(TerminalDevice.class);
-            WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-            if (writeTx != null ) {
-                LOG.info("WriteTransaction is ok, copy oc-terminal-device to oper datastore");
-                writeTx.put(LogicalDatastoreType.OPERATIONAL, iid, result.build());
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    Futures.getChecked(future, ExecutionException.class);
-                    LOG.info("oc-terminal-device writed to oper datastore");
-                    res = true;
-                } catch (ExecutionException e) {
-                    LOG.error("Failed to write oc-terminal-device to oper datastore");
-                }
-            } else {
-                LOG.error("WriteTransaction object is null");
-            }
-        } else {
-            LOG.error("get oc-terminal-device data from xml file is null !");
-        }
-        return res;
-    }
-
-    /**
-     * Load data to config oc-terminal-device datastore.
-     *
-     */
-    private boolean loadConfigData() {
-        Boolean res = false;
-        LOG.info("loading oc-terminal-device configuration info from config-xml file...");
-        String xml = this.ocTerminalDeviceConfiguration.getConfigTerminalDevice();
-        LOG.info("get terminal-device data from xml file !");
-        if (xml != null) {
-            TerminalDevice result = this.ocTerminalDeviceConfiguration.getTerminalDeviceFromXML(xml);
-            if (result != null) {
-                LOG.info("get terminal-device data : {}", result.toString());
-                WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-                if (writeTx != null) {
-                    LOG.info("WriteTransaction is ok, copy terminal-device info to config datastore");
-                    writeTx.put(LogicalDatastoreType.CONFIGURATION, TERMINAL_DEVICE_ID, result);
-                    FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                    try {
-                        Futures.getChecked(future, ExecutionException.class);
-                        LOG.info("terminal-device writed to config datastore");
-                    } catch (ExecutionException e) {
-                        LOG.error("Failed to write terminal-device to config datastore");
-                    }
-                } else {
-                    LOG.error("WriteTransaction object is null");
-                }
-            } else {
-                LOG.error("terminal-device from xml is null !!");
-            }
-        } else {
-            LOG.error("no terminal-device obtained from xml file");
-        }
-        return res;
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/PmReaderFactory.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/read/PmReaderFactory.java
deleted file mode 100644 (file)
index 5cfbf7c..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.read;
-
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.CurrentPmList;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.CurrentPmListBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.util.concurrent.FluentFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
-import io.fd.honeycomb.translate.util.read.BindingBrokerReader;
-import io.fd.honeycomb.transportpce.device.configuration.PmConfiguration;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public class PmReaderFactory implements ReaderFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(PmReaderFactory.class);
-    public static final InstanceIdentifier<CurrentPmList> PM_CONTAINER_ID =
-            InstanceIdentifier.create(CurrentPmList.class);
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker dataBroker;
-
-    @Inject
-    private PmConfiguration pmConfiguration;
-
-
-    @Override
-    public void init(final ModifiableReaderRegistryBuilder registry) {
-        registry.add(new BindingBrokerReader<>(PM_CONTAINER_ID, dataBroker,LogicalDatastoreType.OPERATIONAL,
-                CurrentPmListBuilder.class));
-        writeXMLDataToOper();
-    }
-
-    /**
-     * Write xml data from {@link PmConfiguration}
-     * to operational data.
-     *
-     */
-    public boolean writeXMLDataToOper() {
-        Boolean res = false;
-        LOG.info("writting xml pm file data to oper datastore");
-        CurrentPmList pmList = this.pmConfiguration.getDataPm();
-        if (pmList !=null && pmList.getCurrentPmEntry().size() > 0) {
-            LOG.info("Getting pm info from xml file for device ");
-            CurrentPmListBuilder result  = new CurrentPmListBuilder(pmList);
-            InstanceIdentifier<CurrentPmList> iid = InstanceIdentifier.create(CurrentPmList.class);
-            WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-            if (writeTx != null ) {
-                LOG.info("WriteTransaction is ok, copy currentPmList to oper datastore");
-                writeTx.put(LogicalDatastoreType.OPERATIONAL, iid, result.build());
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    Futures.getChecked(future, ExecutionException.class);
-                    LOG.info("currentPmList writed to oper datastore");
-                    res = true;
-                } catch (ExecutionException e) {
-                    LOG.error("Failed to write currentPmList  to oper datastore");
-                }
-            } else {
-                LOG.error("WriteTransaction object is null");
-            }
-        } else {
-            LOG.error("currentPmList data operation gets from xml file is null !");
-        }
-        return res;
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/rpcs/ConnectionPortTrailService.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/rpcs/ConnectionPortTrailService.java
deleted file mode 100644 (file)
index 462003c..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.rpcs;
-
-import io.fd.honeycomb.rpc.RpcService;
-
-import java.util.Arrays;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.CompletionStage;
-
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.RpcStatus;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.GetConnectionPortTrailInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.GetConnectionPortTrailOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.GetConnectionPortTrailOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.get.connection.port.trail.output.Ports;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.get.connection.port.trail.output.PortsBuilder;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Class to simulate get-connection-port-trail rpc.
- *
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public class ConnectionPortTrailService implements RpcService<GetConnectionPortTrailInput, GetConnectionPortTrailOutput> {
-    private static final Logger LOG = LoggerFactory.getLogger(ConnectionPortTrailService.class);
-    private static final String localName = "get-connection-port-trail";
-    private static final QName name = QName.create(GetConnectionPortTrailInput.QNAME, localName);
-    private static final SchemaPath schemaPath = SchemaPath.ROOT.createChild(name);
-
-    @Override
-    public SchemaPath getManagedNode() {
-        return schemaPath;
-    }
-
-    /* (non-Javadoc)
-     * @see io.fd.honeycomb.rpc.RpcService#invoke(org.opendaylight.yangtools.yang.binding.DataObject)
-     */
-    @Override
-    public CompletionStage<GetConnectionPortTrailOutput> invoke(GetConnectionPortTrailInput arg0) {
-        LOG.info("RPC GetConnectionPortTrail request received !");
-        Ports port = new PortsBuilder()
-                .setCircuitPackName("2/0")
-                .setPortName("L1")
-                .build();
-        GetConnectionPortTrailOutput output = new GetConnectionPortTrailOutputBuilder()
-                .setStatusMessage("OK")
-                .setStatus(RpcStatus.Successful)
-                .setPorts(Arrays.asList(port))
-                .build();
-        CompletableFuture<GetConnectionPortTrailOutput> result = new CompletableFuture<>();
-        result.complete(output);
-        return result;
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultDeviceFactory.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultDeviceFactory.java
deleted file mode 100644 (file)
index cf380de..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.tools;
-
-import java.io.BufferedWriter;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Writer;
-import java.util.Optional;
-
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.binding.converter.XMLDataObjectConverter;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-
-/**
- * Factory for creating the default device from the XML stored in classpath.
- *
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public class DefaultDeviceFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultDeviceFactory.class);
-
-    /**
-     * Returns a new instance of {@link OrgOpenroadmDevice} from the loaded XML
-     * stored in File.
-     *
-     * @return {@link OrgOpenroadmDevice}
-     */
-    public OrgOpenroadmDevice createDefaultDevice(DataStoreContext dataStoreContextUtil, File device_data_config) {
-        OrgOpenroadmDevice result = null;
-        if (device_data_config.exists()) {
-            String config = device_data_config.getName();
-            LOG.info("file '{}' exists at location : {}", config, device_data_config.getAbsolutePath());
-            InputStream targetStream;
-            try {
-                targetStream = new FileInputStream(device_data_config);
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes", config));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), OrgOpenroadmDevice.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (OrgOpenroadmDevice) dataObject.get();
-            } catch (FileNotFoundException e) {
-                LOG.error("File not found : {} at {}", e.getMessage(), e.getLocalizedMessage());
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input OrgOpenroadmDevice into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("xml file not existed at : '{}'", device_data_config.getAbsolutePath());
-        }
-        return result;
-    }
-
-    /**
-     * Returns a new instance of {@link OrgOpenroadmDevice} from the loaded XML
-     * stored in String.
-     *
-     * @return {@link OrgOpenroadmDevice}
-     */
-    public OrgOpenroadmDevice createDefaultDevice(DataStoreContext dataStoreContextUtil, String device_data_config) {
-        OrgOpenroadmDevice result = null;
-        if (device_data_config != null) {
-            LOG.info("device data config string is ok ");
-            LOG.info("device data config = {}", device_data_config);
-           InputStream targetStream;
-            try {
-                targetStream = new ByteArrayInputStream(device_data_config.getBytes());
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes"));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), OrgOpenroadmDevice.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (OrgOpenroadmDevice) dataObject.get();
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input OrgOpenroadmDevice into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("device data config string is null!");
-        }
-        return result;
-    }
-
-    public void createXMLFromDevice(DataStoreContext dataStoreContextUtil, OrgOpenroadmDevice device, String output) {
-        if (device != null) {
-            Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-            transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                    .toNormalizedNodes(device, OrgOpenroadmDevice.class);
-            if (!transformIntoNormalizedNode.isPresent()) {
-                throw new IllegalStateException(
-                        String.format("Could not transform the input %s into normalized nodes", device));
-            }
-            XMLDataObjectConverter createWithDataStoreUtil = XMLDataObjectConverter
-                    .createWithDataStoreUtil(dataStoreContextUtil);
-            Writer writerFromDataObject = createWithDataStoreUtil.writerFromDataObject(device, OrgOpenroadmDevice.class,
-                    createWithDataStoreUtil.dataContainer());
-            try {
-                BufferedWriter writer = new BufferedWriter(new FileWriter(output));
-                writer.write(writerFromDataObject.toString());
-                writer.close();
-            } catch (IOException e) {
-                LOG.error("Bufferwriter error ");
-            }
-            LOG.info("device xml : {}", writerFromDataObject.toString());
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultNetconfFactory.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultNetconfFactory.java
deleted file mode 100644 (file)
index e1bbe02..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.tools;
-
-import java.io.BufferedWriter;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Writer;
-import java.util.Optional;
-
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.Netconf;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.binding.converter.XMLDataObjectConverter;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-
-/**
- * Factory for creating the {@link Netconf} from the XML stored in classpath.
- *
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public class DefaultNetconfFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultNetconfFactory.class);
-
-    /**
-     * Returns a new instance of {@link Netconf} from the loaded XML stored in File.
-     *
-     * @return {@link Netconf}
-     */
-    public Netconf createDefaultNetconf(DataStoreContext dataStoreContextUtil, File netconf_data_config) {
-        Netconf result = null;
-        if (netconf_data_config.exists()) {
-            String config = netconf_data_config.getName();
-            LOG.info("file '{}' exists at location : {}", config, netconf_data_config.getAbsolutePath());
-            InputStream targetStream;
-            try {
-                targetStream = new FileInputStream(netconf_data_config);
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes", config));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), Netconf.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (Netconf) dataObject.get();
-            } catch (FileNotFoundException e) {
-                LOG.error("File not found : {} at {}", e.getMessage(), e.getLocalizedMessage());
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input Netconf into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("netconf xml file not existed at : '{}'", netconf_data_config.getAbsolutePath());
-        }
-        return result;
-    }
-
-    /**
-     * Returns a new instance of {@link Netconf} from the loaded XML stored in
-     * String.
-     *
-     * @return {@link Netconf}
-     */
-    public Netconf createDefaultNetconf(DataStoreContext dataStoreContextUtil, String netconf_data_config) {
-        Netconf result = null;
-        if (netconf_data_config != null) {
-            LOG.info("Netconf data config string is ok ");
-            InputStream targetStream;
-            try {
-                targetStream = new ByteArrayInputStream(netconf_data_config.getBytes());
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes"));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), Netconf.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (Netconf) dataObject.get();
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input Netconf into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("netconf data config string is null!");
-        }
-        return result;
-    }
-
-    /**
-     * create an XML String from an instance of {@link Netconf}.
-     *
-     */
-    public void createXMLFromNetconf(DataStoreContext dataStoreContextUtil, Netconf netconf, String output) {
-        if (netconf != null) {
-            Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-            transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                    .toNormalizedNodes(netconf, Netconf.class);
-            if (!transformIntoNormalizedNode.isPresent()) {
-                throw new IllegalStateException(
-                        String.format("Could not transform the input %s into normalized nodes", netconf));
-            }
-            XMLDataObjectConverter createWithDataStoreUtil = XMLDataObjectConverter
-                    .createWithDataStoreUtil(dataStoreContextUtil);
-            Writer writerFromDataObject = createWithDataStoreUtil.writerFromDataObject(netconf, Netconf.class,
-                    createWithDataStoreUtil.dataContainer());
-            try {
-                BufferedWriter writer = new BufferedWriter(new FileWriter(output));
-                writer.write(writerFromDataObject.toString());
-                writer.close();
-            } catch (IOException e) {
-                LOG.error("Bufferwriter error ");
-            }
-            LOG.info("netconf xml : {}", writerFromDataObject.toString());
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultOcPlatformFactory.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultOcPlatformFactory.java
deleted file mode 100644 (file)
index 0742ce9..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.tools;
-
-import java.io.BufferedWriter;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Writer;
-import java.util.Optional;
-
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130.platform.component.top.Components;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.CurrentPmList;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.binding.converter.XMLDataObjectConverter;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-
-/**
- * Factory for creating the default device from the XML stored in classpath.
- *
- * @authors Gilles THOUENON and Christophe BETOULE ( gilles.thouenon@orange.com,
- *          christophe.betoule@orange.com )
- */
-public class DefaultOcPlatformFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultOcPlatformFactory.class);
-
-    /**
-     * Returns a new instance of {@link CurrentPmlist} from the loaded XML stored in
-     * File.
-     *
-     * @return {@link CurrentPmlist}
-     */
-    public Components createDefaultComponents(DataStoreContext dataStoreContextUtil, File oc_platform_data) {
-        Components result = null;
-        if (oc_platform_data.exists()) {
-            String oper = oc_platform_data.getName();
-            LOG.info("file '{}' exists at location : {}", oper, oc_platform_data.getAbsolutePath());
-            InputStream targetStream;
-            try {
-                targetStream = new FileInputStream(oc_platform_data);
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes", oper));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), Components.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (Components) dataObject.get();
-            } catch (FileNotFoundException e) {
-                LOG.error("File not found : {} at {}", e.getMessage(), e.getLocalizedMessage());
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input OCPlatform into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("xml file not existed at : '{}'", oc_platform_data.getAbsolutePath());
-        }
-        return result;
-    }
-
-    /**
-     * Returns a new instance of {@link CurrentPmlist} from the loaded XML stored in
-     * String.
-     *
-     * @return {@link CurrentPmlist}
-     */
-    public Components createDefaultComponents(DataStoreContext dataStoreContextUtil, String oc_platform_data) {
-        Components result = null;
-        if (oc_platform_data != null) {
-            LOG.info("openconfig platform data string is ok ");
-            LOG.info(oc_platform_data);
-            InputStream targetStream;
-            try {
-                targetStream = new ByteArrayInputStream(oc_platform_data.getBytes());
-                LOG.info("targetStream = {}", targetStream);
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input into normalized nodes"));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), Components.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                }
-                result = (Components) dataObject.get();
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input OCPlatform into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("openconfig platform data string is null!");
-        }
-        return result;
-    }
-
-    /**
-     * create an XML String from an instance of {@link CurrentPmlist}.
-     *
-     */
-    public void createXMLFromComponents(DataStoreContext dataStoreContextUtil, Components components, String output) {
-        if (components != null) {
-            Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-            transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                    .toNormalizedNodes(components, Components.class);
-            if (!transformIntoNormalizedNode.isPresent()) {
-                throw new IllegalStateException(
-                        String.format("Could not transform the input %s into normalized nodes", components));
-            }
-            XMLDataObjectConverter createWithDataStoreUtil = XMLDataObjectConverter
-                    .createWithDataStoreUtil(dataStoreContextUtil);
-            Writer writerFromDataObject = createWithDataStoreUtil.writerFromDataObject(components, Components.class,
-                    createWithDataStoreUtil.dataContainer());
-            try {
-                BufferedWriter writer = new BufferedWriter(new FileWriter(output));
-                writer.write(writerFromDataObject.toString());
-                writer.close();
-            } catch (IOException e) {
-                LOG.error("Bufferwriter error ");
-            }
-            LOG.info("openconf platform xml : {}", writerFromDataObject.toString());
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultOcTerminalDeviceFactory.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultOcTerminalDeviceFactory.java
deleted file mode 100644 (file)
index dc2c757..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.tools;
-
-import java.io.BufferedWriter;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Writer;
-import java.util.Optional;
-
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.terminal.device.rev170708.terminal.device.top.TerminalDevice;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.binding.converter.XMLDataObjectConverter;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-
-/**
- * Factory for creating the default device from the XML stored in classpath.
- *
- * @authors Gilles THOUENON and Christophe BETOULE ( gilles.thouenon@orange.com,
- *          christophe.betoule@orange.com )
- */
-public class DefaultOcTerminalDeviceFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultOcTerminalDeviceFactory.class);
-
-    /**
-     * Returns a new instance of {@link TerminalDevice} from the loaded XML stored in
-     * File.
-     *
-     * @return {@link TerminalDevice}
-     */
-    public TerminalDevice createDefaultTerminalDevice(DataStoreContext dataStoreContextUtil, File oc_terminal_device_data) {
-        TerminalDevice result = null;
-        if (oc_terminal_device_data.exists()) {
-            String oper = oc_terminal_device_data.getName();
-            LOG.info("file '{}' exists at location : {}", oper, oc_terminal_device_data.getAbsolutePath());
-            InputStream targetStream;
-            try {
-                targetStream = new FileInputStream(oc_terminal_device_data);
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes", oper));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), TerminalDevice.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (TerminalDevice) dataObject.get();
-            } catch (FileNotFoundException e) {
-                LOG.error("File not found : {} at {}", e.getMessage(), e.getLocalizedMessage());
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input OcTerminalDevice into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("xml file not existed at : '{}'", oc_terminal_device_data.getAbsolutePath());
-        }
-        return result;
-    }
-
-    /**
-     * Returns a new instance of {@link TerminalDevice} from the loaded XML stored in
-     * String.
-     *
-     * @return {@link TerminalDevice}
-     */
-    public TerminalDevice createDefaultTerminalDevice(DataStoreContext dataStoreContextUtil, String oc_terminal_device_data) {
-        TerminalDevice result = null;
-        if (oc_terminal_device_data != null) {
-            LOG.info("openconfig-terminal-device data string is ok ");
-            InputStream targetStream;
-            try {
-                targetStream = new ByteArrayInputStream(oc_terminal_device_data.getBytes());
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes"));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), TerminalDevice.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                }
-                result = (TerminalDevice) dataObject.get();
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input OcTerminalDevice into normalized nodes");
-                return null;
-            }
-        } else {
-            LOG.info("openconfig-terminal-device data string is null!");
-        }
-        return result;
-    }
-
-    /**
-     * create an XML String from an instance of {@link TerminalDevice}.
-     *
-     */
-    public void createXMLFromTerminalDevice(DataStoreContext dataStoreContextUtil, TerminalDevice terminalDevice, String output) {
-        if (terminalDevice != null) {
-            Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-            transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                    .toNormalizedNodes(terminalDevice, TerminalDevice.class);
-            if (!transformIntoNormalizedNode.isPresent()) {
-                throw new IllegalStateException(
-                        String.format("Could not transform the input %s into normalized nodes", terminalDevice));
-            }
-            XMLDataObjectConverter createWithDataStoreUtil = XMLDataObjectConverter
-                    .createWithDataStoreUtil(dataStoreContextUtil);
-            Writer writerFromDataObject = createWithDataStoreUtil.writerFromDataObject(terminalDevice, TerminalDevice.class,
-                    createWithDataStoreUtil.dataContainer());
-            try {
-                BufferedWriter writer = new BufferedWriter(new FileWriter(output));
-                writer.write(writerFromDataObject.toString());
-                writer.close();
-            } catch (IOException e) {
-                LOG.error("Bufferwriter error ");
-            }
-            LOG.info("openconfig-terminal-device xml : {}", writerFromDataObject.toString());
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultPmListFactory.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/DefaultPmListFactory.java
deleted file mode 100644 (file)
index 2aff854..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.tools;
-
-import java.io.BufferedWriter;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Writer;
-import java.util.Optional;
-
-import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.CurrentPmList;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.fd.honeycomb.transportpce.binding.converter.XMLDataObjectConverter;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-
-/**
- * Factory for creating the default device from the XML stored in classpath.
- *
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public class DefaultPmListFactory {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultPmListFactory.class);
-
-    /**
-     * Returns a new instance of {@link CurrentPmlist} from the loaded XML stored in
-     * File.
-     *
-     * @return {@link CurrentPmlist}
-     */
-    public CurrentPmList createDefaultPmList(DataStoreContext dataStoreContextUtil, File pm_data_config) {
-        CurrentPmList result = null;
-        if (pm_data_config.exists()) {
-            String config = pm_data_config.getName();
-            LOG.info("file '{}' exists at location : {}", config, pm_data_config.getAbsolutePath());
-            InputStream targetStream;
-            try {
-                targetStream = new FileInputStream(pm_data_config);
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes", config));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), CurrentPmList.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (CurrentPmList) dataObject.get();
-            } catch (FileNotFoundException e) {
-                LOG.error("File not found : {} at {}", e.getMessage(), e.getLocalizedMessage());
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input PM into normalized nodes");
-            }
-        } else {
-            LOG.info("xml file not existed at : '{}'", pm_data_config.getAbsolutePath());
-        }
-        return result;
-    }
-
-    /**
-     * Returns a new instance of {@link CurrentPmlist} from the loaded XML stored in
-     * String.
-     *
-     * @return {@link CurrentPmlist}
-     */
-    public CurrentPmList createDefaultPmList(DataStoreContext dataStoreContextUtil, String pm_data_config) {
-        CurrentPmList result = null;
-        if (pm_data_config != null) {
-            LOG.info("Pm List data config string is ok ");
-            InputStream targetStream;
-            try {
-                targetStream = new ByteArrayInputStream(pm_data_config.getBytes());
-                Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-                transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .transformIntoNormalizedNode(targetStream);
-                if (!transformIntoNormalizedNode.isPresent()) {
-                    throw new IllegalStateException(
-                            String.format("Could not transform the input %s into normalized nodes"));
-                }
-                Optional<DataObject> dataObject = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                        .getDataObject(transformIntoNormalizedNode.get(), CurrentPmList.QNAME);
-                if (!dataObject.isPresent()) {
-                    LOG.warn("Could not transform normalized nodes into data object");
-                    return null;
-                }
-                result = (CurrentPmList) dataObject.get();
-            } catch (IllegalStateException e) {
-                LOG.warn("Could not transform the input pm into normalized nodes");
-            }
-        } else {
-            LOG.info("device data config string is null!");
-        }
-        return result;
-    }
-
-    /**
-     * create an XML String from an instance of {@link CurrentPmlist}.
-     *
-     */
-    public void createXMLFromPmList(DataStoreContext dataStoreContextUtil, CurrentPmList pm_list, String output) {
-        if (pm_list != null) {
-            Optional<NormalizedNode<?, ?>> transformIntoNormalizedNode = null;
-            transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil)
-                    .toNormalizedNodes(pm_list, CurrentPmList.class);
-            if (!transformIntoNormalizedNode.isPresent()) {
-                throw new IllegalStateException(
-                        String.format("Could not transform the input %s into normalized nodes", pm_list));
-            }
-            XMLDataObjectConverter createWithDataStoreUtil = XMLDataObjectConverter
-                    .createWithDataStoreUtil(dataStoreContextUtil);
-            Writer writerFromDataObject = createWithDataStoreUtil.writerFromDataObject(pm_list, CurrentPmList.class,
-                    createWithDataStoreUtil.dataContainer());
-            try {
-                BufferedWriter writer = new BufferedWriter(new FileWriter(output));
-                writer.write(writerFromDataObject.toString());
-                writer.close();
-            } catch (IOException e) {
-                LOG.error("Bufferwriter error ");
-            }
-            LOG.info("device xml : {}", writerFromDataObject.toString());
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/ExtractXMLTag.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/tools/ExtractXMLTag.java
deleted file mode 100644 (file)
index 5f16a55..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.tools;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.StringWriter;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
-
-/**
- * @author Martial Coulibaly ( martial.coulibaly@gfi.com ) on behalf of Orange
- *
- */
-public class ExtractXMLTag {
-    private static final Logger LOG = LoggerFactory.getLogger(ExtractXMLTag.class);
-    private static ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-
-    private ExtractXMLTag() {
-
-    }
-
-    /**
-     * Extract tag xml element
-     * from xml file.
-     *
-     * @param oper_path path to operational file
-     * @param tag XML tag to be extracted
-     * @param namespace XML tag namespace (optional)
-     * @return String XML extract element
-     */
-    public static String extractTagElement(String oper_path, String tag, String namespace) {
-        String result = null;
-        LOG.info("Getting {} xml data", tag);
-        DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
-        try {
-            DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
-            Document doc = docBuilder.parse(new File(classLoader.getResource(oper_path).getFile()));
-            Document extract = extractDom(doc, tag, namespace);
-            if (extract != null) {
-                result = getStringFromDocument(extract);
-            } else {
-                throw new NullPointerException("Failed to extract data from document !");
-            }
-        } catch (ParserConfigurationException | SAXException | IOException | TransformerException e) {
-            LOG.error("failed to extract data from document", e);
-        }
-        return result;
-    }
-
-    public static Document extractDom(Document doc, String tag, String namespace) throws ParserConfigurationException {
-        NodeList nodeList = doc.getElementsByTagName(tag);
-        if (nodeList.getLength() > 0) {
-            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-            DocumentBuilder builder = dbf.newDocumentBuilder();
-            Document result = builder.newDocument();
-            Element root = result.createElementNS("urn:ietf:params:xml:ns:netconf:base:1.0", "data");
-            result.appendChild(root);
-            Node newNode = result.importNode(nodeList.item(0), true);
-            result.getDocumentElement().appendChild(newNode);
-            return result;
-        } else {
-            LOG.warn("no {} object present in doc",tag);
-            return null;
-        }
-    }
-
-    public static String getStringFromDocument(Document doc) throws TransformerException {
-        DOMSource domSource = new DOMSource(doc);
-        StringWriter writer = new StringWriter();
-        StreamResult result = new StreamResult(writer);
-        TransformerFactory tf = TransformerFactory.newInstance();
-        Transformer transformer = tf.newTransformer();
-        transformer.transform(domSource, result);
-        return writer.toString();
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/ComponentsChangeListener.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/ComponentsChangeListener.java
deleted file mode 100644 (file)
index 673147f..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.write;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataObjectModification;
-import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
-import org.opendaylight.mdsal.binding.api.DataTreeModification;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130.platform.component.top.Components;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.FluentFuture;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-final class ComponentsChangeListener implements DataTreeChangeListener<Components> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(ComponentsChangeListener.class);
-    private final DataBroker dataBroker;
-
-    public ComponentsChangeListener(DataBroker deviceDataBroker) {
-        this.dataBroker = deviceDataBroker;
-        Preconditions.checkArgument(this.dataBroker != null, "Device datastore is null");
-    }
-
-
-    /**
-     * Delete change from device
-     * oper datastore.
-     *
-     * @param id container identifier
-     */
-    private void deleteContainer(DataTreeIdentifier<Components> rootPath,
-            DataObjectModification<? extends DataObject> modified) {
-        Class<? extends DataObject> type = modified.getDataType();
-        PathArgument path = modified.getIdentifier();
-        LOG.info("deleting container type '{}' with id '{}' ...", type.toString(), path);
-    }
-
-
-    /**
-     * Merge change to Honeycomb
-     * config datastore and device
-     * config datastore.
-     *
-     * @param id OrgOpenroadmDevice identifier
-     * @param dataAfter OrgOpenroadmDevice to be merged
-     */
-    private void processChange(final InstanceIdentifier<Components> id,
-            DataObjectModification<? extends DataObject> modified, final Components dataAfter) {
-        LOG.info("processing change ...");
-        WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-        if (writeTx != null) {
-            LOG.info("WriteTransactions are ok, merge device info to datastores");
-            if(dataAfter != null) {
-                writeTx.merge(LogicalDatastoreType.OPERATIONAL, id, dataAfter);
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    future.get();
-                    LOG.info("components merged to components oper datastore");
-                } catch (InterruptedException | ExecutionException e) {
-                    LOG.error("Failed to merge components to datastores");
-                }
-            } else {
-                LOG.error("components is null");
-            }
-        } else {
-            LOG.error("WriteTransaction object is null");
-        }
-    }
-
-    @Override
-    public void onDataTreeChanged(@NonNull Collection<DataTreeModification<Components>> changes) {
-         LOG.info("onDataTreeChanged for Components");
-            for (DataTreeModification<Components> change : changes) {
-                final DataObjectModification<Components> rootNode = change.getRootNode();
-                final DataTreeIdentifier<Components> rootPath = change.getRootPath();
-                if (rootNode != null ) {
-                    final Components dataBefore = rootNode.getDataBefore();
-                    final Components dataAfter = rootNode.getDataAfter();
-                    LOG.info("Received Components change({}):\n before={} \n after={}", rootNode.getModificationType(), dataBefore,
-                            dataAfter);
-                    Collection<? extends DataObjectModification<? extends DataObject>> modifiedChildren = rootNode.getModifiedChildren();
-                    switch (rootNode.getModificationType()) {
-                        case SUBTREE_MODIFIED:
-                            if (!modifiedChildren.isEmpty()) {
-                                Iterator<? extends DataObjectModification<? extends DataObject>> iterator = modifiedChildren.iterator();
-                                while (iterator.hasNext()) {
-                                    DataObjectModification<? extends DataObject> modified = iterator.next();
-                                    LOG.info("modified = \ndataType : {}\nid : {}\nmodifiedType : {}\noldData : {}\nnewData : {} \n",
-                                            modified.getDataType(), modified.getIdentifier(),modified.getModificationType(),
-                                            modified.getDataBefore(), modified.getDataAfter());
-                                    switch (modified.getModificationType()) {
-                                      case SUBTREE_MODIFIED:
-                                      case WRITE :
-                                          processChange(rootPath.getRootIdentifier(), modified, dataAfter);
-                                          break;
-                                      case DELETE:
-                                          deleteContainer(rootPath, modified);
-                                          break;
-                                      default:
-                                          break;
-                                   }
-                                }
-                            }
-                            //processChange(rootPath.getRootIdentifier(), dataAfter);
-                            break;
-                        case WRITE :
-                            processChange(rootPath.getRootIdentifier(), null, dataAfter);
-                            break;
-                        case DELETE:
-                            LOG.info("device config datastore is deleted !");
-                            break;
-                        default:
-                            break;
-                    }
-                } else {
-                    LOG.error("rootNode is null !");
-                }
-            }
-
-    }
-
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/DeviceChangeListener.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/DeviceChangeListener.java
deleted file mode 100644 (file)
index 05a41fa..0000000
+++ /dev/null
@@ -1,428 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.write;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataObjectModification;
-import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
-import org.opendaylight.mdsal.binding.api.DataTreeModification;
-import org.opendaylight.mdsal.binding.api.ReadTransaction;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.circuit.pack.Ports;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.circuit.pack.PortsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.circuit.packs.CircuitPacks;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.circuit.packs.CircuitPacksKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.interfaces.grp.Interface;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.interfaces.grp.InterfaceKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDeviceBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.org.openroadm.device.OduConnection;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.org.openroadm.device.OduConnectionKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.org.openroadm.device.RoadmConnections;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.org.openroadm.device.RoadmConnectionsKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.port.Interfaces;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.port.InterfacesBuilder;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.FluentFuture;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-final class DeviceChangeListener implements DataTreeChangeListener<OrgOpenroadmDevice> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceChangeListener.class);
-    private final DataBroker dataBroker;
-
-    public DeviceChangeListener(DataBroker deviceDataBroker) {
-        this.dataBroker = deviceDataBroker;
-        Preconditions.checkArgument(this.dataBroker != null, "Device datastore is null");
-    }
-
-    @Override
-    public void onDataTreeChanged(Collection<DataTreeModification<OrgOpenroadmDevice>> changes) {
-        LOG.info("onDataTreeChanged");
-        for (DataTreeModification<OrgOpenroadmDevice> change : changes) {
-            final DataObjectModification<OrgOpenroadmDevice> rootNode = change.getRootNode();
-            final DataTreeIdentifier<OrgOpenroadmDevice> rootPath = change.getRootPath();
-            if (rootNode != null ) {
-                final OrgOpenroadmDevice dataBefore = rootNode.getDataBefore();
-                final OrgOpenroadmDevice dataAfter = rootNode.getDataAfter();
-                LOG.info("Received Device change({}):\n before={} \n after={}", rootNode.getModificationType(), dataBefore,
-                        dataAfter);
-                Collection<? extends DataObjectModification<? extends DataObject>> modifiedChildren = rootNode.getModifiedChildren();
-                switch (rootNode.getModificationType()) {
-                    case SUBTREE_MODIFIED:
-                        if (!modifiedChildren.isEmpty()) {
-                            Iterator<? extends DataObjectModification<? extends DataObject>> iterator = modifiedChildren.iterator();
-                            while (iterator.hasNext()) {
-                                DataObjectModification<? extends DataObject> modified = iterator.next();
-                                LOG.info("modified = \ndataType : {}\nid : {}\nmodifiedType : {}\noldData : {}\nnewData : {} \n",
-                                        modified.getDataType(), modified.getIdentifier(),modified.getModificationType(),
-                                        modified.getDataBefore(), modified.getDataAfter());
-                                switch (modified.getModificationType()) {
-                                  case SUBTREE_MODIFIED:
-                                  case WRITE :
-                                      processChange(rootPath.getRootIdentifier(), modified, dataAfter);
-                                      updateCircuitPackInterface(rootPath.getRootIdentifier(), modified, false);
-                                      break;
-                                  case DELETE:
-                                      updateCircuitPackInterface(rootPath.getRootIdentifier(), modified, true);
-                                      deleteContainer(rootPath, modified);
-                                      break;
-                                  default:
-                                      break;
-                               }
-                            }
-                        }
-                        //processChange(rootPath.getRootIdentifier(), dataAfter);
-                        break;
-                    case WRITE :
-                        processChange(rootPath.getRootIdentifier(), null, dataAfter);
-                        break;
-                    case DELETE:
-                        LOG.info("device config datastore is deleted !");
-                        break;
-                    default:
-                        break;
-                }
-            } else {
-                LOG.error("rootNode is null !");
-            }
-        }
-    }
-
-    /**
-     * Delete change from device
-     * oper datastore.
-     *
-     * @param id container identifier
-     */
-    private void deleteContainer(DataTreeIdentifier<OrgOpenroadmDevice> rootPath,
-            DataObjectModification<? extends DataObject> modified) {
-        final String ROADM_CONNECTIONS = "interface org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019"
-                + ".org.openroadm.device.container.org.openroadm.device.RoadmConnections";
-        final String INTERFACE_GRP = "interface org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019"
-                + ".interfaces.grp.Interface";
-        final String ODU_CONNECTIONS = "interface org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019"
-                + ".org.openroadm.device.container.org.openroadm.device.OduConnection";
-        Class<? extends DataObject> type = modified.getDataType();
-        PathArgument path = modified.getIdentifier();
-        LOG.info("deleting container type '{}' with id '{}' ...", type.toString(), path);
-        String key = extractKey(path.toString());
-        if ( key != null) {
-            InstanceIdentifier<?> iid = null;
-            switch (type.toString()) {
-                case ROADM_CONNECTIONS:
-                    LOG.info("roadm-connections ...");
-                    iid = rootPath.getRootIdentifier().child(RoadmConnections.class,
-                        new RoadmConnectionsKey(key));
-                    break;
-                case INTERFACE_GRP:
-                    LOG.info("interface ....");
-                    iid = rootPath.getRootIdentifier().child(Interface.class,
-                            new InterfaceKey(key));
-                    break;
-                case ODU_CONNECTIONS:
-                    LOG.info("Deleting odu connections");
-                    iid = rootPath.getRootIdentifier().child(OduConnection.class,
-                            new OduConnectionKey(key));
-                    break;
-                default:
-                    break;
-            }
-            LOG.info("iid : {}", iid);
-            WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-            if (writeTx != null) {
-                LOG.info("WriteTransaction is ok, delete container device from device oper datastore");
-                try {
-                    LOG.info("deleting container element from device oper DS ...");
-                    writeTx.delete(LogicalDatastoreType.OPERATIONAL, iid);
-                    FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                    future.get();
-                    LOG.info("container element '{}' deleted from device oper datastore", iid);
-                } catch (InterruptedException | ExecutionException e) {
-                    LOG.error("Failed to process WriteTransactions",e);
-                }
-            } else {
-                LOG.error("WriteTransaction object is null");
-            }
-        } else {
-            LOG.error("extract key is null");
-        }
-    }
-
-
-
-    private String extractKey(String path) {
-        LOG.info("getting key from pathArgument ...");
-        String result = null;
-        if (path != null && path.length() > 2) {
-            result = path.substring(path.lastIndexOf("=") + 1, path.length()-2);
-            LOG.info("result : {}", result);
-        } else {
-            LOG.error("String pathArgument is not compliant !!");
-        }
-        return result;
-    }
-
-
-    /**
-     * Merge change to Honeycomb
-     * config datastore and device
-     * config datastore.
-     *
-     * @param id OrgOpenroadmDevice identifier
-     * @param dataAfter OrgOpenroadmDevice to be merged
-     */
-    private void processChange(final InstanceIdentifier<OrgOpenroadmDevice> id,
-            DataObjectModification<? extends DataObject> modified, final OrgOpenroadmDevice dataAfter) {
-        LOG.info("processing change ...");
-        WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-        if (writeTx != null) {
-            LOG.info("WriteTransactions are ok, merge device info to datastores");
-            if(dataAfter != null) {
-                String deviceId = dataAfter.getInfo().getNodeId().getValue();
-                writeTx.merge(LogicalDatastoreType.OPERATIONAL, id, dataAfter);
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    future.get();
-                    LOG.info("device '{}' merged to device oper datastore", deviceId);
-                } catch (InterruptedException | ExecutionException e) {
-                    LOG.error("Failed to merge Element '{}' to datastores", deviceId);
-                }
-            } else {
-                LOG.error("device is null");
-            }
-        } else {
-            LOG.error("WriteTransaction object is null");
-        }
-    }
-
-    /**
-     *Update Interface info on
-     *Ports list in CircuitPacks.
-     *
-     * @param id device InstanceIdentifier
-     * @param modified DataObjectModification
-     * @param deviceData OrgOpenroadmDevice
-     * @param delete if yes delete interface from circuitpacks else adding interface
-     */
-    private void updateCircuitPackInterface(final InstanceIdentifier<OrgOpenroadmDevice> id,
-            DataObjectModification<? extends DataObject> modified, boolean delete) {
-        LOG.info("Updating circuit packs interface ...");
-        final String INTERFACE_GRP = "interface org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019"
-                + ".interfaces.grp.Interface";
-        InstanceIdentifier<CircuitPacks> iid = null;
-        if (modified != null) {
-            Class<? extends DataObject> type = modified.getDataType();
-            LOG.info("getting container type '{}' ...", type.toString());
-            if (type != null) {
-                if (type.toString().compareTo(INTERFACE_GRP) == 0) {
-                    LOG.warn("interface update ! ");
-                    Interface data = null;
-                    if (delete) {
-                        data = (Interface) modified.getDataBefore();
-                    } else {
-                        data = (Interface) modified.getDataAfter();
-                    }
-                    LOG.info("Interface data gets : {}", data.toString());
-                    if (data!= null) {
-                        String circuitPackName = data.getSupportingCircuitPackName();
-                        String port = data.getSupportingPort().toString();
-                        String interfaceName = data.getName();
-                        if (circuitPackName != null && port != null && interfaceName != null) {
-                            iid = id.child(CircuitPacks.class,
-                                    new CircuitPacksKey(circuitPackName));
-                            OrgOpenroadmDevice operDevice = readDeviceOperData(id);
-                            if (operDevice != null) {
-                                OrgOpenroadmDeviceBuilder builder = new OrgOpenroadmDeviceBuilder(operDevice);
-                                List<CircuitPacks> list = builder.getCircuitPacks();
-                                LOG.info("Getting circuit packs ...");
-                                for (CircuitPacks circuitPacks : list) {
-                                    if (circuitPacks.getCircuitPackName().compareTo(circuitPackName) == 0) {
-                                        LOG.info("circuitpack found");
-                                        List<Ports> portList = circuitPacks.getPorts();
-                                        LOG.info("Getting ports for circuit pack '{}' ...", circuitPackName);
-                                        for (Ports ports : portList) {
-                                            if (ports.getPortName().compareTo(port) == 0) {
-                                                LOG.info("port found");
-                                                PortsBuilder newPorts = new PortsBuilder(ports);
-                                                List<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019
-                                                .port.Interfaces> value = newPorts.getInterfaces();
-                                                if (!delete) {
-                                                    LOG.info("adding interface info to port '{}'", port);
-                                                    if (value == null || value.isEmpty()) {
-                                                        LOG.info("Interfaces List is empty !");
-                                                        value = new ArrayList<org.opendaylight.yang.gen.v1.http.org
-                                                                .openroadm.device.rev181019.port.Interfaces>();
-                                                        value.add(new InterfacesBuilder().setInterfaceName(interfaceName)
-                                                                .build());
-                                                    } else { // value is not empty
-                                                        org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019
-                                                        .port.Interfaces tmp = getInterfaces(value, interfaceName);
-                                                        if( tmp != null) {
-                                                            LOG.warn("Interfaces with name '{}' already exists !",interfaceName);
-                                                            break;
-                                                        } else { // no interface found
-                                                            value.add(new InterfacesBuilder().setInterfaceName(interfaceName)
-                                                                    .build());
-                                                        }
-                                                    }
-                                                } else {
-                                                    LOG.info("removing interface info from port '{}'", port);
-                                                    org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019
-                                                    .port.Interfaces tmp = getInterfaces(value, interfaceName);
-                                                    if( tmp != null) {
-                                                        LOG.info("Interfaces with name '{}' gets",interfaceName);
-                                                        value.remove(tmp);
-                                                    }else {
-                                                        LOG.error("Interfaces list is null");
-                                                        value = new ArrayList<org.opendaylight.yang.gen.v1.http.org.openroadm
-                                                                .device.rev181019.port.Interfaces>();
-                                                    }
-                                                }
-                                                newPorts.setInterfaces(value);
-                                                portList.remove(ports);
-                                                portList.add(newPorts.build());
-                                                LOG.info("port list updated !");
-                                                update(circuitPacks, iid);
-                                                break;
-                                            }
-                                        }
-                                        break;
-                                    }
-                                }
-                            } else {
-                                LOG.error("reading operational device data failed !");
-                            }
-
-                        } else {
-                            LOG.error("SupportingCircuitPackName / SupportingPort / Interface Name are/is null !");
-                        }
-                    }
-                } else {
-                    LOG.warn("not an interface update ! ");
-                }
-            }
-        } else {
-            LOG.error("DataObjectModification is null");
-        }
-    }
-
-    /**
-     * Search in {@link Interfaces} list
-     * if an interfaces already exists.
-     *
-     * @param value Interfaces List
-     * @param interfaceName Interface Name
-     * @return Interfaces
-     */
-    private org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.port.Interfaces getInterfaces(
-            List<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.port.Interfaces> value,
-            String interfaceName) {
-        org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.port.Interfaces result = null;
-        if (value != null && !value.isEmpty()) {
-            LOG.info("Getting interfaces list ...");
-            for (org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019
-                    .port.Interfaces tmp : value) {
-                if( tmp != null
-                        && tmp.getInterfaceName().compareTo(interfaceName) == 0) {
-                    LOG.info("Interfaces with name '{}' gets",interfaceName);
-                    result = tmp;
-                    break;
-                }
-            }
-        } else {
-            LOG.error("Interfaces list is empty");
-        }
-        return result;
-    }
-
-    /**
-     * Update circuitPacks information
-     * in device oper datastore.
-     *
-     * @param circuitPacks CircuitPacks data
-     * @param iid CircuitPacks InstanceIdentifier
-     * @param id OrgOpenroadmDevice InstanceIdentifier
-     * @param deviceData OrgOpenroadmDevice data
-     */
-    private void update(CircuitPacks circuitPacks, final InstanceIdentifier<CircuitPacks> iid) {
-        LOG.info("updating oper Datastore with iid : {}", iid);
-        WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-        if (writeTx != null) {
-            LOG.info("WriteTransaction is ok, update container circuitpacks from device oper datastore");
-            try {
-                LOG.info("updating container circuitpacks from device oper DS ...");
-                writeTx.merge(LogicalDatastoreType.OPERATIONAL, iid,circuitPacks);
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                future.get();
-                LOG.info("container circuitpacks '{}' merged to device oper datastore", iid);
-            } catch (InterruptedException | ExecutionException e) {
-                LOG.error("Failed to process WriteTransactions",e);
-            }
-        } else {
-            LOG.error("WriteTransaction object is null");
-        }
-    }
-
-    /**
-     * Get {@link OrgOpenroadmDevice} data
-     * from operational datastore
-     *
-     * @param id OrgOpenroadmDevice InstanceIdentifier
-     * @return OrgOpenroadmDevice result
-     */
-    private OrgOpenroadmDevice readDeviceOperData(final InstanceIdentifier<OrgOpenroadmDevice> id) {
-        OrgOpenroadmDevice result = null;
-        LOG.info("reading device operational datastore ...");
-        ReadTransaction readTx = this.dataBroker.newReadOnlyTransaction();
-        if (readTx != null) {
-            LOG.info("ReadTransaction is ok");
-            try {
-                LOG.info("reading device from device oper DS ...");
-                java.util.Optional<OrgOpenroadmDevice> device = readTx.read(LogicalDatastoreType.OPERATIONAL, id).get();
-                if (device.isPresent()) {
-                    result = device.get();
-                    LOG.info("device gets from device oper datastore");
-                }
-            } catch (InterruptedException | ExecutionException e) {
-                LOG.error("Failed to process ReadTransaction",e);
-            }
-        } else {
-            LOG.error("ReadTransaction object is null");
-        }
-        return result;
-
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/DeviceWriterFactory.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/DeviceWriterFactory.java
deleted file mode 100644 (file)
index da79c38..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.write;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.util.write.BindingBrokerWriter;
-import io.fd.honeycomb.translate.write.WriterFactory;
-import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder;
-
-import javax.annotation.Nonnull;
-
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-public class DeviceWriterFactory implements WriterFactory {
-    private static final InstanceIdentifier<OrgOpenroadmDevice> DEVICE_CONTAINER_ID = InstanceIdentifier
-            .create(OrgOpenroadmDevice.class);
-
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker deviceDataBroker;
-
-    @Override
-    public void init(@Nonnull final ModifiableWriterRegistryBuilder registry) {
-        registry.wildcardedSubtreeAdd(new BindingBrokerWriter<>(DEVICE_CONTAINER_ID, deviceDataBroker));
-        deviceDataBroker.registerDataTreeChangeListener(DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION,
-                DEVICE_CONTAINER_ID), new DeviceChangeListener(deviceDataBroker));
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/OcPlatformWriterFactory.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/OcPlatformWriterFactory.java
deleted file mode 100644 (file)
index 042ffea..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.write;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.util.write.BindingBrokerWriter;
-import io.fd.honeycomb.translate.write.WriterFactory;
-import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder;
-
-import javax.annotation.Nonnull;
-
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.platform.rev180130.platform.component.top.Components;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-public class OcPlatformWriterFactory implements WriterFactory {
-    private static final InstanceIdentifier<Components> COMPONENTS_CONTAINER_ID = InstanceIdentifier
-            .create(Components.class);
-
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker deviceDataBroker;
-
-    @Override
-    public void init(@Nonnull final ModifiableWriterRegistryBuilder registry) {
-        registry.wildcardedSubtreeAdd(new BindingBrokerWriter<>(COMPONENTS_CONTAINER_ID, deviceDataBroker));
-        deviceDataBroker.registerDataTreeChangeListener(DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION,
-                COMPONENTS_CONTAINER_ID), new ComponentsChangeListener(deviceDataBroker));
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/OcTerminalDeviceWriterFactory.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/OcTerminalDeviceWriterFactory.java
deleted file mode 100644 (file)
index ac52f3b..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.write;
-
-import javax.annotation.Nonnull;
-
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.terminal.device.rev170708.terminal.device.top.TerminalDevice;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.translate.util.write.BindingBrokerWriter;
-import io.fd.honeycomb.translate.write.WriterFactory;
-import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder;
-
-public class OcTerminalDeviceWriterFactory implements WriterFactory {
-    private static final InstanceIdentifier<TerminalDevice> TERMINAL_DEVICE_CONTAINER_ID = InstanceIdentifier
-            .create(TerminalDevice.class);
-
-
-    @Inject
-    @Named("device-databroker")
-    private DataBroker deviceDataBroker;
-
-    @Override
-    public void init(@Nonnull final ModifiableWriterRegistryBuilder registry) {
-        registry.wildcardedSubtreeAdd(new BindingBrokerWriter<>(TERMINAL_DEVICE_CONTAINER_ID, deviceDataBroker));
-        deviceDataBroker.registerDataTreeChangeListener(DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION,
-                TERMINAL_DEVICE_CONTAINER_ID), new TerminalDeviceChangeListener(deviceDataBroker));
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/TerminalDeviceChangeListener.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/java/io/fd/honeycomb/transportpce/device/write/TerminalDeviceChangeListener.java
deleted file mode 100644 (file)
index 0d3dd91..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.write;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.concurrent.ExecutionException;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataObjectModification;
-import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
-import org.opendaylight.mdsal.binding.api.DataTreeModification;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.terminal.device.rev170708.terminal.device.top.TerminalDevice;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.FluentFuture;
-
-/**
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-final class TerminalDeviceChangeListener implements DataTreeChangeListener<TerminalDevice> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(TerminalDeviceChangeListener.class);
-    private final DataBroker dataBroker;
-
-    public TerminalDeviceChangeListener(DataBroker deviceDataBroker) {
-        this.dataBroker = deviceDataBroker;
-        Preconditions.checkArgument(this.dataBroker != null, "terminal-device datastore is null");
-    }
-
-
-    /**
-     * Delete change from terminal-device
-     * oper datastore.
-     *
-     * @param id container identifier
-     */
-    private void deleteContainer(DataTreeIdentifier<TerminalDevice> rootPath,
-            DataObjectModification<? extends DataObject> modified) {
-        Class<? extends DataObject> type = modified.getDataType();
-        PathArgument path = modified.getIdentifier();
-        LOG.info("deleting container type '{}' with id '{}' ...", type.toString(), path);
-    }
-
-
-    /**
-     * Merge change to Honeycomb
-     * config datastore and device
-     * config datastore.
-     *
-     * @param id TerminalDevice identifier
-     * @param dataAfter TerminalDevice to be merged
-     */
-    private void processChange(final InstanceIdentifier<TerminalDevice> id,
-            DataObjectModification<? extends DataObject> modified, final TerminalDevice dataAfter) {
-        LOG.info("processing change ...");
-        WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-        if (writeTx != null) {
-            LOG.info("WriteTransactions are ok, merge terminal-device data to datastores");
-            if(dataAfter != null) {
-                writeTx.merge(LogicalDatastoreType.OPERATIONAL, id, dataAfter);
-                FluentFuture< ? extends @NonNull CommitInfo> future = writeTx.commit();
-                try {
-                    future.get();
-                    LOG.info("terminal-device merged to terminal-device oper datastore");
-                } catch (InterruptedException | ExecutionException e) {
-                    LOG.error("Failed to merge terminal-device to datastores");
-                }
-            } else {
-                LOG.error("terminal-device is null");
-            }
-        } else {
-            LOG.error("WriteTransaction object is null");
-        }
-    }
-
-@Override
-public void onDataTreeChanged(@NonNull Collection<DataTreeModification<TerminalDevice>> changes) {
-  LOG.info("onDataTreeChanged for terminal-device");
-        for (DataTreeModification<TerminalDevice> change : changes) {
-            final DataObjectModification<TerminalDevice> rootNode = change.getRootNode();
-            final DataTreeIdentifier<TerminalDevice> rootPath = change.getRootPath();
-            if (rootNode != null ) {
-                final TerminalDevice dataBefore = rootNode.getDataBefore();
-                final TerminalDevice dataAfter = rootNode.getDataAfter();
-                LOG.info("Received terminal-device change({}):\n before={} \n after={}", rootNode.getModificationType(), dataBefore,
-                        dataAfter);
-                Collection<? extends DataObjectModification<? extends DataObject>> modifiedChildren = rootNode.getModifiedChildren();
-                switch (rootNode.getModificationType()) {
-                    case SUBTREE_MODIFIED:
-                        if (!modifiedChildren.isEmpty()) {
-                            Iterator<? extends DataObjectModification<? extends DataObject>> iterator = modifiedChildren.iterator();
-                            while (iterator.hasNext()) {
-                                DataObjectModification<? extends DataObject> modified = iterator.next();
-                                LOG.info("modified = \ndataType : {}\nid : {}\nmodifiedType : {}\noldData : {}\nnewData : {} \n",
-                                        modified.getDataType(), modified.getIdentifier(),modified.getModificationType(),
-                                        modified.getDataBefore(), modified.getDataAfter());
-                                switch (modified.getModificationType()) {
-                                  case SUBTREE_MODIFIED:
-                                  case WRITE :
-                                      processChange(rootPath.getRootIdentifier(), modified, dataAfter);
-                                      break;
-                                  case DELETE:
-                                      deleteContainer(rootPath, modified);
-                                      break;
-                                  default:
-                                      break;
-                               }
-                            }
-                        }
-                        //processChange(rootPath.getRootIdentifier(), dataAfter);
-                        break;
-                    case WRITE :
-                        processChange(rootPath.getRootIdentifier(), null, dataAfter);
-                        break;
-                    case DELETE:
-                        LOG.info("terminal-device config datastore is deleted !");
-                        break;
-                    default:
-                        break;
-                }
-            } else {
-                LOG.error("rootNode is null !");
-            }
-        }
-
-}
-
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/NamespaceTrimmer.xslt b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/NamespaceTrimmer.xslt
deleted file mode 100644 (file)
index 7667f57..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-    <xsl:template match="*/*/*" name="nodes">
-        <xsl:element name="{local-name()}">
-            <xsl:apply-templates select="@*|node()" />
-        </xsl:element>
-    </xsl:template>
-    <xsl:template match="*/*/*/*">
-        <xsl:if test="not(name(.)='type' or name(.)='lldp' or name(.)='ethernet' or name(.)='ots')">
-            <xsl:element name="{local-name()}">
-                <xsl:apply-templates select="@*|node()" />
-            </xsl:element>
-        </xsl:if>
-        <xsl:if test="name(.)='type'" xmlns="http://org/openroadm/device">
-            <type xmlns:openROADM-if="http://org/openroadm/interfaces">
-                <xsl:apply-templates select="@*|node()"/>
-            </type>
-        </xsl:if>
-        <xsl:if test="name(.)='ots'">
-            <ots xmlns="http://org/openroadm/optical-transport-interfaces">
-                <xsl:apply-templates select="@*|node()"/>
-            </ots>
-        </xsl:if>
-        <xsl:if test="name(.)='lldp'">
-            <lldp xmlns="http://org/openroadm/lldp">
-                <xsl:apply-templates select="@*|node()"/>
-            </lldp>
-        </xsl:if>
-        <xsl:if test="name(.)='ethernet'">
-            <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-                <xsl:apply-templates select="@*|node()"/>
-            </ethernet>
-        </xsl:if>
-    </xsl:template>
-    <xsl:template match="/">
-        <org-openroadm-device xmlns="http://org/openroadm/device">
-            <xsl:apply-templates select="*"/>
-        </org-openroadm-device>
-    </xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/OperToConfig.xsl b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/OperToConfig.xsl
deleted file mode 100644 (file)
index 7b5152f..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-xmlns:d="urn:ietf:params:xml:ns:netconf:base:1.0"
-xmlns:oor="http://org/openroadm/device"
-exclude-result-prefixes="oor d">
-
-  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
-
-  <xsl:template match="/">
-    <xsl:element name="config" namespace="urn:ietf:params:xml:ns:netconf:base:1.0">
-    <xsl:element name="org-openroadm-device" namespace="http://org/openroadm/device">
-    <xsl:element name="info" namespace="http://org/openroadm/device">
-      <xsl:apply-templates select="d:data/oor:org-openroadm-device/oor:info"/>
-    </xsl:element>
-
-    <xsl:copy-of select="d:data/oor:org-openroadm-device/oor:users" />
-
-    <xsl:for-each select="d:data/oor:org-openroadm-device/oor:shelves">
-      <xsl:element name="shelves" namespace="http://org/openroadm/device">
-        <xsl:call-template name="shelve-body"/>
-      </xsl:element>
-    </xsl:for-each>
-
-    <xsl:for-each select="d:data/oor:org-openroadm-device/oor:circuit-packs">
-      <xsl:element name="circuit-packs" namespace="http://org/openroadm/device">
-        <xsl:call-template name="cp-body"/>
-      </xsl:element>
-    </xsl:for-each>
-
-    <xsl:for-each select="d:data/oor:org-openroadm-device/oor:interface">
-        <xsl:element name="interface" namespace="http://org/openroadm/device">
-            <xsl:call-template name="inter-body"/>
-        </xsl:element>
-    </xsl:for-each>
-
-    <xsl:for-each select="d:data/oor:org-openroadm-device/oor:protocols">
-        <xsl:element name="protocols" namespace="http://org/openroadm/device">
-            <xsl:call-template name="proto-body"/>
-        </xsl:element>
-    </xsl:for-each>
-
-    <xsl:for-each select="d:data/oor:org-openroadm-device/oor:degree">
-      <xsl:element name="degree" namespace="http://org/openroadm/device">
-        <xsl:call-template name="degree-body"/>
-      </xsl:element>
-    </xsl:for-each>
-
-    <xsl:for-each select="d:data/oor:org-openroadm-device/oor:shared-risk-group">
-      <xsl:element name="shared-risk-group" namespace="http://org/openroadm/device">
-        <xsl:call-template name="srg-body"/>
-      </xsl:element>
-    </xsl:for-each>
-
-    </xsl:element>
-    </xsl:element>
-  </xsl:template>
-
-  <xsl:template match="oor:info">
-    <xsl:for-each select="./*">
-      <xsl:if test="name(.) = 'node-id' or name(.) = 'node-number' or name(.) = 'node-type' or name(.) = 'clli' or name(.) = 'ipAddress' or name(.) = 'prefix-length' or name(.) = 'defaultGateway' or name(.) = 'template' or name(.) = 'geoLocation'">
-        <xsl:copy-of select="." />
-      </xsl:if>
-     </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="shelve-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="name(.) ='shelf-name' or name(.) = 'shelf-type' or name(.) = 'rack' or name(.) = 'shelf-position' or name(.) = 'administrative-state' or name(.) = 'equipment-state' or name(.) = 'due-date'">
-        <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="cp-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="name(.) = 'circuit-pack-type' or name(.) = 'circuit-pack-product-code' or name(.) = 'circuit-pack-name' or name(.) = 'administrative-state' or name(.) = 'equipment-state' or name(.) = 'circuit-pack-mode' or name(.) = 'shelf' or name(.) = 'slot' or name(.) = 'subSlot' or name(.) = 'due-date' or name(.) = 'parent-circuit-pack'">
-        <xsl:copy-of select="." />
-      </xsl:if>
-      <xsl:if test="name(.) = 'ports'">
-        <xsl:for-each select=".">
-          <xsl:element name="ports" namespace="http://org/openroadm/device">
-            <xsl:call-template name="ports-body"/>
-          </xsl:element>
-        </xsl:for-each>
-      </xsl:if>
-     </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="inter-body">
-    <xsl:for-each select="./*">
-        <xsl:if test="not(name(.) = 'operational-state' or name(.) = 'ethernet' or name(.) = 'och' or name(.) = 'otu'  or name(.) = 'odu')">
-          <xsl:copy-of select="." />
-        </xsl:if>
-        <xsl:if test="name(.)='ethernet'">
-          <xsl:element name="ethernet" xmlns="http://org/openroadm/ethernet-interfaces">
-            <xsl:call-template name="eth-body"/>
-          </xsl:element>
-        </xsl:if>
-        <xsl:if test="name(.)='och'">
-          <xsl:element name="och" xmlns="http://org/openroadm/optical-channel-interfaces">
-            <xsl:call-template name="och-body"/>
-          </xsl:element>
-        </xsl:if>
-        <xsl:if test="name(.)='otu'">
-          <xsl:element name="otu" xmlns="http://org/openroadm/otn-otu-interfaces">
-            <xsl:call-template name="otu-body"/>
-          </xsl:element>
-        </xsl:if>
-        <xsl:if test="name(.)='odu'">
-          <xsl:element name="odu" xmlns="http://org/openroadm/otn-odu-interfaces">
-            <xsl:call-template name="odu-body"/>
-          </xsl:element>
-        </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-   <xsl:template name="eth-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.) = 'curr-speed' or name(.)='curr-duplex') ">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-   <xsl:template name="och-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.) = 'width') ">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-   <xsl:template name="otu-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.)='accepted-sapi' or name(.) = 'accepted-dapi' or name(.)='accepted-operator' or name(.)='tim-act-enabled') ">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-   <xsl:template name="odu-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.)='no-oam-function' or name(.)='accepted-sapi' or name(.) = 'accepted-dapi' or name(.)='accepted-operator' or name(.)='tim-act-enabled' or name(.)='opu') ">
-         <xsl:copy-of select="." />
-      </xsl:if>
-      <xsl:if test="name(.)='opu'">
-        <xsl:element name="opu" xmlns="http://org/openroadm/otn-odu-interfaces">
-          <xsl:call-template name="opu-body"/>
-        </xsl:element>
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-   <xsl:template name="opu-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.)='rx-payload-type' or name(.) = 'msi') ">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="proto-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="name(.) = 'lldp'">
-        <xsl:for-each select=".">
-          <xsl:element name="lldp" xmlns="http://org/openroadm/lldp">
-            <xsl:call-template name="lldp-body"/>
-          </xsl:element>
-        </xsl:for-each>
-      </xsl:if>
-     </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="ports-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="name(.) = 'port-name' or name(.) = 'port-type' or name(.) = 'port-qual' or name(.) = 'circuit-id' or name(.) = 'administrative-state' or name(.) = 'logical-connection-point' or name(.) = 'roadm-port' or name(.) = 'otdr-port' or name(.) = 'ila-port' ">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="lldp-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.) = 'nbr-list') ">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="degree-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.) = 'max-wavelengths')">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template name="srg-body">
-    <xsl:for-each select="./*">
-      <xsl:if test="not(name(.) = 'max-add-drop-ports' or name(.) = 'wavelength-duplication' or name(.) = 'current-provisioned-add-drop-ports')">
-         <xsl:copy-of select="." />
-      </xsl:if>
-    </xsl:for-each>
-  </xsl:template>
-
- </xsl:stylesheet>
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/config.xsl b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/config.xsl
deleted file mode 100644 (file)
index a68b6c0..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-    <xsl:template match="@* | node()">
-        <xsl:copy>
-            <xsl:apply-templates select="@* | node()"/>
-        </xsl:copy>
-    </xsl:template>
-    <xsl:template match="/">
-        <!-- config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"-->
-            <xsl:apply-templates/>
-        <!-- /config-->
-    </xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/ocplatformOperToConfig.xsl b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/ocplatformOperToConfig.xsl
deleted file mode 100644 (file)
index b37f43f..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-xmlns:d="urn:ietf:params:xml:ns:netconf:base:1.0"
-xmlns:n="urn:ietf:params:xml:ns:netmod:notification"
-xmlns:ood="http://org/openroadm/device"
-xmlns:ocp="http://openconfig.net/yang/platform" >
-
-  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
-
-  <xsl:template match="d:data/ocp:components">
-    <xsl:element name="config" namespace="urn:ietf:params:xml:ns:netconf:base:1.0">
-    <xsl:element name="components" namespace="http://openconfig.net/yang/platform">
-      <xsl:for-each select="*">
-        <xsl:apply-templates select="." />
-      </xsl:for-each>
-    </xsl:element>
-    </xsl:element>
-  </xsl:template>
-
-  <xsl:template match="*">
-    <xsl:if test="name(.) != 'state'">
-    <xsl:copy>
-      <xsl:for-each select="@*"><xsl:copy-of select="."></xsl:copy-of></xsl:for-each>
-        <xsl:choose>
-          <xsl:when test="name(.) = 'state'"></xsl:when>
-          <xsl:otherwise><xsl:apply-templates select="node()" /></xsl:otherwise>
-        </xsl:choose>
-    </xsl:copy>
-    </xsl:if>
-  </xsl:template>
-
-  <xsl:template match="d:data | n:netconf">
-    <xsl:apply-templates />
-  </xsl:template>
-
-  </xsl:stylesheet>
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/octerminaldeviceOperToConfig.xsl b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/device/octerminaldeviceOperToConfig.xsl
deleted file mode 100644 (file)
index 4e69d6e..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-xmlns:d="urn:ietf:params:xml:ns:netconf:base:1.0"
-xmlns:n="urn:ietf:params:xml:ns:netmod:notification"
-xmlns:ood="http://org/openroadm/device"
-xmlns:ocp="http://openconfig.net/yang/platform"
-xmlns:octd="http://openconfig.net/yang/terminal-device">
-
-  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
-
-  <xsl:template match="d:data/octd:terminal-device">
-    <xsl:element name="config" namespace="urn:ietf:params:xml:ns:netconf:base:1.0">
-    <xsl:element name="terminal-device" namespace="http://openconfig.net/yang/terminal-device">
-      <xsl:for-each select="*">
-        <xsl:apply-templates select="." />
-      </xsl:for-each>
-    </xsl:element>
-    </xsl:element>
-  </xsl:template>
-
-  <xsl:template match="*">
-    <xsl:if test="name(.) != 'state'">
-    <xsl:copy>
-      <xsl:for-each select="@*"><xsl:copy-of select="."></xsl:copy-of></xsl:for-each>
-        <xsl:choose>
-          <xsl:when test="name(.) = 'state'"></xsl:when>
-          <xsl:otherwise><xsl:apply-templates select="node()" /></xsl:otherwise>
-        </xsl:choose>
-    </xsl:copy>
-    </xsl:if>
-  </xsl:template>
-
-  <xsl:template match="d:data">
-    <xsl:apply-templates />
-  </xsl:template>
-
-  <xsl:template match="d:data/ocp:components">
-    <xsl:apply-templates />
-  </xsl:template>
-
-  </xsl:stylesheet>
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/iana-afn-safi@2013-07-04.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/iana-afn-safi@2013-07-04.yang
deleted file mode 100644 (file)
index c076260..0000000
+++ /dev/null
@@ -1,526 +0,0 @@
-module iana-afn-safi {
-  namespace "urn:ietf:params:xml:ns:yang:iana-afn-safi";
-  prefix "ianaaf";
-
-  organization
-    "IANA";
-  contact
-    "        Internet Assigned Numbers Authority
-
-     Postal: ICANN
-             4676 Admiralty Way, Suite 330
-             Marina del Rey, CA 90292
-
-     Tel:    +1 310 823 9358
-     E-Mail: iana&iana.org";
-  description
-    "This YANG module provides two typedefs containing YANG
-     definitions for the following IANA-registered enumerations:
-
-     - Address Family Numbers (AFN)
-
-     - Subsequent Address Family Identifiers (SAFI)
-
-     The latest revision of this YANG module can be obtained from the
-     IANA web site.
-
-     Copyright (c) 2012 IETF Trust and the persons identified as
-     authors of the code. All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject to
-     the license terms contained in, the Simplified BSD License set
-     forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC XXXX; see the
-     RFC itself for full legal notices.";
-  // RFC Ed.: replace XXXX with actual RFC number and remove this
-  // note.
-
-  // RFC Ed.: update the date below with the date of RFC publication
-  // and remove this note.
-  revision 2013-07-04 {
-    description
-      "Initial revision.";
-    reference
-      "RFC XXXX: IANA Address Family Numbers and
-                 Subsequent Address Family Identifiers YANG Module";
-  }
-
-  typedef address-family {
-    type enumeration {
-      // value 0 is reserved by IANA
-      enum ipV4 {
-        value "1";
-        description
-          "IP version 4";
-      }
-      enum ipV6 {
-        value "2";
-        description
-          "IP version 6";
-      }
-      enum nsap {
-        value "3";
-        description
-          "NSAP";
-      }
-      enum hdlc {
-        value "4";
-        description
-          "HDLC (8-bit multidrop)";
-      }
-      enum bbn1822 {
-        value "5";
-        description
-          "BBN 1822";
-      }
-      enum all802 {
-        value "6";
-        description
-          "802 (includes all 802 media plus Ethernet 'canonical
-           format')";
-      }
-      enum e163 {
-        value "7";
-        description
-          "E.163";
-      }
-      enum e164 {
-        value "8";
-        description
-          "E.164 (SMDS, FrameRelay, ATM)";
-      }
-      enum f69 {
-        value "9";
-        description
-          "F.69 (Telex)";
-      }
-      enum x121 {
-        value "10";
-        description
-          "X.121 (X.25, Frame Relay)";
-      }
-      enum ipx {
-        value "11";
-        description
-          "IPX (Internetwork Packet Exchange)";
-      }
-      enum appletalk {
-        value "12";
-        description
-          "Appletalk";
-      }
-      enum decnetIV {
-        value "13";
-        description
-          "DECnet IV";
-      }
-      enum banyanVines {
-        value "14";
-        description
-          "Banyan Vines";
-      }
-      enum e164withNsap {
-        value "15";
-        description
-          "E.164 with NSAP format subaddress";
-        reference
-          "ATM Forum UNI 3.1";
-      }
-      enum dns {
-        value "16";
-        description
-          "DNS (Domain Name System)";
-      }
-      enum distinguishedName {
-        value "17";
-        description
-          "Distinguished Name (per X.500)";
-      }
-      enum asNumber {
-        value "18";
-        description
-          "Autonomous System Number";
-      }
-      enum xtpOverIpv4 {
-        value "19";
-        description
-          "XTP over IP version 4";
-      }
-      enum xtpOverIpv6 {
-        value "20";
-        description
-          "XTP over IP version 6";
-      }
-      enum xtpNativeModeXTP {
-        value "21";
-        description
-          "XTP native mode XTP";
-      }
-      enum fibreChannelWWPN {
-        value "22";
-        description
-          "Fibre Channel World-Wide Port Name";
-      }
-      enum fibreChannelWWNN {
-        value "23";
-        description
-          "Fibre Channel World-Wide Node Name";
-      }
-      enum gwid {
-        value "24";
-        description
-          "Gateway Identifier";
-      }
-      // FIXME: This one is actually called "afi" in the MIB, but
-      // that must be a mistake.
-      enum l2vpn {
-        value "25";
-        description
-          "AFI for L2VPN information";
-        reference
-          "RFC 4761: Virtual Private LAN Service (VPLS): Using BGP
-           for Auto-Discovery and Signaling
-
-           RFC 6074: Provisioning, Auto-Discovery, and Signaling in
-           Layer 2 Virtual Private Networks (L2VPNs)";
-      }
-      enum mplsTpSectionEndpointIdentifier {
-        value "26";
-        description
-          "MPLS-TP Section Endpoint Identifier";
-        reference
-          "draft-ietf-mpls-gach-adv";
-      }
-      enum mplsTpLspEndpointIdentifier {
-        value "27";
-        description
-          "MPLS-TP LSP Endpoint Identifier";
-        reference
-          "draft-ietf-mpls-gach-adv";
-      }
-      enum mplsTpPseudowireEndpointIdentifier {
-        value "28";
-        description
-          "MPLS-TP Pseudowire Endpoint Identifier";
-        reference
-          "draft-ietf-mpls-gach-adv";
-      }
-      enum eigrpCommonServiceFamily {
-        value "16384";
-        description
-          "EIGRP Common Service Family";
-      }
-      enum eigrpIpv4ServiceFamily {
-        value "16385";
-        description
-          "EIGRP IPv4 Service Family";
-      }
-      enum eigrpIpv6ServiceFamily {
-        value "16386";
-        description
-          "EIGRP IPv6 Service Family";
-      }
-      enum lispCanonicalAddressFormat {
-        value "16387";
-        description
-          "LISP Canonical Address Format (LCAF)";
-      }
-      enum bgpLs {
-        value "16388";
-        description
-          "BGP-LS";
-        reference
-          "draft-ietf-idr-ls-distribution";
-      }
-      enum 48BitMac {
-        value "16389";
-        description
-          "48-bit MAC";
-        reference
-          "draft-eastlake-rfc5342bis";
-      }
-      enum 64BitMac {
-        value "16390";
-        description
-          "64-bit MAC";
-        reference
-          "draft-eastlake-rfc5342bis";
-      }
-      // value 65535 is reserved by IANA
-    }
-    description
-      "This typedef is a YANG enumeration of IANA-registered address
-       family numbers (AFN).";
-    reference
-      "IANA Address Family Numbers registry.
-       <http://www.iana.org/assignments/address-family-numbers>";
-  }
-
-  typedef subsequent-address-family {
-    type enumeration {
-      // value 0 is reserved by IANA
-      enum nlriUnicast {
-        value "1";
-        description
-          "Network Layer Reachability Information used for unicast
-           forwarding";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum nlriMulticast {
-        value "2";
-        description
-          "Network Layer Reachability Information used for multicast
-           forwarding";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      // value 3 is reserved by IANA
-      enum nlriMpls {
-        value "4";
-        description
-          "Network Layer Reachability Information (NLRI) with MPLS
-           Labels";
-        reference
-          "RFC 3107: Carrying Label Information in BGP-4";
-      }
-      enum mcastVpn {
-        value "5";
-        description
-          "MCAST-VPN";
-        reference
-          "RFC 6514: BGP Encodings and Procedures for Multicast in
-           MPLS/BGP IP VPNs";
-      }
-      enum nlriDynamicMsPw {
-        value "6";
-        status "obsolete";
-        description
-          "Network Layer Reachability Information used for Dynamic
-           Placement of Multi-Segment Pseudowires (TEMPORARY -
-           Expires 2008-08-23)";
-        reference
-          "draft-ietf-pwe3-dynamic-ms-pw: Dynamic Placement of Multi
-           Segment Pseudowires";
-      }
-      enum encapsulation {
-        value "7";
-        description
-          "Encapsulation SAFI";
-        reference
-          "RFC 5512: The BGP Encapsulation Subsequent Address Family
-           Identifier (SAFI) and the BGP Tunnel Encapsulation
-           Attribute";
-      }
-      enum tunnel {
-        value "64";
-        status "obsolete";
-        description
-          "Tunnel SAFI";
-        reference
-          "draft-nalawade-kapoor-tunnel-safi: BGP Tunnel SAFI";
-      }
-      enum vpls {
-        value "65";
-        description
-          "Virtual Private LAN Service (VPLS)";
-        reference
-          "RFC 4761: Virtual Private LAN Service (VPLS): Using BGP
-           for Auto-Discovery and Signaling
-
-           RFC 6074: Provisioning, Auto-Discovery, and Signaling in
-           Layer 2 Virtual Private Networks (L2VPNs)";
-      }
-      enum bgpMdt {
-        value "66";
-        description
-          "BGP MDT SAFI";
-        reference
-          "RFC 6037: Cisco Systems' Solution for Multicast in
-           BGP/MPLS IP VPNs";
-      }
-      enum bgp4over6 {
-        value "67";
-        description
-          "BGP 4over6 SAFI";
-        reference
-          "RFC 5747: 4over6 Transit Solution Using IP Encapsulation
-           and MP-BGP Extensions";
-      }
-      enum bgp6over4 {
-        value "68";
-        description
-          "BGP 6over4 SAFI";
-      }
-      enum l1VpnAutoDiscovery {
-        value "69";
-        description
-          "Layer-1 VPN auto-discovery information";
-        reference
-          "RFC 5195: BGP-Based Auto-Discovery for Layer-1 VPNs";
-      }
-      enum mplsVpn {
-        value "128";
-        description
-          "MPLS-labeled VPN address";
-        reference
-          "RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs)";
-      }
-      enum multicastBgpMplsVpn {
-        value "129";
-        description
-          "Multicast for BGP/MPLS IP Virtual Private Networks
-           (VPNs)";
-        reference
-          "RFC 6513: Multicast in MPLS/BGP IP VPNs
-
-           RFC 6514: BGP Encodings and Procedures for Multicast in
-           MPLS/BGP IP VPNs";
-      }
-      // values 130-131 are reserved by IANA
-      enum routeTargetConstraints {
-        value "132";
-        description
-          "Route Target constraints";
-        reference
-          "RFC 4684: Constrained Route Distribution for Border
-           Gateway Protocol/MultiProtocol Label Switching (BGP/MPLS)
-           Internet Protocol (IP) Virtual Private Networks (VPNs)";
-      }
-      enum ipv4DissFlow {
-        value "133";
-        description
-          "IPv4 dissemination of flow specification rules";
-        reference
-          "RFC 5575: Dissemination of Flow Specification Rules";
-      }
-      enum vpnv4DissFlow {
-        value "134";
-        description
-          "VPNv4 dissemination of flow specification rules";
-        reference
-          "RFC 5575: Dissemination of Flow Specification Rules";
-      }
-      // values 135-139 are reserved by IANA
-      enum vpnAutoDiscovery {
-        value "140";
-        status "obsolete";
-        description
-          "VPN auto-discovery";
-        reference
-          "draft-ietf-l3vpn-bgpvpn-auto: Using BGP as an
-           Auto-Discovery Mechanism for VR-based Layer-3 VPNs";
-      }
-      // values 141-240 are reserved by IANA
-      enum private241 {
-        value "241";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private242 {
-        value "242";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private243 {
-        value "243";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private244 {
-        value "244";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private245 {
-        value "245";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private246 {
-        value "246";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private247 {
-        value "247";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private248 {
-        value "248";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private249 {
-        value "249";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private250 {
-        value "250";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private251 {
-        value "251";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private252 {
-        value "252";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private253 {
-        value "253";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      enum private254 {
-        value "254";
-        description
-          "Reserved for Private Use";
-        reference
-          "RFC 4760: Multiprotocol Extensions for BGP-4";
-      }
-      // value 255 is reserved by IANA
-    }
-    description
-      "This typedef is a YANG enumeration of IANA-registered
-       subsequent address family identifiers (SAFI).";
-    reference
-      "IANA SAFI Values registry.
-       <http://www.iana.org/assignments/safi-namespace>";
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/iana-if-type@2017-01-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/iana-if-type@2017-01-19.yang
deleted file mode 100644 (file)
index 4a684aa..0000000
+++ /dev/null
@@ -1,1620 +0,0 @@
-module iana-if-type {
-  namespace "urn:ietf:params:xml:ns:yang:iana-if-type";
-  prefix ianaift;
-
-  import ietf-interfaces {
-    prefix if;
-  }
-
-  organization "IANA";
-  contact
-    "        Internet Assigned Numbers Authority
-
-     Postal: ICANN
-             12025 Waterfront Drive, Suite 300
-             Los Angeles, CA 90094-2536
-             United States
-
-     Tel:    +1 310 301 5800
-     <mailto:iana&iana.org>";
-  description
-    "This YANG module defines YANG identities for IANA-registered
-     interface types.
-
-     This YANG module is maintained by IANA and reflects the
-     'ifType definitions' registry.
-
-     The latest revision of this YANG module can be obtained from
-     the IANA web site.
-
-     Requests for new values should be made to IANA via
-     email (iana&iana.org).
-
-     Copyright (c) 2014 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     The initial version of this YANG module is part of RFC 7224;
-     see the RFC itself for full legal notices.";
-  reference
-    "IANA 'ifType definitions' registry.
-     <http://www.iana.org/assignments/smi-numbers>";
-
-  revision 2017-01-19 {
-    description
-      "Registered ifType 289.";
-  }
-
-  revision 2016-11-23 {
-    description
-      "Registered ifTypes 283-288.";
-  }
-
-  revision 2016-06-09 {
-    description
-      "Registered ifType 282.";
-  }
-  revision 2016-05-03 {
-    description
-      "Registered ifType 281.";
-  }
-  revision 2015-06-12 {
-    description
-      "Corrected formatting issue.";
-  }
-  revision 2014-09-24 {
-    description
-      "Registered ifType 280.";
-  }
-  revision 2014-09-19 {
-    description
-      "Registered ifType 279.";
-  }
-  revision 2014-07-03 {
-    description
-      "Registered ifTypes 277-278.";
-  }
-  revision 2014-05-19 {
-    description
-      "Updated the contact address.";
-  }
-  revision 2014-05-08 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 7224: IANA Interface Type YANG Module";
-  }
-
-  identity iana-interface-type {
-    base if:interface-type;
-    description
-      "This identity is used as a base for all interface types
-       defined in the 'ifType definitions' registry.";
-  }
-
-  identity other {
-    base iana-interface-type;
-  }
-  identity regular1822 {
-    base iana-interface-type;
-  }
-  identity hdh1822 {
-    base iana-interface-type;
-  }
-  identity ddnX25 {
-    base iana-interface-type;
-  }
-  identity rfc877x25 {
-    base iana-interface-type;
-    reference
-      "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer";
-  }
-  identity ethernetCsmacd {
-    base iana-interface-type;
-    description
-      "For all Ethernet-like interfaces, regardless of speed,
-       as per RFC 3635.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity iso88023Csmacd {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Deprecated via RFC 3635.
-       Use ethernetCsmacd(6) instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity iso88024TokenBus {
-    base iana-interface-type;
-  }
-  identity iso88025TokenRing {
-    base iana-interface-type;
-  }
-  identity iso88026Man {
-    base iana-interface-type;
-  }
-  identity starLan {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Deprecated via RFC 3635.
-       Use ethernetCsmacd(6) instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity proteon10Mbit {
-    base iana-interface-type;
-  }
-  identity proteon80Mbit {
-    base iana-interface-type;
-  }
-  identity hyperchannel {
-    base iana-interface-type;
-  }
-  identity fddi {
-    base iana-interface-type;
-    reference
-      "RFC 1512 - FDDI Management Information Base";
-  }
-  identity lapb {
-    base iana-interface-type;
-    reference
-      "RFC 1381 - SNMP MIB Extension for X.25 LAPB";
-  }
-  identity sdlc {
-    base iana-interface-type;
-  }
-  identity ds1 {
-    base iana-interface-type;
-    description
-      "DS1-MIB.";
-    reference
-      "RFC 4805 - Definitions of Managed Objects for the
-                  DS1, J1, E1, DS2, and E2 Interface Types";
-  }
-  identity e1 {
-    base iana-interface-type;
-    status obsolete;
-    description
-      "Obsolete; see DS1-MIB.";
-    reference
-      "RFC 4805 - Definitions of Managed Objects for the
-                  DS1, J1, E1, DS2, and E2 Interface Types";
-  }
-  identity basicISDN {
-    base iana-interface-type;
-    description
-      "No longer used.  See also RFC 2127.";
-  }
-  identity primaryISDN {
-    base iana-interface-type;
-    description
-      "No longer used.  See also RFC 2127.";
-  }
-  identity propPointToPointSerial {
-    base iana-interface-type;
-    description
-      "Proprietary serial.";
-  }
-  identity ppp {
-    base iana-interface-type;
-  }
-  identity softwareLoopback {
-    base iana-interface-type;
-  }
-  identity eon {
-    base iana-interface-type;
-    description
-      "CLNP over IP.";
-  }
-  identity ethernet3Mbit {
-    base iana-interface-type;
-  }
-  identity nsip {
-    base iana-interface-type;
-    description
-      "XNS over IP.";
-  }
-  identity slip {
-    base iana-interface-type;
-    description
-      "Generic SLIP.";
-  }
-  identity ultra {
-    base iana-interface-type;
-    description
-      "Ultra Technologies.";
-  }
-  identity ds3 {
-    base iana-interface-type;
-    description
-      "DS3-MIB.";
-    reference
-      "RFC 3896 - Definitions of Managed Objects for the
-                  DS3/E3 Interface Type";
-  }
-  identity sip {
-    base iana-interface-type;
-    description
-      "SMDS, coffee.";
-    reference
-      "RFC 1694 - Definitions of Managed Objects for SMDS
-                  Interfaces using SMIv2";
-  }
-  identity frameRelay {
-    base iana-interface-type;
-    description
-      "DTE only.";
-    reference
-      "RFC 2115 - Management Information Base for Frame Relay
-                  DTEs Using SMIv2";
-  }
-  identity rs232 {
-    base iana-interface-type;
-    reference
-      "RFC 1659 - Definitions of Managed Objects for RS-232-like
-                  Hardware Devices using SMIv2";
-  }
-  identity para {
-    base iana-interface-type;
-    description
-      "Parallel-port.";
-    reference
-      "RFC 1660 - Definitions of Managed Objects for
-                  Parallel-printer-like Hardware Devices using
-                  SMIv2";
-  }
-  identity arcnet {
-    base iana-interface-type;
-    description
-      "ARCnet.";
-  }
-  identity arcnetPlus {
-    base iana-interface-type;
-    description
-      "ARCnet Plus.";
-  }
-  identity atm {
-    base iana-interface-type;
-    description
-      "ATM cells.";
-  }
-  identity miox25 {
-    base iana-interface-type;
-    reference
-      "RFC 1461 - SNMP MIB extension for Multiprotocol
-                  Interconnect over X.25";
-  }
-  identity sonet {
-    base iana-interface-type;
-    description
-      "SONET or SDH.";
-  }
-  identity x25ple {
-    base iana-interface-type;
-    reference
-      "RFC 2127 - ISDN Management Information Base using SMIv2";
-  }
-  identity iso88022llc {
-    base iana-interface-type;
-  }
-  identity localTalk {
-    base iana-interface-type;
-  }
-  identity smdsDxi {
-    base iana-interface-type;
-  }
-  identity frameRelayService {
-    base iana-interface-type;
-    description
-      "FRNETSERV-MIB.";
-    reference
-      "RFC 2954 - Definitions of Managed Objects for Frame
-                  Relay Service";
-  }
-  identity v35 {
-    base iana-interface-type;
-  }
-  identity hssi {
-    base iana-interface-type;
-  }
-  identity hippi {
-    base iana-interface-type;
-  }
-  identity modem {
-    base iana-interface-type;
-    description
-      "Generic modem.";
-  }
-  identity aal5 {
-    base iana-interface-type;
-    description
-      "AAL5 over ATM.";
-  }
-  identity sonetPath {
-    base iana-interface-type;
-  }
-  identity sonetVT {
-    base iana-interface-type;
-  }
-  identity smdsIcip {
-    base iana-interface-type;
-    description
-      "SMDS InterCarrier Interface.";
-  }
-  identity propVirtual {
-    base iana-interface-type;
-    description
-      "Proprietary virtual/internal.";
-    reference
-      "RFC 2863 - The Interfaces Group MIB";
-  }
-  identity propMultiplexor {
-    base iana-interface-type;
-    description
-      "Proprietary multiplexing.";
-    reference
-      "RFC 2863 - The Interfaces Group MIB";
-  }
-  identity ieee80212 {
-    base iana-interface-type;
-    description
-      "100BaseVG.";
-  }
-  identity fibreChannel {
-    base iana-interface-type;
-    description
-      "Fibre Channel.";
-  }
-  identity hippiInterface {
-    base iana-interface-type;
-    description
-      "HIPPI interfaces.";
-  }
-  identity frameRelayInterconnect {
-    base iana-interface-type;
-    status obsolete;
-    description
-      "Obsolete; use either
-       frameRelay(32) or frameRelayService(44).";
-  }
-  identity aflane8023 {
-    base iana-interface-type;
-    description
-      "ATM Emulated LAN for 802.3.";
-  }
-  identity aflane8025 {
-    base iana-interface-type;
-    description
-      "ATM Emulated LAN for 802.5.";
-  }
-  identity cctEmul {
-    base iana-interface-type;
-    description
-      "ATM Emulated circuit.";
-  }
-  identity fastEther {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Obsoleted via RFC 3635.
-       ethernetCsmacd(6) should be used instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity isdn {
-    base iana-interface-type;
-    description
-      "ISDN and X.25.";
-    reference
-      "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN
-                  in the Packet Mode";
-  }
-  identity v11 {
-    base iana-interface-type;
-    description
-      "CCITT V.11/X.21.";
-  }
-  identity v36 {
-    base iana-interface-type;
-    description
-      "CCITT V.36.";
-  }
-  identity g703at64k {
-    base iana-interface-type;
-    description
-      "CCITT G703 at 64Kbps.";
-  }
-  identity g703at2mb {
-    base iana-interface-type;
-    status obsolete;
-    description
-      "Obsolete; see DS1-MIB.";
-  }
-  identity qllc {
-    base iana-interface-type;
-    description
-      "SNA QLLC.";
-  }
-  identity fastEtherFX {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Obsoleted via RFC 3635.
-       ethernetCsmacd(6) should be used instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity channel {
-    base iana-interface-type;
-    description
-      "Channel.";
-  }
-  identity ieee80211 {
-    base iana-interface-type;
-    description
-      "Radio spread spectrum.";
-  }
-  identity ibm370parChan {
-    base iana-interface-type;
-    description
-      "IBM System 360/370 OEMI Channel.";
-  }
-  identity escon {
-    base iana-interface-type;
-    description
-      "IBM Enterprise Systems Connection.";
-  }
-  identity dlsw {
-    base iana-interface-type;
-    description
-      "Data Link Switching.";
-  }
-  identity isdns {
-    base iana-interface-type;
-    description
-      "ISDN S/T interface.";
-  }
-  identity isdnu {
-    base iana-interface-type;
-    description
-      "ISDN U interface.";
-  }
-  identity lapd {
-    base iana-interface-type;
-    description
-      "Link Access Protocol D.";
-  }
-  identity ipSwitch {
-    base iana-interface-type;
-    description
-      "IP Switching Objects.";
-  }
-  identity rsrb {
-    base iana-interface-type;
-    description
-      "Remote Source Route Bridging.";
-  }
-  identity atmLogical {
-    base iana-interface-type;
-    description
-      "ATM Logical Port.";
-    reference
-      "RFC 3606 - Definitions of Supplemental Managed Objects
-                  for ATM Interface";
-  }
-  identity ds0 {
-    base iana-interface-type;
-    description
-      "Digital Signal Level 0.";
-    reference
-      "RFC 2494 - Definitions of Managed Objects for the DS0
-                  and DS0 Bundle Interface Type";
-  }
-  identity ds0Bundle {
-    base iana-interface-type;
-    description
-      "Group of ds0s on the same ds1.";
-    reference
-      "RFC 2494 - Definitions of Managed Objects for the DS0
-                  and DS0 Bundle Interface Type";
-  }
-  identity bsc {
-    base iana-interface-type;
-    description
-      "Bisynchronous Protocol.";
-  }
-  identity async {
-    base iana-interface-type;
-    description
-      "Asynchronous Protocol.";
-  }
-  identity cnr {
-    base iana-interface-type;
-    description
-      "Combat Net Radio.";
-  }
-  identity iso88025Dtr {
-    base iana-interface-type;
-    description
-      "ISO 802.5r DTR.";
-  }
-  identity eplrs {
-    base iana-interface-type;
-    description
-      "Ext Pos Loc Report Sys.";
-  }
-  identity arap {
-    base iana-interface-type;
-    description
-      "Appletalk Remote Access Protocol.";
-  }
-  identity propCnls {
-    base iana-interface-type;
-    description
-      "Proprietary Connectionless Protocol.";
-  }
-  identity hostPad {
-    base iana-interface-type;
-    description
-      "CCITT-ITU X.29 PAD Protocol.";
-  }
-  identity termPad {
-    base iana-interface-type;
-    description
-      "CCITT-ITU X.3 PAD Facility.";
-  }
-  identity frameRelayMPI {
-    base iana-interface-type;
-    description
-      "Multiproto Interconnect over FR.";
-  }
-  identity x213 {
-    base iana-interface-type;
-    description
-      "CCITT-ITU X213.";
-  }
-  identity adsl {
-    base iana-interface-type;
-    description
-      "Asymmetric Digital Subscriber Loop.";
-  }
-  identity radsl {
-    base iana-interface-type;
-    description
-      "Rate-Adapt. Digital Subscriber Loop.";
-  }
-  identity sdsl {
-    base iana-interface-type;
-    description
-      "Symmetric Digital Subscriber Loop.";
-  }
-  identity vdsl {
-    base iana-interface-type;
-    description
-      "Very H-Speed Digital Subscrib. Loop.";
-  }
-  identity iso88025CRFPInt {
-    base iana-interface-type;
-    description
-      "ISO 802.5 CRFP.";
-  }
-  identity myrinet {
-    base iana-interface-type;
-    description
-      "Myricom Myrinet.";
-  }
-  identity voiceEM {
-    base iana-interface-type;
-    description
-      "Voice recEive and transMit.";
-  }
-  identity voiceFXO {
-    base iana-interface-type;
-    description
-      "Voice Foreign Exchange Office.";
-  }
-  identity voiceFXS {
-    base iana-interface-type;
-    description
-      "Voice Foreign Exchange Station.";
-  }
-  identity voiceEncap {
-    base iana-interface-type;
-    description
-      "Voice encapsulation.";
-  }
-  identity voiceOverIp {
-    base iana-interface-type;
-    description
-      "Voice over IP encapsulation.";
-  }
-  identity atmDxi {
-    base iana-interface-type;
-    description
-      "ATM DXI.";
-  }
-  identity atmFuni {
-    base iana-interface-type;
-    description
-      "ATM FUNI.";
-  }
-  identity atmIma {
-    base iana-interface-type;
-    description
-      "ATM IMA.";
-  }
-  identity pppMultilinkBundle {
-    base iana-interface-type;
-    description
-      "PPP Multilink Bundle.";
-  }
-  identity ipOverCdlc {
-    base iana-interface-type;
-    description
-      "IBM ipOverCdlc.";
-  }
-  identity ipOverClaw {
-    base iana-interface-type;
-    description
-      "IBM Common Link Access to Workstn.";
-  }
-  identity stackToStack {
-    base iana-interface-type;
-    description
-      "IBM stackToStack.";
-  }
-  identity virtualIpAddress {
-    base iana-interface-type;
-    description
-      "IBM VIPA.";
-  }
-  identity mpc {
-    base iana-interface-type;
-    description
-      "IBM multi-protocol channel support.";
-  }
-  identity ipOverAtm {
-    base iana-interface-type;
-    description
-      "IBM ipOverAtm.";
-    reference
-      "RFC 2320 - Definitions of Managed Objects for Classical IP
-                  and ARP Over ATM Using SMIv2 (IPOA-MIB)";
-  }
-  identity iso88025Fiber {
-    base iana-interface-type;
-    description
-      "ISO 802.5j Fiber Token Ring.";
-  }
-  identity tdlc {
-    base iana-interface-type;
-    description
-      "IBM twinaxial data link control.";
-  }
-  identity gigabitEthernet {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Obsoleted via RFC 3635.
-       ethernetCsmacd(6) should be used instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity hdlc {
-    base iana-interface-type;
-    description
-      "HDLC.";
-  }
-  identity lapf {
-    base iana-interface-type;
-    description
-      "LAP F.";
-  }
-  identity v37 {
-    base iana-interface-type;
-    description
-      "V.37.";
-  }
-  identity x25mlp {
-    base iana-interface-type;
-    description
-      "Multi-Link Protocol.";
-  }
-  identity x25huntGroup {
-    base iana-interface-type;
-    description
-      "X25 Hunt Group.";
-  }
-  identity transpHdlc {
-    base iana-interface-type;
-    description
-      "Transp HDLC.";
-  }
-  identity interleave {
-    base iana-interface-type;
-    description
-      "Interleave channel.";
-  }
-  identity fast {
-    base iana-interface-type;
-    description
-      "Fast channel.";
-  }
-  identity ip {
-    base iana-interface-type;
-    description
-      "IP (for APPN HPR in IP networks).";
-  }
-  identity docsCableMaclayer {
-    base iana-interface-type;
-    description
-      "CATV Mac Layer.";
-  }
-  identity docsCableDownstream {
-    base iana-interface-type;
-    description
-      "CATV Downstream interface.";
-  }
-  identity docsCableUpstream {
-    base iana-interface-type;
-    description
-      "CATV Upstream interface.";
-  }
-  identity a12MppSwitch {
-    base iana-interface-type;
-    description
-      "Avalon Parallel Processor.";
-  }
-  identity tunnel {
-    base iana-interface-type;
-    description
-      "Encapsulation interface.";
-  }
-  identity coffee {
-    base iana-interface-type;
-    description
-      "Coffee pot.";
-    reference
-      "RFC 2325 - Coffee MIB";
-  }
-  identity ces {
-    base iana-interface-type;
-    description
-      "Circuit Emulation Service.";
-  }
-  identity atmSubInterface {
-    base iana-interface-type;
-    description
-      "ATM Sub Interface.";
-  }
-  identity l2vlan {
-    base iana-interface-type;
-    description
-      "Layer 2 Virtual LAN using 802.1Q.";
-  }
-  identity l3ipvlan {
-    base iana-interface-type;
-    description
-      "Layer 3 Virtual LAN using IP.";
-  }
-  identity l3ipxvlan {
-    base iana-interface-type;
-    description
-      "Layer 3 Virtual LAN using IPX.";
-  }
-  identity digitalPowerline {
-    base iana-interface-type;
-    description
-      "IP over Power Lines.";
-  }
-  identity mediaMailOverIp {
-    base iana-interface-type;
-    description
-      "Multimedia Mail over IP.";
-  }
-  identity dtm {
-    base iana-interface-type;
-    description
-      "Dynamic synchronous Transfer Mode.";
-  }
-  identity dcn {
-    base iana-interface-type;
-    description
-      "Data Communications Network.";
-  }
-  identity ipForward {
-    base iana-interface-type;
-    description
-      "IP Forwarding Interface.";
-  }
-  identity msdsl {
-    base iana-interface-type;
-    description
-      "Multi-rate Symmetric DSL.";
-  }
-  identity ieee1394 {
-    base iana-interface-type;
-
-    description
-      "IEEE1394 High Performance Serial Bus.";
-  }
-  identity if-gsn {
-    base iana-interface-type;
-    description
-      "HIPPI-6400.";
-  }
-  identity dvbRccMacLayer {
-    base iana-interface-type;
-    description
-      "DVB-RCC MAC Layer.";
-  }
-  identity dvbRccDownstream {
-    base iana-interface-type;
-    description
-      "DVB-RCC Downstream Channel.";
-  }
-  identity dvbRccUpstream {
-    base iana-interface-type;
-    description
-      "DVB-RCC Upstream Channel.";
-  }
-  identity atmVirtual {
-    base iana-interface-type;
-    description
-      "ATM Virtual Interface.";
-  }
-  identity mplsTunnel {
-    base iana-interface-type;
-    description
-      "MPLS Tunnel Virtual Interface.";
-  }
-  identity srp {
-    base iana-interface-type;
-    description
-      "Spatial Reuse Protocol.";
-  }
-  identity voiceOverAtm {
-    base iana-interface-type;
-    description
-      "Voice over ATM.";
-  }
-  identity voiceOverFrameRelay {
-    base iana-interface-type;
-    description
-      "Voice Over Frame Relay.";
-  }
-  identity idsl {
-    base iana-interface-type;
-    description
-      "Digital Subscriber Loop over ISDN.";
-  }
-  identity compositeLink {
-    base iana-interface-type;
-    description
-      "Avici Composite Link Interface.";
-  }
-  identity ss7SigLink {
-    base iana-interface-type;
-    description
-      "SS7 Signaling Link.";
-  }
-  identity propWirelessP2P {
-    base iana-interface-type;
-    description
-      "Prop. P2P wireless interface.";
-  }
-  identity frForward {
-    base iana-interface-type;
-    description
-      "Frame Forward Interface.";
-  }
-  identity rfc1483 {
-    base iana-interface-type;
-    description
-      "Multiprotocol over ATM AAL5.";
-    reference
-      "RFC 1483 - Multiprotocol Encapsulation over ATM
-                  Adaptation Layer 5";
-  }
-  identity usb {
-    base iana-interface-type;
-    description
-      "USB Interface.";
-  }
-  identity ieee8023adLag {
-    base iana-interface-type;
-    description
-      "IEEE 802.3ad Link Aggregate.";
-  }
-  identity bgppolicyaccounting {
-    base iana-interface-type;
-    description
-      "BGP Policy Accounting.";
-  }
-  identity frf16MfrBundle {
-    base iana-interface-type;
-    description
-      "FRF.16 Multilink Frame Relay.";
-  }
-  identity h323Gatekeeper {
-    base iana-interface-type;
-    description
-      "H323 Gatekeeper.";
-  }
-  identity h323Proxy {
-    base iana-interface-type;
-    description
-      "H323 Voice and Video Proxy.";
-  }
-  identity mpls {
-    base iana-interface-type;
-    description
-      "MPLS.";
-  }
-  identity mfSigLink {
-    base iana-interface-type;
-    description
-      "Multi-frequency signaling link.";
-  }
-  identity hdsl2 {
-    base iana-interface-type;
-    description
-      "High Bit-Rate DSL - 2nd generation.";
-  }
-  identity shdsl {
-    base iana-interface-type;
-    description
-      "Multirate HDSL2.";
-  }
-  identity ds1FDL {
-    base iana-interface-type;
-    description
-      "Facility Data Link (4Kbps) on a DS1.";
-  }
-  identity pos {
-    base iana-interface-type;
-    description
-      "Packet over SONET/SDH Interface.";
-  }
-  identity dvbAsiIn {
-    base iana-interface-type;
-    description
-      "DVB-ASI Input.";
-  }
-  identity dvbAsiOut {
-    base iana-interface-type;
-    description
-      "DVB-ASI Output.";
-  }
-  identity plc {
-    base iana-interface-type;
-    description
-      "Power Line Communications.";
-  }
-  identity nfas {
-    base iana-interface-type;
-    description
-      "Non-Facility Associated Signaling.";
-  }
-  identity tr008 {
-    base iana-interface-type;
-    description
-      "TR008.";
-  }
-  identity gr303RDT {
-    base iana-interface-type;
-    description
-      "Remote Digital Terminal.";
-  }
-  identity gr303IDT {
-    base iana-interface-type;
-    description
-      "Integrated Digital Terminal.";
-  }
-  identity isup {
-    base iana-interface-type;
-    description
-      "ISUP.";
-  }
-  identity propDocsWirelessMaclayer {
-    base iana-interface-type;
-    description
-      "Cisco proprietary Maclayer.";
-  }
-  identity propDocsWirelessDownstream {
-    base iana-interface-type;
-    description
-      "Cisco proprietary Downstream.";
-  }
-  identity propDocsWirelessUpstream {
-    base iana-interface-type;
-    description
-      "Cisco proprietary Upstream.";
-  }
-  identity hiperlan2 {
-    base iana-interface-type;
-    description
-      "HIPERLAN Type 2 Radio Interface.";
-  }
-  identity propBWAp2Mp {
-    base iana-interface-type;
-    description
-      "PropBroadbandWirelessAccesspt2Multipt (use of this value
-       for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f
-       is deprecated, and ieee80216WMAN(237) should be used
-       instead).";
-  }
-  identity sonetOverheadChannel {
-    base iana-interface-type;
-    description
-      "SONET Overhead Channel.";
-  }
-  identity digitalWrapperOverheadChannel {
-    base iana-interface-type;
-    description
-      "Digital Wrapper.";
-  }
-  identity aal2 {
-    base iana-interface-type;
-    description
-      "ATM adaptation layer 2.";
-  }
-  identity radioMAC {
-    base iana-interface-type;
-    description
-      "MAC layer over radio links.";
-  }
-  identity atmRadio {
-    base iana-interface-type;
-    description
-      "ATM over radio links.";
-  }
-  identity imt {
-    base iana-interface-type;
-    description
-      "Inter-Machine Trunks.";
-  }
-  identity mvl {
-    base iana-interface-type;
-    description
-      "Multiple Virtual Lines DSL.";
-  }
-  identity reachDSL {
-    base iana-interface-type;
-    description
-      "Long Reach DSL.";
-  }
-  identity frDlciEndPt {
-    base iana-interface-type;
-    description
-      "Frame Relay DLCI End Point.";
-  }
-  identity atmVciEndPt {
-    base iana-interface-type;
-    description
-      "ATM VCI End Point.";
-  }
-  identity opticalChannel {
-    base iana-interface-type;
-    description
-      "Optical Channel.";
-  }
-  identity opticalTransport {
-    base iana-interface-type;
-    description
-      "Optical Transport.";
-  }
-  identity propAtm {
-    base iana-interface-type;
-    description
-      "Proprietary ATM.";
-  }
-  identity voiceOverCable {
-    base iana-interface-type;
-    description
-      "Voice Over Cable Interface.";
-  }
-  identity infiniband {
-    base iana-interface-type;
-    description
-      "Infiniband.";
-  }
-  identity teLink {
-    base iana-interface-type;
-    description
-      "TE Link.";
-  }
-  identity q2931 {
-    base iana-interface-type;
-    description
-      "Q.2931.";
-  }
-  identity virtualTg {
-    base iana-interface-type;
-    description
-      "Virtual Trunk Group.";
-  }
-  identity sipTg {
-    base iana-interface-type;
-    description
-      "SIP Trunk Group.";
-  }
-  identity sipSig {
-    base iana-interface-type;
-    description
-      "SIP Signaling.";
-  }
-  identity docsCableUpstreamChannel {
-    base iana-interface-type;
-    description
-      "CATV Upstream Channel.";
-  }
-  identity econet {
-    base iana-interface-type;
-    description
-      "Acorn Econet.";
-  }
-  identity pon155 {
-    base iana-interface-type;
-    description
-      "FSAN 155Mb Symetrical PON interface.";
-  }
-  identity pon622 {
-    base iana-interface-type;
-    description
-      "FSAN 622Mb Symetrical PON interface.";
-  }
-  identity bridge {
-    base iana-interface-type;
-    description
-      "Transparent bridge interface.";
-  }
-  identity linegroup {
-    base iana-interface-type;
-    description
-      "Interface common to multiple lines.";
-  }
-  identity voiceEMFGD {
-    base iana-interface-type;
-    description
-      "Voice E&M Feature Group D.";
-  }
-  identity voiceFGDEANA {
-    base iana-interface-type;
-    description
-      "Voice FGD Exchange Access North American.";
-  }
-  identity voiceDID {
-    base iana-interface-type;
-    description
-      "Voice Direct Inward Dialing.";
-  }
-  identity mpegTransport {
-    base iana-interface-type;
-    description
-      "MPEG transport interface.";
-  }
-  identity sixToFour {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "6to4 interface (DEPRECATED).";
-    reference
-      "RFC 4087 - IP Tunnel MIB";
-  }
-  identity gtp {
-    base iana-interface-type;
-    description
-      "GTP (GPRS Tunneling Protocol).";
-  }
-  identity pdnEtherLoop1 {
-    base iana-interface-type;
-    description
-      "Paradyne EtherLoop 1.";
-  }
-  identity pdnEtherLoop2 {
-    base iana-interface-type;
-    description
-      "Paradyne EtherLoop 2.";
-  }
-  identity opticalChannelGroup {
-    base iana-interface-type;
-    description
-      "Optical Channel Group.";
-  }
-  identity homepna {
-    base iana-interface-type;
-    description
-      "HomePNA ITU-T G.989.";
-  }
-  identity gfp {
-    base iana-interface-type;
-    description
-      "Generic Framing Procedure (GFP).";
-  }
-  identity ciscoISLvlan {
-    base iana-interface-type;
-    description
-      "Layer 2 Virtual LAN using Cisco ISL.";
-  }
-  identity actelisMetaLOOP {
-    base iana-interface-type;
-    description
-      "Acteleis proprietary MetaLOOP High Speed Link.";
-  }
-  identity fcipLink {
-    base iana-interface-type;
-    description
-      "FCIP Link.";
-  }
-  identity rpr {
-    base iana-interface-type;
-    description
-      "Resilient Packet Ring Interface Type.";
-  }
-  identity qam {
-    base iana-interface-type;
-    description
-      "RF Qam Interface.";
-  }
-  identity lmp {
-    base iana-interface-type;
-    description
-      "Link Management Protocol.";
-    reference
-      "RFC 4327 - Link Management Protocol (LMP) Management
-                  Information Base (MIB)";
-  }
-  identity cblVectaStar {
-    base iana-interface-type;
-    description
-      "Cambridge Broadband Networks Limited VectaStar.";
-  }
-  identity docsCableMCmtsDownstream {
-    base iana-interface-type;
-    description
-      "CATV Modular CMTS Downstream Interface.";
-  }
-  identity adsl2 {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Asymmetric Digital Subscriber Loop Version 2
-       (DEPRECATED/OBSOLETED - please use adsl2plus(238)
-       instead).";
-    reference
-      "RFC 4706 - Definitions of Managed Objects for Asymmetric
-                  Digital Subscriber Line 2 (ADSL2)";
-  }
-  identity macSecControlledIF {
-    base iana-interface-type;
-    description
-      "MACSecControlled.";
-  }
-  identity macSecUncontrolledIF {
-    base iana-interface-type;
-    description
-      "MACSecUncontrolled.";
-  }
-  identity aviciOpticalEther {
-    base iana-interface-type;
-    description
-      "Avici Optical Ethernet Aggregate.";
-  }
-  identity atmbond {
-    base iana-interface-type;
-    description
-      "atmbond.";
-  }
-  identity voiceFGDOS {
-    base iana-interface-type;
-    description
-      "Voice FGD Operator Services.";
-  }
-  identity mocaVersion1 {
-    base iana-interface-type;
-    description
-      "MultiMedia over Coax Alliance (MoCA) Interface
-       as documented in information provided privately to IANA.";
-  }
-  identity ieee80216WMAN {
-    base iana-interface-type;
-    description
-      "IEEE 802.16 WMAN interface.";
-  }
-  identity adsl2plus {
-    base iana-interface-type;
-    description
-      "Asymmetric Digital Subscriber Loop Version 2 -
-       Version 2 Plus and all variants.";
-  }
-  identity dvbRcsMacLayer {
-    base iana-interface-type;
-    description
-      "DVB-RCS MAC Layer.";
-    reference
-      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-  }
-  identity dvbTdm {
-    base iana-interface-type;
-    description
-      "DVB Satellite TDM.";
-    reference
-      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-  }
-  identity dvbRcsTdma {
-    base iana-interface-type;
-    description
-      "DVB-RCS TDMA.";
-    reference
-      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-  }
-  identity x86Laps {
-    base iana-interface-type;
-    description
-      "LAPS based on ITU-T X.86/Y.1323.";
-  }
-  identity wwanPP {
-    base iana-interface-type;
-    description
-      "3GPP WWAN.";
-  }
-  identity wwanPP2 {
-    base iana-interface-type;
-    description
-      "3GPP2 WWAN.";
-  }
-  identity voiceEBS {
-    base iana-interface-type;
-    description
-      "Voice P-phone EBS physical interface.";
-  }
-  identity ifPwType {
-    base iana-interface-type;
-    description
-      "Pseudowire interface type.";
-    reference
-      "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)";
-  }
-  identity ilan {
-    base iana-interface-type;
-    description
-      "Internal LAN on a bridge per IEEE 802.1ap.";
-  }
-  identity pip {
-    base iana-interface-type;
-    description
-      "Provider Instance Port on a bridge per IEEE 802.1ah PBB.";
-  }
-  identity aluELP {
-    base iana-interface-type;
-    description
-      "Alcatel-Lucent Ethernet Link Protection.";
-  }
-  identity gpon {
-    base iana-interface-type;
-    description
-      "Gigabit-capable passive optical networks (G-PON) as per
-       ITU-T G.948.";
-  }
-  identity vdsl2 {
-    base iana-interface-type;
-    description
-      "Very high speed digital subscriber line Version 2
-       (as per ITU-T Recommendation G.993.2).";
-    reference
-      "RFC 5650 - Definitions of Managed Objects for Very High
-                  Speed Digital Subscriber Line 2 (VDSL2)";
-  }
-  identity capwapDot11Profile {
-    base iana-interface-type;
-    description
-      "WLAN Profile Interface.";
-    reference
-      "RFC 5834 - Control and Provisioning of Wireless Access
-                  Points (CAPWAP) Protocol Binding MIB for
-                  IEEE 802.11";
-  }
-  identity capwapDot11Bss {
-    base iana-interface-type;
-    description
-      "WLAN BSS Interface.";
-    reference
-      "RFC 5834 - Control and Provisioning of Wireless Access
-                  Points (CAPWAP) Protocol Binding MIB for
-                  IEEE 802.11";
-  }
-  identity capwapWtpVirtualRadio {
-    base iana-interface-type;
-    description
-      "WTP Virtual Radio Interface.";
-    reference
-      "RFC 5833 - Control and Provisioning of Wireless Access
-                  Points (CAPWAP) Protocol Base MIB";
-  }
-  identity bits {
-    base iana-interface-type;
-    description
-      "bitsport.";
-  }
-  identity docsCableUpstreamRfPort {
-    base iana-interface-type;
-    description
-      "DOCSIS CATV Upstream RF Port.";
-  }
-  identity cableDownstreamRfPort {
-    base iana-interface-type;
-    description
-      "CATV downstream RF Port.";
-  }
-  identity vmwareVirtualNic {
-    base iana-interface-type;
-    description
-      "VMware Virtual Network Interface.";
-  }
-  identity ieee802154 {
-    base iana-interface-type;
-    description
-      "IEEE 802.15.4 WPAN interface.";
-    reference
-      "IEEE 802.15.4-2006";
-  }
-  identity otnOdu {
-    base iana-interface-type;
-    description
-      "OTN Optical Data Unit.";
-  }
-  identity otnOtu {
-    base iana-interface-type;
-    description
-      "OTN Optical channel Transport Unit.";
-  }
-  identity ifVfiType {
-    base iana-interface-type;
-    description
-      "VPLS Forwarding Instance Interface Type.";
-  }
-  identity g9981 {
-    base iana-interface-type;
-    description
-      "G.998.1 bonded interface.";
-  }
-  identity g9982 {
-    base iana-interface-type;
-    description
-      "G.998.2 bonded interface.";
-  }
-  identity g9983 {
-    base iana-interface-type;
-    description
-      "G.998.3 bonded interface.";
-  }
-
-  identity aluEpon {
-    base iana-interface-type;
-    description
-      "Ethernet Passive Optical Networks (E-PON).";
-  }
-  identity aluEponOnu {
-    base iana-interface-type;
-    description
-      "EPON Optical Network Unit.";
-  }
-  identity aluEponPhysicalUni {
-    base iana-interface-type;
-    description
-      "EPON physical User to Network interface.";
-  }
-  identity aluEponLogicalLink {
-    base iana-interface-type;
-    description
-      "The emulation of a point-to-point link over the EPON
-       layer.";
-  }
-  identity aluGponOnu {
-    base iana-interface-type;
-    description
-      "GPON Optical Network Unit.";
-    reference
-      "ITU-T G.984.2";
-  }
-  identity aluGponPhysicalUni {
-    base iana-interface-type;
-    description
-      "GPON physical User to Network interface.";
-    reference
-      "ITU-T G.984.2";
-  }
-  identity vmwareNicTeam {
-    base iana-interface-type;
-    description
-      "VMware NIC Team.";
-  }
-  identity docsOfdmDownstream {
-    base iana-interface-type;
-    description
-      "CATV Downstream OFDM interface.";
-  }
-  identity docsOfdmaUpstream {
-    base iana-interface-type;
-    description
-      "CATV Upstream OFDMA interface.";
-  }
-  identity gfast {
-    base iana-interface-type;
-    description
-      "G.fast port.";
-    reference
-      "ITU-T G.9701";
-  }
-  identity sdci {
-    base iana-interface-type;
-    description
-      "SDCI (IO-Link).";
-    reference
-      "IEC 61131-9 Edition 1.0 2013-09";
-  }
-  identity xboxWireless {
-    base iana-interface-type;
-    description
-      "Xbox wireless.";
-  }
-  identity fastdsl {
-    base iana-interface-type;
-    description
-      "FastDSL.";
-    reference
-      "BBF TR-355";
-  }
-  identity docsCableScte55d1FwdOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-1 OOB Forward Channel.";
-  }
-  identity docsCableScte55d1RetOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-1 OOB Return Channel.";
-  }
-  identity docsCableScte55d2DsOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-2 OOB Downstream Channel.";
-  }
-  identity docsCableScte55d2UsOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-2 OOB Upstream Channel.";
-  }
-  identity docsCableNdf {
-    base iana-interface-type;
-    description
-      "Cable Narrowband Digital Forward.";
-  }
-  identity docsCableNdr {
-    base iana-interface-type;
-    description
-      "Cable Narrowband Digital Return.";
-  }
-  identity ptm {
-    base iana-interface-type;
-    description
-      "Packet Transfer Mode.";
-  }
-}
-
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-inet-types@2013-07-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-inet-types@2013-07-15.yang
deleted file mode 100644 (file)
index 5c6f139..0000000
+++ /dev/null
@@ -1,457 +0,0 @@
-module ietf-inet-types {
-
-  namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types";
-  prefix "inet";
-
-  organization
-   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-
-  contact
-   "WG Web:   <http://tools.ietf.org/wg/netmod/>
-    WG List:  <mailto:netmod@ietf.org>
-
-    WG Chair: David Kessens
-              <mailto:david.kessens@nsn.com>
-
-    WG Chair: Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>
-
-    Editor:   Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>";
-
-  description
-   "This module contains a collection of generally useful derived
-    YANG data types for Internet addresses and related things.
-
-    Copyright (c) 2013 IETF Trust and the persons identified as
-    authors of the code.  All rights reserved.
-
-    Redistribution and use in source and binary forms, with or
-    without modification, is permitted pursuant to, and subject
-    to the license terms contained in, the Simplified BSD License
-    set forth in Section 4.c of the IETF Trust's Legal Provisions
-    Relating to IETF Documents
-    (http://trustee.ietf.org/license-info).
-
-    This version of this YANG module is part of RFC 6991; see
-    the RFC itself for full legal notices.";
-
-  revision 2013-07-15 {
-    description
-     "This revision adds the following new data types:
-      - ip-address-no-zone
-      - ipv4-address-no-zone
-      - ipv6-address-no-zone";
-    reference
-     "RFC 6991: Common YANG Data Types";
-  }
-
-  revision 2010-09-24 {
-    description
-     "Initial revision.";
-    reference
-     "RFC 6021: Common YANG Data Types";
-  }
-
-  /*** collection of types related to protocol fields ***/
-
-  typedef ip-version {
-    type enumeration {
-      enum unknown {
-        value "0";
-        description
-         "An unknown or unspecified version of the Internet
-          protocol.";
-      }
-      enum ipv4 {
-        value "1";
-        description
-         "The IPv4 protocol as defined in RFC 791.";
-      }
-      enum ipv6 {
-        value "2";
-        description
-         "The IPv6 protocol as defined in RFC 2460.";
-      }
-    }
-    description
-     "This value represents the version of the IP protocol.
-
-      In the value set and its semantics, this type is equivalent
-      to the InetVersion textual convention of the SMIv2.";
-    reference
-     "RFC  791: Internet Protocol
-      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
-      RFC 4001: Textual Conventions for Internet Network Addresses";
-  }
-
-  typedef dscp {
-    type uint8 {
-      range "0..63";
-    }
-    description
-     "The dscp type represents a Differentiated Services Code Point
-      that may be used for marking packets in a traffic stream.
-      In the value set and its semantics, this type is equivalent
-      to the Dscp textual convention of the SMIv2.";
-    reference
-     "RFC 3289: Management Information Base for the Differentiated
-                Services Architecture
-      RFC 2474: Definition of the Differentiated Services Field
-                (DS Field) in the IPv4 and IPv6 Headers
-      RFC 2780: IANA Allocation Guidelines For Values In
-                the Internet Protocol and Related Headers";
-  }
-
-  typedef ipv6-flow-label {
-    type uint32 {
-      range "0..1048575";
-    }
-    description
-     "The ipv6-flow-label type represents the flow identifier or Flow
-      Label in an IPv6 packet header that may be used to
-      discriminate traffic flows.
-
-      In the value set and its semantics, this type is equivalent
-      to the IPv6FlowLabel textual convention of the SMIv2.";
-    reference
-     "RFC 3595: Textual Conventions for IPv6 Flow Label
-      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification";
-  }
-
-  typedef port-number {
-    type uint16 {
-      range "0..65535";
-    }
-    description
-     "The port-number type represents a 16-bit port number of an
-      Internet transport-layer protocol such as UDP, TCP, DCCP, or
-      SCTP.  Port numbers are assigned by IANA.  A current list of
-      all assignments is available from <http://www.iana.org/>.
-
-      Note that the port number value zero is reserved by IANA.  In
-      situations where the value zero does not make sense, it can
-      be excluded by subtyping the port-number type.
-      In the value set and its semantics, this type is equivalent
-      to the InetPortNumber textual convention of the SMIv2.";
-    reference
-     "RFC  768: User Datagram Protocol
-      RFC  793: Transmission Control Protocol
-      RFC 4960: Stream Control Transmission Protocol
-      RFC 4340: Datagram Congestion Control Protocol (DCCP)
-      RFC 4001: Textual Conventions for Internet Network Addresses";
-  }
-
-  /*** collection of types related to autonomous systems ***/
-
-  typedef as-number {
-    type uint32;
-    description
-     "The as-number type represents autonomous system numbers
-      which identify an Autonomous System (AS).  An AS is a set
-      of routers under a single technical administration, using
-      an interior gateway protocol and common metrics to route
-      packets within the AS, and using an exterior gateway
-      protocol to route packets to other ASes.  IANA maintains
-      the AS number space and has delegated large parts to the
-      regional registries.
-
-      Autonomous system numbers were originally limited to 16
-      bits.  BGP extensions have enlarged the autonomous system
-      number space to 32 bits.  This type therefore uses an uint32
-      base type without a range restriction in order to support
-      a larger autonomous system number space.
-
-      In the value set and its semantics, this type is equivalent
-      to the InetAutonomousSystemNumber textual convention of
-      the SMIv2.";
-    reference
-     "RFC 1930: Guidelines for creation, selection, and registration
-                of an Autonomous System (AS)
-      RFC 4271: A Border Gateway Protocol 4 (BGP-4)
-      RFC 4001: Textual Conventions for Internet Network Addresses
-      RFC 6793: BGP Support for Four-Octet Autonomous System (AS)
-                Number Space";
-  }
-
-  /*** collection of types related to IP addresses and hostnames ***/
-
-  typedef ip-address {
-    type union {
-      type inet:ipv4-address;
-      type inet:ipv6-address;
-    }
-    description
-     "The ip-address type represents an IP address and is IP
-      version neutral.  The format of the textual representation
-      implies the IP version.  This type supports scoped addresses
-      by allowing zone identifiers in the address format.";
-    reference
-     "RFC 4007: IPv6 Scoped Address Architecture";
-  }
-
-  typedef ipv4-address {
-    type string {
-      pattern
-        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-      +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-      + '(%[\p{N}\p{L}]+)?';
-    }
-    description
-      "The ipv4-address type represents an IPv4 address in
-       dotted-quad notation.  The IPv4 address may include a zone
-       index, separated by a % sign.
-
-       The zone index is used to disambiguate identical address
-       values.  For link-local addresses, the zone index will
-       typically be the interface index number or the name of an
-       interface.  If the zone index is not present, the default
-       zone of the device will be used.
-
-       The canonical format for the zone index is the numerical
-       format";
-  }
-
-  typedef ipv6-address {
-    type string {
-      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
-            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
-            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
-            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
-            + '(%[\p{N}\p{L}]+)?';
-      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
-            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
-            + '(%.+)?';
-    }
-    description
-     "The ipv6-address type represents an IPv6 address in full,
-      mixed, shortened, and shortened-mixed notation.  The IPv6
-      address may include a zone index, separated by a % sign.
-
-      The zone index is used to disambiguate identical address
-      values.  For link-local addresses, the zone index will
-      typically be the interface index number or the name of an
-      interface.  If the zone index is not present, the default
-      zone of the device will be used.
-
-      The canonical format of IPv6 addresses uses the textual
-      representation defined in Section 4 of RFC 5952.  The
-      canonical format for the zone index is the numerical
-      format as described in Section 11.2 of RFC 4007.";
-    reference
-     "RFC 4291: IP Version 6 Addressing Architecture
-      RFC 4007: IPv6 Scoped Address Architecture
-      RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  typedef ip-address-no-zone {
-    type union {
-      type inet:ipv4-address-no-zone;
-      type inet:ipv6-address-no-zone;
-    }
-    description
-     "The ip-address-no-zone type represents an IP address and is
-      IP version neutral.  The format of the textual representation
-      implies the IP version.  This type does not support scoped
-      addresses since it does not allow zone identifiers in the
-      address format.";
-    reference
-     "RFC 4007: IPv6 Scoped Address Architecture";
-  }
-
-  typedef ipv4-address-no-zone {
-    type inet:ipv4-address {
-      pattern '[0-9\.]*';
-    }
-    description
-      "An IPv4 address without a zone index.  This type, derived from
-       ipv4-address, may be used in situations where the zone is
-       known from the context and hence no zone index is needed.";
-  }
-
-  typedef ipv6-address-no-zone {
-    type inet:ipv6-address {
-      pattern '[0-9a-fA-F:\.]*';
-    }
-    description
-      "An IPv6 address without a zone index.  This type, derived from
-       ipv6-address, may be used in situations where the zone is
-       known from the context and hence no zone index is needed.";
-    reference
-     "RFC 4291: IP Version 6 Addressing Architecture
-      RFC 4007: IPv6 Scoped Address Architecture
-      RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  typedef ip-prefix {
-    type union {
-      type inet:ipv4-prefix;
-      type inet:ipv6-prefix;
-    }
-    description
-     "The ip-prefix type represents an IP prefix and is IP
-      version neutral.  The format of the textual representations
-      implies the IP version.";
-  }
-
-  typedef ipv4-prefix {
-    type string {
-      pattern
-         '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-       +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-       + '/(([0-9])|([1-2][0-9])|(3[0-2]))';
-    }
-    description
-     "The ipv4-prefix type represents an IPv4 address prefix.
-      The prefix length is given by the number following the
-      slash character and must be less than or equal to 32.
-
-      A prefix length value of n corresponds to an IP address
-      mask that has n contiguous 1-bits from the most
-      significant bit (MSB) and all other bits set to 0.
-
-      The canonical format of an IPv4 prefix has all bits of
-      the IPv4 address set to zero that are not part of the
-      IPv4 prefix.";
-  }
-
-  typedef ipv6-prefix {
-    type string {
-      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
-            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
-            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
-            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
-            + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))';
-      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
-            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
-            + '(/.+)';
-    }
-    description
-     "The ipv6-prefix type represents an IPv6 address prefix.
-      The prefix length is given by the number following the
-      slash character and must be less than or equal to 128.
-
-      A prefix length value of n corresponds to an IP address
-      mask that has n contiguous 1-bits from the most
-      significant bit (MSB) and all other bits set to 0.
-
-      The IPv6 address should have all bits that do not belong
-      to the prefix set to zero.
-
-      The canonical format of an IPv6 prefix has all bits of
-      the IPv6 address set to zero that are not part of the
-      IPv6 prefix.  Furthermore, the IPv6 address is represented
-      as defined in Section 4 of RFC 5952.";
-    reference
-     "RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  /*** collection of domain name and URI types ***/
-
-  typedef domain-name {
-    type string {
-      pattern
-        '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
-      + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
-      + '|\.';
-      length "1..253";
-    }
-    description
-     "The domain-name type represents a DNS domain name.  The
-      name SHOULD be fully qualified whenever possible.
-
-      Internet domain names are only loosely specified.  Section
-      3.5 of RFC 1034 recommends a syntax (modified in Section
-      2.1 of RFC 1123).  The pattern above is intended to allow
-      for current practice in domain name use, and some possible
-      future expansion.  It is designed to hold various types of
-      domain names, including names used for A or AAAA records
-      (host names) and other records, such as SRV records.  Note
-      that Internet host names have a stricter syntax (described
-      in RFC 952) than the DNS recommendations in RFCs 1034 and
-      1123, and that systems that want to store host names in
-      schema nodes using the domain-name type are recommended to
-      adhere to this stricter standard to ensure interoperability.
-
-      The encoding of DNS names in the DNS protocol is limited
-      to 255 characters.  Since the encoding consists of labels
-      prefixed by a length bytes and there is a trailing NULL
-      byte, only 253 characters can appear in the textual dotted
-      notation.
-
-      The description clause of schema nodes using the domain-name
-      type MUST describe when and how these names are resolved to
-      IP addresses.  Note that the resolution of a domain-name value
-      may require to query multiple DNS records (e.g., A for IPv4
-      and AAAA for IPv6).  The order of the resolution process and
-      which DNS record takes precedence can either be defined
-      explicitly or may depend on the configuration of the
-      resolver.
-
-      Domain-name values use the US-ASCII encoding.  Their canonical
-      format uses lowercase US-ASCII characters.  Internationalized
-      domain names MUST be A-labels as per RFC 5890.";
-    reference
-     "RFC  952: DoD Internet Host Table Specification
-      RFC 1034: Domain Names - Concepts and Facilities
-      RFC 1123: Requirements for Internet Hosts -- Application
-                and Support
-      RFC 2782: A DNS RR for specifying the location of services
-                (DNS SRV)
-      RFC 5890: Internationalized Domain Names in Applications
-                (IDNA): Definitions and Document Framework";
-  }
-
-  typedef host {
-    type union {
-      type inet:ip-address;
-      type inet:domain-name;
-    }
-    description
-     "The host type represents either an IP address or a DNS
-      domain name.";
-  }
-
-  typedef uri {
-    type string;
-    description
-     "The uri type represents a Uniform Resource Identifier
-      (URI) as defined by STD 66.
-
-      Objects using the uri type MUST be in US-ASCII encoding,
-      and MUST be normalized as described by RFC 3986 Sections
-      6.2.1, 6.2.2.1, and 6.2.2.2.  All unnecessary
-      percent-encoding is removed, and all case-insensitive
-      characters are set to lowercase except for hexadecimal
-      digits, which are normalized to uppercase as described in
-      Section 6.2.2.1.
-
-      The purpose of this normalization is to help provide
-      unique URIs.  Note that this normalization is not
-      sufficient to provide uniqueness.  Two URIs that are
-      textually distinct after this normalization may still be
-      equivalent.
-
-      Objects using the uri type may restrict the schemes that
-      they permit.  For example, 'data:' and 'urn:' schemes
-      might not be appropriate.
-
-      A zero-length URI is not a valid URI.  This can be used to
-      express 'URI absent' where required.
-
-      In the value set and its semantics, this type is equivalent
-      to the Uri SMIv2 textual convention defined in RFC 5017.";
-    reference
-     "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
-      RFC 3305: Report from the Joint W3C/IETF URI Planning Interest
-                Group: Uniform Resource Identifiers (URIs), URLs,
-                and Uniform Resource Names (URNs): Clarifications
-                and Recommendations
-      RFC 5017: MIB Textual Conventions for Uniform Resource
-                Identifiers (URIs)";
-  }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-interfaces@2014-05-08.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-interfaces@2014-05-08.yang
deleted file mode 100644 (file)
index 5f42b15..0000000
+++ /dev/null
@@ -1,603 +0,0 @@
-module ietf-interfaces {
-  namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces";
-  prefix if;
-  import ietf-yang-types {
-    prefix yang;
-  }
-  organization
-    "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-  contact
-    "WG Web:   <http://tools.ietf.org/wg/netmod/>
-     WG List:  <mailto:netmod@ietf.org>
-     WG Chair: Thomas Nadeau
-               <mailto:tnadeau@lucidvision.com>
-     WG Chair: Juergen Schoenwaelder
-               <mailto:j.schoenwaelder@jacobs-university.de>
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>";
-  description
-    "This module contains a collection of YANG definitions for
-     managing network interfaces.
-     Copyright (c) 2014 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-     This version of this YANG module is part of RFC 7223; see
-     the RFC itself for full legal notices.";
-  revision 2014-05-08 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 7223: A YANG Data Model for Interface Management";
-  }
-  /*
-   * Typedefs
-   */
-  typedef interface-ref {
-    type leafref {
-      path "/if:interfaces/if:interface/if:name";
-    }
-    description
-      "This type is used by data models that need to reference
-       configured interfaces.";
-  }
-  typedef interface-state-ref {
-    type leafref {
-      path "/if:interfaces-state/if:interface/if:name";
-    }
-    description
-      "This type is used by data models that need to reference
-       the operationally present interfaces.";
-  }
-  /*
-   * Identities
-   */
-  identity interface-type {
-    description
-      "Base identity from which specific interface types are
-       derived.";
-  }
-  /*
-   * Features
-   */
-  feature arbitrary-names {
-    description
-      "This feature indicates that the device allows user-controlled
-       interfaces to be named arbitrarily.";
-  }
-  feature pre-provisioning {
-    description
-      "This feature indicates that the device supports
-       pre-provisioning of interface configuration, i.e., it is
-       possible to configure an interface whose physical interface
-       hardware is not present on the device.";
-  }
-  feature if-mib {
-    description
-      "This feature indicates that the device implements
-       the IF-MIB.";
-    reference
-      "RFC 2863: The Interfaces Group MIB";
-  }
-  /*
-   * Configuration data nodes
-   */
-  container interfaces {
-    description
-      "Interface configuration parameters.";
-    list interface {
-      key "name";
-      description
-        "The list of configured interfaces on the device.
-         The operational state of an interface is available in the
-         /interfaces-state/interface list.  If the configuration of a
-         system-controlled interface cannot be used by the system
-         (e.g., the interface hardware present does not match the
-         interface type), then the configuration is not applied to
-         the system-controlled interface shown in the
-         /interfaces-state/interface list.  If the configuration
-         of a user-controlled interface cannot be used by the system,
-         the configured interface is not instantiated in the
-         /interfaces-state/interface list.";
-     leaf name {
-        type string;
-        description
-          "The name of the interface.
-           A device MAY restrict the allowed values for this leaf,
-           possibly depending on the type of the interface.
-           For system-controlled interfaces, this leaf is the
-           device-specific name of the interface.  The 'config false'
-           list /interfaces-state/interface contains the currently
-           existing interfaces on the device.
-           If a client tries to create configuration for a
-           system-controlled interface that is not present in the
-           /interfaces-state/interface list, the server MAY reject
-           the request if the implementation does not support
-           pre-provisioning of interfaces or if the name refers to
-           an interface that can never exist in the system.  A
-           NETCONF server MUST reply with an rpc-error with the
-           error-tag 'invalid-value' in this case.
-           If the device supports pre-provisioning of interface
-           configuration, the 'pre-provisioning' feature is
-           advertised.
-           If the device allows arbitrarily named user-controlled
-           interfaces, the 'arbitrary-names' feature is advertised.
-           When a configured user-controlled interface is created by
-           the system, it is instantiated with the same name in the
-           /interface-state/interface list.";
-      }
-      leaf description {
-        type string;
-        description
-          "A textual description of the interface.
-           A server implementation MAY map this leaf to the ifAlias
-           MIB object.  Such an implementation needs to use some
-           mechanism to handle the differences in size and characters
-           allowed between this leaf and ifAlias.  The definition of
-           such a mechanism is outside the scope of this document.
-           Since ifAlias is defined to be stored in non-volatile
-           storage, the MIB implementation MUST map ifAlias to the
-           value of 'description' in the persistently stored
-           datastore.
-           Specifically, if the device supports ':startup', when
-           ifAlias is read the device MUST return the value of
-           'description' in the 'startup' datastore, and when it is
-           written, it MUST be written to the 'running' and 'startup'
-           datastores.  Note that it is up to the implementation to
-           decide whether to modify this single leaf in 'startup' or
-           perform an implicit copy-config from 'running' to
-           'startup'.
-           If the device does not support ':startup', ifAlias MUST
-           be mapped to the 'description' leaf in the 'running'
-           datastore.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAlias";
-      }
-      leaf type {
-        type identityref {
-          base interface-type;
-        }
-        mandatory true;
-        description
-          "The type of the interface.
-           When an interface entry is created, a server MAY
-           initialize the type leaf with a valid value, e.g., if it
-           is possible to derive the type from the name of the
-           interface.
-           If a client tries to set the type of an interface to a
-           value that can never be used by the system, e.g., if the
-           type is not supported or if the type does not match the
-           name of the interface, the server MUST reject the request.
-           A NETCONF server MUST reply with an rpc-error with the
-           error-tag 'invalid-value' in this case.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifType";
-      }
-      leaf enabled {
-        type boolean;
-        default "true";
-        description
-          "This leaf contains the configured, desired state of the
-           interface.
-           Systems that implement the IF-MIB use the value of this
-           leaf in the 'running' datastore to set
-           IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
-           has been initialized, as described in RFC 2863.
-           Changes in this leaf in the 'running' datastore are
-           reflected in ifAdminStatus, but if ifAdminStatus is
-           changed over SNMP, this leaf is not affected.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-      }
-      leaf link-up-down-trap-enable {
-        //if-feature if-mib;
-        type enumeration {
-          enum enabled {
-            value 1;
-          }
-          enum disabled {
-            value 2;
-          }
-        }
-        description
-          "Controls whether linkUp/linkDown SNMP notifications
-           should be generated for this interface.
-           If this node is not configured, the value 'enabled' is
-           operationally used by the server for interfaces that do
-           not operate on top of any other interface (i.e., there are
-           no 'lower-layer-if' entries), and 'disabled' otherwise.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifLinkUpDownTrapEnable";
-      }
-    }
-  }
-  /*
-   * Operational state data nodes
-   */
-  container interfaces-state {
-    config false;
-    description
-      "Data nodes for the operational state of interfaces.";
-    list interface {
-      key "name";
-      description
-        "The list of interfaces on the device.
-         System-controlled interfaces created by the system are
-         always present in this list, whether they are configured or
-         not.";
-      leaf name {
-        type string;
-        description
-          "The name of the interface.
-           A server implementation MAY map this leaf to the ifName
-           MIB object.  Such an implementation needs to use some
-           mechanism to handle the differences in size and characters
-           allowed between this leaf and ifName.  The definition of
-           such a mechanism is outside the scope of this document.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifName";
-      }
-      leaf type {
-        type identityref {
-          base interface-type;
-        }
-        mandatory true;
-        description
-          "The type of the interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifType";
-      }
-      leaf admin-status {
-        //if-feature if-mib;
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-            description
-              "Not ready to pass packets and not in some test mode.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.";
-          }
-        }
-        mandatory true;
-        description
-          "The desired state of the interface.
-           This leaf has the same read semantics as ifAdminStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-      }
-      leaf oper-status {
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-            description
-              "The interface does not pass any packets.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.  No operational packets can
-               be passed.";
-          }
-          enum unknown {
-            value 4;
-            description
-              "Status cannot be determined for some reason.";
-          }
-          enum dormant {
-            value 5;
-            description
-              "Waiting for some external event.";
-          }
-          enum not-present {
-            value 6;
-            description
-              "Some component (typically hardware) is missing.";
-          }
-          enum lower-layer-down {
-            value 7;
-            description
-              "Down due to state of lower-layer interface(s).";
-          }
-        }
-        mandatory true;
-        description
-          "The current operational state of the interface.
-           This leaf has the same semantics as ifOperStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOperStatus";
-      }
-      leaf last-change {
-        type yang:date-and-time;
-        description
-          "The time the interface entered its current operational
-           state.  If the current state was entered prior to the
-           last re-initialization of the local network management
-           subsystem, then this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifLastChange";
-      }
-      leaf if-index {
-        //if-feature if-mib;
-        type int32 {
-          range "1..2147483647";
-        }
-        mandatory true;
-        description
-          "The ifIndex value for the ifEntry represented by this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifIndex";
-      }
-      leaf phys-address {
-        type yang:phys-address;
-        description
-          "The interface's address at its protocol sub-layer.  For
-           example, for an 802.x interface, this object normally
-           contains a Media Access Control (MAC) address.  The
-           interface's media-specific modules must define the bit
-           and byte ordering and the format of the value of this
-           object.  For interfaces that do not have such an address
-           (e.g., a serial line), this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
-      }
-      leaf-list higher-layer-if {
-        type interface-state-ref;
-        description
-          "A list of references to interfaces layered on top of this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-      leaf-list lower-layer-if {
-        type interface-state-ref;
-        description
-          "A list of references to interfaces layered underneath this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-      leaf speed {
-        type yang:gauge64;
-        units "bits/second";
-        description
-            "An estimate of the interface's current bandwidth in bits
-             per second.  For interfaces that do not vary in
-             bandwidth or for those where no accurate estimation can
-             be made, this node should contain the nominal bandwidth.
-             For interfaces that have no concept of bandwidth, this
-             node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifSpeed, ifHighSpeed";
-      }
-      container statistics {
-        description
-          "A collection of interface-related statistics objects.";
-        leaf discontinuity-time {
-          type yang:date-and-time;
-          mandatory true;
-          description
-            "The time on the most recent occasion at which any one or
-             more of this interface's counters suffered a
-             discontinuity.  If no such discontinuities have occurred
-             since the last re-initialization of the local management
-             subsystem, then this node contains the time the local
-             management subsystem re-initialized itself.";
-        }
-        leaf in-octets {
-          type yang:counter64;
-          description
-            "The total number of octets received on the interface,
-             including framing characters.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
-        }
-        leaf in-unicast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were not addressed to a
-             multicast or broadcast address at this sub-layer.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
-        }
-        leaf in-broadcast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a broadcast
-             address at this sub-layer.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInBroadcastPkts";
-        }
-        leaf in-multicast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a multicast
-             address at this sub-layer.  For a MAC-layer protocol,
-             this includes both Group and Functional addresses.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInMulticastPkts";
-        }
-        leaf in-discards {
-          type yang:counter32;
-          description
-            "The number of inbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being deliverable to a higher-layer
-             protocol.  One possible reason for discarding such a
-             packet could be to free up buffer space.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInDiscards";
-        }
-        leaf in-errors {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of inbound
-             packets that contained errors preventing them from being
-             deliverable to a higher-layer protocol.  For character-
-             oriented or fixed-length interfaces, the number of
-             inbound transmission units that contained errors
-             preventing them from being deliverable to a higher-layer
-             protocol.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInErrors";
-        }
-        leaf in-unknown-protos {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of packets
-             received via the interface that were discarded because
-             of an unknown or unsupported protocol.  For
-             character-oriented or fixed-length interfaces that
-             support protocol multiplexing, the number of
-             transmission units received via the interface that were
-             discarded because of an unknown or unsupported protocol.
-             For any interface that does not support protocol
-             multiplexing, this counter is not present.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
-        }
-        leaf out-octets {
-          type yang:counter64;
-          description
-            "The total number of octets transmitted out of the
-             interface, including framing characters.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
-        }
-        leaf out-unicast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted, and that were not addressed
-             to a multicast or broadcast address at this sub-layer,
-             including those that were discarded or not sent.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
-        }
-        leaf out-broadcast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted, and that were addressed to a
-             broadcast address at this sub-layer, including those
-             that were discarded or not sent.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutBroadcastPkts";
-        }
-        leaf out-multicast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted, and that were addressed to a
-             multicast address at this sub-layer, including those
-             that were discarded or not sent.  For a MAC-layer
-             protocol, this includes both Group and Functional
-             addresses.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutMulticastPkts";
-        }
-        leaf out-discards {
-          type yang:counter32;
-          description
-            "The number of outbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being transmitted.  One possible reason
-             for discarding such a packet could be to free up buffer
-             space.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
-        }
-        leaf out-errors {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of outbound
-             packets that could not be transmitted because of errors.
-             For character-oriented or fixed-length interfaces, the
-             number of outbound transmission units that could not be
-             transmitted because of errors.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutErrors";
-        }
-      }
-    }
-  }
-}
-
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-monitoring-extension@2013-12-10.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-monitoring-extension@2013-12-10.yang
deleted file mode 100644 (file)
index e8f2ec3..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-module ietf-netconf-monitoring-extension {
-
-    yang-version 1;
-
-    namespace
-      "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring-extension";
-
-    prefix ncme;
-
-    import ietf-netconf-monitoring {
-      prefix ncm;
-    }
-
-    revision "2013-12-10" {
-      description "Initial revision.";
-
-    }
-
-    identity netconf-tcp {
-      base ncm:transport;
-      description
-        "NETCONF over TCP.";
-    }
-
-    augment "/ncm:netconf-state/ncm:sessions/ncm:session" {
-      leaf session-identifier {
-        type string;
-      }
-    }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-monitoring@2010-10-04.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-monitoring@2010-10-04.yang
deleted file mode 100644 (file)
index 730a416..0000000
+++ /dev/null
@@ -1,596 +0,0 @@
-module ietf-netconf-monitoring {
-
-    yang-version 1;
-
-    namespace
-      "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring";
-
-    prefix ncm;
-
-    import ietf-yang-types {
-      prefix yang;
-      revision-date "2013-07-15";
-    }
-
-    import ietf-inet-types {
-      prefix inet;
-      revision-date "2013-07-15";
-    }
-
-    organization
-      "IETF NETCONF (Network Configuration) Working Group";
-
-    contact
-      "WG Web:   <http://tools.ietf.org/wg/netconf/>
-     WG List:  <mailto:netconf@ietf.org>
-
-     WG Chair: Mehmet Ersue
-               <mailto:mehmet.ersue@nsn.com>
-
-     WG Chair: Bert Wijnen
-               <mailto:bertietf@bwijnen.net>
-
-     Editor:   Mark Scott
-               <mailto:mark.scott@ericsson.com>
-
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>";
-
-    description
-      "NETCONF Monitoring Module.
-     All elements in this module are read-only.
-
-     Copyright (c) 2010 IETF Trust and the persons identified as
-     authors of the code. All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD
-     License set forth in Section 4.c of the IETF Trust's
-     Legal Provisions Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC 6022; see
-     the RFC itself for full legal notices.";
-
-    revision "2010-10-04" {
-      description "Initial revision.";
-      reference
-        "RFC 6022: YANG Module for NETCONF Monitoring";
-
-    }
-
-
-    typedef netconf-datastore-type {
-      type enumeration {
-        enum "running" {
-          value 0;
-        }
-        enum "candidate" {
-          value 1;
-        }
-        enum "startup" {
-          value 2;
-        }
-      }
-      description
-        "Enumeration of possible NETCONF datastore types.";
-      reference
-        "RFC 4741: NETCONF Configuration Protocol";
-
-    }
-
-    identity transport {
-      description
-        "Base identity for NETCONF transport types.";
-    }
-
-    identity netconf-ssh {
-      base transport;
-      description
-        "NETCONF over Secure Shell (SSH).";
-      reference
-        "RFC 4742: Using the NETCONF Configuration Protocol
-              over Secure SHell (SSH)";
-
-    }
-
-    identity netconf-soap-over-beep {
-      base transport;
-      description
-        "NETCONF over Simple Object Access Protocol (SOAP) over
-       Blocks Extensible Exchange Protocol (BEEP).";
-      reference
-        "RFC 4743: Using NETCONF over the Simple Object
-              Access Protocol (SOAP)";
-
-    }
-
-    identity netconf-soap-over-https {
-      base transport;
-      description
-        "NETCONF over Simple Object Access Protocol (SOAP)
-      over Hypertext Transfer Protocol Secure (HTTPS).";
-      reference
-        "RFC 4743: Using NETCONF over the Simple Object
-              Access Protocol (SOAP)";
-
-    }
-
-    identity netconf-beep {
-      base transport;
-      description
-        "NETCONF over Blocks Extensible Exchange Protocol (BEEP).";
-      reference
-        "RFC 4744: Using the NETCONF Protocol over the
-              Blocks Extensible Exchange Protocol (BEEP)";
-
-    }
-
-    identity netconf-tls {
-      base transport;
-      description
-        "NETCONF over Transport Layer Security (TLS).";
-      reference
-        "RFC 5539: NETCONF over Transport Layer Security (TLS)";
-
-    }
-
-    identity schema-format {
-      description
-        "Base identity for data model schema languages.";
-    }
-
-    identity xsd {
-      base schema-format;
-      description
-        "W3C XML Schema Definition.";
-      reference
-        "W3C REC REC-xmlschema-1-20041028:
-          XML Schema Part 1: Structures";
-
-    }
-
-    identity yang {
-      base schema-format;
-      description
-        "The YANG data modeling language for NETCONF.";
-      reference
-        "RFC 6020:  YANG - A Data Modeling Language for the
-               Network Configuration Protocol (NETCONF)";
-
-    }
-
-    identity yin {
-      base schema-format;
-      description "The YIN syntax for YANG.";
-      reference
-        "RFC 6020:  YANG - A Data Modeling Language for the
-               Network Configuration Protocol (NETCONF)";
-
-    }
-
-    identity rng {
-      base schema-format;
-      description
-        "Regular Language for XML Next Generation (RELAX NG).";
-      reference
-        "ISO/IEC 19757-2:2008: RELAX NG";
-
-    }
-
-    identity rnc {
-      base schema-format;
-      description "Relax NG Compact Syntax";
-      reference
-        "ISO/IEC 19757-2:2008: RELAX NG";
-
-    }
-
-    grouping common-counters {
-      description
-        "Counters that exist both per session, and also globally,
-       accumulated from all sessions.";
-      leaf in-rpcs {
-        type yang:zero-based-counter32;
-        description
-          "Number of correct <rpc> messages received.";
-      }
-
-      leaf in-bad-rpcs {
-        type yang:zero-based-counter32;
-        description
-          "Number of messages received when an <rpc> message was expected,
-         that were not correct <rpc> messages.  This includes XML parse
-         errors and errors on the rpc layer.";
-      }
-
-      leaf out-rpc-errors {
-        type yang:zero-based-counter32;
-        description
-          "Number of <rpc-reply> messages sent that contained an
-         <rpc-error> element.";
-      }
-
-      leaf out-notifications {
-        type yang:zero-based-counter32;
-        description
-          "Number of <notification> messages sent.";
-      }
-    }  // grouping common-counters
-
-    container netconf-state {
-      config false;
-      description
-        "The netconf-state container is the root of the monitoring
-       data model.";
-      container capabilities {
-        description
-          "Contains the list of NETCONF capabilities supported by the
-         server.";
-        leaf-list capability {
-          type inet:uri;
-          description
-            "List of NETCONF capabilities supported by the server.";
-        }
-      }  // container capabilities
-
-      container datastores {
-        description
-          "Contains the list of NETCONF configuration datastores.";
-        list datastore {
-          key "name";
-          description
-            "List of NETCONF configuration datastores supported by
-           the NETCONF server and related information.";
-          leaf name {
-            type netconf-datastore-type;
-            description
-              "Name of the datastore associated with this list entry.";
-          }
-
-          container locks {
-            presence
-              "This container is present only if the datastore
-             is locked.";
-            description
-              "The NETCONF <lock> and <partial-lock> operations allow
-             a client to lock specific resources in a datastore.  The
-             NETCONF server will prevent changes to the locked
-             resources by all sessions except the one that acquired
-             the lock(s).
-
-             Monitoring information is provided for each datastore
-             entry including details such as the session that acquired
-             the lock, the type of lock (global or partial) and the
-             list of locked resources.  Multiple locks per datastore
-             are supported.";
-            grouping lock-info {
-              description
-                "Lock related parameters, common to both global and
-               partial locks.";
-              leaf locked-by-session {
-                type uint32;
-                mandatory true;
-                description
-                  "The session ID of the session that has locked
-                 this resource.  Both a global lock and a partial
-                 lock MUST contain the NETCONF session-id.
-
-                 If the lock is held by a session that is not managed
-                 by the NETCONF server (e.g., a CLI session), a session
-                 id of 0 (zero) is reported.";
-                reference
-                  "RFC 4741: NETCONF Configuration Protocol";
-
-              }
-
-              leaf locked-time {
-                type yang:date-and-time;
-                mandatory true;
-                description
-                  "The date and time of when the resource was
-                 locked.";
-              }
-            }  // grouping lock-info
-            choice lock-type {
-              description
-                "Indicates if a global lock or a set of partial locks
-               are set.";
-              container global-lock {
-                description
-                  "Present if the global lock is set.";
-                uses lock-info;
-              }  // container global-lock
-              list partial-lock {
-                key "lock-id";
-                description
-                  "List of partial locks.";
-                reference
-                  "RFC 5717: Partial Lock Remote Procedure Call (RPC) for
-                      NETCONF";
-
-                leaf lock-id {
-                  type uint32;
-                  description
-                    "This is the lock id returned in the <partial-lock>
-                   response.";
-                }
-
-                uses lock-info;
-
-                leaf-list select {
-                  type yang:xpath1.0;
-                  min-elements 1;
-                  description
-                    "The xpath expression that was used to request
-                   the lock.  The select expression indicates the
-                   original intended scope of the lock.";
-                }
-
-                leaf-list locked-node {
-                  type instance-identifier;
-                  description
-                    "The list of instance-identifiers (i.e., the
-                   locked nodes).
-
-                   The scope of the partial lock is defined by the list
-                   of locked nodes.";
-                }
-              }  // list partial-lock
-            }  // choice lock-type
-          }  // container locks
-        }  // list datastore
-      }  // container datastores
-
-      container schemas {
-        description
-          "Contains the list of data model schemas supported by the
-         server.";
-        list schema {
-          key "identifier version format";
-          description
-            "List of data model schemas supported by the server.";
-          leaf identifier {
-            type string;
-            description
-              "Identifier to uniquely reference the schema.  The
-             identifier is used in the <get-schema> operation and may
-             be used for other purposes such as file retrieval.
-
-             For modeling languages that support or require a data
-             model name (e.g., YANG module name) the identifier MUST
-             match that name.  For YANG data models, the identifier is
-             the name of the module or submodule.  In other cases, an
-             identifier such as a filename MAY be used instead.";
-          }
-
-          leaf version {
-            type string;
-            description
-              "Version of the schema supported.  Multiple versions MAY be
-             supported simultaneously by a NETCONF server.  Each
-             version MUST be reported individually in the schema list,
-             i.e., with same identifier, possibly different location,
-             but different version.
-
-             For YANG data models, version is the value of the most
-             recent YANG 'revision' statement in the module or
-             submodule, or the empty string if no 'revision' statement
-             is present.";
-          }
-
-          leaf format {
-            type identityref {
-              base schema-format;
-            }
-            description
-              "The data modeling language the schema is written
-             in (currently xsd, yang, yin, rng, or rnc).
-             For YANG data models, 'yang' format MUST be supported and
-             'yin' format MAY also be provided.";
-          }
-
-          leaf namespace {
-            type inet:uri;
-            mandatory true;
-            description
-              "The XML namespace defined by the data model.
-
-             For YANG data models, this is the module's namespace.
-             If the list entry describes a submodule, this field
-             contains the namespace of the module to which the
-             submodule belongs.";
-          }
-
-          leaf-list location {
-            type union {
-              type enumeration {
-                enum "NETCONF" {
-                  value 0;
-                }
-              }
-              type inet:uri;
-            }
-            description
-              "One or more locations from which the schema can be
-             retrieved.  This list SHOULD contain at least one
-             entry per schema.
-
-             A schema entry may be located on a remote file system
-             (e.g., reference to file system for ftp retrieval) or
-             retrieved directly from a server supporting the
-             <get-schema> operation (denoted by the value 'NETCONF').";
-          }
-        }  // list schema
-      }  // container schemas
-
-      container sessions {
-        description
-          "The sessions container includes session-specific data for
-         NETCONF management sessions.  The session list MUST include
-         all currently active NETCONF sessions.";
-        list session {
-          key "session-id";
-          description
-            "All NETCONF sessions managed by the NETCONF server
-           MUST be reported in this list.";
-          leaf session-id {
-            type uint32 {
-              range "1..max";
-            }
-            description
-              "Unique identifier for the session.  This value is the
-             NETCONF session identifier, as defined in RFC 4741.";
-            reference
-              "RFC 4741: NETCONF Configuration Protocol";
-
-          }
-
-          leaf transport {
-            type identityref {
-              base transport;
-            }
-            mandatory true;
-            description
-              "Identifies the transport for each session, e.g.,
-            'netconf-ssh', 'netconf-soap', etc.";
-          }
-
-          leaf username {
-            type string;
-            mandatory true;
-            description
-              "The username is the client identity that was authenticated
-            by the NETCONF transport protocol.  The algorithm used to
-            derive the username is NETCONF transport protocol specific
-            and in addition specific to the authentication mechanism
-            used by the NETCONF transport protocol.";
-          }
-
-          leaf source-host {
-            type inet:host;
-            description
-              "Host identifier of the NETCONF client.  The value
-             returned is implementation specific (e.g., hostname,
-             IPv4 address, IPv6 address)";
-          }
-
-          leaf login-time {
-            type yang:date-and-time;
-            mandatory true;
-            description
-              "Time at the server at which the session was established.";
-          }
-
-          uses common-counters {
-            description
-              "Per-session counters.  Zero based with following reset
-             behaviour:
-               - at start of a session
-               - when max value is reached";
-          }
-        }  // list session
-      }  // container sessions
-
-      container statistics {
-        description
-          "Statistical data pertaining to the NETCONF server.";
-        leaf netconf-start-time {
-          type yang:date-and-time;
-          description
-            "Date and time at which the management subsystem was
-           started.";
-        }
-
-        leaf in-bad-hellos {
-          type yang:zero-based-counter32;
-          description
-            "Number of sessions silently dropped because an
-          invalid <hello> message was received.  This includes <hello>
-          messages with a 'session-id' attribute, bad namespace, and
-          bad capability declarations.";
-        }
-
-        leaf in-sessions {
-          type yang:zero-based-counter32;
-          description
-            "Number of sessions started.  This counter is incremented
-           when a <hello> message with a <session-id> is sent.
-
-          'in-sessions' - 'in-bad-hellos' =
-              'number of correctly started netconf sessions'";
-        }
-
-        leaf dropped-sessions {
-          type yang:zero-based-counter32;
-          description
-            "Number of sessions that were abnormally terminated, e.g.,
-           due to idle timeout or transport close.  This counter is not
-           incremented when a session is properly closed by a
-           <close-session> operation, or killed by a <kill-session>
-           operation.";
-        }
-
-        uses common-counters {
-          description
-            "Global counters, accumulated from all sessions.
-           Zero based with following reset behaviour:
-             - re-initialization of NETCONF server
-             - when max value is reached";
-        }
-      }  // container statistics
-    }  // container netconf-state
-
-    rpc get-schema {
-      description
-        "This operation is used to retrieve a schema from the
-       NETCONF server.
-
-       Positive Response:
-         The NETCONF server returns the requested schema.
-
-       Negative Response:
-         If requested schema does not exist, the <error-tag> is
-         'invalid-value'.
-
-         If more than one schema matches the requested parameters, the
-         <error-tag> is 'operation-failed', and <error-app-tag> is
-         'data-not-unique'.";
-      input {
-        leaf identifier {
-          type string;
-          mandatory true;
-          description
-            "Identifier for the schema list entry.";
-        }
-
-        leaf version {
-          type string;
-          description
-            "Version of the schema requested.  If this parameter is not
-           present, and more than one version of the schema exists on
-           the server, a 'data-not-unique' error is returned, as
-           described above.";
-        }
-
-        leaf format {
-          type identityref {
-            base schema-format;
-          }
-          description
-            "The data modeling language of the schema.  If this
-            parameter is not present, and more than one formats of
-            the schema exists on the server, a 'data-not-unique' error
-            is returned, as described above.";
-        }
-      }
-
-      output {
-        anyxml data {
-          description
-            "Contains the schema content.";
-        }
-      }
-    }  // rpc get-schema
-} // module
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-notifications@2012-02-06.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf-notifications@2012-02-06.yang
deleted file mode 100644 (file)
index 31352a1..0000000
+++ /dev/null
@@ -1,363 +0,0 @@
-module ietf-netconf-notifications {
-
-   namespace
-     "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications";
-
-   prefix ncn;
-
-   import ietf-inet-types { prefix inet; revision-date "2013-07-15";}
-   import ietf-netconf { prefix nc; revision-date "2011-06-01";}
-
-   organization
-     "IETF NETCONF (Network Configuration Protocol) Working Group";
-
-   contact
-     "WG Web:   <http://tools.ietf.org/wg/netconf/>
-      WG List:  <mailto:netconf@ietf.org>
-
-      WG Chair: Bert Wijnen
-                <mailto:bertietf@bwijnen.net>
-
-      WG Chair: Mehmet Ersue
-                <mailto:mehmet.ersue@nsn.com>
-
-      Editor:   Andy Bierman
-                <mailto:andy@netconfcentral.org>";
-
-   description
-     "This module defines a YANG data model for use with the
-      NETCONF protocol that allows the NETCONF client to
-      receive common NETCONF base event notifications.
-
-      Copyright (c) 2012 IETF Trust and the persons identified as
-      the document authors.  All rights reserved.
-
-      Redistribution and use in source and binary forms, with or
-      without modification, is permitted pursuant to, and subject
-      to the license terms contained in, the Simplified BSD License
-
-
-
-      set forth in Section 4.c of the IETF Trust's Legal Provisions
-      Relating to IETF Documents
-      (http://trustee.ietf.org/license-info).
-
-      This version of this YANG module is part of RFC 6470; see
-      the RFC itself for full legal notices.";
-
-   revision "2012-02-06" {
-     description
-       "Initial version. Errata 3957 added.";
-     reference
-       "RFC 6470: NETCONF Base Notifications";
-   }
-
-  grouping common-session-parms {
-    description
-      "Common session parameters to identify a
-       management session.";
-
-    leaf username {
-      type string;
-      mandatory true;
-      description
-        "Name of the user for the session.";
-    }
-
-    leaf session-id {
-      type nc:session-id-or-zero-type;
-      mandatory true;
-      description
-        "Identifier of the session.
-         A NETCONF session MUST be identified by a non-zero value.
-         A non-NETCONF session MAY be identified by the value zero.";
-    }
-
-    leaf source-host {
-      type inet:ip-address;
-      description
-        "Address of the remote host for the session.";
-    }
-  }
-
-
-
-
-
-
-
-
-   grouping changed-by-parms {
-    description
-      "Common parameters to identify the source
-       of a change event, such as a configuration
-       or capability change.";
-
-    container changed-by {
-      description
-        "Indicates the source of the change.
-         If caused by internal action, then the
-         empty leaf 'server' will be present.
-         If caused by a management session, then
-         the name, remote host address, and session ID
-         of the session that made the change will be reported.";
-      choice server-or-user {
-        mandatory true;
-        leaf server {
-          type empty;
-          description
-            "If present, the change was caused
-             by the server.";
-        }
-
-        case by-user {
-          uses common-session-parms;
-        }
-      } // choice server-or-user
-    } // container changed-by-parms
-  }
-
-
-  notification netconf-config-change {
-    description
-      "Generated when the NETCONF server detects that the
-       <running> or <startup> configuration datastore
-       has been changed by a management session.
-       The notification summarizes the edits that
-       have been detected.
-
-       The server MAY choose to also generate this
-       notification while loading a datastore during the
-       boot process for the device.";
-
-    uses changed-by-parms;
-
-
-
-
-
-    leaf datastore {
-      type enumeration {
-        enum running {
-          description "The <running> datastore has changed.";
-        }
-        enum startup {
-          description "The <startup> datastore has changed";
-        }
-      }
-      default "running";
-      description
-        "Indicates which configuration datastore has changed.";
-    }
-
-    list edit {
-      description
-        "An edit record SHOULD be present for each distinct
-         edit operation that the server has detected on
-         the target datastore.  This list MAY be omitted
-         if the detailed edit operations are not known.
-         The server MAY report entries in this list for
-         changes not made by a NETCONF session (e.g., CLI).";
-
-      leaf target {
-        type instance-identifier;
-        description
-          "Topmost node associated with the configuration change.
-           A server SHOULD set this object to the node within
-           the datastore that is being altered.  A server MAY
-           set this object to one of the ancestors of the actual
-           node that was changed, or omit this object, if the
-           exact node is not known.";
-      }
-
-      leaf operation {
-        type nc:edit-operation-type;
-        description
-          "Type of edit operation performed.
-           A server MUST set this object to the NETCONF edit
-           operation performed on the target datastore.";
-      }
-    } // list edit
-  } // notification netconf-config-change
-
-
-
-
-
-
-  notification netconf-capability-change {
-    description
-      "Generated when the NETCONF server detects that
-       the server capabilities have changed.
-       Indicates which capabilities have been added, deleted,
-       and/or modified.  The manner in which a server
-       capability is changed is outside the scope of this
-       document.";
-
-    uses changed-by-parms;
-
-    leaf-list added-capability {
-      type inet:uri;
-      description
-        "List of capabilities that have just been added.";
-    }
-
-    leaf-list deleted-capability {
-      type inet:uri;
-      description
-        "List of capabilities that have just been deleted.";
-    }
-
-    leaf-list modified-capability {
-      type inet:uri;
-      description
-        "List of capabilities that have just been modified.
-         A capability is considered to be modified if the
-         base URI for the capability has not changed, but
-         one or more of the parameters encoded at the end of
-         the capability URI have changed.
-         The new modified value of the complete URI is returned.";
-    }
-  } // notification netconf-capability-change
-
-
-  notification netconf-session-start {
-    description
-      "Generated when a NETCONF server detects that a
-       NETCONF session has started.  A server MAY generate
-       this event for non-NETCONF management sessions.
-       Indicates the identity of the user that started
-       the session.";
-    uses common-session-parms;
-  } // notification netconf-session-start
-
-
-
-
-  notification netconf-session-end {
-    description
-      "Generated when a NETCONF server detects that a
-       NETCONF session has terminated.
-       A server MAY optionally generate this event for
-       non-NETCONF management sessions.  Indicates the
-       identity of the user that owned the session,
-       and why the session was terminated.";
-
-    uses common-session-parms;
-
-    leaf killed-by {
-      when "../termination-reason = 'killed'";
-      type nc:session-id-type;
-      description
-        "The ID of the session that directly caused this session
-         to be abnormally terminated.  If this session was abnormally
-         terminated by a non-NETCONF session unknown to the server,
-         then this leaf will not be present.";
-    }
-
-    leaf termination-reason {
-      type enumeration {
-        enum "closed" {
-          description
-            "The session was terminated by the client in normal
-             fashion, e.g., by the NETCONF <close-session>
-             protocol operation.";
-        }
-        enum "killed" {
-          description
-            "The session was terminated in abnormal
-             fashion, e.g., by the NETCONF <kill-session>
-             protocol operation.";
-        }
-        enum "dropped" {
-          description
-            "The session was terminated because the transport layer
-             connection was unexpectedly closed.";
-        }
-        enum "timeout" {
-          description
-            "The session was terminated because of inactivity,
-             e.g., waiting for the <hello> message or <rpc>
-             messages.";
-        }
-
-
-
-        enum "bad-hello" {
-          description
-            "The client's <hello> message was invalid.";
-        }
-        enum "other" {
-          description
-            "The session was terminated for some other reason.";
-        }
-      }
-      mandatory true;
-      description
-        "Reason the session was terminated.";
-    }
-  } // notification netconf-session-end
-
-
-  notification netconf-confirmed-commit {
-    description
-      "Generated when a NETCONF server detects that a
-       confirmed-commit event has occurred.  Indicates the event
-       and the current state of the confirmed-commit procedure
-       in progress.";
-    reference
-      "RFC 6241, Section 8.4";
-
-    uses common-session-parms {
-      when "confirm-event != 'timeout'";
-    }
-
-    leaf confirm-event {
-      type enumeration {
-        enum "start" {
-          description
-            "The confirmed-commit procedure has started.";
-        }
-        enum "cancel" {
-          description
-            "The confirmed-commit procedure has been canceled,
-             e.g., due to the session being terminated, or an
-             explicit <cancel-commit> operation.";
-        }
-        enum "timeout" {
-          description
-            "The confirmed-commit procedure has been canceled
-             due to the confirm-timeout interval expiring.
-             The common session parameters will not be present
-             in this sub-mode.";
-        }
-
-        enum "extend" {
-          description
-            "The confirmed-commit timeout has been extended,
-             e.g., by a new <confirmed-commit> operation.";
-        }
-        enum "complete" {
-          description
-            "The confirmed-commit procedure has been completed.";
-        }
-      }
-      mandatory true;
-      description
-        "Indicates the event that caused the notification.";
-    }
-
-    leaf timeout {
-      when
-        "../confirm-event = 'start' or ../confirm-event = 'extend'";
-      type uint32;
-      units "seconds";
-      description
-        "The configured timeout value if the event type
-         is 'start' or 'extend'.  This value represents
-         the approximate number of seconds from the event
-         time when the 'timeout' event might occur.";
-    }
-  } // notification netconf-confirmed-commit
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf@2011-06-01.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-netconf@2011-06-01.yang
deleted file mode 100644 (file)
index 4bbb1c2..0000000
+++ /dev/null
@@ -1,928 +0,0 @@
-module ietf-netconf {
-
-  // the namespace for NETCONF XML definitions is unchanged
-  // from RFC 4741, which this document replaces
-  namespace "urn:ietf:params:xml:ns:netconf:base:1.0";
-
-  prefix nc;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-
-  organization
-    "IETF NETCONF (Network Configuration) Working Group";
-
-  contact
-    "WG Web:   <http://tools.ietf.org/wg/netconf/>
-     WG List:  <netconf@ietf.org>
-
-     WG Chair: Bert Wijnen
-               <bertietf@bwijnen.net>
-
-     WG Chair: Mehmet Ersue
-               <mehmet.ersue@nsn.com>
-
-     Editor:   Martin Bjorklund
-               <mbj@tail-f.com>
-
-     Editor:   Juergen Schoenwaelder
-               <j.schoenwaelder@jacobs-university.de>
-
-     Editor:   Andy Bierman
-               <andy.bierman@brocade.com>";
-  description
-    "NETCONF Protocol Data Types and Protocol Operations.
-
-     Copyright (c) 2011 IETF Trust and the persons identified as
-     the document authors.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC 6241; see
-     the RFC itself for full legal notices.";
-
-  revision 2011-06-01 {
-    description
-      "Initial revision;";
-    reference
-      "RFC 6241: Network Configuration Protocol";
-  }
-
-  extension get-filter-element-attributes {
-    description
-      "If this extension is present within an 'anyxml'
-       statement named 'filter', which must be conceptually
-       defined within the RPC input section for the <get>
-       and <get-config> protocol operations, then the
-       following unqualified XML attribute is supported
-       within the <filter> element, within a <get> or
-       <get-config> protocol operation:
-
-         type : optional attribute with allowed
-                value strings 'subtree' and 'xpath'.
-                If missing, the default value is 'subtree'.
-
-       If the 'xpath' feature is supported, then the
-       following unqualified XML attribute is
-       also supported:
-
-         select: optional attribute containing a
-                 string representing an XPath expression.
-                 The 'type' attribute must be equal to 'xpath'
-                 if this attribute is present.";
-  }
-
-  // NETCONF capabilities defined as features
-  feature writable-running {
-    description
-      "NETCONF :writable-running capability;
-       If the server advertises the :writable-running
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.2";
-  }
-
-  feature candidate {
-    description
-      "NETCONF :candidate capability;
-       If the server advertises the :candidate
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.3";
-  }
-
-  feature confirmed-commit {
-    if-feature candidate;
-    description
-      "NETCONF :confirmed-commit:1.1 capability;
-       If the server advertises the :confirmed-commit:1.1
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-
-    reference "RFC 6241, Section 8.4";
-  }
-
-  feature rollback-on-error {
-    description
-      "NETCONF :rollback-on-error capability;
-       If the server advertises the :rollback-on-error
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.5";
-  }
-
-  feature validate {
-    description
-      "NETCONF :validate:1.1 capability;
-       If the server advertises the :validate:1.1
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.6";
-  }
-
-  feature startup {
-    description
-      "NETCONF :startup capability;
-       If the server advertises the :startup
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.7";
-  }
-
-  feature url {
-    description
-      "NETCONF :url capability;
-       If the server advertises the :url
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.8";
-  }
-
-  feature xpath {
-    description
-      "NETCONF :xpath capability;
-       If the server advertises the :xpath
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.9";
-  }
-
-  // NETCONF Simple Types
-
-  typedef session-id-type {
-    type uint32 {
-      range "1..max";
-    }
-    description
-      "NETCONF Session Id";
-  }
-
-  typedef session-id-or-zero-type {
-    type uint32;
-    description
-      "NETCONF Session Id or Zero to indicate none";
-  }
-  typedef error-tag-type {
-    type enumeration {
-       enum in-use {
-         description
-           "The request requires a resource that
-            already is in use.";
-       }
-       enum invalid-value {
-         description
-           "The request specifies an unacceptable value for one
-            or more parameters.";
-       }
-       enum too-big {
-         description
-           "The request or response (that would be generated) is
-            too large for the implementation to handle.";
-       }
-       enum missing-attribute {
-         description
-           "An expected attribute is missing.";
-       }
-       enum bad-attribute {
-         description
-           "An attribute value is not correct; e.g., wrong type,
-            out of range, pattern mismatch.";
-       }
-       enum unknown-attribute {
-         description
-           "An unexpected attribute is present.";
-       }
-       enum missing-element {
-         description
-           "An expected element is missing.";
-       }
-       enum bad-element {
-         description
-           "An element value is not correct; e.g., wrong type,
-            out of range, pattern mismatch.";
-       }
-       enum unknown-element {
-         description
-           "An unexpected element is present.";
-       }
-       enum unknown-namespace {
-         description
-           "An unexpected namespace is present.";
-       }
-       enum access-denied {
-         description
-           "Access to the requested protocol operation or
-            data model is denied because authorization failed.";
-       }
-       enum lock-denied {
-         description
-           "Access to the requested lock is denied because the
-            lock is currently held by another entity.";
-       }
-       enum resource-denied {
-         description
-           "Request could not be completed because of
-            insufficient resources.";
-       }
-       enum rollback-failed {
-         description
-           "Request to roll back some configuration change (via
-            rollback-on-error or <discard-changes> operations)
-            was not completed for some reason.";
-
-       }
-       enum data-exists {
-         description
-           "Request could not be completed because the relevant
-            data model content already exists.  For example,
-            a 'create' operation was attempted on data that
-            already exists.";
-       }
-       enum data-missing {
-         description
-           "Request could not be completed because the relevant
-            data model content does not exist.  For example,
-            a 'delete' operation was attempted on
-            data that does not exist.";
-       }
-       enum operation-not-supported {
-         description
-           "Request could not be completed because the requested
-            operation is not supported by this implementation.";
-       }
-       enum operation-failed {
-         description
-           "Request could not be completed because the requested
-            operation failed for some reason not covered by
-            any other error condition.";
-       }
-       enum partial-operation {
-         description
-           "This error-tag is obsolete, and SHOULD NOT be sent
-            by servers conforming to this document.";
-       }
-       enum malformed-message {
-         description
-           "A message could not be handled because it failed to
-            be parsed correctly.  For example, the message is not
-            well-formed XML or it uses an invalid character set.";
-       }
-     }
-     description "NETCONF Error Tag";
-     reference "RFC 6241, Appendix A";
-  }
-
-  typedef error-severity-type {
-    type enumeration {
-      enum error {
-        description "Error severity";
-      }
-      enum warning {
-        description "Warning severity";
-      }
-    }
-    description "NETCONF Error Severity";
-    reference "RFC 6241, Section 4.3";
-  }
-
-  typedef edit-operation-type {
-    type enumeration {
-      enum merge {
-        description
-          "The configuration data identified by the
-           element containing this attribute is merged
-           with the configuration at the corresponding
-           level in the configuration datastore identified
-           by the target parameter.";
-      }
-      enum replace {
-        description
-          "The configuration data identified by the element
-           containing this attribute replaces any related
-           configuration in the configuration datastore
-           identified by the target parameter.  If no such
-           configuration data exists in the configuration
-           datastore, it is created.  Unlike a
-           <copy-config> operation, which replaces the
-           entire target configuration, only the configuration
-           actually present in the config parameter is affected.";
-      }
-      enum create {
-        description
-          "The configuration data identified by the element
-           containing this attribute is added to the
-           configuration if and only if the configuration
-           data does not already exist in the configuration
-           datastore.  If the configuration data exists, an
-           <rpc-error> element is returned with an
-           <error-tag> value of 'data-exists'.";
-      }
-      enum delete {
-        description
-          "The configuration data identified by the element
-           containing this attribute is deleted from the
-           configuration if and only if the configuration
-           data currently exists in the configuration
-           datastore.  If the configuration data does not
-           exist, an <rpc-error> element is returned with
-           an <error-tag> value of 'data-missing'.";
-      }
-      enum remove {
-        description
-          "The configuration data identified by the element
-           containing this attribute is deleted from the
-           configuration if the configuration
-           data currently exists in the configuration
-           datastore.  If the configuration data does not
-           exist, the 'remove' operation is silently ignored
-           by the server.";
-      }
-    }
-    default "merge";
-    description "NETCONF 'operation' attribute values";
-    reference "RFC 6241, Section 7.2";
-  }
-
-  // NETCONF Standard Protocol Operations
-
-  rpc get-config {
-    description
-      "Retrieve all or part of a specified configuration.";
-
-    reference "RFC 6241, Section 7.1";
-
-    input {
-      container source {
-        description
-          "Particular configuration to retrieve.";
-
-        choice config-source {
-          mandatory true;
-          description
-            "The configuration to retrieve.";
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config source.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config source.
-               This is optional-to-implement on the server because
-               not all servers will support filtering for this
-               datastore.";
-          }
-        }
-      }
-
-      anyxml filter {
-        description
-          "Subtree or XPath filter to use.";
-        nc:get-filter-element-attributes;
-      }
-    }
-
-    output {
-      anyxml data {
-        description
-          "Copy of the source datastore subset that matched
-           the filter criteria (if any).  An empty data container
-           indicates that the request did not produce any results.";
-      }
-    }
-  }
-
-  rpc edit-config {
-    description
-      "The <edit-config> operation loads all or part of a specified
-       configuration to the specified target configuration.";
-
-    reference "RFC 6241, Section 7.2";
-
-    input {
-      container target {
-        description
-          "Particular configuration to edit.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            if-feature writable-running;
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-        }
-      }
-
-      leaf default-operation {
-        type enumeration {
-          enum merge {
-            description
-              "The default operation is merge.";
-          }
-          enum replace {
-            description
-              "The default operation is replace.";
-          }
-          enum none {
-            description
-              "There is no default operation.";
-          }
-        }
-        default "merge";
-        description
-          "The default operation to use.";
-      }
-
-      leaf test-option {
-        if-feature validate;
-        type enumeration {
-          enum test-then-set {
-            description
-              "The server will test and then set if no errors.";
-          }
-          enum set {
-            description
-              "The server will set without a test first.";
-          }
-
-          enum test-only {
-            description
-              "The server will only test and not set, even
-               if there are no errors.";
-          }
-        }
-        default "test-then-set";
-        description
-          "The test option to use.";
-      }
-
-      leaf error-option {
-        type enumeration {
-          enum stop-on-error {
-            description
-              "The server will stop on errors.";
-          }
-          enum continue-on-error {
-            description
-              "The server may continue on errors.";
-          }
-          enum rollback-on-error {
-            description
-              "The server will roll back on errors.
-               This value can only be used if the 'rollback-on-error'
-               feature is supported.";
-          }
-        }
-        default "stop-on-error";
-        description
-          "The error option to use.";
-      }
-
-      choice edit-content {
-        mandatory true;
-        description
-          "The content for the edit operation.";
-
-        anyxml config {
-          description
-            "Inline Config content.";
-        }
-        leaf url {
-          if-feature url;
-          type inet:uri;
-          description
-            "URL-based config content.";
-        }
-      }
-    }
-  }
-
-  rpc copy-config {
-    description
-      "Create or replace an entire configuration datastore with the
-       contents of another complete configuration datastore.";
-
-    reference "RFC 6241, Section 7.3";
-
-    input {
-      container target {
-        description
-          "Particular configuration to copy to.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target of the copy operation.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            if-feature writable-running;
-            type empty;
-            description
-              "The running configuration is the config target.
-               This is optional-to-implement on the server.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config target.";
-          }
-        }
-      }
-
-      container source {
-        description
-          "Particular configuration to copy from.";
-
-        choice config-source {
-          mandatory true;
-          description
-            "The configuration source for the copy operation.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config source.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config source.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config source.";
-          }
-          anyxml config {
-            description
-              "Inline Config content: <config> element.  Represents
-               an entire configuration datastore, not
-               a subset of the running datastore.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc delete-config {
-    description
-      "Delete a configuration datastore.";
-
-    reference "RFC 6241, Section 7.4";
-
-    input {
-      container target {
-        description
-          "Particular configuration to delete.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target to delete.";
-
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config target.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc lock {
-    description
-      "The lock operation allows the client to lock the configuration
-       system of a device.";
-
-    reference "RFC 6241, Section 7.5";
-
-    input {
-      container target {
-        description
-          "Particular configuration to lock.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target to lock.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config target.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc unlock {
-    description
-      "The unlock operation is used to release a configuration lock,
-       previously obtained with the 'lock' operation.";
-
-    reference "RFC 6241, Section 7.6";
-
-    input {
-      container target {
-        description
-          "Particular configuration to unlock.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target to unlock.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config target.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-        }
-      }
-    }
-  }
-
-  rpc get {
-    description
-      "Retrieve running configuration and device state information.";
-
-    reference "RFC 6241, Section 7.7";
-
-    input {
-      anyxml filter {
-        description
-          "This parameter specifies the portion of the system
-           configuration and state data to retrieve.";
-        nc:get-filter-element-attributes;
-      }
-    }
-
-    output {
-      anyxml data {
-        description
-          "Copy of the running datastore subset and/or state
-           data that matched the filter criteria (if any).
-           An empty data container indicates that the request did not
-           produce any results.";
-      }
-    }
-  }
-
-  rpc close-session {
-    description
-      "Request graceful termination of a NETCONF session.";
-
-    reference "RFC 6241, Section 7.8";
-  }
-
-  rpc kill-session {
-    description
-      "Force the termination of a NETCONF session.";
-
-    reference "RFC 6241, Section 7.9";
-
-    input {
-      leaf session-id {
-        type session-id-type;
-        mandatory true;
-        description
-          "Particular session to kill.";
-      }
-    }
-  }
-
-  rpc commit {
-    if-feature candidate;
-
-    description
-      "Commit the candidate configuration as the device's new
-       current configuration.";
-
-    reference "RFC 6241, Section 8.3.4.1";
-
-    input {
-      leaf confirmed {
-        if-feature confirmed-commit;
-        type empty;
-        description
-          "Requests a confirmed commit.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-      leaf confirm-timeout {
-        if-feature confirmed-commit;
-        type uint32 {
-          range "1..max";
-        }
-        units "seconds";
-        default "600";   // 10 minutes
-        description
-          "The timeout interval for a confirmed commit.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-      leaf persist {
-        if-feature confirmed-commit;
-        type string;
-        description
-          "This parameter is used to make a confirmed commit
-           persistent.  A persistent confirmed commit is not aborted
-           if the NETCONF session terminates.  The only way to abort
-           a persistent confirmed commit is to let the timer expire,
-           or to use the <cancel-commit> operation.
-
-           The value of this parameter is a token that must be given
-           in the 'persist-id' parameter of <commit> or
-           <cancel-commit> operations in order to confirm or cancel
-           the persistent confirmed commit.
-
-           The token should be a random string.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-      leaf persist-id {
-        if-feature confirmed-commit;
-        type string;
-        description
-          "This parameter is given in order to commit a persistent
-           confirmed commit.  The value must be equal to the value
-           given in the 'persist' parameter to the <commit> operation.
-           If it does not match, the operation fails with an
-          'invalid-value' error.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-    }
-  }
-
-  rpc discard-changes {
-    if-feature candidate;
-
-    description
-      "Revert the candidate configuration to the current
-       running configuration.";
-    reference "RFC 6241, Section 8.3.4.2";
-  }
-
-  rpc cancel-commit {
-    if-feature confirmed-commit;
-    description
-      "This operation is used to cancel an ongoing confirmed commit.
-       If the confirmed commit is persistent, the parameter
-       'persist-id' must be given, and it must match the value of the
-       'persist' parameter.";
-    reference "RFC 6241, Section 8.4.4.1";
-
-    input {
-      leaf persist-id {
-        type string;
-        description
-          "This parameter is given in order to cancel a persistent
-           confirmed commit.  The value must be equal to the value
-           given in the 'persist' parameter to the <commit> operation.
-           If it does not match, the operation fails with an
-          'invalid-value' error.";
-      }
-    }
-  }
-
-  rpc validate {
-    if-feature validate;
-
-    description
-      "Validates the contents of the specified configuration.";
-
-    reference "RFC 6241, Section 8.6.4.1";
-
-    input {
-      container source {
-        description
-          "Particular configuration to validate.";
-
-        choice config-source {
-          mandatory true;
-          description
-            "The configuration source to validate.";
-
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config source.";
-          }
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config source.";
-          }
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config source.";
-          }
-          anyxml config {
-            description
-              "Inline Config content: <config> element.  Represents
-               an entire configuration datastore, not
-               a subset of the running datastore.";
-          }
-        }
-      }
-    }
-  }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-network-topology@2015-06-08.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-network-topology@2015-06-08.yang
deleted file mode 100644 (file)
index 0aeb2e5..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-module ietf-network-topology {
-  yang-version 1;
-  namespace "urn:ietf:params:xml:ns:yang:ietf-network-topology";
-  prefix lnk;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-  import ietf-network {
-    prefix nd;
-  }
-
-  organization "TBD";
-  contact
-    "WILL-BE-DEFINED-LATER";
-  description
-    "This module defines a common base model for network topology,
-     augmenting the base network model with links to connect nodes,
-     as well as termination points to terminate links on nodes.";
-
-  revision 2015-06-08 {
-    description
-      "Initial revision.";
-    reference "draft-ietf-i2rs-yang-network-topo-01";
-  }
-
-  typedef link-id {
-    type inet:uri;
-    description
-      "An identifier for a link in a topology.
-       The identifier may be opaque.
-       The identifier SHOULD be chosen such that the same link in a
-       real network topology will always be identified through the
-       same identifier, even if the model is instantiated in
-       separate datastores. An implementation MAY choose to capture
-       semantics in the identifier, for example to indicate the type
-       of link and/or the type of topology that the link is a part
-       of.";
-  }
-
-  typedef tp-id {
-    type inet:uri;
-    description
-      "An identifier for termination points on a node.
-       The identifier may be opaque.
-       The identifier SHOULD be chosen such that the same TP in a
-       real network topology will always be identified through the
-       same identifier, even if the model is instantiated in
-       separate datastores. An implementation MAY choose to capture
-       semantics in the identifier, for example to indicate the type
-       of TP and/or the type of node and topology that the TP is a
-       part of.";
-  }
-
-  grouping link-ref {
-    description
-      "References a link in a specific network.";
-    leaf link-ref {
-      type leafref {
-        path "/nd:network[nd:network-id=current()/../"+
-          "nd:network-ref]/link/link-id";
-      }
-      description
-        "A type for an absolute reference a link instance.
-         (This type should not be used for relative references.
-         In such a case, a relative path should be used instead.)";
-    }
-    uses nd:network-ref;
-  }
-
-  grouping tp-ref {
-    description
-      "References a termination point in a specific node.";
-    leaf tp-ref {
-      type leafref {
-        path "/nd:network[nd:network-id=current()/../"+
-          "nd:network-ref]/nd:node[nd:node-id=current()/../"+
-          "nd:node-ref]/termination-point/tp-id";
-      }
-      description
-        "A type for an absolute reference to a termination point.
-         (This type should not be used for relative references.
-         In such a case, a relative path should be used instead.)";
-    }
-    uses nd:node-ref;
-  }
-
-  augment "/nd:network" {
-    description
-      "Add links to the network model.";
-    list link {
-      key "link-id";
-      description
-        "A Network Link connects a by Local (Source) node and
-         a Remote (Destination) Network Nodes via a set of the
-         nodes' termination points.
-         As it is possible to have several links between the same
-         source and destination nodes, and as a link could
-         potentially be re-homed between termination points, to
-         ensure that we would always know to distinguish between
-         links, every link is identified by a dedicated link
-         identifier.
-         Note that a link models a point-to-point link, not a
-         multipoint link.
-         Layering dependencies on links in underlay topologies are
-         not represented as the layering information of nodes and of
-         termination points is sufficient.";
-      container source {
-        description
-          "This container holds the logical source of a particular
-           link.";
-        leaf source-node {
-          type leafref {
-            path "../../../nd:node/nd:node-id";
-          }
-          mandatory true;
-          description
-            "Source node identifier, must be in same topology.";
-        }
-        leaf source-tp {
-          type leafref {
-            path "../../../nd:node[nd:node-id=current()/../"+
-              "source-node]/termination-point/tp-id";
-          }
-          description
-            "Termination point within source node that terminates
-             the link.";
-        }
-      }
-      container destination {
-        description
-          "This container holds the logical destination of a
-           particular link.";
-        leaf dest-node {
-          type leafref {
-            path "../../../nd:node/nd:node-id";
-          }
-          mandatory true;
-          description
-            "Destination node identifier, must be in the same
-             network.";
-        }
-        leaf dest-tp {
-          type leafref {
-            path "../../../nd:node[nd:node-id=current()/../"+
-              "dest-node]/termination-point/tp-id";
-          }
-          description
-            "Termination point within destination node that
-             terminates the link.";
-        }
-      }
-      leaf link-id {
-        type link-id;
-        description
-          "The identifier of a link in the topology.
-           A link is specific to a topology to which it belongs.";
-      }
-      list supporting-link {
-        key "network-ref link-ref";
-        description
-          "Identifies the link, or links, that this link
-           is dependent on.";
-        leaf network-ref {
-          type leafref {
-            path "../../../nd:supporting-network/nd:network-ref";
-          }
-          description
-            "This leaf identifies in which underlay topology
-             supporting link is present.";
-        }
-        leaf link-ref {
-          type leafref {
-            path "/nd:network[nd:network-id=current()/.."+
-              "/network-ref]/link/link-id";
-          }
-          description
-            "This leaf identifies a link which is a part
-             of this link's underlay. Reference loops, in which
-             a link identifies itself as its underlay, either
-             directly or transitively, are not allowed.";
-        }
-      }
-    }
-  }
-  augment "/nd:network/nd:node" {
-    description
-      "Augment termination points which terminate links.
-       Termination points can ultimately be mapped to interfaces.";
-    list termination-point {
-      key "tp-id";
-      description
-        "A termination point can terminate a link.
-         Depending on the type of topology, a termination point
-         could, for example, refer to a port or an interface.";
-      leaf tp-id {
-        type tp-id;
-        description
-          "Termination point identifier.";
-      }
-      list supporting-termination-point {
-        key "network-ref node-ref tp-ref";
-        description
-          "The leaf list identifies any termination points that
-           the termination point is dependent on, or maps onto.
-           Those termination points will themselves be contained
-           in a supporting node.
-           This dependency information can be inferred from
-           the dependencies between links.  For this reason,
-           this item is not separately configurable.  Hence no
-           corresponding constraint needs to be articulated.
-           The corresponding information is simply provided by the
-           implementing system.";
-        leaf network-ref {
-          type leafref {
-            path "../../../nd:supporting-node/nd:network-ref";
-          }
-          description
-            "This leaf identifies in which topology the
-             supporting termination point is present.";
-        }
-        leaf node-ref {
-          type leafref {
-            path "../../../nd:supporting-node/nd:node-ref";
-          }
-          description
-            "This leaf identifies in which node the supporting
-             termination point is present.";
-        }
-        leaf tp-ref {
-          type leafref {
-            path "/nd:network[nd:network-id=current()/../"+
-              "network-ref]/nd:node[nd:node-id=current()/../"+
-              "node-ref]/termination-point/tp-id";
-          }
-          description
-            "Reference to the underlay node, must be in a
-             different topology";
-        }
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-network@2015-06-08.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-network@2015-06-08.yang
deleted file mode 100644 (file)
index 9e2dadf..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-module ietf-network {
-  yang-version 1;
-  namespace "urn:ietf:params:xml:ns:yang:ietf-network";
-  prefix nd;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-
-  organization "TBD";
-  contact
-    "WILL-BE-DEFINED-LATER";
-  description
-    "This module defines a common base model for a collection
-     of nodes in a network. Node definitions s are further used
-     in network topologies and inventories.";
-
-  revision 2015-06-08 {
-    description
-      "Initial revision.";
-    reference "draft-ietf-i2rs-yang-network-topo-01";
-  }
-
-  typedef node-id {
-    type inet:uri;
-    description
-      "Identifier for a node.";
-  }
-
-  typedef network-id {
-    type inet:uri;
-    description
-      "Identifier for a network.";
-  }
-
-  grouping network-ref {
-    description
-      "Contains the information necessary to reference a network,
-       for example an underlay network.";
-    leaf network-ref {
-      type leafref {
-        path "/network/network-id";
-      }
-      description
-        "Used to reference a network, for example an underlay
-         network.";
-    }
-  }
-
-  grouping node-ref {
-    description
-      "Contains the information necessary to reference a node.";
-    leaf node-ref {
-      type leafref {
-        path "/network[network-id=current()/../network-ref]"+
-          "/node/node-id";
-      }
-      description
-        "Used to reference a node.
-         Nodes are identified relative to the network they are
-         contained in.";
-    }
-    uses network-ref;
-  }
-
-  list network {
-    key "network-id";
-    description
-      "Describes a network.
-       A network typically contains an inventory of nodes,
-       topological information (augmented through
-       network-topology model), as well as layering
-       information.";
-    container network-types {
-      description
-        "Serves as an augmentation target.
-         The network type is indicated through corresponding
-         presence containers augmented into this container.";
-    }
-    leaf network-id {
-      type network-id;
-      description
-        "Identifies a network.";
-    }
-    leaf server-provided {
-      type boolean;
-      config false;
-      description
-        "Indicates whether the information concerning this
-         particular network is populated by the server
-         (server-provided true, the general case for network
-         information discovered from the server),
-         or whether it is configured by a client
-         (server-provided true, possible e.g. for
-         service overlays managed through a controller).";
-    }
-    list supporting-network {
-      key "network-ref";
-      description
-        "An underlay network, used to represent layered network
-         topologies.";
-      leaf network-ref {
-        type leafref {
-          path "/network/network-id";
-        }
-        description
-          "References the underlay network.";
-      }
-    }
-    list node {
-      key "node-id";
-      description
-        "The inventory of nodes of this network.";
-      leaf node-id {
-        type node-id;
-        description
-          "Identifies a node uniquely within the containing
-           network.";
-      }
-      list supporting-node {
-        key "network-ref node-ref";
-        description
-          "Represents another node, in an underlay network, that
-           this node is supported by.  Used to represent layering
-           structure.";
-        leaf network-ref {
-          type leafref {
-            path "../../../supporting-network/network-ref";
-          }
-          description
-            "References the underlay network that the
-             underlay node is part of.";
-        }
-        leaf node-ref {
-          type leafref {
-            path "/network/node/node-id";
-          }
-          description
-            "References the underlay node itself.";
-        }
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-yang-types@2013-07-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/ietf-yang-types@2013-07-15.yang
deleted file mode 100644 (file)
index bdff18c..0000000
+++ /dev/null
@@ -1,467 +0,0 @@
-module ietf-yang-types {
-
-     namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types";
-     prefix "yang";
-
-     organization
-      "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-
-     contact
-      "WG Web:   <http://tools.ietf.org/wg/netmod/>
-       WG List:  <mailto:netmod@ietf.org>
-       WG Chair: David Kessens
-                 <mailto:david.kessens@nsn.com>
-
-       WG Chair: Juergen Schoenwaelder
-                 <mailto:j.schoenwaelder@jacobs-university.de>
-
-       Editor:   Juergen Schoenwaelder
-                 <mailto:j.schoenwaelder@jacobs-university.de>";
-
-     description
-      "This module contains a collection of generally useful derived
-       YANG data types.
-
-       Copyright (c) 2013 IETF Trust and the persons identified as
-       authors of the code.  All rights reserved.
-
-       Redistribution and use in source and binary forms, with or
-       without modification, is permitted pursuant to, and subject
-       to the license terms contained in, the Simplified BSD License
-       set forth in Section 4.c of the IETF Trust's Legal Provisions
-       Relating to IETF Documents
-       (http://trustee.ietf.org/license-info).
-
-       This version of this YANG module is part of RFC 6991; see
-       the RFC itself for full legal notices.";
-
-     revision 2013-07-15 {
-       description
-        "This revision adds the following new data types:
-         - yang-identifier
-         - hex-string
-         - uuid
-         - dotted-quad";
-       reference
-        "RFC 6991: Common YANG Data Types";
-     }
-
-     revision 2010-09-24 {
-       description
-        "Initial revision.";
-       reference
-        "RFC 6021: Common YANG Data Types";
-     }
-
-     /*** collection of counter and gauge types ***/
-
-     typedef counter32 {
-       type uint32;
-       description
-        "The counter32 type represents a non-negative integer
-         that monotonically increases until it reaches a
-         maximum value of 2^32-1 (4294967295 decimal), when it
-         wraps around and starts increasing again from zero.
-
-         Counters have no defined 'initial' value, and thus, a
-         single value of a counter has (in general) no information
-         content.  Discontinuities in the monotonically increasing
-         value normally occur at re-initialization of the
-         management system, and at other times as specified in the
-         description of a schema node using this type.  If such
-         other times can occur, for example, the creation of
-         a schema node of type counter32 at times other than
-         re-initialization, then a corresponding schema node
-         should be defined, with an appropriate type, to indicate
-         the last discontinuity.
-
-         The counter32 type should not be used for configuration
-         schema nodes.  A default statement SHOULD NOT be used in
-         combination with the type counter32.
-
-         In the value set and its semantics, this type is equivalent
-         to the Counter32 type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef zero-based-counter32 {
-       type yang:counter32;
-       default "0";
-       description
-        "The zero-based-counter32 type represents a counter32
-         that has the defined 'initial' value zero.
-
-         A schema node of this type will be set to zero (0) on creation
-         and will thereafter increase monotonically until it reaches
-         a maximum value of 2^32-1 (4294967295 decimal), when it
-         wraps around and starts increasing again from zero.
-
-         Provided that an application discovers a new schema node
-         of this type within the minimum time to wrap, it can use the
-         'initial' value as a delta.  It is important for a management
-         station to be aware of this minimum time and the actual time
-         between polls, and to discard data if the actual time is too
-         long or there is no defined minimum time.
-        In the value set and its semantics, this type is equivalent
-         to the ZeroBasedCounter32 textual convention of the SMIv2.";
-       reference
-         "RFC 4502: Remote Network Monitoring Management Information
-                    Base Version 2";
-     }
-
-     typedef counter64 {
-       type uint64;
-       description
-        "The counter64 type represents a non-negative integer
-         that monotonically increases until it reaches a
-         maximum value of 2^64-1 (18446744073709551615 decimal),
-         when it wraps around and starts increasing again from zero.
-
-         Counters have no defined 'initial' value, and thus, a
-         single value of a counter has (in general) no information
-         content.  Discontinuities in the monotonically increasing
-         value normally occur at re-initialization of the
-         management system, and at other times as specified in the
-         description of a schema node using this type.  If such
-         other times can occur, for example, the creation of
-         a schema node of type counter64 at times other than
-         re-initialization, then a corresponding schema node
-         should be defined, with an appropriate type, to indicate
-         the last discontinuity.
-
-         The counter64 type should not be used for configuration
-         schema nodes.  A default statement SHOULD NOT be used in
-         combination with the type counter64.
-
-         In the value set and its semantics, this type is equivalent
-         to the Counter64 type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef zero-based-counter64 {
-       type yang:counter64;
-       default "0";
-       description
-        "The zero-based-counter64 type represents a counter64 that
-         has the defined 'initial' value zero.
-         A schema node of this type will be set to zero (0) on creation
-         and will thereafter increase monotonically until it reaches
-         a maximum value of 2^64-1 (18446744073709551615 decimal),
-         when it wraps around and starts increasing again from zero.
-
-         Provided that an application discovers a new schema node
-         of this type within the minimum time to wrap, it can use the
-         'initial' value as a delta.  It is important for a management
-         station to be aware of this minimum time and the actual time
-         between polls, and to discard data if the actual time is too
-         long or there is no defined minimum time.
-
-         In the value set and its semantics, this type is equivalent
-         to the ZeroBasedCounter64 textual convention of the SMIv2.";
-       reference
-        "RFC 2856: Textual Conventions for Additional High Capacity
-                   Data Types";
-     }
-
-     typedef gauge32 {
-       type uint32;
-       description
-        "The gauge32 type represents a non-negative integer, which
-         may increase or decrease, but shall never exceed a maximum
-         value, nor fall below a minimum value.  The maximum value
-         cannot be greater than 2^32-1 (4294967295 decimal), and
-         the minimum value cannot be smaller than 0.  The value of
-         a gauge32 has its maximum value whenever the information
-         being modeled is greater than or equal to its maximum
-         value, and has its minimum value whenever the information
-         being modeled is smaller than or equal to its minimum value.
-         If the information being modeled subsequently decreases
-         below (increases above) the maximum (minimum) value, the
-         gauge32 also decreases (increases).
-
-         In the value set and its semantics, this type is equivalent
-         to the Gauge32 type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef gauge64 {
-       type uint64;
-       description
-        "The gauge64 type represents a non-negative integer, which
-         may increase or decrease, but shall never exceed a maximum
-         value, nor fall below a minimum value.  The maximum value
-         cannot be greater than 2^64-1 (18446744073709551615), and
-         the minimum value cannot be smaller than 0.  The value of
-         a gauge64 has its maximum value whenever the information
-         being modeled is greater than or equal to its maximum
-         value, and has its minimum value whenever the information
-         being modeled is smaller than or equal to its minimum value.
-         If the information being modeled subsequently decreases
-         below (increases above) the maximum (minimum) value, the
-         gauge64 also decreases (increases).
-
-         In the value set and its semantics, this type is equivalent
-         to the CounterBasedGauge64 SMIv2 textual convention defined
-         in RFC 2856";
-       reference
-        "RFC 2856: Textual Conventions for Additional High Capacity
-                   Data Types";
-     }
-
-     /*** collection of identifier-related types ***/
-
-     typedef object-identifier {
-       type string {
-         pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))'
-               + '(\.(0|([1-9]\d*)))*';
-       }
-       description
-        "The object-identifier type represents administratively
-         assigned names in a registration-hierarchical-name tree.
-
-         Values of this type are denoted as a sequence of numerical
-         non-negative sub-identifier values.  Each sub-identifier
-         value MUST NOT exceed 2^32-1 (4294967295).  Sub-identifiers
-         are separated by single dots and without any intermediate
-         whitespace.
-
-         The ASN.1 standard restricts the value space of the first
-         sub-identifier to 0, 1, or 2.  Furthermore, the value space
-         of the second sub-identifier is restricted to the range
-         0 to 39 if the first sub-identifier is 0 or 1.  Finally,
-         the ASN.1 standard requires that an object identifier
-         has always at least two sub-identifiers.  The pattern
-         captures these restrictions.
-
-         Although the number of sub-identifiers is not limited,
-         module designers should realize that there may be
-         implementations that stick with the SMIv2 limit of 128
-         sub-identifiers.
-         This type is a superset of the SMIv2 OBJECT IDENTIFIER type
-         since it is not restricted to 128 sub-identifiers.  Hence,
-         this type SHOULD NOT be used to represent the SMIv2 OBJECT
-         IDENTIFIER type; the object-identifier-128 type SHOULD be
-         used instead.";
-       reference
-        "ISO9834-1: Information technology -- Open Systems
-         Interconnection -- Procedures for the operation of OSI
-         Registration Authorities: General procedures and top
-         arcs of the ASN.1 Object Identifier tree";
-     }
-
-     typedef object-identifier-128 {
-       type object-identifier {
-         pattern '\d*(\.\d*){1,127}';
-       }
-       description
-        "This type represents object-identifiers restricted to 128
-         sub-identifiers.
-
-         In the value set and its semantics, this type is equivalent
-         to the OBJECT IDENTIFIER type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef yang-identifier {
-       type string {
-         length "1..max";
-         pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*';
-         pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*';
-       }
-       description
-         "A YANG identifier string as defined by the 'identifier'
-          rule in Section 12 of RFC 6020.  An identifier must
-          start with an alphabetic character or an underscore
-          followed by an arbitrary sequence of alphabetic or
-          numeric characters, underscores, hyphens, or dots.
-
-          A YANG identifier MUST NOT start with any possible
-          combination of the lowercase or uppercase character
-          sequence 'xml'.";
-       reference
-         "RFC 6020: YANG - A Data Modeling Language for the Network
-                    Configuration Protocol (NETCONF)";
-     }
-     /*** collection of types related to date and time***/
-
-     typedef date-and-time {
-       type string {
-         pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?'
-               + '(Z|[\+\-]\d{2}:\d{2})';
-       }
-       description
-        "The date-and-time type is a profile of the ISO 8601
-         standard for representation of dates and times using the
-         Gregorian calendar.  The profile is defined by the
-         date-time production in Section 5.6 of RFC 3339.
-
-         The date-and-time type is compatible with the dateTime XML
-         schema type with the following notable exceptions:
-
-         (a) The date-and-time type does not allow negative years.
-
-         (b) The date-and-time time-offset -00:00 indicates an unknown
-             time zone (see RFC 3339) while -00:00 and +00:00 and Z
-             all represent the same time zone in dateTime.
-
-         (c) The canonical format (see below) of data-and-time values
-             differs from the canonical format used by the dateTime XML
-             schema type, which requires all times to be in UTC using
-             the time-offset 'Z'.
-
-         This type is not equivalent to the DateAndTime textual
-         convention of the SMIv2 since RFC 3339 uses a different
-         separator between full-date and full-time and provides
-         higher resolution of time-secfrac.
-
-         The canonical format for date-and-time values with a known time
-         zone uses a numeric time zone offset that is calculated using
-         the device's configured known offset to UTC time.  A change of
-         the device's offset to UTC time will cause date-and-time values
-         to change accordingly.  Such changes might happen periodically
-         in case a server follows automatically daylight saving time
-         (DST) time zone offset changes.  The canonical format for
-         date-and-time values with an unknown time zone (usually
-         referring to the notion of local time) uses the time-offset
-         -00:00.";
-       reference
-        "RFC 3339: Date and Time on the Internet: Timestamps
-         RFC 2579: Textual Conventions for SMIv2
-         XSD-TYPES: XML Schema Part 2: Datatypes Second Edition";
-     }
-     typedef timeticks {
-       type uint32;
-       description
-        "The timeticks type represents a non-negative integer that
-         represents the time, modulo 2^32 (4294967296 decimal), in
-         hundredths of a second between two epochs.  When a schema
-         node is defined that uses this type, the description of
-         the schema node identifies both of the reference epochs.
-
-         In the value set and its semantics, this type is equivalent
-         to the TimeTicks type of the SMIv2.";
-       reference
-        "RFC 2578: Structure of Management Information Version 2
-                   (SMIv2)";
-     }
-
-     typedef timestamp {
-       type yang:timeticks;
-       description
-        "The timestamp type represents the value of an associated
-         timeticks schema node at which a specific occurrence
-         happened.  The specific occurrence must be defined in the
-         description of any schema node defined using this type.  When
-         the specific occurrence occurred prior to the last time the
-         associated timeticks attribute was zero, then the timestamp
-         value is zero.  Note that this requires all timestamp values
-         to be reset to zero when the value of the associated timeticks
-         attribute reaches 497+ days and wraps around to zero.
-
-         The associated timeticks schema node must be specified
-         in the description of any schema node using this type.
-
-         In the value set and its semantics, this type is equivalent
-         to the TimeStamp textual convention of the SMIv2.";
-       reference
-        "RFC 2579: Textual Conventions for SMIv2";
-     }
-
-     /*** collection of generic address types ***/
-
-     typedef phys-address {
-       type string {
-         pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
-       }
-       description
-        "Represents media- or physical-level addresses represented
-         as a sequence octets, each octet represented by two hexadecimal
-         numbers.  Octets are separated by colons.  The canonical
-         representation uses lowercase characters.
-
-         In the value set and its semantics, this type is equivalent
-         to the PhysAddress textual convention of the SMIv2.";
-       reference
-        "RFC 2579: Textual Conventions for SMIv2";
-     }
-
-     typedef mac-address {
-       type string {
-         pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}';
-       }
-       description
-        "The mac-address type represents an IEEE 802 MAC address.
-         The canonical representation uses lowercase characters.
-
-         In the value set and its semantics, this type is equivalent
-         to the MacAddress textual convention of the SMIv2.";
-       reference
-        "IEEE 802: IEEE Standard for Local and Metropolitan Area
-                   Networks: Overview and Architecture
-         RFC 2579: Textual Conventions for SMIv2";
-     }
-
-     /*** collection of XML-specific types ***/
-
-     typedef xpath1.0 {
-       type string;
-       description
-        "This type represents an XPATH 1.0 expression.
-
-         When a schema node is defined that uses this type, the
-         description of the schema node MUST specify the XPath
-         context in which the XPath expression is evaluated.";
-       reference
-        "XPATH: XML Path Language (XPath) Version 1.0";
-     }
-
-     /*** collection of string types ***/
-
-     typedef hex-string {
-       type string {
-         pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
-       }
-       description
-        "A hexadecimal string with octets represented as hex digits
-         separated by colons.  The canonical representation uses
-         lowercase characters.";
-     }
-
-     typedef uuid {
-       type string {
-         pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'
-               + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}';
-       }
-       description
-        "A Universally Unique IDentifier in the string representation
-         defined in RFC 4122.  The canonical representation uses
-         lowercase characters.
-
-         The following is an example of a UUID in string representation:
-         f81d4fae-7dec-11d0-a765-00a0c91e6bf6
-         ";
-       reference
-        "RFC 4122: A Universally Unique IDentifier (UUID) URN
-                   Namespace";
-     }
-
-     typedef dotted-quad {
-       type string {
-         pattern
-           '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-         + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
-       }
-       description
-         "An unsigned 32-bit number expressed in the dotted-quad
-          notation, i.e., four octets written as decimal numbers
-          and separated with the '.' (full stop) character.";
-     }
-   }
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/notifications@2008-07-14.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/notifications@2008-07-14.yang
deleted file mode 100644 (file)
index 77fbe98..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-module notifications {
-
-    namespace "urn:ietf:params:xml:ns:netconf:notification:1.0";
-    prefix "ncEvent";
-
-    import ietf-yang-types { prefix yang; revision-date "2013-07-15";}
-
-    organization
-      "IETF NETCONF WG";
-
-    contact
-      "netconf@ops.ietf.org";
-
-    description
-      "Conversion of the 'ncEvent' XSD in the
-       NETCONF Notifications RFC.";
-
-    reference
-      "RFC 5277.";
-
-    revision 2008-07-14 {
-      description "RFC 5277 version.";
-    }
-
-    typedef streamNameType {
-      description
-        "The name of an event stream.";
-      type string;
-    }
-
-    rpc create-subscription {
-      description
-        "The command to create a notification subscription. It
-         takes as argument the name of the notification stream
-         and filter. Both of those options limit the content of
-         the subscription. In addition, there are two time-related
-         parameters, startTime and stopTime, which can be used to
-         select the time interval of interest to the notification
-         replay feature.";
-
-      input {
-        leaf stream {
-          description
-            "An optional parameter that indicates which stream of events
-             is of interest. If not present, then events in the default
-             NETCONF stream will be sent.";
-          type streamNameType;
-          default "NETCONF";
-        }
-
-        anyxml filter {
-          description
-            "An optional parameter that indicates which subset of all
-             possible events is of interest. The format of this
-             parameter is the same as that of the filter parameter
-             in the NETCONF protocol operations. If not present,
-             all events not precluded by other parameters will
-             be sent.";
-        }
-
-        leaf startTime {
-          description
-            "A parameter used to trigger the replay feature and
-             indicates that the replay should start at the time
-             specified. If start time is not present, this is not a
-             replay subscription.";
-          type yang:date-and-time;
-        }
-
-        leaf stopTime {
-          // must ". >= ../startTime";
-          description
-            "An optional parameter used with the optional replay
-             feature to indicate the newest notifications of
-             interest. If stop time is not present, the notifications
-             will continue until the subscription is terminated.
-             Must be used with startTime.";
-          type yang:date-and-time;
-        }
-      }
-    }
-}
-
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-alarm@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-alarm@2018-10-19.yang
deleted file mode 100644 (file)
index 6168ed3..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-module org-openroadm-alarm {
-  namespace "http://org/openroadm/alarm";
-  prefix org-openroadm-alarm;
-
-  import ietf-yang-types {
-    prefix yang;
-    revision-date 2013-07-15;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-resource {
-    prefix org-openroadm-resource;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-probable-cause {
-    prefix org-openroadm-probable-cause;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of an alarm.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping alarm {
-    leaf id {
-      type string;
-      mandatory true;
-      description
-        "Uniquely id for this alarm, within the given management domain";
-    }
-    container resource {
-      description
-        "Resource under alarm";
-      uses org-openroadm-resource:resource;
-    }
-    container probableCause {
-      description
-        "Probable cause of alarm";
-      uses org-openroadm-probable-cause:probable-cause;
-    }
-    leaf raiseTime {
-      type yang:date-and-time;
-      mandatory true;
-      description
-        "Time alarm was raised";
-    }
-    leaf severity {
-      type org-openroadm-common-types:severity;
-      mandatory true;
-      description
-        "Severity of alarm. Based on X.733 perceived severity.";
-    }
-    leaf circuit-id {
-      type string;
-      description
-        "Circuit-id for alarm correlation.";
-    }
-    leaf additional-detail {
-      type string;
-      description
-        "Provide additional descriptive text about the probable cause.";
-    }
-    leaf corrective-action {
-      type string;
-      description
-        "Provide recommended corrective actions for this probable cause, i.e. replace or restart a circuit pack, check wiring for the reported source, or secondary failure to be correlated ";
-    }
-  }
-
-  notification alarm-notification {
-    description
-      "Notification sent on initial alarm creation, as well as any time the alarm changes state, including clear";
-    uses alarm;
-  }
-  container active-alarm-list {
-    config false;
-    description
-      "List of currently active alarms. An alarm is removed from this table when the state transitions to clear.";
-    list activeAlarms {
-      key "id";
-      uses alarm;
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-common-types@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-common-types@2018-10-19.yang
deleted file mode 100644 (file)
index 6f2d9fe..0000000
+++ /dev/null
@@ -1,675 +0,0 @@
-module org-openroadm-common-types {
-  namespace "http://org/openroadm/common-types";
-  prefix org-openroadm-common-types;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of common types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity och-rate-identity {
-    description
-      "A unique och rate identification";
-  }
-
-  identity R200G {
-    base och-rate-identity;
-    description
-      "Identity for 200G Rate";
-  }
-
-  identity R100G {
-    base och-rate-identity;
-    description
-      "Identity for 100G Rate";
-  }
-
-  identity R10.7G {
-    base och-rate-identity;
-    description
-      "Identity for 10.7G Rate";
-  }
-
-  identity R11.1G {
-    base och-rate-identity;
-    description
-      "Identity for 11.1G Rate";
-  }
-
-  typedef node-types {
-    type enumeration {
-      enum "rdm" {
-        value 1;
-      }
-      enum "xpdr" {
-        value 2;
-      }
-      enum "ila" {
-        value 3;
-      }
-      enum "extplug" {
-        value 4;
-      }
-    }
-    description
-      "Identifier for node type
-       1. rdm for ROADM
-       2. xpdr for Transponder, Regen
-       3. ila for in-line amplifier
-       4. extplug for external plugable";
-  }
-
-  typedef node-id-type {
-    type string {
-      length "7..63";
-      pattern "([a-zA-Z][a-zA-Z0-9-]{5,18}[a-zA-Z0-9])" {
-        error-message
-          "A node-id must be 7 to 63 characters in length.
-           A node-id can contain letters, numbers, and hyphens.
-           The first character must be a letter.
-           The last character must be a letter or number.";
-      }
-    }
-    description
-      "Globally unique identifer for a device.";
-  }
-
-  typedef xpdr-node-types {
-    type enumeration {
-      enum "tpdr" {
-        value 1;
-      }
-      enum "mpdr" {
-        value 2;
-      }
-      enum "switch" {
-        value 3;
-      }
-      enum "regen" {
-        value 4;
-      }
-      enum "regen-uni" {
-        value 5;
-      }
-    }
-    description
-      "Identifier for Xponder node type
-       1. Transponder
-       2. Muxponder
-       3. OTN switchponder
-       4. Regenerator
-       5. Regenerator based on unidirectional model";
-  }
-
-  typedef frequency-THz {
-    type decimal64 {
-      fraction-digits 8;
-    }
-    units "THz";
-    description
-      "Frequency value in THz.";
-  }
-
-  typedef frequency-GHz {
-    type decimal64 {
-      fraction-digits 5;
-    }
-    units "GHz";
-    description
-      "Frequency value in GHz.";
-  }
-
-  typedef power-dBm {
-    type decimal64 {
-      fraction-digits 2;
-    }
-    units "dBm";
-    description
-      "Power value in dBm.";
-  }
-
-  typedef ratio-dB {
-    type decimal64 {
-      fraction-digits 3;
-    }
-    units "dB";
-    description
-      "Power ratio in dB.";
-  }
-
-  typedef fiber-pmd {
-    type decimal64 {
-      fraction-digits 2;
-    }
-    units "ps/(km[1/2])";
-    description
-      "Polarization Mode Dispersion expressed in ps/km(1/2).";
-  }
-
-  typedef amplifier-types {
-    type enumeration {
-      enum "standard" {
-        value 1;
-      }
-    }
-    description
-      "identifier for amplifier type
-       1. standard for amplifier as defined initially in the ROADM MSA specifications
-       To be completed if/when additional amplifier types are required ";
-  }
-
-  typedef line-amplifier-control-mode {
-    type enumeration {
-      enum "gainLoss" {
-        value 2;
-      }
-      enum "off" {
-        value 3;
-      }
-    }
-    description
-      "Identifies the line amplifier control mode, either off or gain.";
-  }
-
-  typedef amplifier-gain-range {
-    type enumeration {
-      enum "gain-range-1" {
-        value 1;
-      }
-      enum "gain-range-2" {
-        value 2;
-      }
-      enum "gain-range-3" {
-        value 3;
-      }
-      enum "gain-range-4" {
-        value 4;
-      }
-    }
-    description
-      "Operational mode for the amplifier:
-       this parameter allows modeling different operational modes (gain ranges) ,notably for switched-gain amplifiers.
-       It indicates which performance model shall be used by the path feasibility engine.
-       For standard amplifier, or when performance evaluation is based on incremental noise, use gain-range-1.
-       When performance evaluation is based on advanced parameters, specify used gain-range (1 to 4).
-       Up to release 2.1, only gain-range-1 is to be used (default value) ";
-  }
-
-  typedef severity {
-    type enumeration {
-      enum "critical" {
-        value 1;
-      }
-      enum "major" {
-        value 2;
-      }
-      enum "minor" {
-        value 3;
-      }
-      enum "warning" {
-        value 4;
-      }
-      enum "clear" {
-        value 5;
-      }
-      enum "indeterminate" {
-        value 6;
-      }
-    }
-    description
-      "Severity, based on X.733 perceived severity";
-  }
-
-  typedef activate-notification-type {
-    type enumeration {
-      enum "activate" {
-        value 1;
-        description
-          "software or database activation";
-      }
-      enum "commit" {
-        value 2;
-        description
-          "commit the software or database.
-           For software activate, this event can happen in the following scenarios:
-             1) immediately when user issue db-activate command without rollBackTimer
-                or if the rollBackTimer is specified as 00-00-00;
-             2) when user issue cancel-rollback-timer before it expires and with accept=true.
-           For database activate, this event can occur in the following scenarios:
-             1) immediately when user issue db-activate command without rollBackTimer
-                or if the rollBackTimer is specified as 00-00-00;
-             2) when user issue cancel-rollback-timer before it expires and with accept=true.";
-      }
-      enum "cancel" {
-        value 3;
-        description
-          "cancel the database or software activation operation.
-           For software activate, this event can happen in the following cases:
-             1) when the rollBackTimer expires;
-             2) when the user issues cancel-rollback-timer with accept=false.
-           For database activate, this event can happen in the following cases:
-             1) when the rollBackTimer expires;
-             2) when the user issues cancel-rollback-timer with accept=false.";
-      }
-    }
-    description
-      "Type of notification on software or database activation events";
-  }
-
-  typedef rpc-status {
-    type enumeration {
-      enum "Successful" {
-        value 1;
-      }
-      enum "Failed" {
-        value 2;
-      }
-    }
-    description
-      "status of RPC ";
-  }
-
-  typedef extended-rpc-status {
-    type enumeration {
-      enum "Successful" {
-        value 1;
-      }
-      enum "Failed" {
-        value 2;
-      }
-      enum "In-progress" {
-        value 3;
-      }
-    }
-    description
-      "status of RPC ";
-  }
-
-  typedef openroadm-version-type {
-    type enumeration {
-      enum "1.0" {
-        value 1;
-        description
-          "value for 1.0";
-      }
-      enum "2.0" {
-        value 2;
-        description
-          "value for 2.0";
-      }
-      enum "2.1" {
-        value 3;
-        description
-          "value for 2.1";
-      }
-      enum "2.2" {
-        value 4;
-        description
-          "value for 2.2";
-      }
-      enum "2.2.1" {
-        value 8;
-        description
-          "value for 2.2";
-      }
-    }
-    description
-      "OpenROADM version enum type";
-  }
-
-  typedef lifecycle-state {
-    type enumeration {
-      enum "deployed" {
-        value 1;
-      }
-      enum "planned" {
-        value 2;
-      }
-      enum "maintenance" {
-        value 3;
-      }
-      enum "deploying" {
-        value 4;
-      }
-      enum "undeploying" {
-        value 5;
-      }
-      enum "undeployed" {
-        value 6;
-      }
-      enum "proposed" {
-        value 7;
-      }
-      enum "draft" {
-        value 8;
-      }
-      enum "deploy-failed" {
-        value 9;
-      }
-      enum "undeploy-failed" {
-        value 10;
-      }
-    }
-    description
-      "Lifecycle state.";
-  }
-
-  typedef state {
-    type enumeration {
-      enum "inService" {
-        value 1;
-      }
-      enum "outOfService" {
-        value 2;
-      }
-      enum "degraded" {
-        value 3;
-      }
-    }
-    description
-      "State that indicates whether the resource is able to provide fullfill its role - carry traffic, etc.";
-  }
-
-  typedef optic-types {
-    type enumeration {
-      enum "gray" {
-        value 1;
-      }
-      enum "dwdm" {
-        value 2;
-      }
-    }
-  }
-
-  typedef equipment-type-enum {
-    type enumeration {
-      enum "other" {
-        value 1;
-      }
-      enum "powerSupply" {
-        value 2;
-      }
-      enum "shelfProcessor" {
-        value 3;
-      }
-      enum "crossConnect" {
-        value 4;
-      }
-      enum "fan" {
-        value 5;
-      }
-      enum "accessPanel" {
-        value 6;
-      }
-      enum "circuitPack" {
-        value 7;
-      }
-    }
-  }
-
-  typedef optical-control-mode {
-    type enumeration {
-      enum "power" {
-        value 1;
-      }
-      enum "gainLoss" {
-        value 2;
-      }
-      enum "off" {
-        value 3;
-      }
-    }
-    description
-      "Optical Control Mode: identifies specific algorithm related to power management and general optical control.";
-    reference "openroadm.org: Open ROADM MSA Specification.";
-  }
-
-  typedef direction {
-    type enumeration {
-      enum "tx" {
-        value 1;
-      }
-      enum "rx" {
-        value 2;
-      }
-      enum "bidirectional" {
-        value 3;
-      }
-      enum "notApplicable" {
-        value 4;
-      }
-    }
-  }
-
-  typedef location {
-    type enumeration {
-      enum "notApplicable" {
-        value 1;
-      }
-      enum "nearEnd" {
-        value 2;
-      }
-      enum "farEnd" {
-        value 3;
-      }
-    }
-  }
-
-  typedef wavelength-duplication-type {
-    type enumeration {
-      enum "one-per-srg" {
-        value 1;
-        description
-          "The SRG cannot handle wavelength duplication. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will result in failure.";
-      }
-      enum "one-per-degree" {
-        value 2;
-        description
-          "The SRG can handle wavelength duplication, but only one per degree. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will succeed, so long as the connections are not using the same degree.";
-      }
-    }
-    description
-      "One per srg is applied to C/D add/drop group
-       one per degree is applied to C/D/C add drop group";
-  }
-
-  typedef port-qual {
-    type enumeration {
-      enum "roadm-internal" {
-        value 1;
-      }
-      enum "roadm-external" {
-        value 2;
-      }
-      enum "xpdr-network" {
-        value 3;
-      }
-      enum "xpdr-client" {
-        value 4;
-      }
-      enum "otdr" {
-        value 5;
-      }
-      enum "switch-network" {
-        value 6;
-      }
-      enum "switch-client" {
-        value 7;
-      }
-      enum "ila-external" {
-        value 8;
-      }
-      enum "ila-internal" {
-        value 9;
-      }
-    }
-  }
-
-  typedef modulation-format {
-    type enumeration {
-      enum "bpsk" {
-        value 0;
-        description
-          "binary phase-shift keying";
-      }
-      enum "dc-dp-bpsk" {
-        value 1;
-        description
-          "DC dual-polarization binary phase-shift keying";
-      }
-      enum "qpsk" {
-        value 2;
-        description
-          "quadrature phase-shift keying";
-      }
-      enum "dp-qpsk" {
-        value 3;
-        description
-          "dual-polarization binary phase-shift keying";
-      }
-      enum "qam16" {
-        value 4;
-        description
-          "quadrature amplitude modulation 16";
-      }
-      enum "dp-qam16" {
-        value 5;
-        description
-          "dual-polarization quadrature amplitude modulation 16";
-      }
-      enum "dc-dp-qam16" {
-        value 6;
-        description
-          "DC dual-polarization quadrature amplitude modulation 16";
-      }
-      enum "qam8" {
-        value 7;
-        description
-          "quadrature amplitude modulation 8";
-      }
-      enum "dp-qam8" {
-        value 8;
-        description
-          "dual-polarization quadrature amplitude modulation 8";
-      }
-      enum "dc-dp-qam8" {
-        value 9;
-        description
-          "DC dual-polarization quadrature amplitude modulation 8";
-      }
-    }
-    description
-      "Modulation format";
-  }
-
-  grouping physical-location {
-    leaf rack {
-      type string;
-      mandatory false;
-    }
-    leaf shelf {
-      type string;
-      mandatory false;
-    }
-    leaf slot {
-      type string;
-      mandatory false;
-    }
-    leaf subSlot {
-      type string;
-      mandatory false;
-    }
-  }
-
-  grouping rpc-response-status {
-    leaf status {
-      type rpc-status;
-      mandatory true;
-      description
-        "Successful or Failed";
-    }
-    leaf status-message {
-      type string;
-      description
-        "Gives a more detailed status";
-    }
-  }
-
-  grouping extended-rpc-response-status {
-    leaf status {
-      type extended-rpc-status;
-      mandatory true;
-      description
-        "Successful, Failed or In-progress";
-    }
-    leaf status-message {
-      type string;
-      description
-        "Gives a more detailed status.";
-    }
-  }
-
-  grouping equipment-type {
-    leaf type {
-      type equipment-type-enum;
-      config false;
-      mandatory true;
-    }
-    leaf extension {
-      type string;
-      config false;
-      mandatory false;
-      description
-        "Populated with equipment type when enum value is set to vendorExtension";
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-equipment-states-types@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-equipment-states-types@2017-12-15.yang
deleted file mode 100644 (file)
index 0c951ae..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-module org-openroadm-equipment-states-types {
-  namespace "http://org/openroadm/equipment/states/types";
-  prefix org-openroadm-equipment-states-types;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for types of states of equipment (slot/subslot).
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef admin-states {
-    type enumeration {
-      enum "inService" {
-        value 1;
-      }
-      enum "outOfService" {
-        value 2;
-      }
-      enum "maintenance" {
-        value 3;
-      }
-    }
-  }
-
-  typedef states {
-    type enumeration {
-      enum "reserved-for-facility-planned" {
-        value 1;
-        description
-          "equipment is planned for use by a service";
-      }
-      enum "not-reserved-planned" {
-        value 2;
-        description
-          "equipment is planned by not reserved for any purpose";
-      }
-      enum "reserved-for-maintenance-planned" {
-        value 3;
-        description
-          "equipment is planned for use as a maintenance spare";
-      }
-      enum "reserved-for-facility-unvalidated" {
-        value 4;
-        description
-          "equipment is reserved for use by a service but not
-           validated against planned equipment";
-      }
-      enum "not-reserved-unvalidated" {
-        value 5;
-        description
-          "equipment is not reserved for any purpose and
-           not validated against planned equipment";
-      }
-      enum "unknown-unvalidated" {
-        value 6;
-        description
-          "unknown equipment not validated against planned equipment";
-      }
-      enum "reserved-for-maintenance-unvalidated" {
-        value 7;
-        description
-          "equipment is to be used for use as a maintenance spare
-           but not validated against planned equipment";
-      }
-      enum "reserved-for-facility-available" {
-        value 8;
-        description
-          "reserved for use by a service and available";
-      }
-      enum "not-reserved-available" {
-        value 9;
-        description
-          "not reserved for use by a service and available";
-      }
-      enum "reserved-for-maintenance-available" {
-        value 10;
-        description
-          "reserved as a maintenance spare and available";
-      }
-      enum "reserved-for-reversion-inuse" {
-        value 11;
-        description
-          "equipment that is reserved as part of a home path
-           for a service that has been temporarily re-routed";
-      }
-      enum "not-reserved-inuse" {
-        value 12;
-        description
-          "equipment in use for a service";
-      }
-      enum "reserved-for-maintenance-inuse" {
-        value 13;
-        description
-          "maintenance spare equipment that is in use as a
-           maintenance spare";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-layerRate@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-layerRate@2017-12-15.yang
deleted file mode 100644 (file)
index f922156..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-module org-openroadm-layerRate {
-  namespace "http://org/openroadm/layerRate";
-  prefix org-openroadm-layerRate;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of layer rates.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef layer-rate-enum {
-    type enumeration {
-      enum "vendorExtension" {
-        value 1;
-        description
-          "vendor extension";
-      }
-      enum "layer2" {
-        value 2;
-        description
-          "2";
-      }
-      enum "layer3" {
-        value 3;
-        description
-          "3";
-      }
-      enum "layer4" {
-        value 4;
-        description
-          "4";
-      }
-      enum "layer5" {
-        value 5;
-        description
-          "5";
-      }
-      enum "layer6" {
-        value 6;
-        description
-          "6";
-      }
-    }
-  }
-
-  grouping layer-rate {
-    description
-      "Set list of layer rates, plus the ability to report layer rates not yet in set list.";
-    leaf type {
-      type layer-rate-enum;
-      mandatory true;
-    }
-    leaf extension {
-      type string;
-      mandatory false;
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-maintenance@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-maintenance@2018-10-19.yang
deleted file mode 100644 (file)
index 748055f..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-module org-openroadm-maintenance {
-  namespace "http://org/openroadm/maintenance";
-  prefix org-openroadm-mainteance;
-
-  import org-openroadm-resource {
-    prefix org-openroadm-resource;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of maintenace operations.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef maintenance-operation {
-    type enumeration {
-      enum "terminalLoopback" {
-        value 1;
-      }
-      enum "facilityLoopback" {
-        value 2;
-      }
-      enum "testSignal" {
-        value 3;
-      }
-    }
-    description
-      "Maintenance Operation.";
-  }
-
-  grouping maintenance {
-    leaf id {
-      type string;
-      mandatory true;
-      description
-        "Uniquely identify maintenance activity";
-    }
-    container resource {
-      description
-        "Resource under maintenance";
-      uses org-openroadm-resource:resource;
-    }
-    leaf operation {
-      type maintenance-operation;
-    }
-  }
-
-  container maintenance-list {
-    description
-      "A list of active maintenance operations. Adding an entry to this list creates an active maintenance operation.  Removing an entry from this terminates a maintenance activity";
-    list maintenance {
-      key "id";
-      uses maintenance;
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-manifest-file@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-manifest-file@2017-12-15.yang
deleted file mode 100644 (file)
index 6f74fcd..0000000
+++ /dev/null
@@ -1,933 +0,0 @@
-module org-openroadm-manifest-file {
-  namespace "http://org/openroadm/manifest-file";
-  prefix org-openroadm-manifest-file;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of sw-manifest-file
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2017,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF netconf.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-    reference "This module serves as the manifest file reference.";
-  }
-
-  identity manifest-commands {
-    description
-      "base identity for defining manifest-commands.";
-  }
-
-  identity download-file {
-    base manifest-commands;
-    description
-      "download-file (transfer from OWB-C to Device)";
-  }
-
-  identity upload-file {
-    base manifest-commands;
-    description
-      "upload-file (transfer from Device to OWB-C)";
-  }
-
-  identity delete-file {
-    base manifest-commands;
-    description
-      "delete-file from device";
-  }
-
-  identity sw-manifest-commands {
-    base manifest-commands;
-    description
-      "base identity for defining manifest-commands specific to sw-manifest.";
-  }
-
-  identity sw-stage {
-    base sw-manifest-commands;
-    description
-      "sw-stage sw-manifest-command";
-  }
-
-  identity sw-activate {
-    base sw-manifest-commands;
-    description
-      "sw-activate sw-manifest-command";
-  }
-
-  identity db-backup-manifest-commands {
-    base manifest-commands;
-    description
-      "base identity for defining manifest-commands specific to db-backup-manifest.";
-  }
-
-  identity db-backup {
-    base db-backup-manifest-commands;
-    description
-      "db-backup db-backup-manifest-command";
-  }
-
-  identity db-restore-manifest-commands {
-    base manifest-commands;
-    description
-      "base identity for defining manifest-commands specific to db-restore-manifest.";
-  }
-
-  identity db-restore {
-    base db-restore-manifest-commands;
-    description
-      "db-restore db-restore-manifest-command";
-  }
-
-  identity db-activate {
-    base db-restore-manifest-commands;
-    description
-      "db-activate db-restore-manifest-command";
-  }
-
-  grouping base-manifest {
-    description
-      "base set of variables in all manifest files";
-    leaf vendor {
-      type string;
-      mandatory true;
-      description
-        "This field should match the /org-openroadm-device/info/vendor.
-         It is assumed that the vendor value does not change during the
-         processing of the manifest file.
-
-         The controller agent would use the vendor and model to find the
-         manifest for an Open ROADM NE. The controller agent would also
-         use the vendor and model to validate that this is a valid manifest
-         for the Open ROADM NE.
-        ";
-    }
-    leaf model {
-      type string;
-      mandatory true;
-      description
-        "This field should match the /org-openroadm-device/info/model.
-         It is assumed that the model value does not change during the
-         processing of the manifest file.
-
-         The controller agent would use the vendor and model to find the
-         manifest for an Open ROADM NE. The controller agent would also
-         use the vendor and model to validate that this is a valid manifest
-         for the Open ROADM NE.
-        ";
-    }
-    leaf sw-version {
-      type string;
-      description
-        "This field should match the
-             /org-openroadm-device/info/softwareVersion.
-         This is the value in the info tree AFTER an upgrade.
-        ";
-    }
-    leaf global-async-timeout {
-      type uint16;
-      default "900";
-      description
-        "global-async-timeout - time in seconds to wait for command processing to
-         complete.
-
-         Upon timeout, the controller may either:
-           - assume success;
-           - assume failure;
-           - poll the device to determine success/failure of the operation
-
-         This global-async-timeout applies to any asynchronous command.
-        ";
-    }
-    leaf global-sync-timeout {
-      type uint16;
-      description
-        "global-sync-timeout - time in seconds to wait for the rpc response for
-         synchronous commands.
-
-         This global-sync-timeout applies to any synchronous command.
-
-         Upon timeout, the controller may either:
-           - assume success;
-           - assume failure;
-           - poll the device to determine success/failure of the operation
-
-         No default is modeled; if not provided, defaults to the global
-         timeout supported by the controller for rpc responses.
-        ";
-    }
-  }
-
-  grouping timeout-command {
-    description
-      "timeout-command is to be used by any manifest command supporting a timeout";
-    leaf timeout {
-      type uint16;
-      description
-        "See command for additional details.
-         if command is async,
-           - overrides the global-async-timeout;
-           - defaults to the global-async-timeout if not provided.
-         if command is sync,
-           - overrides the global-sync-timeout;
-           - defaults to the global-sync-timeout if not provided.
-        ";
-    }
-  }
-
-  grouping is-async-command {
-    description
-      "is-async-command is to be supported by all manifest commands even if only
-       supported as sync or async. In such cases, a must statement should be
-       included to limit support to either sync or async.";
-    leaf is-async {
-      type boolean;
-      default "true";
-      description
-        "command can be supported as either an async or sync command by a vendor.
-         When supported as a sync command, the OWB-C will determine the success/failure
-         of the command based on the RPC response instead of waiting for transient
-         notifications from the device.";
-    }
-  }
-
-  grouping transfer-command {
-    description
-      "transfer-command defines the common set of variables used by download-file
-       and upload-file";
-    leaf remote-filename {
-      type string;
-      mandatory true;
-      description
-        "See command for detailed description.";
-    }
-    leaf local-file-path {
-      type string;
-      mandatory true;
-      description
-        "See command for detailed description.";
-    }
-    uses timeout-command;
-    uses is-async-command;
-  }
-
-  grouping file-command {
-    description
-      "file-command is used by all manifest files needing a filename";
-    leaf filename {
-      type string;
-      description
-        "filename is mandatory for delete-file; optional otherwise.
-         See command for detailed description.";
-    }
-  }
-
-  grouping command-reboot {
-    description
-      "command-reboot is used by manifest commands which result in a
-       device restart.";
-    leaf auto-reboot {
-      type uint16;
-      mandatory true;
-      description
-        "See command for detailed description.";
-    }
-  }
-
-  grouping download-file-command {
-    description
-      "down-file-command";
-    container download-file {
-      when "../command = 'download-file'";
-      description
-        "Transfer a file from the SFTP server to the device.
-         format: download-file remote-filename local-file-path [timeout]
-         where
-           remote-filename is the filename of the file to transfer on the SFTP
-           server. The filename can include a relative path that represents the
-           subdirectory structure of the vendor's software directory. This file
-           (and optional path) must exist in the software release directory on
-           the SFTP server.
-
-           local-file-path is the local path and filename to transfer the file on
-           the device.
-
-           timeout - see timeout-command grouping for basic details;
-                     if command is async,
-                       - Receipt of an in-progress (version 2)
-                         transfer-notification resets the timeout.
-
-         Maps to the transfer rpc with
-            action = download
-            local-file-path = local-file-path
-            remote-file-path =
-               sftp://user:password@host[:port]/path/remote-filename
-
-            The remote-file-path attribute on the transfer command would be
-            constructed by the software download agent by appending the sftp URL
-            (which includes username, password, host, port, and path to the
-            software release directory) with the remote_filename.
-
-         In the context of the transfer, remote is the SFTP server (e.g., located
-         on the software download agent) and local is on the Open ROADM device.
-
-         Expected notifications: transfer-notification
-        ";
-      uses transfer-command;
-    }
-  }
-
-  grouping upload-file-command {
-    description
-      "upload-file-command";
-    container upload-file {
-      when "../command = 'upload-file'";
-      description
-        "Transfer a file from the device to the SFTP server.
-         format: upload-file remote-filename local-file-path [timeout]
-         where
-           remote-filename is the filename of the file to receive the upload
-           on the SFTP server. The filename can include a relative path that
-           represents the subdirectory structure of the vendor's software
-           directory.
-
-           local-file-path is the local path and filename of the file on
-           the device to be uploaded to the SFTP server. This file must exist on
-           the device.
-
-           timeout - see timeout-command grouping for basic details;
-                     if command is async,
-                       - Receipt of an in-progress (version 2)
-                         transfer-notification resets the timeout.
-
-         Maps to the transfer rpc with
-            action = upload
-            local-file-path = local-file-path
-            remote-file-path =
-               sftp://user:password@host[:port]/path/remote-filename
-
-            The remote-file-path attribute on the transfer command would be
-            constructed by the software download agent by appending the sftp URL
-            (which includes username, password, host, port, and path to the
-            software release directory) with the remote_filename.
-
-         In the context of the transfer, remote is the SFTP server (e.g., located
-         on the software download agent) and local is on the Open ROADM device.
-
-         Expected notifications: transfer-notification
-        ";
-      uses transfer-command;
-    }
-  }
-
-  grouping delete-file-command {
-    description
-      "delete-file-command";
-    container delete-file {
-      when "../command = 'delete-file'";
-      must "is-async != 'false'" {
-        error-message "delete-file is only supported as sync command";
-      }
-      description
-        "Delete a file from the device's file system.
-         format: delete-file filename [timeout]
-         where
-           filename is the filename to be deleted from the device. The filename
-           may include path information.
-
-           timeout - overrides the global-sync-timeout; defaults to the
-                     global-sync-timeout if not provided.
-
-         Maps to the delete-file rpc:
-            delete-file filename
-        ";
-      uses file-command {
-        refine "filename" {
-          mandatory true;
-        }
-      }
-      uses timeout-command;
-      uses is-async-command;
-    }
-  }
-
-  grouping sw-stage-command {
-    description
-      "sw-stage-command";
-    container sw-stage {
-      when "../command = 'sw-stage'";
-      description
-        "Stage a file in the device.  The details of what a device does during
-         the staging operation is vendor specific.  However, the vendor may
-         initiate additional file transfers from the SFTP server during the
-         staging operation.  It is expected that the files will only be
-         transferred from the software release directory.
-
-         format: sw-stage [filename] [timeout]
-         where
-           filename is the filename of the file to stage. If filename is not
-           provided, the software download application will send the sw-stage
-           command without a filename.
-
-           timeout - overrides the global-async-timeout; defaults to the
-                     global-async-timeout if not provided.
-
-
-         Maps to the sw-stage rpc:
-            sw-stage [filename]
-
-         Expected notifications: sw-stage-notification
-        ";
-      uses file-command;
-      uses timeout-command;
-      uses is-async-command;
-    }
-  }
-
-  grouping sw-activate-command {
-    description
-      "sw-activate-command";
-    container sw-activate {
-      when "../command = 'sw-activate'";
-      must "is-async != 'true'" {
-        error-message "sw-activate is only supported as async command";
-      }
-      description
-        "Activate a software load in a device.  The details of what a device does
-         during the activation phase is vendor specific.  The device initiates
-         an automatic reboot as part of the activation.
-
-         format:  sw-activate version [validation-timer] [timeout] auto-reboot
-         where:
-           version: The version of software that is being activated. (The current
-           YANG model indicates that version is optional; however, version should
-           be a mandatory attribute of the sw-activate command in the manifest
-           file).
-
-           validation-timer: Validation timer setting for the software activation.
-           Format is expected to be in the form HH-MM-SS per the YANG model. The
-           software download application expects this format in order to treat
-           00-00-00 and no validation timer as the same use case.
-
-           timeout - overrides the global-async-timeout; defaults to the
-           global-async-timeout if not provided. This timer begins as soon as the
-           sw-activate processing begins. timeout must be greater than the
-           auto-reboot time.
-
-           auto-reboot: time (in seconds) to wait to for the device to reboot.
-           This is the device restart time (e.g. the length of time from device
-           comm loss until the device is ready for login). This timer begins when
-           the controller detects the comm-loss from the device. If login is not
-           successful when this timer expires, the sw-activate is failed.
-
-           NOTE: if controller swdl application is not doing the login directly,
-           the controller may need to augment the auto-reboot timer to account for
-           the login time.
-
-         Maps to the sw-activate rpc:
-           sw-activate version [validationTimer]
-
-         Expected notifications: sw-activate-notification
-           When no validation timer (or validation-timer = 00-00-00), two
-           notifications will be expected: one for activate, the other for
-           commit. Otherwise, only the activate notification is expected.
-
-           NOTE: the sw-activate-notifications (for activate) may be received
-           before or after the reboot; it is assumed the sw-activate-notification
-           (for commit) always occurs after the reboot. Any polling due to missed
-           sw-activate-notifications (activate and/or commit) should not be done
-           until after the reboot login; processing of sw-activate does not
-           complete until after receipt of the notifications and the reboot login.
-        ";
-      leaf version {
-        type string;
-        mandatory true;
-        description
-          "Although version is optional in the sw-activate rpc, it is
-           mandatory in the manifest file command.";
-      }
-      leaf validation-timer {
-        type string;
-        description
-          "hh-mm-ss";
-      }
-      uses timeout-command;
-      uses command-reboot;
-      uses is-async-command;
-    }
-  }
-
-  grouping db-backup-command {
-    description
-      "db-backup-command";
-    container db-backup {
-      when "../command = 'db-backup'";
-      description
-        "Perform a database backup on the device.
-
-         format: db-backup [filename] [timeout]
-         where
-           filename is the filename of the backup file to be generated on the
-           device. If filename is not provided, the database backup application
-           will send the db-backup command without a filename. It's possible the
-           filename will not be statically provided in the manifest file, but
-           provided by the database backup application.
-
-           timeout - see timeout-command grouping for basic details;
-
-         Maps to the db-backup rpc:
-           db-backup [filename]
-
-         Expected notifications: db-backup-notification
-        ";
-      uses file-command;
-      uses timeout-command;
-      uses is-async-command;
-    }
-  }
-
-  grouping db-restore-command {
-    description
-      "db-restore-command";
-    container db-restore {
-      when "../command = 'db-restore'";
-      description
-        "Perform a database restore on the device.
-
-         format: db-restore [filename] [node-id-check] [timeout]
-         where
-           filename is the filename of the file to be restored on the
-           device. If filename is not provided, the database restore application
-           will send the db-restore command without a filename. It's possible the
-           filename will not be statically provided in the manifest file, but
-           provided by the database restore application.
-
-           node-id-check is a boolean indicating whether sysNameCheck is required.
-
-           timeout - see timeout-command grouping for basic details;
-
-         Maps to the db-restore rpc:
-           db-restore [filename] [nodeIDCheck]
-
-         Expected notifications: db-restore-notification
-        ";
-      uses file-command;
-      leaf node-id-check {
-        type string;
-        default "true";
-        description
-          "Defined as an string here so that manifest file can parameterize
-           the value for user input. __NODE-ID-CHECK is used for that purpose. Other valid
-           values are true or false. Maps to a boolean value in the rpc invocation.";
-      }
-      uses timeout-command;
-      uses is-async-command;
-    }
-  }
-
-  grouping db-activate-command {
-    description
-      "db-activate-command";
-    container db-activate {
-      when "../command = 'db-activate'";
-      must "is-async != 'true'" {
-        error-message "db-activate is only supported as async command";
-      }
-      description
-        "Activate a database on a device.  The details of what a device does
-         during the activation phase is vendor specific.  The device initiates
-         an automatic reboot as part of the activation.
-
-         format:  db-activate [rollback-timer] [timeout] auto-reboot
-         where:
-           rollback-timer: Rollback timer setting for the database activation.
-           Format is expected to be in the form HH-MM-SS per the YANG model. The
-           database activation application expects this format in order to treat
-           00-00-00 and no validation timer as the same use case.
-
-           timeout - overrides the global-async-timeout; defaults to the
-           global-async-timeout if not provided. This timer begins as soon as the
-           db-activate processing begins. timeout must be greater than the
-           auto-reboot time.
-
-           auto-reboot: time (in seconds) to wait to for the device to reboot.
-           This is the device restart time (e.g. the length of time from device
-           comm loss until the device is ready for login). This timer begins when
-           the controller detects the comm-loss from the device. If login is not
-           successful when this timer expires, the db-activate is failed.
-
-           NOTE: if controller database application is not doing the login
-           directly, the controller may need to augment the auto-reboot timer to
-           account for the login time.
-
-         Maps to the db-activate rpc:
-           db-activate [rollBackTimer]
-
-         Expected notifications: db-activate-notification
-           When no rollback timer (or rollback-timer = 00-00-00), two
-           notifications will be expected: one for activate, the other for
-           commit. Otherwise, only the activate notification is expected.
-
-           NOTE: the db-activate-notifications (for activate) may be received
-           before or after the reboot; it is assumed the db-activate-notification
-           (for commit) always occurs after the reboot. Any polling due to missed
-           db-activate-notifications (activate and/or commit) should not be done
-           until after the reboot login; processing of db-activate does not
-           complete until after receipt of the notifications and the reboot login.
-        ";
-      leaf rollback-timer {
-        type string;
-        description
-          "hh-mm-ss";
-      }
-      uses timeout-command;
-      uses command-reboot;
-      uses is-async-command;
-    }
-  }
-
-  container sw-manifest {
-    presence "The sw-manifest instructions for swdl operations have been defined.";
-    description
-      "The manifest file provides instructions to a software download
-       application to download and install a new software load into a vendor’s
-       equipment.
-
-       Software download files
-           All vendor files for a software release should be stored in a
-       separate directory. A unique directory would be used for each vendor,
-       model and software release combination. This directory and all files in
-       that directory will be accessible by the SFTP server.
-           The software directory can be flat or hierarchical with
-       subdirectories. The manifest file should be in the root directory of the
-       software directory.
-           A software directory must contain files for one and only one
-       software release.
-
-       Manifest file name
-           Each software release directory shall contain a manifest file for
-       that release. The filename for the manifest file shall be sw-manifest.json.
-      ";
-    uses base-manifest {
-      refine "sw-version" {
-        mandatory true;
-      }
-    }
-    list instruction-set {
-      key "index";
-      description
-        "The instruction set for a list of sw-versions that can be upgraded to
-         the sw-version specified at the top of the manifest file.";
-      leaf index {
-        type uint8;
-        description
-          "The index for this instruction set.";
-      }
-      leaf-list from-sw-version {
-        type string;
-        description
-          "The optional list of sw-versions that can be upgraded to the
-           sw-version specified at the top of the sw-manifest file.
-
-           If not specified, this instruction set is used to upgrade from
-           any sw-version to the sw-version specified at the top of the
-           sw-manifest file.
-
-           If multiple instruction sets are provided, from-sw-version
-           should always be defined.";
-      }
-      leaf is-commit-sw-activate-async {
-        type boolean;
-        default "true";
-        description
-          "Is cancel-validation-timer (accept = true) supported as an
-           async or sync command on the device? If supported as sync, the rpc response
-           is used to determine success/failure instead of waiting for transient notifications
-           of the result.
-           NOTE: cancel-validation-timer (accept = false) requires a reboot so is
-           always considered async";
-      }
-      leaf cancel-validation-timer-async-timeout {
-        type uint16;
-        description
-          "timeout value to use for cancel-validation-timer when supported as
-           an async command. If not specified, the global-async-timeout is used.";
-      }
-      leaf cancel-validation-timer-sync-timeout {
-        type uint16;
-        description
-          "timeout value to use for cancel-validation-timer (accept = true) when
-           supported as a sync command. If not specified, the global-sync-timeout
-           is used.";
-      }
-      container sw-manifest-commands {
-        description
-          "The ordered list of commands to be processed. Since some yang
-           implementations do not support ordered-by user, the list is also
-           indexed by command-order. The commands should be processed
-           in the order of command-order.
-
-           Processing moves to the next command when:
-           1. command is synchronous and rpc returns a successful result.
-           2. command is asynchronous, the rpc returns a successful result,
-           and
-           2.1 expected successful notification(s) have been received; or
-           2.2 timeout occurs.
-           \t\t
-           Processing of the manifest file is aborted when:
-           1. command is synchronous and rpc returns a failed result.
-           2. command is asynchronous, and:
-           2.1 the rpc returns a failed result; or
-           2.2 a failed notification is received; or
-           2.3 timeout occurs.
-           \t\t
-           NOTE: behavior for timeouts (synchronous or asynchronous) may depend upon
-           controller implementation per command. It may be considered either:
-           - as a successful result
-           - as a failed result
-           - as a success or failure based on polling the device
-          ";
-        list sw-manifest-command {
-          key "command-order";
-          ordered-by user;
-          description
-            "The list of commands to be processed.";
-          leaf command-order {
-            type uint8;
-            description
-              "The order in which commands should be processed.";
-          }
-          leaf command {
-            type identityref {
-              base sw-manifest-commands;
-            }
-            mandatory true;
-            description
-              "The command to be processed.";
-          }
-          uses download-file-command;
-          uses delete-file-command;
-          uses sw-stage-command;
-          uses sw-activate-command;
-        }
-      }
-    }
-  }
-  container db-backup-manifest {
-    presence "The db-backup-manifest template for db-backup operations has been defined.";
-    description
-      "The manifest file provides instructions to a database operations
-       application to backup the database on a device.
-
-       Since the files used for these operations are likely user selected,
-       these manifest files are more likely used by the controller as a
-       template to control the overall flow of a backup operation and provide
-       a means of providing customized timeout values.
-
-       The following strings will be recognized as parameters to be replaced
-       by the user selected values: __LOCAL-FILE-PATH, __REMOTE-FILENAME.
-
-       Manifest file name
-           Each vendor/model combination can have a separate manifest file
-       defined for backup. These shall be named db-backup-manifest.json.
-      ";
-    uses base-manifest;
-    container db-backup-manifest-commands {
-      description
-        "The ordered list of commands to be processed. Since some yang
-         implementations do not support ordered-by user, the list is also
-         indexed by command-order. The commands should be processed
-         in the order of command-order.
-
-         Processing moves to the next command when:
-            1. command is synchronous and rpc returns a successful result.
-            2. command is asynchronous, the rpc returns a successful result,
-               and
-               2.1 expected successful notification(s) have been received; or
-               2.2 timeout occurs.
-
-         Processing of the manifest file is aborted when:
-            1. command is synchronous and rpc returns a failed result.
-            2. command is asynchronous, and:
-               2.1 the rpc returns a failed result; or
-               2.2 a failed notification is received; or
-               2.3 timeout occurs.
-
-         NOTE: behavior for timeouts (synchronous or asynchronous) may depend upon
-         controller implementation per command. It may be considered either:
-             - as a successful result
-             - as a failed result
-             - as a success or failure based on polling the device
-        ";
-      list db-backup-manifest-command {
-        key "command-order";
-        ordered-by user;
-        description
-          "The list of commands to be processed.";
-        leaf command-order {
-          type uint8;
-          description
-            "The order in which commands should be processed.";
-        }
-        leaf command {
-          type identityref {
-            base db-backup-manifest-commands;
-          }
-          mandatory true;
-          description
-            "The command to be processed.";
-        }
-        uses upload-file-command;
-        uses delete-file-command;
-        uses db-backup-command;
-      }
-    }
-  }
-  container db-restore-manifest {
-    presence "The db-restore-manifest template for db-restore operations has been defined.";
-    description
-      "The manifest file provides instructions to a database operations
-       application to restore the database on a device.
-
-       Since the files used for these operations are likely user selected,
-       these manifest files are more likely used by the controller as a
-       template to control the overall flow of a restore operation and provide
-       a means of providing customized timeout and auto-reboot values.
-
-       The following strings will be recognized as parameters to be replaced
-       by the user selected values: __LOCAL-FILE-PATH, __REMOTE-FILENAME,
-       __NODE-ID-CHECK.
-
-       Manifest file name
-           Each vendor/model combination can have a separate manifest file
-       defined for restore. These shall be named db-restore-manifest.json.
-      ";
-    uses base-manifest;
-    leaf is-commit-db-activate-async {
-      type boolean;
-      default "true";
-      description
-        "Is cancel-rollback-timer (accept = true) supported as an
-         async or sync command on the device? If supported as sync, the rpc response
-         is used to determine success/failure instead of waiting for transient notifications
-         of the result.
-         NOTE: cancel-rollback-timer (accept = false) requires a reboot so is
-         always considered async";
-    }
-    leaf cancel-rollback-timer-async-timeout {
-      type uint16;
-      description
-        "timeout value to use for cancel-rollback-timer when supported as
-         an async command. If not specified, the global-async-timeout is used.";
-    }
-    leaf cancel-rollback-timer-sync-timeout {
-      type uint16;
-      description
-        "timeout value to use for cancel-rollback-timer (accept = true) when
-         supported as a sync command. If not specified, the global-sync-timeout
-         is used.";
-    }
-    leaf database-init-sync-timeout {
-      type uint16;
-      description
-        "timeout value to use for database-init command. If not specified,
-         the global-sync-timeout is used.";
-    }
-    container db-restore-manifest-commands {
-      description
-        "The ordered list of commands to be processed. Since some yang
-         implementations do not support ordered-by user, the list is also
-         indexed by command-order. The commands should be processed
-         in the order of command-order.
-
-         Processing moves to the next command when:
-            1. command is synchronous and rpc returns a successful result.
-            2. command is asynchronous, the rpc returns a successful result,
-               and
-               2.1 expected successful notification(s) have been received; or
-               2.2 timeout occurs.
-
-         Processing of the manifest file is aborted when:
-            1. command is synchronous and rpc returns a failed result.
-            2. command is asynchronous, and:
-               2.1 the rpc returns a failed result; or
-               2.2 a failed notification is received; or
-               2.3 timeout occurs.
-
-         NOTE: behavior for timeouts (synchronous or asynchronous) may depend upon
-         controller implementation per command. It may be considered either:
-             - as a successful result
-             - as a failed result
-             - as a success or failure based on polling the device
-        ";
-      list db-restore-manifest-command {
-        key "command-order";
-        ordered-by user;
-        description
-          "The list of commands to be processed.";
-        leaf command-order {
-          type uint8;
-          description
-            "The order in which commands should be processed.";
-        }
-        leaf command {
-          type identityref {
-            base db-restore-manifest-commands;
-          }
-          mandatory true;
-          description
-            "The command to be processed.";
-        }
-        uses download-file-command;
-        uses delete-file-command;
-        uses db-restore-command;
-        uses db-activate-command;
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-otn-common-types@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-otn-common-types@2017-12-15.yang
deleted file mode 100644 (file)
index 41f4cdf..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-module org-openroadm-otn-common-types {
-  namespace "http://org/openroadm/otn-common-types";
-  prefix org-openroadm-otn-common-types;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for common otn related type definitions.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-
-  identity otu-rate-identity {
-    description
-      "A unique rate identification of the OTU.";
-  }
-
-  identity OTU4 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU4";
-  }
-
-  identity OTU3 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU3";
-  }
-
-  identity OTU2 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU2";
-  }
-
-  identity OTU2e {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU2e";
-  }
-
-  identity OTU1 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU1";
-  }
-
-  identity OTU0 {
-    base otu-rate-identity;
-    description
-      "Identity for an OTU0";
-  }
-
-  identity OTUflex {
-    base otu-rate-identity;
-    description
-      "Identity for an OTUflex";
-  }
-
-  identity odu-rate-identity {
-    description
-      "A unique rate identification of the ODU.";
-  }
-
-  identity ODU4 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU4";
-  }
-
-  identity ODU3 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU3";
-  }
-
-  identity ODU2 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU2";
-  }
-
-  identity ODU2e {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU2e";
-  }
-
-  identity ODU1 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU1";
-  }
-
-  identity ODU0 {
-    base odu-rate-identity;
-    description
-      "Identity for an ODU0";
-  }
-
-  identity ODUflex-cbr {
-    base odu-rate-identity;
-    description
-      "Identity for an ODUflex-cbr";
-  }
-
-  identity ODUflex-gfp {
-    base odu-rate-identity;
-    description
-      "Identity for an ODUflex-gfp";
-  }
-
-  identity odtu-type-identity {
-    description
-      "A unique identification for the MSI odtu type.";
-  }
-
-  identity ODTU4.ts-Allocated {
-    base odtu-type-identity;
-    description
-      "OPU4 MSI - ODTU4.ts, OPU4 MSI TS is occupied/allocated.
-       Applies to all ODTU4.x mappings";
-  }
-
-  identity ODTU01 {
-    base odtu-type-identity;
-    description
-      "ODTU01 MSI type";
-  }
-
-  identity ODTU12 {
-    base odtu-type-identity;
-    description
-      "ODTU12 MSI type";
-  }
-
-  identity ODTU13 {
-    base odtu-type-identity;
-    description
-      "ODTU13 MSI type";
-  }
-
-  identity ODTU23 {
-    base odtu-type-identity;
-    description
-      "ODTU23 MSI type";
-  }
-
-  identity ODTU2.ts {
-    base odtu-type-identity;
-    description
-      "ODTU2.ts MSI type";
-  }
-
-  identity ODTU3.ts {
-    base odtu-type-identity;
-    description
-      "ODTU3.ts MSI type";
-  }
-
-  identity unallocated {
-    base odtu-type-identity;
-    description
-      "Unallocated MSI type";
-  }
-
-  identity odu-function-identity {
-    description
-      "A unique identification of the ODUk interface function.";
-  }
-
-  identity ODU-TTP {
-    base odu-function-identity;
-    description
-      "ODU TTP facility facing trail termination";
-  }
-
-  identity ODU-CTP {
-    base odu-function-identity;
-    description
-      "ODU CTP connection termination";
-  }
-
-  identity ODU-TTP-CTP {
-    base odu-function-identity;
-    description
-      "ODU CTP mapper level connection termination with trail termination and client adaptation";
-  }
-
-  typedef payload-type-def {
-    type string {
-      length "2";
-      pattern "[0-9a-fA-F]*";
-    }
-    description
-      "Common type definition for odu payload-type";
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-pm-types@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-pm-types@2017-12-15.yang
deleted file mode 100644 (file)
index 2501ee3..0000000
+++ /dev/null
@@ -1,483 +0,0 @@
-module org-openroadm-pm-types {
-  namespace "http://org/openroadm/pm-types";
-  prefix org-openroadm-pm-types;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of performance management types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef pm-granularity {
-    type enumeration {
-      enum "notApplicable" {
-        value 1;
-        description
-          "This is for total statistic counters on devices that support
-              them.";
-      }
-      enum "15min" {
-        value 2;
-      }
-      enum "24Hour" {
-        value 3;
-      }
-    }
-    description
-      "Granularity of PM bin";
-  }
-
-  typedef pm-data-type {
-    type union {
-      type uint64;
-      type int64;
-      type decimal64 {
-        fraction-digits 2;
-      }
-      type decimal64 {
-        fraction-digits 17;
-      }
-    }
-  }
-
-  typedef validity {
-    type enumeration {
-      enum "complete" {
-        value 1;
-      }
-      enum "partial" {
-        value 2;
-      }
-      enum "suspect" {
-        value 3;
-      }
-    }
-    description
-      "Validity of data";
-  }
-
-  typedef pm-names-enum {
-    type enumeration {
-      enum "vendorExtension" {
-        value 1;
-        description
-          "vendor extension";
-      }
-      enum "bitErrorRate" {
-        value 2;
-        description
-          "Bit error rate (BER)";
-      }
-      enum "opticalPowerOutput" {
-        value 3;
-        description
-          "Optical Power Output (OPOUT-OTS, OPOUT-OMS, OPT-OCH). Total optical power includes Variable Optical Attenuator (VOA) attenuation";
-      }
-      enum "opticalReturnLoss" {
-        value 4;
-        description
-          "Optical Return Loss (ORL-OTS) - at MW port(s) B";
-      }
-      enum "opticalPowerInput" {
-        value 5;
-        description
-          "Optical Power Input (OPIN-OTS, OPIN-OMS, OPR-OCH). Total optical power";
-      }
-      enum "codeViolations" {
-        value 8;
-        description
-          "Code Violations (CV)";
-      }
-      enum "erroredSeconds" {
-        value 9;
-        description
-          "Errored Seconds (ES)";
-      }
-      enum "severelyErroredSeconds" {
-        value 10;
-        description
-          "Severely Errored Seconds (SES)";
-      }
-      enum "unavailableSeconds" {
-        value 11;
-        description
-          "Unavailable Seconds (UAS)";
-      }
-      enum "inFrames" {
-        value 12;
-        description
-          "In frames (INFRAMES-E)";
-      }
-      enum "inFramesErrored" {
-        value 13;
-        description
-          "In frames errored (INFRAMESERR-E)";
-      }
-      enum "outFrames" {
-        value 14;
-        description
-          "Out frames (OUTFRAMES-E)";
-      }
-      enum "erroredSecondsEthernet" {
-        value 15;
-        description
-          "Errored Seconds Ethernet (ES-E)";
-      }
-      enum "severelyErroredSecondsEthernet" {
-        value 16;
-        description
-          "Severly Errored Seconds, Ethernet (SES-E)";
-      }
-      enum "unavailableSecondsEthernet" {
-        value 17;
-        description
-          "Unavailable Seconds, Ethernet (UAS-E)";
-      }
-      enum "erroredBlockCount" {
-        value 18;
-        description
-          "Errored block count";
-      }
-      enum "delay" {
-        value 19;
-        description
-          "Number of frames between a DMValue toggle event and the received DMp signal value toggle event";
-      }
-      enum "defectSeconds" {
-        value 20;
-        description
-          "Defect Seconds (DS)";
-      }
-      enum "backwardIncomingAlignmentError" {
-        value 21;
-        description
-          "Backward Incoming Alignment Error (BIAE)";
-      }
-      enum "incomingAlignmentError" {
-        value 22;
-        description
-          "Incoming Alignment Error (IAE)";
-      }
-      enum "opticalPowerOutputMin" {
-        value 23;
-        description
-          "Minimum Optical Power Output (OPOUT-OTS). Total optical power includes Variable Optical Attenuator (VOA) attenuation";
-      }
-      enum "opticalPowerOutputMax" {
-        value 24;
-        description
-          "Maximum Optical Power Output (OPOUT-OTS). Total optical power includes Variable Optical Attenuator (VOA) attenuation";
-      }
-      enum "opticalPowerOutputAvg" {
-        value 25;
-        description
-          "Average Optical Power Output (OPOUT-OTS). Total optical power includes Variable Optical Attenuator (VOA) attenuation";
-      }
-      enum "opticalPowerInputMin" {
-        value 26;
-        description
-          "Minimum Optical Power Input (OPIN-OTS). Total optical power";
-      }
-      enum "opticalPowerInputMax" {
-        value 27;
-        description
-          "Maximum Optical Power Input (OPIN-OTS). Total optical power";
-      }
-      enum "opticalPowerInputAvg" {
-        value 28;
-        description
-          "Average Optical Power Input (OPIN-OTS). Total optical power";
-      }
-      enum "opticalPowerOutputOSC" {
-        value 29;
-        description
-          "OSC Optical Power Output (OPT-OSC). OSC Transmit power on MW port";
-      }
-      enum "opticalPowerOutputOSCMin" {
-        value 30;
-        description
-          "Minimum OSC Optical Power Output (OPT-OSC). OSC Transmit power on MW port";
-      }
-      enum "opticalPowerOutputOSCMax" {
-        value 31;
-        description
-          "Maximum OSC Optical Power Output (OPT-OSC). OSC Transmit power on MW port";
-      }
-      enum "opticalPowerOutputOSCAvg" {
-        value 32;
-        description
-          "Average OSC Optical Power Output (OPT-OSC). OSC Transmit power on MW port";
-      }
-      enum "opticalPowerInputOSC" {
-        value 33;
-        description
-          "OSC Optical Power Input (OPR-OSC). OSC Receive power on MW port";
-      }
-      enum "opticalPowerInputOSCMin" {
-        value 34;
-        description
-          "Minimum OSC Optical Power Input (OPR-OSC). OSC Receive power on MW port";
-      }
-      enum "opticalPowerInputOSCMax" {
-        value 35;
-        description
-          "Maximum OSC Optical Power Input (OPR-OSC). OSC Receive power on MW port";
-      }
-      enum "opticalPowerInputOSCAvg" {
-        value 36;
-        description
-          "Average OSC Optical Power Input (OPR-OSC). OSC Receive power on MW port";
-      }
-      enum "preFECCorrectedErrors" {
-        value 37;
-        description
-          "pFEC corrected Errors";
-      }
-      enum "totalOpticalPowerInput" {
-        value 38;
-        description
-          "Total Optical Power Input.";
-      }
-      enum "totalOpticalPowerInputMin" {
-        value 39;
-        description
-          "Minumun Total Optical Power Input.";
-      }
-      enum "totalOpticalPowerInputMax" {
-        value 40;
-        description
-          "Maximum Total Optical Power Input.";
-      }
-      enum "totalOpticalPowerInputAvg" {
-        value 41;
-        description
-          "Average Total Optical Power Input.";
-      }
-      enum "FECCorrectableBlocks" {
-        value 42;
-        description
-          "FEC Correctable Blocks.";
-      }
-      enum "FECUncorrectableBlocks" {
-        value 43;
-        description
-          "FEC Uncorrectable Blocks.";
-      }
-      enum "BIPErrorCounter" {
-        value 56;
-        description
-          "BIP Error Counter";
-      }
-      enum "protectionSwitchingCount" {
-        value 57;
-        description
-          "Protection Switching Count (PSC)";
-      }
-      enum "protectionSwitchingDuration" {
-        value 58;
-        description
-          "Protection Switching Duration in seconds (PSD)";
-      }
-      enum "erroredBlockCountTCM1-up" {
-        value 59;
-        description
-          "errored Blocks Count on TCM1 up direction.";
-      }
-      enum "erroredBlockCountTCM2-up" {
-        value 60;
-        description
-          "errored Blocks Count on TCM2 up direction.";
-      }
-      enum "erroredBlockCountTCM3-up" {
-        value 61;
-        description
-          "errored Blocks Count on TCM3 up direction.";
-      }
-      enum "erroredBlockCountTCM4-up" {
-        value 62;
-        description
-          "errored Blocks Count on TCM4 up direction.";
-      }
-      enum "erroredBlockCountTCM5-up" {
-        value 63;
-        description
-          "errored Blocks Count on TCM5 up direction.";
-      }
-      enum "erroredBlockCountTCM6-up" {
-        value 64;
-        description
-          "errored Blocks Count on TCM6 up direction.";
-      }
-      enum "delayTCM1-up" {
-        value 65;
-        description
-          "Delay on TCM1 up direction.";
-      }
-      enum "delayTCM2-up" {
-        value 66;
-        description
-          "Delay on TCM2 up direction.";
-      }
-      enum "delayTCM3-up" {
-        value 67;
-        description
-          "Delay on TCM3 up direction.";
-      }
-      enum "delayTCM4-up" {
-        value 68;
-        description
-          "Delay on TCM4 up direction.";
-      }
-      enum "delayTCM5-up" {
-        value 69;
-        description
-          "Delay on TCM5 up direction.";
-      }
-      enum "delayTCM6-up" {
-        value 70;
-        description
-          "Delay on TCM6 up direction.";
-      }
-      enum "erroredBlockCountTCM1-down" {
-        value 71;
-        description
-          "errored Blocks Count on TCM1 down direction.";
-      }
-      enum "erroredBlockCountTCM2-down" {
-        value 72;
-        description
-          "errored Blocks Count on TCM2 down direction.";
-      }
-      enum "erroredBlockCountTCM3-down" {
-        value 73;
-        description
-          "errored Blocks Count on TCM3 down direction.";
-      }
-      enum "erroredBlockCountTCM4-down" {
-        value 74;
-        description
-          "errored Blocks Count on TCM4 down direction.";
-      }
-      enum "erroredBlockCountTCM5-down" {
-        value 75;
-        description
-          "errored Blocks Count on TCM5 down direction.";
-      }
-      enum "erroredBlockCountTCM6-down" {
-        value 76;
-        description
-          "errored Blocks Count on TCM6 down direction.";
-      }
-      enum "delayTCM1-down" {
-        value 77;
-        description
-          "Delay on TCM1 down direction.";
-      }
-      enum "delayTCM2-down" {
-        value 78;
-        description
-          "Delay on TCM2 down direction.";
-      }
-      enum "delayTCM3-down" {
-        value 79;
-        description
-          "Delay on TCM3 down direction.";
-      }
-      enum "delayTCM4-down" {
-        value 80;
-        description
-          "Delay on TCM4 down direction.";
-      }
-      enum "delayTCM5-down" {
-        value 81;
-        description
-          "Delay on TCM5 down direction.";
-      }
-      enum "delayTCM6-down" {
-        value 82;
-        description
-          "Delay on TCM6 down direction.";
-      }
-    }
-  }
-
-  grouping pm-measurement {
-    description
-      "Set of parameters related to a PM Measurement";
-    leaf pmParameterValue {
-      type pm-data-type;
-      config false;
-      mandatory true;
-    }
-    leaf pmParameterUnit {
-      type string;
-      mandatory false;
-      description
-        "Unit PM parameter has been measured - frames, packets, u, etc";
-    }
-    leaf validity {
-      type validity;
-      mandatory false;
-    }
-  }
-
-  grouping pm-names {
-    description
-      "Name of PM parameter. Consisists of a set list of parameters,
-       plus an extension field to support addition parameters.";
-    leaf type {
-      type pm-names-enum;
-      mandatory true;
-    }
-    leaf extension {
-      type string;
-      description
-        "name of parameter, when enum value set to vendorExtension because
-         name not found in pm-names-enum";
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-pm@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-pm@2018-10-19.yang
deleted file mode 100644 (file)
index 6254d9a..0000000
+++ /dev/null
@@ -1,299 +0,0 @@
-module org-openroadm-pm {
-  namespace "http://org/openroadm/pm";
-  prefix org-openroadm-pm;
-
-  import ietf-yang-types {
-    prefix yang;
-    revision-date 2013-07-15;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-resource {
-    prefix org-openroadm-resource;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-pm-types {
-    prefix org-openroadm-pm-types;
-    revision-date 2017-12-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of performance management.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping current-pm-group {
-    description
-      "PM Data with current values - both realtime (granularity=notApplicable)
-       and binned (granularity=15 minute, 24h))";
-    leaf pm-resource-instance {
-      type instance-identifier;
-      config false;
-      mandatory true;
-      description
-        "Retrieves all PM associate with the resource instance";
-    }
-    leaf pm-resource-type {
-      type org-openroadm-resource-types:resource-type-enum;
-      config false;
-      mandatory true;
-      description
-        "The supported pm-resource-type associated with the given resource instance.";
-    }
-    leaf pm-resource-type-extension {
-      type string;
-      config false;
-      description
-        "The resource type extension when the type is not defined in the resource-type-enum.";
-    }
-    leaf retrieval-time {
-      type yang:date-and-time;
-      config false;
-      mandatory true;
-      description
-        "Represents the time when the data is being read, not the bin start or end time.";
-    }
-    list current-pm {
-      key "type extension location direction";
-      config false;
-      uses current-pm-val-group;
-    }
-  }
-
-  grouping current-pm-val-group {
-    uses org-openroadm-pm-types:pm-names;
-    leaf location {
-      type org-openroadm-common-types:location;
-    }
-    leaf direction {
-      type org-openroadm-common-types:direction;
-    }
-    list measurement {
-      key "granularity";
-      leaf granularity {
-        type org-openroadm-pm-types:pm-granularity;
-      }
-      uses org-openroadm-pm-types:pm-measurement;
-    }
-  }
-
-  grouping historical-pm-group {
-    description
-      "PM Data with historical values - binned (granularity=15 minute, 24h))";
-    leaf pm-resource-instance {
-      type instance-identifier;
-      config false;
-      mandatory true;
-      description
-        "Retrieves all PM associate with the resource instance";
-    }
-    leaf pm-resource-type {
-      type org-openroadm-resource-types:resource-type-enum;
-      config false;
-      mandatory true;
-    }
-    leaf pm-resource-type-extension {
-      type string;
-      config false;
-      description
-        "The resource type extension when the type is not defined in the resource-type-enum.";
-    }
-    list historical-pm {
-      key "type extension location direction";
-      uses historical-pm-val-group;
-    }
-  }
-
-  grouping historical-pm-val-group {
-    description
-      "PM Data with historical values";
-    uses org-openroadm-pm-types:pm-names;
-    leaf location {
-      type org-openroadm-common-types:location;
-    }
-    leaf direction {
-      type org-openroadm-common-types:direction;
-    }
-    list measurement {
-      key "granularity bin-number";
-      leaf granularity {
-        type org-openroadm-pm-types:pm-granularity;
-        mandatory true;
-      }
-      leaf bin-number {
-        type uint16 {
-          range "1..max";
-        }
-        config false;
-        mandatory true;
-      }
-      uses org-openroadm-pm-types:pm-measurement;
-      leaf completion-time {
-        type yang:date-and-time;
-        config false;
-        mandatory true;
-        description
-          "The time at the end of the period; For example if bin starts at
-           01:15:00 and ends at 01:29:59, the completion-time is 01:29:59";
-      }
-    }
-  }
-
-  grouping collect-history-pm-group {
-    leaf pm-filename {
-      type string {
-        length "10..255";
-      }
-      description
-        "The file name to write the historical PM data.
-         The controller should be able to use this name to retrieve the file via ftp/sftp.
-         The file name should be unique for each RPC request since a new RPC request
-         could be initiated while the file transfer of the previous file is still in progress.
-
-         The file content should be written in xml format based on the historical-pm-list
-         yang definition and the file should be gzip compressed.";
-    }
-    uses org-openroadm-common-types:rpc-response-status;
-  }
-
-  rpc clear-pm {
-    description
-      "Command to initialize PM data";
-    input {
-      uses org-openroadm-resource:resource;
-      leaf pm-type {
-        type enumeration {
-          enum "current" {
-            value 1;
-          }
-          enum "all" {
-            value 2;
-          }
-        }
-        default "current";
-      }
-      leaf granularity {
-        type org-openroadm-pm-types:pm-granularity;
-        default "15min";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc collect-historical-pm-file {
-    description
-      "Command to query historical PM data.
-       The device should be able to process an rpc request for 15min data
-       and a separate request for 24hour data in parallel.";
-    input {
-      leaf from-bin-number {
-        type uint16 {
-          range "1..max";
-        }
-        default "1";
-        description
-          "The start bin-number of the range";
-      }
-      leaf to-bin-number {
-        type uint16 {
-          range "1..max";
-        }
-        default "1";
-        description
-          "The end bin-number of the range";
-      }
-      leaf granularity {
-        type org-openroadm-pm-types:pm-granularity;
-        default "15min";
-        description
-          "The granularity of the retrieve, default to 15 minitues PM";
-      }
-    }
-    output {
-      uses collect-history-pm-group;
-    }
-  }
-  notification historical-pm-collect-result {
-    description
-      "This Notification is sent when the pm collection is succesful or failed.";
-    uses collect-history-pm-group;
-  }
-  container current-pm-list {
-    config false;
-    description
-      "List of current PMs.";
-    list current-pm-entry {
-      key "pm-resource-type pm-resource-type-extension pm-resource-instance";
-      uses current-pm-group;
-    }
-  }
-  container historical-pm-list {
-    config false;
-    description
-      "List of historical PM";
-    list historical-pm-entry {
-      key "pm-resource-type pm-resource-type-extension pm-resource-instance";
-      uses historical-pm-group;
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-port-types@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-port-types@2018-10-19.yang
deleted file mode 100644 (file)
index 2319877..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-module org-openroadm-port-types {
-  namespace "http://org/openroadm/port/types";
-  prefix org-openroadm-port-types;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for port types.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity supported-if-capability {
-    description
-      "Base identity from which specific supported interfaces are derived";
-  }
-
-  identity if-100GE {
-    base supported-if-capability;
-  }
-
-  identity if-OMS {
-    base supported-if-capability;
-  }
-
-  identity if-OTS {
-    base supported-if-capability;
-  }
-
-  identity if-OCH {
-    base supported-if-capability;
-  }
-
-  identity if-1GE {
-    base supported-if-capability;
-  }
-
-  identity if-10GE {
-    base supported-if-capability;
-  }
-
-  identity if-40GE {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU1-ODU1 {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU2-ODU2 {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU2E-ODU2E {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU3-ODU3 {
-    base supported-if-capability;
-  }
-
-  identity if-OCH-OTU4-ODU4 {
-    base supported-if-capability;
-  }
-
-  identity if-OTU4-ODU4 {
-    base supported-if-capability;
-  }
-
-  identity if-OTU1-ODU1 {
-    base supported-if-capability;
-  }
-
-  identity if-OTU2-ODU2 {
-    base supported-if-capability;
-  }
-
-  identity if-OTU2e-ODU2e {
-    base supported-if-capability;
-  }
-
-  identity if-OTU3-ODU3 {
-    base supported-if-capability;
-  }
-
-  identity if-1GE-ODU0 {
-    base supported-if-capability;
-  }
-
-  identity if-10GE-ODU2 {
-    base supported-if-capability;
-  }
-
-  identity if-10GE-ODU2e {
-    base supported-if-capability;
-  }
-
-  identity if-40GE-ODU3 {
-    base supported-if-capability;
-  }
-
-  identity if-100GE-ODU4 {
-    base supported-if-capability;
-  }
-
-  identity supported-xpdr-capability {
-    description
-      "Base identity from which specific supported xponder are derived";
-  }
-
-  identity Transponder {
-    base supported-xpdr-capability;
-  }
-
-  identity Regen {
-    base supported-xpdr-capability;
-  }
-
-  typedef port-wavelength-types {
-    type enumeration {
-      enum "wavelength" {
-        value 1;
-        description
-          "Port on a transponder or ROADM SRG add drop";
-      }
-      enum "multi-wavelength" {
-        value 2;
-        description
-          "External port connecting to other roadm.";
-      }
-    }
-    description
-      "Port types.";
-  }
-
-  grouping common-port {
-    leaf port-power-capability-min-rx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the minimum power in the system spec for this port to
-         provide optimum function in rx direction";
-    }
-    leaf port-power-capability-min-tx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the minimum power in the system spec for this port to
-         provide optimum function in tx direction.";
-    }
-    leaf port-power-capability-max-rx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the maximum power in the system spec for this port to
-         provide optimum function in rx direction.";
-    }
-    leaf port-power-capability-max-tx {
-      type org-openroadm-common-types:power-dBm;
-      config false;
-      description
-        "Based on port capabilities, the maximum power in the system spec for this port to
-         provide optimum function in tx direction.";
-    }
-  }
-
-  grouping roadm-port {
-    uses common-port;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-probable-cause@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-probable-cause@2018-10-19.yang
deleted file mode 100644 (file)
index 030c93c..0000000
+++ /dev/null
@@ -1,767 +0,0 @@
-module org-openroadm-probable-cause {
-  namespace "http://org/openroadm/probableCause";
-  prefix org-openroadm-probable-cause;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of Probable Causes.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef probable-cause-enum {
-    type enumeration {
-      enum "vendorExtension" {
-        value 1;
-        description
-          "vendorExtension";
-      }
-      enum "openConnectionIndication" {
-        value 2;
-        description
-          "Open connection indication (OCI)";
-        reference "G.798";
-      }
-      enum "alarmIndicationSignal" {
-        value 3;
-        description
-          "Alarm indication signal";
-        reference "G.798";
-      }
-      enum "lossOfSignal" {
-        value 4;
-        description
-          "Loss of Signal";
-      }
-      enum "opticalLineFail" {
-        value 5;
-        description
-          "Optical Line Fail";
-      }
-      enum "opticalPowerDegraded" {
-        value 6;
-        description
-          "Optical Line Fail";
-      }
-      enum "automaticLaserShutdown" {
-        value 7;
-        description
-          "Optical Line Fail";
-      }
-      enum "serverSignalFail" {
-        value 8;
-        description
-          "Server Signal Fail (SSF)";
-        reference "G.798";
-      }
-      enum "lockedDefect" {
-        value 10;
-        description
-          "Locked defect (LCK)";
-        reference "G.798";
-      }
-      enum "trailTraceIdentifierMismatch" {
-        value 11;
-        description
-          "Trail trace Identifier Mismatch (TIM)";
-        reference "G.798";
-      }
-      enum "degradedDefect" {
-        value 12;
-        description
-          "Degraded defect (DEG)";
-        reference "G.798";
-      }
-      enum "backwardsDefectIndication" {
-        value 13;
-        description
-          "Backward Defect Indication (BDI)";
-        reference "G.798";
-      }
-      enum "otsSpanlossPowerOutOfSpecificationHigh" {
-        value 14;
-      }
-      enum "automaticShutoffDisabled" {
-        value 15;
-      }
-      enum "portLossOfLight" {
-        value 17;
-      }
-      enum "reflectionTooHigh" {
-        value 18;
-      }
-      enum "payloadMissingIndication" {
-        value 22;
-        description
-          "Will be applicable to ROADM when OSC signaling supported in future (G.709 2016-06 Figure 15-1A, 1B)";
-      }
-      enum "forwardDefectIndication" {
-        value 23;
-        description
-          "Will be applicable to ROADM when OSC signaling supported in future (G.709 2016-06 Figure 15-1A, 1B)";
-      }
-      enum "oscPowerOutOfSpecificationHigh" {
-        value 24;
-      }
-      enum "oscPowerOutOfSpecificationLow" {
-        value 25;
-      }
-      enum "powerOutOfSpecificationHigh" {
-        value 26;
-      }
-      enum "lossOfSynchronization" {
-        value 27;
-      }
-      enum "linkDown" {
-        value 28;
-      }
-      enum "equipmentFault" {
-        value 29;
-      }
-      enum "equipmentRemoved" {
-        value 30;
-      }
-      enum "equipmentMismatch" {
-        value 31;
-      }
-      enum "equipmentWarmup" {
-        value 32;
-      }
-      enum "equipmentLedOn" {
-        value 33;
-      }
-      enum "equipmentInterConnectFailure" {
-        value 34;
-      }
-      enum "equipmentMiscabledConnection" {
-        value 35;
-      }
-      enum "softwareVersionMismatch" {
-        value 36;
-      }
-      enum "softwareStageInProgress" {
-        value 37;
-      }
-      enum "databaseCorruption" {
-        value 38;
-      }
-      enum "databaseVersionMismatch" {
-        value 44;
-      }
-      enum "firmwareVersionMismatch" {
-        value 46;
-      }
-      enum "incompatibleFirmware" {
-        value 49;
-      }
-      enum "firmwareDownloadOrActivationFailure" {
-        value 50;
-      }
-      enum "firmwareInitInProgress" {
-        value 51;
-      }
-      enum "softwareReset" {
-        value 52;
-      }
-      enum "fanCoolingFail" {
-        value 53;
-      }
-      enum "administrativeDown" {
-        value 54;
-      }
-      enum "lampTest" {
-        value 55;
-      }
-      enum "powerProblemA" {
-        value 56;
-      }
-      enum "powerProblemB" {
-        value 57;
-      }
-      enum "shelfProvisioningMode" {
-        value 58;
-      }
-      enum "sysNameChanged" {
-        value 59;
-      }
-      enum "sysNtpNotSynchronized" {
-        value 60;
-      }
-      enum "lossOfFrame" {
-        value 63;
-      }
-      enum "lossOfMultiframe" {
-        value 64;
-      }
-      enum "backwardIncomingAlignmentError" {
-        value 65;
-      }
-      enum "incomingAlignmentError" {
-        value 66;
-      }
-      enum "payloadMismatch" {
-        value 67;
-      }
-      enum "clientSignalFailDefect" {
-        value 68;
-      }
-      enum "highBER" {
-        value 123;
-      }
-      enum "localFault" {
-        value 124;
-      }
-      enum "remoteFault" {
-        value 125;
-      }
-      enum "lossOfAlignment" {
-        value 126;
-      }
-      enum "lossOfFECAlignment" {
-        value 127;
-      }
-      enum "facilityLoopbackActive" {
-        value 128;
-      }
-      enum "facilityLoopback2Active" {
-        value 129;
-      }
-      enum "terminalLoopbackActive" {
-        value 130;
-      }
-      enum "facilityTestsignalActive" {
-        value 131;
-      }
-      enum "terminalTestsignalActive" {
-        value 132;
-      }
-      enum "certificateNotInstalled" {
-        value 134;
-      }
-      enum "lockoutOfProtection" {
-        value 135;
-      }
-      enum "forcedSwitchAwayFromWorking" {
-        value 136;
-      }
-      enum "forcedSwitchAwayFromProtect" {
-        value 137;
-      }
-      enum "automaticSwitchAwayFromWorkingDueToSF" {
-        value 138;
-      }
-      enum "automaticSwitchAwayFromProtectDueToSF" {
-        value 139;
-      }
-      enum "automaticSwitchDueToWTR" {
-        value 140;
-      }
-      enum "manualSwitchAwayFromWork" {
-        value 141;
-      }
-      enum "manualSwitchAwayFromProtect" {
-        value 142;
-      }
-      enum "automaticPowerReduction" {
-        value 143;
-      }
-      enum "lossOfSignalOSC" {
-        value 144;
-      }
-      enum "softwareValidateInProgress" {
-        value 145;
-      }
-      enum "databaseRollbackTimerInProgress" {
-        value 146;
-      }
-      enum "otdrScanInProgress" {
-        value 147;
-      }
-      enum "lldpFail" {
-        value 148;
-      }
-      enum "omsPowerOutOfSpecificationHigh" {
-        value 149;
-      }
-      enum "omsPowerOutOfSpecificationLow" {
-        value 150;
-      }
-      enum "automaticSwitchAwayFromWorkingDueToSD" {
-        value 151;
-      }
-      enum "automaticSwitchAwayFromProtectDueToSD" {
-        value 152;
-      }
-      enum "backwardIncomingAlignmentErrorTCM1-up" {
-        value 153;
-      }
-      enum "backwardIncomingAlignmentErrorTCM2-up" {
-        value 154;
-      }
-      enum "backwardIncomingAlignmentErrorTCM3-up" {
-        value 155;
-      }
-      enum "backwardIncomingAlignmentErrorTCM4-up" {
-        value 156;
-      }
-      enum "backwardIncomingAlignmentErrorTCM5-up" {
-        value 157;
-      }
-      enum "backwardIncomingAlignmentErrorTCM6-up" {
-        value 158;
-      }
-      enum "incomingAlignmentErrorTCM1-up" {
-        value 159;
-      }
-      enum "incomingAlignmentErrorTCM2-up" {
-        value 160;
-      }
-      enum "incomingAlignmentErrorTCM3-up" {
-        value 161;
-      }
-      enum "incomingAlignmentErrorTCM4-up" {
-        value 162;
-      }
-      enum "incomingAlignmentErrorTCM5-up" {
-        value 163;
-      }
-      enum "incomingAlignmentErrorTCM6-up" {
-        value 164;
-      }
-      enum "backwardsDefectIndicationTCM1-up" {
-        value 165;
-      }
-      enum "backwardsDefectIndicationTCM2-up" {
-        value 166;
-      }
-      enum "backwardsDefectIndicationTCM3-up" {
-        value 167;
-      }
-      enum "backwardsDefectIndicationTCM4-up" {
-        value 168;
-      }
-      enum "backwardsDefectIndicationTCM5-up" {
-        value 169;
-      }
-      enum "backwardsDefectIndicationTCM6-up" {
-        value 170;
-      }
-      enum "degradedDefectTCM1-up" {
-        value 171;
-      }
-      enum "degradedDefectTCM2-up" {
-        value 172;
-      }
-      enum "degradedDefectTCM3-up" {
-        value 173;
-      }
-      enum "degradedDefectTCM4-up" {
-        value 174;
-      }
-      enum "degradedDefectTCM5-up" {
-        value 175;
-      }
-      enum "degradedDefectTCM6-up" {
-        value 176;
-      }
-      enum "trailTraceIdentifierMisMatchTCM1-up" {
-        value 177;
-      }
-      enum "trailTraceIdentifierMisMatchTCM2-up" {
-        value 178;
-      }
-      enum "trailTraceIdentifierMisMatchTCM3-up" {
-        value 179;
-      }
-      enum "trailTraceIdentifierMisMatchTCM4-up" {
-        value 180;
-      }
-      enum "trailTraceIdentifierMisMatchTCM5-up" {
-        value 181;
-      }
-      enum "trailTraceIdentifierMisMatchTCM6-up" {
-        value 182;
-      }
-      enum "alarmIndicationSignalTCM1-up" {
-        value 183;
-      }
-      enum "alarmIndicationSignalTCM2-up" {
-        value 184;
-      }
-      enum "alarmIndicationSignalTCM3-up" {
-        value 185;
-      }
-      enum "alarmIndicationSignalTCM4-up" {
-        value 186;
-      }
-      enum "alarmIndicationSignalTCM5-up" {
-        value 187;
-      }
-      enum "alarmIndicationSignalTCM6-up" {
-        value 188;
-      }
-      enum "openConnectionIndicationTCM1-up" {
-        value 189;
-      }
-      enum "openConnectionIndicationTCM2-up" {
-        value 190;
-      }
-      enum "openConnectionIndicationTCM3-up" {
-        value 191;
-      }
-      enum "openConnectionIndicationTCM4-up" {
-        value 192;
-      }
-      enum "openConnectionIndicationTCM5-up" {
-        value 193;
-      }
-      enum "openConnectionIndicationTCM6-up" {
-        value 194;
-      }
-      enum "lockedDefectTCM1-up" {
-        value 195;
-      }
-      enum "lockedDefectTCM2-up" {
-        value 196;
-      }
-      enum "lockedDefectTCM3-up" {
-        value 197;
-      }
-      enum "lockedDefectTCM4-up" {
-        value 198;
-      }
-      enum "lockedDefectTCM5-up" {
-        value 199;
-      }
-      enum "lockedDefectTCM6-up" {
-        value 200;
-      }
-      enum "lossofTandemConnectionTCM1-up" {
-        value 201;
-      }
-      enum "lossofTandemConnectionTCM2-up" {
-        value 202;
-      }
-      enum "lossofTandemConnectionTCM3-up" {
-        value 203;
-      }
-      enum "lossofTandemConnectionTCM4-up" {
-        value 204;
-      }
-      enum "lossofTandemConnectionTCM5-up" {
-        value 205;
-      }
-      enum "lossofTandemConnectionTCM6-up" {
-        value 206;
-      }
-      enum "backwardIncomingAlignmentErrorTCM1-down" {
-        value 207;
-      }
-      enum "backwardIncomingAlignmentErrorTCM2-down" {
-        value 208;
-      }
-      enum "backwardIncomingAlignmentErrorTCM3-down" {
-        value 209;
-      }
-      enum "backwardIncomingAlignmentErrorTCM4-down" {
-        value 210;
-      }
-      enum "backwardIncomingAlignmentErrorTCM5-down" {
-        value 211;
-      }
-      enum "backwardIncomingAlignmentErrorTCM6-down" {
-        value 212;
-      }
-      enum "incomingAlignmentErrorTCM1-down" {
-        value 213;
-      }
-      enum "incomingAlignmentErrorTCM2-down" {
-        value 214;
-      }
-      enum "incomingAlignmentErrorTCM3-down" {
-        value 215;
-      }
-      enum "incomingAlignmentErrorTCM4-down" {
-        value 216;
-      }
-      enum "incomingAlignmentErrorTCM5-down" {
-        value 217;
-      }
-      enum "incomingAlignmentErrorTCM6-down" {
-        value 218;
-      }
-      enum "backwardsDefectIndicationTCM1-down" {
-        value 219;
-      }
-      enum "backwardsDefectIndicationTCM2-down" {
-        value 220;
-      }
-      enum "backwardsDefectIndicationTCM3-down" {
-        value 221;
-      }
-      enum "backwardsDefectIndicationTCM4-down" {
-        value 222;
-      }
-      enum "backwardsDefectIndicationTCM5-down" {
-        value 223;
-      }
-      enum "backwardsDefectIndicationTCM6-down" {
-        value 224;
-      }
-      enum "degradedDefectTCM1-down" {
-        value 225;
-      }
-      enum "degradedDefectTCM2-down" {
-        value 226;
-      }
-      enum "degradedDefectTCM3-down" {
-        value 227;
-      }
-      enum "degradedDefectTCM4-down" {
-        value 228;
-      }
-      enum "degradedDefectTCM5-down" {
-        value 229;
-      }
-      enum "degradedDefectTCM6-down" {
-        value 230;
-      }
-      enum "trailTraceIdentifierMisMatchTCM1-down" {
-        value 231;
-      }
-      enum "trailTraceIdentifierMisMatchTCM2-down" {
-        value 232;
-      }
-      enum "trailTraceIdentifierMisMatchTCM3-down" {
-        value 233;
-      }
-      enum "trailTraceIdentifierMisMatchTCM4-down" {
-        value 234;
-      }
-      enum "trailTraceIdentifierMisMatchTCM5-down" {
-        value 235;
-      }
-      enum "trailTraceIdentifierMisMatchTCM6-down" {
-        value 236;
-      }
-      enum "alarmIndicationSignalTCM1-down" {
-        value 237;
-      }
-      enum "alarmIndicationSignalTCM2-down" {
-        value 238;
-      }
-      enum "alarmIndicationSignalTCM3-down" {
-        value 239;
-      }
-      enum "alarmIndicationSignalTCM4-down" {
-        value 240;
-      }
-      enum "alarmIndicationSignalTCM5-down" {
-        value 241;
-      }
-      enum "alarmIndicationSignalTCM6-down" {
-        value 242;
-      }
-      enum "openConnectionIndicationTCM1-down" {
-        value 243;
-      }
-      enum "openConnectionIndicationTCM2-down" {
-        value 244;
-      }
-      enum "openConnectionIndicationTCM3-down" {
-        value 245;
-      }
-      enum "openConnectionIndicationTCM4-down" {
-        value 246;
-      }
-      enum "openConnectionIndicationTCM5-down" {
-        value 247;
-      }
-      enum "openConnectionIndicationTCM6-down" {
-        value 248;
-      }
-      enum "lockedDefectTCM1-down" {
-        value 249;
-      }
-      enum "lockedDefectTCM2-down" {
-        value 250;
-      }
-      enum "lockedDefectTCM3-down" {
-        value 251;
-      }
-      enum "lockedDefectTCM4-down" {
-        value 252;
-      }
-      enum "lockedDefectTCM5-down" {
-        value 253;
-      }
-      enum "lockedDefectTCM6-down" {
-        value 254;
-      }
-      enum "lossofTandemConnectionTCM1-down" {
-        value 255;
-      }
-      enum "lossofTandemConnectionTCM2-down" {
-        value 256;
-      }
-      enum "lossofTandemConnectionTCM3-down" {
-        value 257;
-      }
-      enum "lossofTandemConnectionTCM4-down" {
-        value 258;
-      }
-      enum "lossofTandemConnectionTCM5-down" {
-        value 259;
-      }
-      enum "lossofTandemConnectionTCM6-down" {
-        value 260;
-      }
-      enum "multiplexStructureIdentifierMismatch" {
-        value 261;
-        description
-          "G798 : 6.2.9 (dMSIM)";
-      }
-      enum "lossOfOmfIndication" {
-        value 262;
-        description
-          "G798 : 14.3.10.2 Figure 14-73 (dLOOMFI)";
-      }
-      enum "lossOfFrameAndLossOfMultiframe" {
-        value 263;
-        description
-          "G798 : 6.2.5.3 (dLOFLOM)";
-      }
-      enum "lossOfDatabaseRedundancy" {
-        value 264;
-        description
-          "loss of database redundancy";
-      }
-      enum "databaseLocked" {
-        value 265;
-        description
-          "Database locked";
-      }
-      enum "createTechInfoInProgress" {
-        value 266;
-        description
-          "create-tech-info in progress";
-      }
-      enum "circuitPackActivateFailed" {
-        value 267;
-        description
-          "circuit-pack activation failed";
-      }
-      enum "softwareSubsystemFailed" {
-        value 268;
-        description
-          "Software subsystem failed";
-      }
-      enum "diskFull" {
-        value 269;
-        description
-          "Disk full";
-      }
-    }
-  }
-
-  grouping probable-cause {
-    leaf cause {
-      type probable-cause-enum;
-      mandatory true;
-    }
-    leaf extension {
-      type string;
-      mandatory false;
-    }
-    leaf direction {
-      type org-openroadm-common-types:direction;
-      mandatory true;
-      description
-        "Direction indication of the alarm.";
-    }
-    leaf location {
-      type org-openroadm-common-types:location;
-      mandatory true;
-      description
-        "location indication of the alarm.";
-    }
-    leaf type {
-      type enumeration {
-        enum "communication" {
-          value 1;
-        }
-        enum "qualityOfService" {
-          value 2;
-        }
-        enum "processingError" {
-          value 3;
-        }
-        enum "equipment" {
-          value 4;
-        }
-        enum "environmental" {
-          value 5;
-        }
-      }
-      mandatory false;
-      description
-        "Type of alarm. Based on X.733 event Type.";
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-resource-types@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-resource-types@2018-10-19.yang
deleted file mode 100644 (file)
index 765c380..0000000
+++ /dev/null
@@ -1,362 +0,0 @@
-module org-openroadm-resource-types {
-  namespace "http://org/openroadm/resource/types";
-  prefix org-openroadm-resource-types;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of common resource types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef resource-type-enum {
-    type enumeration {
-      enum "other" {
-        value 1;
-        description
-          "Resource of type not found in list.";
-      }
-      enum "device" {
-        value 2;
-        description
-          "device - ROAMD, Xponder, etc";
-      }
-      enum "degree" {
-        value 3;
-        description
-          "degree";
-      }
-      enum "shared-risk-group" {
-        value 4;
-        description
-          "shared-risk-group";
-      }
-      enum "connection" {
-        value 5;
-        description
-          "connection - this is used by roadm-connection and odu-connection
-           since they are mutually exclusive in the model";
-      }
-      enum "connection-map" {
-        value 6;
-        description
-          "connection-map";
-      }
-      enum "port" {
-        value 7;
-        description
-          "port";
-      }
-      enum "circuit-pack" {
-        value 8;
-        description
-          "circuit pack";
-      }
-      enum "internal-link" {
-        value 9;
-        description
-          "internal-link";
-      }
-      enum "physical-link" {
-        value 10;
-        description
-          "physical-link";
-      }
-      enum "interface" {
-        value 11;
-        description
-          "interface";
-      }
-      enum "shelf" {
-        value 12;
-        description
-          "shelf";
-      }
-      enum "service" {
-        value 13;
-        description
-          "service";
-      }
-      enum "odu-sncp-pg" {
-        value 14;
-        description
-          "odu-sncp-pg";
-      }
-      enum "line-amplifier" {
-        value 15;
-        description
-          "line-amplifier";
-      }
-      enum "xponder" {
-        value 16;
-        description
-          "xponder";
-      }
-      enum "versioned-service" {
-        value 17;
-        description
-          "versioned-service";
-      }
-      enum "temp-service" {
-        value 18;
-        description
-          "temp-service";
-      }
-    }
-  }
-
-  typedef resource-notification-type {
-    type enumeration {
-      enum "resourceCreation" {
-        value 1;
-        description
-          "A new instance of a resource has been created.";
-      }
-      enum "resourceModification" {
-        value 2;
-        description
-          "An exhisting instance of a resource has been modified. This shall be triggered by changes in configuration, state, status etc.
-           It shall not be triggered by changes in performance measurements, power and temperature readings or any other data that is highlyvolatile. ";
-      }
-      enum "resourceDeletion" {
-        value 3;
-        description
-          "An exhisting instance of a resource has been removed.";
-      }
-    }
-    description
-      "Type of notification about a resource";
-  }
-
-  grouping resource-type {
-    leaf type {
-      type resource-type-enum;
-      mandatory true;
-    }
-    leaf extension {
-      type string;
-      mandatory false;
-    }
-  }
-
-  grouping device-id {
-    description
-      "Device identifier. Unique within the Controller.";
-    leaf node-id {
-      type org-openroadm-common-types:node-id-type;
-      description
-        "Node Id is a globally unique identifier for a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping circuit-pack-name {
-    leaf circuit-pack-name {
-      type string;
-      mandatory true;
-      description
-        "Circuit-Pack identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping port-name {
-    uses circuit-pack-name;
-    leaf port-name {
-      type string;
-      description
-        "Port identifier. Unique within the context of a circuit-pack.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping physical-link-name {
-    leaf physical-link-name {
-      type string;
-      mandatory true;
-      description
-        "Physical Link identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping internal-link-name {
-    leaf internal-link-name {
-      type string;
-      mandatory true;
-      description
-        "Internal Link identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping connection-name {
-    leaf connection-name {
-      type string;
-      description
-        "Connection name. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping degree-number {
-    leaf degree-number {
-      type uint16;
-      description
-        "Degree identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping srg-number {
-    leaf srg-number {
-      type uint16;
-      description
-        "Shared Risk Group identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping shelf-name {
-    leaf shelf-name {
-      type string;
-      mandatory true;
-      description
-        "Shelf-id identifier. Unique within the context of a device.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping service-name {
-    leaf service-name {
-      type string;
-      mandatory true;
-      description
-        "Service identifier. Unique within the context of a network.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping versioned-service-name {
-    leaf versioned-service-name {
-      type string;
-      mandatory true;
-      description
-        "Service identifier. Unique within the context of a network.
-         Same as leafref value in model, if applicable.";
-    }
-    leaf version-number {
-      type uint64;
-      mandatory true;
-      description
-        "version-number of the service";
-    }
-  }
-
-  grouping temp-service-name {
-    leaf common-id {
-      type string;
-      mandatory true;
-      description
-        "Service identifier. Unique within the context of a network.
-         Same as leafref value in model, if applicable.";
-    }
-  }
-
-  grouping interface-name {
-    leaf interface-name {
-      type string;
-      mandatory true;
-      description
-        "Interface identifier.";
-    }
-  }
-
-  grouping other-resource-id {
-    leaf other-resource-id {
-      type string;
-      mandatory true;
-      description
-        "resource-id for other.";
-    }
-  }
-
-  grouping odu-sncp-pg-name {
-    leaf odu-sncp-pg-name {
-      type string;
-      mandatory true;
-      description
-        "name of the odu-snc-pg";
-    }
-  }
-
-  grouping amp-number {
-    leaf amp-number {
-      type uint8;
-      mandatory true;
-      description
-        "number of the line-amplifier";
-    }
-  }
-
-  grouping xpdr-number {
-    leaf xpdr-number {
-      type uint16;
-      mandatory true;
-      description
-        "number of the xponder";
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-resource@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-resource@2018-10-19.yang
deleted file mode 100644 (file)
index 7baff87..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-module org-openroadm-resource {
-  namespace "http://org/openroadm/resource";
-  prefix org-openroadm-resource;
-
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of resources.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping resource {
-    description
-      "This resource identifier is intended to provide a generic identifer
-       for any resource that can be used without specific knowledge of
-       the resource.";
-    container device {
-      description
-        "Device of the resource, used only when the system using this
-         model report on more than one device. ";
-      uses org-openroadm-resource-types:device-id;
-    }
-    container resource {
-      choice resource {
-        case circuit-pack {
-          uses org-openroadm-resource-types:circuit-pack-name;
-        }
-        case port {
-          container port {
-            uses org-openroadm-resource-types:port-name;
-          }
-        }
-        case connection {
-          uses org-openroadm-resource-types:connection-name {
-            refine "connection-name" {
-              mandatory true;
-            }
-          }
-        }
-        case physical-link {
-          uses org-openroadm-resource-types:physical-link-name;
-        }
-        case internal-link {
-          uses org-openroadm-resource-types:internal-link-name;
-        }
-        case shelf {
-          uses org-openroadm-resource-types:shelf-name;
-        }
-        case srg {
-          uses org-openroadm-resource-types:srg-number {
-            refine "srg-number" {
-              mandatory true;
-            }
-          }
-        }
-        case degree {
-          uses org-openroadm-resource-types:degree-number {
-            refine "degree-number" {
-              mandatory true;
-            }
-          }
-        }
-        case service {
-          uses org-openroadm-resource-types:service-name;
-        }
-        case interface {
-          uses org-openroadm-resource-types:interface-name;
-        }
-        case odu-sncp-pg {
-          uses org-openroadm-resource-types:odu-sncp-pg-name;
-        }
-        case other {
-          uses org-openroadm-resource-types:other-resource-id;
-        }
-        case device {
-          uses org-openroadm-resource-types:device-id {
-            refine "node-id" {
-              mandatory true;
-            }
-          }
-        }
-        case line-amplifier {
-          uses org-openroadm-resource-types:amp-number;
-        }
-        case xponder {
-          uses org-openroadm-resource-types:xpdr-number;
-        }
-        case versioned-service {
-          uses org-openroadm-resource-types:versioned-service-name;
-        }
-        case temp-service {
-          uses org-openroadm-resource-types:temp-service-name;
-        }
-      }
-    }
-    container resourceType {
-      uses org-openroadm-resource-types:resource-type;
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-switching-pool-types@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-switching-pool-types@2017-12-15.yang
deleted file mode 100644 (file)
index 10cff01..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-module org-openroadm-switching-pool-types {
-  namespace "http://org/openroadm/switching-pool-types";
-  prefix org-openroadm-switching-pool-types;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of common types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-
-  typedef switching-pool-types {
-    type enumeration {
-      enum "non-blocking" {
-        value 1;
-        description
-          "Single non-blocking element";
-      }
-      enum "blocking" {
-        value 2;
-        description
-          "Multiple connected non-blocking lists";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-tca@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-tca@2018-10-19.yang
deleted file mode 100644 (file)
index 969a666..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-module org-openroadm-tca {
-  namespace "http://org/openroadm/tca";
-  prefix org-openroadm-tca;
-
-  import ietf-yang-types {
-    prefix yang;
-    revision-date 2013-07-15;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-pm-types {
-    prefix org-openroadm-pm-types;
-    revision-date 2017-12-15;
-  }
-  import org-openroadm-resource {
-    prefix org-openroadm-resource;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of Threshold Crossing Alert types.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-08-28 {
-    description
-      "Version 2.0.2 - added back the missing pmParameterName container";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping tca {
-    leaf id {
-      type string;
-      mandatory true;
-    }
-    container resource {
-      uses org-openroadm-resource:resource;
-    }
-    container pmParameterName {
-      uses org-openroadm-pm-types:pm-names;
-    }
-    leaf granularity {
-      type org-openroadm-pm-types:pm-granularity;
-      mandatory true;
-    }
-    leaf location {
-      type org-openroadm-common-types:location;
-      mandatory true;
-    }
-    leaf direction {
-      type org-openroadm-common-types:direction;
-      mandatory true;
-    }
-  }
-
-  grouping potential-tca {
-    uses tca;
-    leaf lowThresholdValue {
-      type org-openroadm-pm-types:pm-data-type;
-    }
-    leaf highThresholdValue {
-      type org-openroadm-pm-types:pm-data-type;
-    }
-  }
-
-  notification tca-notification {
-    uses tca;
-    leaf thresholdValue {
-      type org-openroadm-pm-types:pm-data-type;
-      mandatory true;
-    }
-    leaf thresholdType {
-      type enumeration {
-        enum "high" {
-          value 1;
-        }
-        enum "low" {
-          value 2;
-        }
-      }
-      mandatory true;
-      description
-        "Threshold Crossed";
-    }
-    leaf pmParameterValue {
-      type org-openroadm-pm-types:pm-data-type;
-      mandatory true;
-    }
-    leaf raiseTime {
-      type yang:date-and-time;
-      mandatory true;
-    }
-  }
-  container potential-tca-list {
-    description
-      "This is the set of threshold crossing alerts monitored on the device. Alerts are
-       enabled/disabled by adding/deleting the high/low threshold values from the list.";
-    list tca {
-      key "id";
-      uses potential-tca;
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-user-mgmt@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/common/org-openroadm-user-mgmt@2017-12-15.yang
deleted file mode 100644 (file)
index cf55c1b..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-module org-openroadm-user-mgmt {
-  namespace "http://org/openroadm/user-mgmt";
-  prefix org-openroadm-user-mgmt;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of user managements.
-
-      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
-
-      Redistribution and use in source and binary forms, with or without modification,
-      are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this
-        list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice,
-        this list of conditions and the following disclaimer in the documentation and/or
-        other materials provided with the distribution.
-      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-        contributors may be used to endorse or promote products derived from this software
-        without specific prior written permission.
-
-      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-      POSSIBILITY OF SUCH DAMAGE";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef username-type {
-    type string {
-      length "3..32";
-      pattern "[a-z][a-z0-9]{2,31}" {
-        error-message
-          "A username must begin with a lowercase letter, The remainder
-           of the string may contain lowercase letters, or numbers 0 through 9.";
-      }
-    }
-    description
-      "The user name string identifying this entry.";
-  }
-
-  typedef password-type {
-    type string {
-      length "8..128";
-      pattern "[a-zA-Z0-9!$%\\^()\\[\\]_\\-~{}.+]*" {
-        error-message "Password content does not meet the requirements";
-      }
-    }
-    description
-      "The password for this entry. This shouldn't be in clear text
-       The Password must contain at least 2 characters from
-       each of the following groups:
-       a) Lower case alphabetic (a-z)
-       b) Upper case alphabetic (A-Z)
-       c) Numeric 0-9
-       d) Special characters Allowed !$%^()[]_-~{}.+
-       Password must not contain Username.";
-  }
-
-  grouping user-profile {
-    list user {
-      key "name";
-      description
-        "The list of local users configured on this device.";
-      leaf name {
-        type username-type;
-        description
-          "The user name string identifying this entry.";
-      }
-      leaf password {
-        type password-type;
-        description
-          "The password for this entry.";
-      }
-      leaf group {
-        type enumeration {
-          enum "sudo";
-        }
-        description
-          "The group to which the user is associated to.";
-      }
-    }
-  }
-
-  rpc chg-password {
-    input {
-      leaf currentPassword {
-        type password-type;
-        mandatory true;
-        description
-          "provide the current password";
-      }
-      leaf newPassword {
-        type password-type;
-        mandatory true;
-        description
-          "provide a new password";
-      }
-      leaf newPasswordConfirm {
-        type password-type;
-        mandatory true;
-        description
-          "re-enter the new password ";
-      }
-    }
-    output {
-      leaf status {
-        type enumeration {
-          enum "Successful" {
-            value 1;
-          }
-          enum "Failed" {
-            value 2;
-          }
-        }
-        mandatory true;
-        description
-          "Successful or Failed";
-      }
-      leaf status-message {
-        type string;
-        description
-          "Gives a more detailed reason for success / failure";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-database@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-database@2018-10-19.yang
deleted file mode 100644 (file)
index 63a21ba..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-module org-openroadm-database {
-  namespace "http://org/openroadm/database";
-  prefix org-openroadm-database;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "This module contains definitions for System Management.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  rpc db-backup {
-    description
-      "copy  running DB to user provided file to a given path";
-    input {
-      leaf filename {
-        type string {
-          length "10..255";
-        }
-        description
-          "Path and file name is used with back-up.(xxx.DBS)";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc db-restore {
-    description
-      "Restore database ";
-    input {
-      leaf filename {
-        type string {
-          length "10..255";
-        }
-        description
-          "PATH/file name use file name.(xxx.DBS)";
-      }
-      leaf nodeIDCheck {
-        type boolean;
-        default "true";
-        description
-          "Flag to indicate if sysNameCheck is required";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc db-activate {
-    description
-      "activate the database";
-    input {
-      leaf rollBackTimer {
-        type string;
-        description
-          "rollbackTimer ";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc cancel-rollback-timer {
-    description
-      "Cancel roll back timer which user provisioned as part of activate command";
-    input {
-      leaf accept {
-        type boolean;
-        description
-          " TRUE means rollback timer is cancelled and new load is accepted";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc database-init {
-    description
-      "Initialize the database to default DB";
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  notification db-backup-notification {
-    description
-      "notification for db-backup operation events.";
-    uses org-openroadm-common-types:rpc-response-status;
-  }
-  notification db-restore-notification {
-    description
-      "notification for db-restore operation events.";
-    uses org-openroadm-common-types:rpc-response-status;
-  }
-  notification db-activate-notification {
-    description
-      "notification for database activation events.";
-    leaf db-active-notification-type {
-      type org-openroadm-common-types:activate-notification-type;
-    }
-    uses org-openroadm-common-types:rpc-response-status;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-de-operations@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-de-operations@2018-10-19.yang
deleted file mode 100644 (file)
index e82f672..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-module org-openroadm-de-operations {
-  namespace "http://org/openroadm/de/operations";
-  prefix org-openroadm-de-operations;
-
-  import org-openroadm-resource {
-    prefix org-openroadm-resource;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of operations.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  rpc restart {
-    description
-      "Restart a resource with warm/cold option. If no resource is provided or only the device name is provided, then the device itself will be restarted.
-       Note that resources on the device will not be restartable";
-    input {
-      uses org-openroadm-resource:resource;
-      leaf option {
-        type enumeration {
-          enum "warm" {
-            value 1;
-          }
-          enum "cold" {
-            value 2;
-          }
-        }
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  notification restart-notification {
-    description
-      "This Notification is sent when a resource on a device has completed a restart. This is sent as a result of restarts triggered via the
-       restart RPC and other means.  The resource identified is the from the RPC request or the equivalment if the restart was triggered another way.";
-    uses org-openroadm-resource:resource;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-device@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-device@2018-10-19.yang
deleted file mode 100644 (file)
index c08187c..0000000
+++ /dev/null
@@ -1,1848 +0,0 @@
-module org-openroadm-device {
-  namespace "http://org/openroadm/device";
-  prefix org-openroadm-device;
-
-  import ietf-yang-types {
-    prefix ietf-yang-types;
-    revision-date 2013-07-15;
-  }
-  import ietf-inet-types {
-    prefix ietf-inet-types;
-    revision-date 2013-07-15;
-  }
-  import ietf-netconf {
-    prefix ietf-nc;
-    revision-date 2011-06-01;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-physical-types {
-    prefix org-openroadm-physical-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-user-mgmt {
-    prefix org-openroadm-user-mgmt;
-    revision-date 2017-12-15;
-  }
-  import org-openroadm-port-types {
-    prefix org-openroadm-port-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix org-openroadm-interfaces;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-swdl {
-    prefix org-openroadm-swdl;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-equipment-states-types {
-    prefix org-openroadm-equipment-states-types;
-    revision-date 2017-12-15;
-  }
-  import org-openroadm-switching-pool-types {
-    prefix org-openroadm-switching-pool-types;
-    revision-date 2017-12-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of ROADM device
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF netconf.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2017-02-06 {
-    description
-      "Version 1.2.1 - removed pattern for current-datetime in info tree and rpc";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping create-tech-info-group {
-    leaf shelf-id {
-      type leafref {
-        path "/org-openroadm-device/shelves/shelf-name";
-      }
-      description
-        "shelf ID";
-    }
-    leaf log-file-name {
-      type string;
-      description
-        "The log file name a vendor can specify for a given log collection operation";
-    }
-  }
-
-  grouping device-common {
-    leaf node-id {
-      type org-openroadm-common-types:node-id-type;
-      default "openroadm";
-      description
-        "Globally unique identifier for a device.";
-    }
-    leaf node-number {
-      type uint32;
-      description
-        "Number assigned to a ROADM node at a
-         given office";
-    }
-    leaf node-type {
-      type org-openroadm-common-types:node-types;
-      config true;
-      mandatory true;
-      description
-        "Identifier for node-type e.g Roadm, xponder.
-         Once the node-type is configured, it should not be modified.";
-    }
-    leaf clli {
-      type string;
-      description
-        "Common Language Location Identifier.";
-    }
-    uses org-openroadm-physical-types:node-info;
-    leaf ipAddress {
-      type ietf-inet-types:ip-address;
-      description
-        "IP Address of device";
-    }
-    leaf prefix-length {
-      type uint8 {
-        range "0..128";
-      }
-      description
-        "The length of the subnet prefix";
-    }
-    leaf defaultGateway {
-      type ietf-inet-types:ip-address;
-      description
-        "Default Gateway";
-    }
-    leaf source {
-      type enumeration {
-        enum "static" {
-          value 1;
-        }
-        enum "dhcp" {
-          value 2;
-        }
-      }
-      config false;
-    }
-    leaf current-ipAddress {
-      type ietf-inet-types:ip-address;
-      config false;
-      description
-        "Current IP Address of device";
-    }
-    leaf current-prefix-length {
-      type uint8 {
-        range "0..128";
-      }
-      config false;
-      description
-        "The current length of the subnet prefix";
-    }
-    leaf current-defaultGateway {
-      type ietf-inet-types:ip-address;
-      config false;
-      description
-        "Current Default Gateway";
-    }
-    leaf macAddress {
-      type ietf-yang-types:mac-address;
-      config false;
-      description
-        "MAC Address of device";
-    }
-    leaf softwareVersion {
-      type string;
-      config false;
-      description
-        "Software version";
-    }
-    leaf openroadm-version {
-      type org-openroadm-common-types:openroadm-version-type;
-      config false;
-      description
-        "openroadm version used on the device";
-    }
-    leaf template {
-      type string;
-      description
-        "Template information used in the deployment.";
-    }
-    leaf current-datetime {
-      type ietf-yang-types:date-and-time;
-      config false;
-      description
-        "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS.mm+ ";
-    }
-    container geoLocation {
-      description
-        "GPS location";
-      leaf latitude {
-        type decimal64 {
-          fraction-digits 16;
-          range "-90 .. 90";
-        }
-        description
-          "[From wikipedia] Latitude is an angle (defined below)
-           which ranges from 0 at the Equator to 90 (North or
-           South) at the poles";
-      }
-      leaf longitude {
-        type decimal64 {
-          fraction-digits 16;
-          range "-180 .. 180";
-        }
-        description
-          "[From wikipedia] The longitude is measured as the
-           angle east or west from the Prime Meridian, ranging
-           from 0 at the Prime Meridian to +180 eastward and
-           -180 westward.";
-      }
-    }
-  }
-
-  grouping slot-info {
-    description
-      "slots information. To be populated by NE during retrieval.";
-    leaf slot-name {
-      type string;
-      description
-        "The name of this slot.";
-    }
-    leaf label {
-      type string;
-      description
-        "Faceplate label";
-    }
-    leaf provisioned-circuit-pack {
-      type leafref {
-        path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-      }
-      description
-        "The supported circuit-pack. It will be empty if holder status is empty-not-prov, or installed-not-prov";
-    }
-    leaf slot-status {
-      type enumeration {
-        enum "empty-not-prov" {
-          value 1;
-          description
-            "Slot is empty and not provisioned";
-        }
-        enum "empty-prov-match" {
-          value 2;
-          description
-            "Slot is empty and expected type is provisioned";
-        }
-        enum "empty-prov-mismatch" {
-          value 3;
-          description
-            "Slot is empty and an unsupported type is provisioned";
-        }
-        enum "installed-not-prov" {
-          value 4;
-          description
-            "Slot is occupied but not provisioned";
-        }
-        enum "installed-prov-match" {
-          value 5;
-          description
-            "Slot is occupied with matching provisioned type";
-        }
-        enum "installed-prov-mismatch" {
-          value 6;
-          description
-            "Slot is occupied with mismatched provisioned type";
-        }
-      }
-    }
-  }
-
-  grouping shelves {
-    list shelves {
-      key "shelf-name";
-      uses shelf;
-    }
-  }
-
-  grouping shelf {
-    leaf shelf-name {
-      type string;
-      description
-        "Unique identifier for this shelf within a device";
-    }
-    leaf shelf-type {
-      type string;
-      mandatory true;
-      description
-        "The shelf type: describe the shelf with a unique string.";
-    }
-    leaf rack {
-      type string;
-      description
-        "Reflect the shelf physical location data including floor, aisle, bay values.";
-    }
-    leaf shelf-position {
-      type string;
-      description
-        "Reflect the shelf vertical position within an equipment bay.";
-    }
-    leaf administrative-state {
-      type org-openroadm-equipment-states-types:admin-states;
-      description
-        "Admin State of the shelf";
-    }
-    uses org-openroadm-physical-types:common-info;
-    leaf equipment-state {
-      type org-openroadm-equipment-states-types:states;
-      description
-        "equipment state for the shelf, used to track the lifecycle state.";
-    }
-    leaf due-date {
-      type ietf-yang-types:date-and-time;
-      description
-        "due date for the shelf.";
-    }
-    list slots {
-      key "slot-name";
-      config false;
-      description
-        "List of slots on this shelf. To be populated by NE during retrieval.";
-      uses slot-info;
-    }
-  }
-
-  grouping circuit-packs {
-    list circuit-packs {
-      key "circuit-pack-name";
-      description
-        "List of circuit packs. This includes common equipment, like fans, power supplies, etc.";
-      leaf circuit-pack-type {
-        type string;
-        mandatory true;
-        description
-          "Type of circuit-pack";
-      }
-      leaf circuit-pack-product-code {
-        type string;
-        description
-          "Product Code for the circuit-pack";
-      }
-      uses circuit-pack;
-    }
-  }
-
-  grouping circuit-pack-features {
-    leaf software-load-version {
-      type string;
-      config false;
-      description
-        "Software version running on the circuit pack.";
-    }
-    list circuit-pack-features {
-      config false;
-      container feature {
-        description
-          "List of features supported by the installed load and indications on whether the features have been applied or not.";
-        leaf description {
-          type string;
-          description
-            "Feature description.";
-        }
-        leaf activated {
-          type boolean;
-          description
-            "Indicator if the feature has been activated.";
-        }
-      }
-    }
-    list circuit-pack-components {
-      config false;
-      container component {
-        description
-          "Optional list of components on the circuit-pack and the load information applicable to those components.  If a load is not up to date and will upgrade when a cold restart occurs, the version that will be applied should also be listed.  If there is no misalignment, this does not need to be reported.";
-        leaf name {
-          type string;
-          description
-            "Name of a component on the circuit-pack that can have a load applied to it.";
-        }
-        leaf current-version {
-          type string;
-          description
-            "Name of the load version currently running on the component.";
-        }
-        leaf version-to-apply {
-          type string;
-          description
-            "Name of the load version for the component that will be applied when cold restart occurs on the circuit-pack.";
-        }
-      }
-    }
-  }
-
-  grouping circuit-pack {
-    leaf circuit-pack-name {
-      type string;
-      description
-        "Unique identifier for this circuit-pack within a device";
-    }
-    leaf administrative-state {
-      type org-openroadm-equipment-states-types:admin-states;
-      description
-        "Administrative state of circuit-pack";
-    }
-    uses org-openroadm-physical-types:common-info;
-    container circuit-pack-category {
-      config false;
-      description
-        "General type of circuit-pack";
-      uses org-openroadm-common-types:equipment-type;
-    }
-    leaf equipment-state {
-      type org-openroadm-equipment-states-types:states;
-      description
-        "Equipment state, which complements operational state.";
-    }
-    leaf circuit-pack-mode {
-      type string;
-      default "NORMAL";
-      description
-        "Circuit-pack mode allowed. e.g. NORMAL or REGEN";
-    }
-    leaf shelf {
-      type leafref {
-        path "/org-openroadm-device/shelves/shelf-name";
-      }
-      mandatory true;
-    }
-    leaf slot {
-      type string;
-      mandatory true;
-    }
-    leaf subSlot {
-      type string;
-      mandatory false;
-    }
-    leaf is-pluggable-optics {
-      type boolean;
-      config false;
-      mandatory true;
-      description
-        "True if circuitpack is pluggable optics";
-    }
-    leaf due-date {
-      type ietf-yang-types:date-and-time;
-      description
-        "due date for this circuit-pack.";
-    }
-    container parent-circuit-pack {
-      description
-        "In the case of circuit packs that contain other equipment (modules or pluggables), this captures the hierarchy of that equipment.  It is a vendor specific design decision if the ports for single-port pluggables are modeled as children of the parent circuit-pack, or as children of the pluggable circuit-pack contained in the parent circuit-pack.  For modules with multiple ports, it is recommended that ports be children of the module and not the carrier, to help in fault correlation and isolation in the case of a module failure.";
-      uses circuit-pack-name;
-      leaf cp-slot-name {
-        type string;
-        description
-          "Slot name on parent-circuit-pack.";
-      }
-    }
-    list cp-slots {
-      key "slot-name";
-      config false;
-      description
-        "List of circuit-pack slots on this circuit-pack. To be populated by NE during retrieval.";
-      uses slot-info;
-      leaf slot-type {
-        type enumeration {
-          enum "pluggable-optics-holder" {
-            value 1;
-            description
-              "slot accepts dedicated pluggable port circuit-pack";
-          }
-          enum "other" {
-            value 2;
-            description
-              "slot accepts parent circuit-pack";
-          }
-        }
-      }
-    }
-    uses circuit-pack-features;
-    list ports {
-      key "port-name";
-      description
-        "List of ports on this circuit-pack. Note that pluggables are considered independent circuit-packs.  All ports that are physically present on a pluggable, need to be modeled as a port against that pluggable circuit-pack, and not against the parent circuit-pack.";
-      uses port;
-      container roadm-port {
-        when "../port-qual='roadm-external'";
-        uses org-openroadm-port-types:roadm-port;
-      }
-      container transponder-port {
-        when "../port-qual='xpdr-network' or ../port-qual='xpdr-client' or ../port-qual='switch-network' or ../port-qual='switch-client'";
-        uses org-openroadm-port-types:common-port;
-      }
-      container otdr-port {
-        when "../port-qual='otdr'";
-        description
-          "Settings for otdr port.";
-        leaf launch-cable-length {
-          type uint32;
-          units "m";
-          default "30";
-        }
-        leaf port-direction {
-          type org-openroadm-common-types:direction;
-        }
-      }
-      container ila-port {
-        when "../port-qual='ila-external'";
-        uses org-openroadm-port-types:common-port;
-      }
-    }
-  }
-
-  grouping odu-connection {
-    description
-      "Grouping used to define odu-connections.";
-    leaf connection-name {
-      type string;
-      description
-        "roadm-connection and odu-connection share the same resource-type and resource definition (e.g. connection)";
-    }
-    leaf direction {
-      type enumeration {
-        enum "unidirectional" {
-          value 1;
-        }
-        enum "bidirectional" {
-          value 2;
-        }
-      }
-      default "bidirectional";
-      description
-        "Directionality of connection. If bidirectional, both directions are created.";
-    }
-    container source {
-      leaf src-if {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-        mandatory true;
-      }
-    }
-    container destination {
-      leaf dst-if {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-        mandatory true;
-      }
-    }
-  }
-
-  grouping connection {
-    description
-      "Grouping used to define connections.";
-    leaf connection-name {
-      type string;
-    }
-    leaf opticalControlMode {
-      type org-openroadm-common-types:optical-control-mode;
-      default "off";
-      description
-        "Whether connection is currently in power or gain/loss mode";
-      reference "openroadm.org: Open ROADM MSA Specification.";
-    }
-    leaf target-output-power {
-      type org-openroadm-common-types:power-dBm;
-      description
-        "The output target power for this connection. When set, the ROADM will work to ensure that current-output-power reaches this level.";
-    }
-    container source {
-      leaf src-if {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-        mandatory true;
-      }
-    }
-    container destination {
-      leaf dst-if {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-        mandatory true;
-      }
-    }
-  }
-
-  grouping degree {
-    leaf degree-number {
-      type uint16;
-      must "not( current() > /org-openroadm-device/info/max-degrees) and current() > 0" {
-        error-message "Degree not supported by device ";
-        description
-          "Validating if the degree is supported by device";
-      }
-    }
-    leaf max-wavelengths {
-      type uint16;
-      config false;
-      mandatory true;
-      description
-        "maximum number of wavelengths";
-    }
-    list circuit-packs {
-      key "index";
-      description
-        "list for Cards associated with a degree";
-      leaf index {
-        type uint32;
-      }
-      uses circuit-pack-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-      }
-    }
-    list connection-ports {
-      key "index";
-      description
-        "Port associated with degree: One if bi-directional; two if uni-directional";
-      leaf index {
-        type uint32;
-      }
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container otdr-port {
-      description
-        "otdr port associated with degree.";
-      uses port-name;
-    }
-    uses mc-capabilities-g;
-  }
-
-  grouping amplifier {
-    leaf amp-number {
-      type uint8 {
-        range "1..128";
-      }
-      description
-        "Unique identifier/number for the amplifier entry which corresponds to a logical amplifier";
-    }
-    leaf amp-type {
-      type org-openroadm-common-types:amplifier-types;
-      config false;
-      mandatory true;
-      description
-        "Amplifier type";
-    }
-    leaf control-mode {
-      type org-openroadm-common-types:line-amplifier-control-mode;
-      default "off";
-      description
-        "Whether the line amplifier is currently in off or gainLoss mode. control-mode can only be set to gainLoss when target-gain, target-tilt and egress-average-channel-power are set and the OMS interfaces are provisioned. The amplifier will be turned off when the control-mode is set to off";
-    }
-    leaf amp-gain-range {
-      type org-openroadm-common-types:amplifier-gain-range;
-      default "gain-range-1";
-      config false;
-      description
-        "Amplifier gain-range (gain-range 1 to 4 for switched gain amplifiers)
-         gain-range-1 (default value) for standard amplifiers";
-    }
-    leaf target-gain {
-      type org-openroadm-common-types:ratio-dB;
-      config true;
-      description
-        "Target overall Amplifier Signal gain, excluding ASE, including VOA attenuation.
-         Defined as optional for ODL support, but shall be considered as mandatory and provided
-         by the controller when the control-mode is set to gainLoss for amplifier setting";
-    }
-    leaf target-tilt {
-      type org-openroadm-common-types:ratio-dB;
-      config true;
-      description
-        "Target tilt configured in case of smart EDFA.
-         Tilt value provided as specified in Open-ROADM-MSA-specifications spreadsheet
-         Defined as optional for ODL support, but shall be considered as mandatory and provided
-         by the controller when the control-mode is set to gainLoss for amplifier setting";
-    }
-    leaf egress-average-channel-power {
-      type org-openroadm-common-types:power-dBm;
-      config true;
-      description
-        "Based upon the total max power across the 4.8 THz passband.
-         Defined as optional for ODL support, but shall be considered as mandatory and provided
-         by the controller when the control-mode is set to gainLoss for amplifier setting";
-    }
-    leaf out-voa-att {
-      type org-openroadm-common-types:ratio-dB;
-      config false;
-      description
-        "Used to provide the value output VOA attenuation, optional";
-    }
-    leaf partner-amp {
-      type leafref {
-        path "../amp-number";
-      }
-      config false;
-      description
-        "amp-number of amp module that is functionally associated to the amplifier
-         in the opposite direction";
-    }
-    leaf ila-direction-label {
-      type string;
-      description
-        "Amplifier direction. Each operators may have its own naming convention.
-         Shall be consistent with tx-instance-port-direction-label and rx-instance-port-direction-label.";
-    }
-  }
-
-  grouping external-links {
-    description
-      "YANG definitions for external links..
-       - physical links between ROADMs and between the ROADMs and XPonders, which can be added and removed manually.";
-    list external-link {
-      key "external-link-name";
-      uses external-link;
-    }
-  }
-
-  grouping external-link {
-    leaf external-link-name {
-      type string;
-    }
-    container source {
-      uses org-openroadm-resource-types:device-id {
-        refine "node-id" {
-          mandatory true;
-        }
-      }
-      uses org-openroadm-resource-types:port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container destination {
-      uses org-openroadm-resource-types:device-id {
-        refine "node-id" {
-          mandatory true;
-        }
-      }
-      uses org-openroadm-resource-types:port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-  }
-
-  grouping internal-links {
-    list internal-link {
-      key "internal-link-name";
-      config false;
-      uses internal-link;
-    }
-  }
-
-  grouping internal-link {
-    leaf internal-link-name {
-      type string;
-    }
-    container source {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container destination {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-  }
-
-  grouping physical-links {
-    description
-      "YANG definitions for physical links.
-       - physical links (fiber, cables,etc.) between ports within a node. ";
-    list physical-link {
-      key "physical-link-name";
-      uses physical-link;
-    }
-  }
-
-  grouping physical-link {
-    leaf physical-link-name {
-      type string;
-    }
-    container source {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-    container destination {
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-    }
-  }
-
-  grouping srg {
-    leaf max-add-drop-ports {
-      type uint16;
-      config false;
-      mandatory true;
-      description
-        "The max number of ports available for a given srg";
-    }
-    leaf current-provisioned-add-drop-ports {
-      type uint16;
-      config false;
-      mandatory true;
-      description
-        "The number of ports currently provisioned for a given srg.";
-    }
-    leaf srg-number {
-      type uint16;
-      must "not(current()>/org-openroadm-device/info/max-srgs) and current()>0" {
-        error-message "invalid SRG";
-        description
-          "Validating if the srg is supported by add/drop group";
-      }
-    }
-    leaf wavelength-duplication {
-      type org-openroadm-common-types:wavelength-duplication-type;
-      config false;
-      mandatory true;
-      description
-        "Whether the SRG can handle duplicate wavelengths and if so to what extent.";
-    }
-    list circuit-packs {
-      key "index";
-      description
-        "list for Cards associated with an add/drop group and srg";
-      leaf index {
-        type uint32;
-      }
-      uses circuit-pack-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-      }
-    }
-    uses mc-capabilities-g;
-  }
-
-  grouping xponder {
-    leaf xpdr-number {
-      type uint16;
-      must "current() > 0" {
-        error-message "Xponder not supported by device ";
-        description
-          "Validating if the Xponder is supported by device";
-      }
-    }
-    leaf xpdr-type {
-      type org-openroadm-common-types:xpdr-node-types;
-      mandatory true;
-      description
-        "Identifier for xponder-type e.g Transponder, Muxponder";
-    }
-    leaf recolor {
-      type boolean;
-      config false;
-      description
-        "Indication if recolor is supported";
-    }
-    list xpdr-port {
-      key "index";
-      description
-        "Network Ports with in a Xponder";
-      leaf index {
-        type uint32;
-      }
-      uses port-name {
-        refine "circuit-pack-name" {
-          mandatory true;
-        }
-        refine "port-name" {
-          mandatory true;
-        }
-      }
-      leaf eqpt-srg-id {
-        type uint32;
-        description
-          "Shared Risk Group identifier. All ports in a circuit-pack will have same srg-id";
-      }
-    }
-  }
-
-  grouping degree-number {
-    leaf degree-number {
-      type leafref {
-        path "/org-openroadm-device/degree/degree-number";
-      }
-      description
-        "Degree identifier. Unique within the context of a device.";
-    }
-  }
-
-  grouping circuit-pack-name {
-    leaf circuit-pack-name {
-      type leafref {
-        path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-      }
-      description
-        "Circuit-Pack identifier. Unique within the context of a device.";
-    }
-  }
-
-  grouping port-name {
-    uses circuit-pack-name;
-    leaf port-name {
-      type leafref {
-        path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
-      }
-      description
-        "Port identifier. Unique within the context of a circuit-pack.";
-    }
-  }
-
-  grouping srg-number {
-    leaf srg-number {
-      type leafref {
-        path "/org-openroadm-device/shared-risk-group/srg-number";
-      }
-      description
-        "Shared Risk Group identifier. Unique within the context of a device.";
-    }
-  }
-
-  grouping supporting-port-name {
-    leaf supporting-circuit-pack-name {
-      type leafref {
-        path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-      }
-      description
-        "Identifier of the supporting circuit-pack.";
-    }
-    leaf supporting-port {
-      type leafref {
-        path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../supporting-circuit-pack-name]/ports/port-name";
-      }
-      description
-        "Identifier of the supporting port.";
-    }
-  }
-
-  grouping interface-name {
-    leaf interface-name {
-      type leafref {
-        path "/org-openroadm-device/interface/name";
-      }
-      config false;
-      description
-        "Name of an interface. Unique within the context of a device.";
-    }
-  }
-
-  grouping interfaces-grp {
-    description
-      "OpenROADM Interface configuration parameters.";
-    list interface {
-      key "name";
-      description
-        "The list of configured interfaces on the device.";
-      leaf name {
-        type string;
-        description
-          "The name of the interface.";
-      }
-      leaf description {
-        type string;
-        description
-          "A textual description of the interface.";
-      }
-      leaf type {
-        type identityref {
-          base org-openroadm-interfaces:interface-type;
-        }
-        mandatory true;
-        description
-          "The type of the interface.";
-      }
-      leaf administrative-state {
-        type org-openroadm-equipment-states-types:admin-states;
-      }
-      leaf operational-state {
-        type org-openroadm-common-types:state;
-        config false;
-      }
-      leaf circuit-id {
-        type string {
-          length "0..45";
-        }
-        description
-          "circuit identifier/user label,
-           can be used in alarm correlation and/or connection management ";
-      }
-      leaf supporting-interface {
-        type leafref {
-          path "/org-openroadm-device/interface/name";
-        }
-      }
-      uses supporting-port-name;
-    }
-  }
-
-  grouping protection-groups {
-    description
-      "OpenROADM facility protection configuration parameters.";
-    container protection-grps {
-      description
-        "The list of configured protection groups on the device.";
-    }
-  }
-
-  grouping port {
-    description
-      "Grouping of attributes related to a port object.";
-    leaf port-name {
-      type string;
-      mandatory true;
-      description
-        "Identifier for a port, unique within a circuit pack";
-    }
-    leaf port-type {
-      type string;
-      description
-        "Type of the pluggable or fixed port.";
-    }
-    leaf port-qual {
-      type org-openroadm-common-types:port-qual;
-    }
-    leaf port-wavelength-type {
-      type org-openroadm-port-types:port-wavelength-types;
-      config false;
-      description
-        "Type of port - single, multiple-wavelength, etc.";
-    }
-    leaf port-direction {
-      type org-openroadm-common-types:direction;
-      config false;
-      mandatory true;
-      description
-        "Whether port is uni (tx/rx) or bi-directional and";
-    }
-    leaf label {
-      type string;
-      config false;
-      description
-        "Faceplate label";
-    }
-    leaf circuit-id {
-      type string {
-        length "0..45";
-      }
-      description
-        "circuit identifier/user label,
-         can be used in alarm correlation and/or connection management ";
-    }
-    leaf administrative-state {
-      type org-openroadm-equipment-states-types:admin-states;
-      default "outOfService";
-      description
-        "Administrative state of port. The value of this field independent of the state of its contained and containing resources.  Setting this a port to administratively down will impact both its operational state, as well the operational state of its contained resources.  If this port is an endpoint to a connection, internal-link, physical-link, etc, then administratively disabling this port will impact the operational state of those items unless they are using some form of port-protection schema.";
-    }
-    leaf operational-state {
-      type org-openroadm-common-types:state;
-      config false;
-      mandatory true;
-      description
-        "Operational state of a port";
-    }
-    leaf-list supported-interface-capability {
-      type identityref {
-        base org-openroadm-port-types:supported-if-capability;
-      }
-      config false;
-      description
-        "Interface types supported on this port";
-    }
-    leaf logical-connection-point {
-      type string;
-      description
-        "delete or replace with list logical-ports or connections?";
-    }
-    container partner-port {
-      config false;
-      description
-        "For ports which are not identified as having a direction of bidirectional, this field is used to identify the port which corresponds to the reverse direction. A port pair should include a port for each direction (tx, rx) and report their mate as partner-port.";
-      uses port-name;
-    }
-    container parent-port {
-      config false;
-      description
-        "In the case of port hierarchy, this is the parent port, which is also modeled as port within this circuit-pack. This is used in the case of a port that supports a parallel connector that contains subports.  The parent-port of the subport will be the port that contains this subport.  This can be used to help isolate faults when a single fault on a parallel connector introduces symptomatic failures on the contained subports.";
-      uses port-name;
-    }
-    list interfaces {
-      config false;
-      description
-        "List of the interfaces this port supports.  This is a list of names of instances in the flat instance list";
-      uses interface-name;
-    }
-  }
-
-  grouping org-openroadm-device-container {
-    container org-openroadm-device {
-      container info {
-        uses device-common;
-        leaf max-degrees {
-          type uint16;
-          config false;
-          description
-            "Max. number of degrees supported by device";
-        }
-        leaf max-srgs {
-          type uint16;
-          config false;
-          description
-            "Max. number of SRGs in an add/drop group";
-        }
-        leaf max-num-bin-15min-historical-pm {
-          type uint16;
-          config false;
-          description
-            "Max. number of bin the NE support for 15min historical PM";
-        }
-        leaf max-num-bin-24hour-historical-pm {
-          type uint16;
-          config false;
-          description
-            "Max. number of bin the NE support for 24hour historical PM";
-        }
-      }
-      container users {
-        description
-          "Stores a list of users";
-        uses org-openroadm-user-mgmt:user-profile;
-      }
-      container pending-sw {
-        config false;
-        uses org-openroadm-swdl:sw-bank;
-      }
-      uses shelves;
-      uses circuit-packs;
-      uses interfaces-grp;
-      uses protection-groups;
-      container protocols {
-        description
-          "Contains the supported protocols";
-      }
-      uses internal-links;
-      uses physical-links;
-      uses external-links;
-      list degree {
-        when "/org-openroadm-device/info/node-type='rdm'";
-        key "degree-number";
-        uses degree;
-      }
-      list shared-risk-group {
-        when "/org-openroadm-device/info/node-type='rdm'";
-        key "srg-number";
-        uses srg;
-      }
-      list line-amplifier {
-        when "/org-openroadm-device/info/node-type='ila'";
-        key "amp-number";
-        description
-          "lists amplifiers in different directions";
-        uses amplifier;
-        list circuit-pack {
-          key "index";
-          description
-            "list for Cards associated with an amplifier";
-          leaf index {
-            type uint32;
-          }
-          uses circuit-pack-name {
-            refine "circuit-pack-name" {
-              mandatory true;
-            }
-          }
-        }
-        list line-port {
-          key "port-direction";
-          description
-            "Port associated with an amplifier which face the line (ila-external): traffic port.";
-          leaf port-direction {
-            type org-openroadm-common-types:direction;
-            config true;
-            mandatory true;
-            description
-              "partly allows identifying ports associated with logical amp :TX for egress, RX for ingress
-               TXRX in case of bidirectional port";
-          }
-          leaf tx-instance-port-direction-label {
-            type string;
-            config true;
-            description
-              "Complements ports identification. Used notably in case of bidirectional ports,
-               and/or in multi-degree amplifier nodes. Allows associating one of the directions
-               specified in ila-direction-label. Shall be consistent with ila-direction-label";
-          }
-          leaf rx-instance-port-direction-label {
-            type string;
-            config true;
-            description
-              "Complements ports identification. Used notably in case of bidirectional ports,
-               and/or in multi-degree amplifier nodes. Allows associating one of the directions
-               specified in ila-direction-label. Shall be consistent with ila-direction-label";
-          }
-          uses port-name {
-            refine "circuit-pack-name" {
-              mandatory true;
-            }
-            refine "port-name" {
-              mandatory true;
-            }
-          }
-        }
-        list osc-port {
-          key "port-direction";
-          description
-            "Ports associated with OSC";
-          leaf port-direction {
-            type org-openroadm-common-types:direction;
-            config true;
-            mandatory true;
-            description
-              "allows identifying ports associated with logical amp :
-               TX for OSC circuit-pack IN RX for OSC circuit-pack OUT";
-          }
-          uses port-name {
-            refine "circuit-pack-name" {
-              mandatory true;
-            }
-            refine "port-name" {
-              mandatory true;
-            }
-          }
-        }
-        list otdr-port {
-          key "otdr-direction";
-          description
-            "otdr ports associated with an ILA";
-          leaf otdr-direction {
-            type string;
-            config true;
-            description
-              "allows identifying associated logical amp port in which OTDR is launched:
-               corresponds to rx-instance-port-direction-label of corresponding amplifier line-port";
-          }
-          uses port-name {
-            refine "circuit-pack-name" {
-              mandatory true;
-            }
-            refine "port-name" {
-              mandatory true;
-            }
-          }
-        }
-      }
-      list xponder {
-        when "/org-openroadm-device/info/node-type='xpdr'";
-        key "xpdr-number";
-        uses xponder;
-      }
-      list roadm-connections {
-        when "/org-openroadm-device/info/node-type='rdm'";
-        key "connection-name";
-        uses connection;
-      }
-      list odu-connection {
-        when "/org-openroadm-device/info/node-type='xpdr'";
-        key "connection-name";
-        uses odu-connection;
-      }
-      list connection-map {
-        key "connection-map-number";
-        config false;
-        leaf connection-map-number {
-          type uint32;
-          description
-            "Unique identifier for this connection-map entry";
-        }
-        container source {
-          leaf circuit-pack-name {
-            type leafref {
-              path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-            }
-            mandatory true;
-          }
-          leaf port-name {
-            type leafref {
-              path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
-            }
-            mandatory true;
-            description
-              "Port identifier. Unique within the context of a circuit-pack.";
-          }
-        }
-        list destination {
-          key "circuit-pack-name port-name";
-          min-elements 1;
-          leaf circuit-pack-name {
-            type leafref {
-              path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-            }
-            mandatory true;
-          }
-          leaf port-name {
-            type leafref {
-              path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
-            }
-            mandatory true;
-            description
-              "Port identifier. Unique within the context of a circuit-pack.";
-          }
-        }
-      }
-      list odu-switching-pools {
-        when "/org-openroadm-device/info/node-type='xpdr'";
-        key "switching-pool-number";
-        config false;
-        leaf switching-pool-number {
-          type uint16;
-          description
-            "Unique identifier for this odu-switching-pool";
-        }
-        leaf switching-pool-type {
-          type org-openroadm-switching-pool-types:switching-pool-types;
-        }
-        list non-blocking-list {
-          key "nbl-number";
-          config false;
-          description
-            "List of ports in a non-blocking switch element";
-          leaf nbl-number {
-            type uint16;
-            description
-              "Identifier for this non-blocking-list. Unique within odu-switching-pool";
-          }
-          leaf interconnect-bandwidth-unit {
-            type uint32;
-            config false;
-            description
-              "Switch fabric interconnect bandwidth unit rate in bits per second.
-               Represents granularity of switch fabric";
-          }
-          leaf interconnect-bandwidth {
-            type uint32;
-            config false;
-            description
-              "Total interconnect bandwidth for a non-blocking element expressed as
-               number of inter-connect-bandwidth units";
-          }
-          list port-list {
-            key "circuit-pack-name port-name";
-            leaf circuit-pack-name {
-              type leafref {
-                path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-              }
-              config false;
-            }
-            leaf port-name {
-              type leafref {
-                path "/org-openroadm-device/circuit-packs/ports/port-name";
-              }
-              config false;
-              description
-                "Port name. Unique within device";
-            }
-          }
-          list pluggable-optics-holder-list {
-            key "circuit-pack-name slot-name";
-            leaf circuit-pack-name {
-              type leafref {
-                path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-              }
-              config false;
-              description
-                "Name of parent circuit-pack";
-            }
-            leaf slot-name {
-              type leafref {
-                path "/org-openroadm-device/circuit-packs/cp-slots/slot-name";
-              }
-              config false;
-              description
-                "Name of pluggable-optics-holder";
-            }
-          }
-        }
-      }
-    }
-  }
-
-  grouping mc-capabilities-g {
-    container mc-capabilities {
-      config false;
-      description
-        "Capabilities of the media channel on a degree or SRG.  This is used to validate mc-ttp provisioning on degrees and SRGs.";
-      leaf slot-width-granularity {
-        type org-openroadm-common-types:frequency-GHz;
-        default "50";
-        config false;
-        description
-          "Width of a slot measured in GHz.";
-      }
-      leaf center-freq-granularity {
-        type org-openroadm-common-types:frequency-GHz;
-        default "50";
-        config false;
-        description
-          "Granularity of allowed center frequencies.  The base frequency for this computation is 193.1 THz (G.694.1)";
-      }
-      leaf min-slots {
-        type uint32;
-        default "1";
-        config false;
-        description
-          "Minimum number of slots permitted to be joined together to form a media channel.  Must be less than or equal to the max-slots";
-      }
-      leaf max-slots {
-        type uint32;
-        default "1";
-        config false;
-        description
-          "Maximum number of slots permitted to be joined together to form a media channel.  Must be greater than or equal to the min-slots";
-      }
-    }
-  }
-
-  grouping common-session-parms {
-    description
-      "Common session parameters to identify a
-       management session.";
-    leaf username {
-      type org-openroadm-user-mgmt:username-type;
-      mandatory true;
-      description
-        "Name of the user for the session.";
-    }
-    leaf session-id {
-      type ietf-nc:session-id-or-zero-type;
-      mandatory true;
-      description
-        "Identifier of the session.
-         A NETCONF session MUST be identified by a non-zero value.
-         A non-NETCONF session MAY be identified by the value zero.";
-    }
-    leaf source-host {
-      type ietf-inet-types:ip-address;
-      description
-        "Address of the remote host for the session.";
-    }
-  }
-
-  grouping changed-by-parms {
-    description
-      "Common parameters to identify the source
-       of a change event, such as a configuration
-       or capability change.";
-    container changed-by {
-      description
-        "Indicates the source of the change.
-         If caused by internal action, then the
-         empty leaf 'server' will be present.
-         If caused by a management session, then
-         the name, remote host address, and session ID
-         of the session that made the change will be reported.";
-      choice server-or-user {
-        leaf server {
-          type empty;
-          description
-            "If present, the change was caused
-             by the server.";
-        }
-        case by-user {
-          uses common-session-parms;
-        }
-      }
-    }
-  }
-
-  rpc led-control {
-    description
-      "This command is used to allow user to find an entity on the NE,
-       The specified entity will have LED blinking.
-       The equipmentLedOn alarm will be raised and cleared for the indication";
-    input {
-      choice equipment-entity {
-        mandatory true;
-        case shelf {
-          leaf shelf-name {
-            type leafref {
-              path "/org-openroadm-device/shelves/shelf-name";
-            }
-            mandatory true;
-            description
-              "shelf-name for the operation";
-          }
-        }
-        case circuit-pack {
-          leaf circuit-pack-name {
-            type leafref {
-              path "/org-openroadm-device/circuit-packs/circuit-pack-name";
-            }
-            mandatory true;
-            description
-              "circuit-pack-name for the operation";
-          }
-        }
-      }
-      leaf enabled {
-        type boolean;
-        mandatory true;
-        description
-          "led-control enabled flag.
-           when enabled=true,  equipmentLedOn alarm will be raised
-           when enabled=false, equipmentLedOn alarm will be cleared";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc create-tech-info {
-    description
-      "Collects all log data for debugging and place it in a location accessible via ftp/sftp.
-       This model assumes ASYNC operation, i.e. the command will return after the device accepts the command,
-       A create-tech-info-notification will be send out later for the result of the operation.
-       The log-file is cleared at the start of every create-tech-info operation in order to ensure
-       the up-to-date logs are collected. If a vendor does not support concurrent log collection, the second
-       create-tech-info command will be rejected.";
-    input {
-      leaf shelf-id {
-        type leafref {
-          path "/org-openroadm-device/shelves/shelf-name";
-        }
-        description
-          "This optional field is used to specify the shelf for log collection.
-           When this filed is not provided, it is expected to collect logs for the whole node.
-           Vendor should reject the command if the whole node log collection is not supported.";
-      }
-      leaf log-option {
-        type string;
-        description
-          "The log type a vendor can specify. Maybe used in future";
-      }
-    }
-    output {
-      uses create-tech-info-group;
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc get-connection-port-trail {
-    input {
-      leaf connection-name {
-        type string;
-        mandatory true;
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-      list ports {
-        uses org-openroadm-common-types:physical-location;
-        uses port-name {
-          refine "circuit-pack-name" {
-            mandatory true;
-          }
-          refine "port-name" {
-            mandatory true;
-          }
-        }
-      }
-    }
-  }
-  rpc disable-automatic-shutoff {
-    input {
-      choice degree-or-amp {
-        mandatory true;
-        description
-          "The choice describes the option to specify the entity for the disable-automatic-shutoff RPC. It can be degree-number for rdm and amp-number for ila";
-        case degree {
-          leaf degree-number {
-            type leafref {
-              path "/org-openroadm-device/degree/degree-number";
-            }
-            mandatory true;
-            description
-              "The degree-number defined in degree";
-          }
-        }
-        case amp {
-          leaf amp-number {
-            type leafref {
-              path "/org-openroadm-device/line-amplifier/amp-number";
-            }
-            mandatory true;
-            description
-              "The amp-number defined in line-amplifier";
-          }
-        }
-      }
-      leaf support-timer {
-        type uint16 {
-          range "1..600";
-        }
-        default "20";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc start-scan {
-    input {
-      choice degree-or-amp {
-        mandatory true;
-        description
-          "The choice describes the option to specify the entity for the start-scan RPC. It can be degree-number for rdm and amp-number for ila";
-        case degree {
-          leaf degree-number {
-            type leafref {
-              path "/org-openroadm-device/degree/degree-number";
-            }
-            mandatory true;
-            description
-              "The degree-number defined in degree";
-          }
-        }
-        case amp {
-          leaf amp-number {
-            type leafref {
-              path "/org-openroadm-device/line-amplifier/amp-number";
-            }
-            mandatory true;
-            description
-              "The amp-number defined in line-amplifier";
-          }
-        }
-      }
-      leaf port-direction {
-        type org-openroadm-common-types:direction;
-      }
-      leaf distance {
-        type uint32;
-      }
-      leaf resolution {
-        type uint32;
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc set-current-datetime {
-    description
-      "Set the info/current-datetime leaf to the specified value.";
-    input {
-      leaf current-datetime {
-        type ietf-yang-types:date-and-time;
-        mandatory true;
-        description
-          "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  notification create-tech-info-notification {
-    description
-      "This Notification is sent when the create-tech-info is complete or failed.";
-    uses create-tech-info-group;
-    uses org-openroadm-common-types:rpc-response-status;
-  }
-  notification otdr-scan-result {
-    leaf status {
-      type enumeration {
-        enum "Completed" {
-          value 1;
-        }
-        enum "Failed" {
-          value 2;
-        }
-      }
-      mandatory true;
-      description
-        "Completed or Failed for the scan's final status";
-    }
-    leaf result-file {
-      type string;
-    }
-  }
-  notification change-notification {
-    description
-      "The Notification that a resource has been added, modified or removed.
-       This notification can be triggered by changes in configuration and operational data.
-       It shall contain the changed field pointed by the xpath.
-       Typically it is not intended for frequently changing volatile data e.g. PM, power levels";
-    leaf change-time {
-      type ietf-yang-types:date-and-time;
-      description
-        "The time the change occurs.";
-    }
-    uses changed-by-parms;
-    leaf datastore {
-      type enumeration {
-        enum "running" {
-          description
-            "The <running> datastore has changed.";
-        }
-        enum "startup" {
-          description
-            "The <startup> datastore has changed";
-        }
-      }
-      default "running";
-      description
-        "Indicates which configuration datastore has changed.";
-    }
-    list edit {
-      description
-        "An edit (change) record SHOULD be present for each distinct
-         edit operation that the server has detected on
-         the target datastore.  This list MAY be omitted
-         if the detailed edit operations are not known.
-         The server MAY report entries in this list for
-         changes not made by a NETCONF session.";
-      leaf target {
-        type instance-identifier;
-        description
-          "Top most node associated with the configuration or operational change.
-           A server SHOULD set this object to the node within
-           the datastore that is being altered.  A server MAY
-           set this object to one of the ancestors of the actual
-           node that was changed, or omit this object, if the
-           exact node is not known.";
-      }
-      leaf operation {
-        type ietf-nc:edit-operation-type;
-        description
-          "Type of edit operation performed.
-           A server MUST set this object to the NETCONF edit
-           operation performed on the target datastore.";
-      }
-    }
-  }
-  uses org-openroadm-device-container;
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-ethernet-interfaces@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-ethernet-interfaces@2018-10-19.yang
deleted file mode 100644 (file)
index cea829a..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-module org-openroadm-ethernet-interfaces {
-  namespace "http://org/openroadm/ethernet-interfaces";
-  prefix org-openroadm-eth-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-    revision-date 2017-06-26;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility ethernet interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping eth-attributes {
-    leaf speed {
-      type uint32;
-      description
-        "Set speed of the interface, unit mbps.
-         This is for ETH facility. ";
-    }
-    leaf fec {
-      type enumeration {
-        enum "off";
-        enum "rsfec";
-      }
-      description
-        "Forward Error Correction Choices. ";
-    }
-    leaf duplex {
-      type enumeration {
-        enum "half" {
-          value 0;
-          description
-            "half duplex";
-        }
-        enum "full" {
-          value 1;
-          description
-            "full duplex";
-        }
-      }
-      default "full";
-      description
-        "Set duplex selections.";
-    }
-    leaf mtu {
-      type uint32 {
-        range "1518..9000";
-      }
-      default "1522";
-      description
-        "Set Maximum Frame Size.";
-    }
-    leaf auto-negotiation {
-      type enumeration {
-        enum "enabled" {
-          value 1;
-          description
-            "Auto Negotiation enabled";
-        }
-        enum "disabled" {
-          value 0;
-          description
-            "Auto Negotiation disabled";
-        }
-      }
-      default "enabled";
-      description
-        "Set Auto Negotiation: Enabled/Disabled.";
-    }
-    leaf curr-speed {
-      type string;
-      config false;
-      description
-        "speed (UNKNOWN/AUTO/10/100/1000/10000) corresponding to the interface";
-    }
-    leaf curr-duplex {
-      type string;
-      config false;
-      description
-        "duplex (HALF/FULL) corresponding to the interface";
-    }
-  }
-
-  grouping ethernet-container {
-    container ethernet {
-      description
-        "Ethernet Interfaces";
-      uses eth-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:ethernetCsmacd'";
-    uses ethernet-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-file-transfer@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-file-transfer@2018-10-19.yang
deleted file mode 100644 (file)
index a895214..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-module org-openroadm-file-transfer {
-  namespace "http://org/openroadm/file-transfer";
-  prefix org-openroadm-file-txr;
-
-  import ietf-inet-types {
-    prefix inet;
-    revision-date 2013-07-15;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for file management related rpcs.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  rpc transfer {
-    description
-      "File transfer using FTP/SFTP";
-    input {
-      leaf action {
-        type enumeration {
-          enum "upload" {
-            description
-              "Specify the upload action. The NE (SFTP/FTP client) sends
-               the file identified by the local-file-path
-               to the remote-file-path.";
-          }
-          enum "download" {
-            description
-              "Specify the download action. The NE (SFTP/FTP client) retrieves
-               the file identified by the remote-file-path
-               to the local-file-path.";
-          }
-        }
-        mandatory true;
-        description
-          "Type of action - download/upload.";
-      }
-      leaf local-file-path {
-        type string;
-        mandatory true;
-        description
-          "Local file path.
-           Ex: /var/shared/example.txt";
-      }
-      leaf remote-file-path {
-        type inet:uri;
-        mandatory true;
-        description
-          "Remote file path.
-           A URI for the remote file path.
-
-           Format:sftp://user[:password]@host[:port]/path.
-           Ex: sftp://test:verify@[2001:db8:0:1::10]:22/home/user/sample";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc show-file {
-    description
-      "Show one or more files in the specified directory.";
-    input {
-      leaf filename {
-        type string {
-          length "1..255";
-        }
-        default "*";
-        description
-          "Specify file(s) to be listed (* is allowed as wild-card). ";
-      }
-    }
-    output {
-      leaf status {
-        type enumeration {
-          enum "Successful" {
-            value 1;
-          }
-          enum "Failed" {
-            value 2;
-          }
-        }
-        mandatory true;
-        description
-          "Successful or Failed";
-      }
-      leaf-list status-message {
-        type string;
-        description
-          "Gives a more detailed reason for success / failure";
-      }
-    }
-  }
-  rpc delete-file {
-    description
-      "Delete one or more files in the specified directory.";
-    input {
-      leaf filename {
-        type string {
-          length "1..255";
-        }
-        mandatory true;
-        description
-          "Specify file(s) to be deleted (* is allowed as wild-card).";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  notification transfer-notification {
-    description
-      "notification for transfer operation events.";
-    leaf local-file-path {
-      type string;
-      description
-        "Local file path used in transfer RPC.";
-    }
-    uses org-openroadm-common-types:extended-rpc-response-status;
-    container progress {
-      when "current()/../status = 'In-progress'";
-      description
-        "progress status when response is in-progress";
-      leaf bytes-transferred {
-        type uint64;
-        description
-          "bytes transferred.";
-      }
-      leaf percentage-complete {
-        type uint8;
-        description
-          "percentage completed.";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-fwdl@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-fwdl@2018-10-19.yang
deleted file mode 100644 (file)
index 7fa5b8c..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-module org-openroadm-fwdl {
-  namespace "http://org/openroadm/fwdl";
-  prefix org-openroadm-fwdl;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "This module contains definitions for System Management.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  rpc fw-update {
-    description
-      "Fpga data update";
-    input {
-      leaf circuit-pack-name {
-        type string;
-        description
-          "Name of the circuit pack";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-interfaces@2017-06-26.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-interfaces@2017-06-26.yang
deleted file mode 100644 (file)
index 03f1da1..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-module org-openroadm-interfaces {
-  namespace "http://org/openroadm/interfaces";
-  prefix openROADM-if;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility interfaces.
-     Reused ietf-interfaces and some interface-type defined in iana-if-type.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  identity interface-type {
-    description
-      "Base identity from which specific interface types are
-       derived.";
-  }
-
-  identity ethernetCsmacd {
-    base interface-type;
-    description
-      "For all Ethernet-like interfaces, regardless of speed,
-       as per RFC 3635.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-
-  identity ip {
-    base interface-type;
-    description
-      "IP (for APPN HPR in IP networks).";
-  }
-
-  identity mediaChannelTrailTerminationPoint {
-    base interface-type;
-    description
-      "Media Channel Trail Termination Point";
-  }
-
-  identity networkMediaChannelConnectionTerminationPoint {
-    base interface-type;
-    description
-      "Network Media Channel Connection Termination Point";
-  }
-
-  identity opticalChannel {
-    base interface-type;
-    description
-      "Optical Channel.";
-  }
-
-  identity opticalTransport {
-    base interface-type;
-    description
-      "Optical Transport.";
-  }
-
-  identity otnOdu {
-    base interface-type;
-    description
-      "OTN Optical Data Unit.";
-  }
-
-  identity otnOtu {
-    base interface-type;
-    description
-      "OTN Optical channel Transport Unit.";
-  }
-
-  identity openROADMOpticalMultiplex {
-    base interface-type;
-    description
-      "Optical Transport Multiplex type for openROADM";
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-lldp@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-lldp@2018-10-19.yang
deleted file mode 100644 (file)
index 7603002..0000000
+++ /dev/null
@@ -1,328 +0,0 @@
-module org-openroadm-lldp {
-  namespace "http://org/openroadm/lldp";
-  prefix org-openroadm-lldp;
-
-  import ietf-inet-types {
-    prefix inet;
-    revision-date 2013-07-15;
-  }
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import iana-afn-safi {
-    prefix ianaaf;
-    revision-date 2013-07-04;
-  }
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-    revision-date 2018-10-19;
-  }
-  import ietf-yang-types {
-    prefix yang;
-    revision-date 2013-07-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for lldp protocol.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping nbr-info-grp {
-    description
-      "Display LLDP Neighbour ";
-    leaf remoteSysName {
-      type string;
-      description
-        "remote neighbour system name";
-    }
-    leaf remoteMgmtAddressSubType {
-      type ianaaf:address-family;
-      description
-        "remote neighbour Management Address Subtype Enumeration";
-    }
-    leaf remoteMgmtAddress {
-      type inet:ip-address;
-      description
-        "remote neighbour management address";
-    }
-    leaf remotePortIdSubType {
-      type enumeration {
-        enum "other" {
-          value 0;
-          description
-            "reserved";
-        }
-        enum "ifalias" {
-          value 1;
-          description
-            "Interface Alias (IfAlias - IETF RFC 2863) ";
-        }
-        enum "portcomponent" {
-          value 2;
-          description
-            "Port component (EntPhysicalAlias IETF RFC 4133)";
-        }
-        enum "macaddress" {
-          value 3;
-          description
-            "MAC address (IEEE Std 802) ";
-        }
-        enum "networkaddress" {
-          value 4;
-          description
-            "Network Address";
-        }
-        enum "ifname" {
-          value 5;
-          description
-            "Interface Name (ifName - IETF RFC 2863)";
-        }
-        enum "agentcircuitid" {
-          value 6;
-          description
-            "Agent Circuit Id (IETF RFC 3046)";
-        }
-        enum "local" {
-          value 7;
-          description
-            "Locally assigned";
-        }
-      }
-      description
-        "remote neighbour Port ID Subtype Enumeration";
-    }
-    leaf remotePortId {
-      type string;
-      description
-        "remote neighbour port Id";
-    }
-    leaf remoteChassisIdSubType {
-      type enumeration {
-        enum "reserved" {
-          value 0;
-          description
-            "reserved";
-        }
-        enum "chassiscomponent" {
-          value 1;
-          description
-            "Chassis component (EntPhysicalAlias IETF RFC 4133)";
-        }
-        enum "ifalias" {
-          value 2;
-          description
-            "Interface Alias (IfAlias - IETF RFC 2863) ";
-        }
-        enum "portcomponent" {
-          value 3;
-          description
-            "Port component (EntPhysicalAlias IETF RFC 4133)";
-        }
-        enum "macaddress" {
-          value 4;
-          description
-            "MAC address (IEEE Std 802) ";
-        }
-        enum "networkaddress" {
-          value 5;
-          description
-            "Network Address";
-        }
-        enum "ifname" {
-          value 6;
-          description
-            "Interface Name (ifName - IETF RFC 2863)";
-        }
-        enum "local" {
-          value 7;
-          description
-            "Locally assigned";
-        }
-      }
-      description
-        "Chassis ID Subtype Enumeration";
-    }
-    leaf remoteChassisId {
-      type string;
-      description
-        "remote neighbour Chassis Id";
-    }
-  }
-
-  grouping lldp-container {
-    container lldp {
-      description
-        "LLDP configurable and retrievable";
-      container global-config {
-        description
-          "LLDP global configurations";
-        leaf adminStatus {
-          type enumeration {
-            enum "disable" {
-              value 0;
-              description
-                "Disable the LLDP feature per NE";
-            }
-            enum "enable" {
-              value 1;
-              description
-                "Enable the LLDP feature per NE";
-            }
-          }
-          default "enable";
-          description
-            "LLDP feature Enable/Disable per NE";
-        }
-        leaf msgTxInterval {
-          type uint16 {
-            range "5..32768";
-          }
-          default "30";
-          description
-            "LLDP frame Retransmit Interval in seconds";
-        }
-        leaf msgTxHoldMultiplier {
-          type uint8 {
-            range "2..10";
-          }
-          default "4";
-          description
-            "TTL value for the TLVs transmitter over wire in seconds";
-        }
-      }
-      list port-config {
-        key "ifName";
-        description
-          "LLDP port configurations";
-        leaf ifName {
-          type leafref {
-            path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
-          }
-          description
-            "Ethernet interface name where LLDP runs";
-        }
-        leaf adminStatus {
-          type enumeration {
-            enum "disable" {
-              value 0;
-              description
-                "Disables the LLDP frames transmit and receive on specific interface";
-            }
-            enum "txandrx" {
-              value 1;
-              description
-                "Enable Transmit and Receive LLDP frames on specific interface";
-            }
-          }
-          default "txandrx";
-          description
-            "LLDP enable per port basis";
-        }
-      }
-      container nbr-list {
-        config false;
-        description
-          "LLDP Oper data - Neighbour List information";
-        list if-name {
-          key "ifName";
-          leaf ifName {
-            type string;
-            description
-              "Ethernet interface name where LLDP runs";
-          }
-          uses nbr-info-grp;
-        }
-      }
-    }
-  }
-
-  notification lldp-nbr-info-change {
-    description
-      "LLDP: Neighbor Information Changed
-       remoteSysName
-       remoteSysMgmtAddressSubType
-       remoteSysMgmtAddress
-       remotePortIdSubType
-       remotePortId
-       remoteChassisIdSubType
-       remoteChassisId
-       All of the above attributes are sent in event";
-    leaf notification-type {
-      type org-openroadm-resource-types:resource-notification-type;
-    }
-    leaf resource-type {
-      type org-openroadm-resource-types:resource-type-enum;
-      description
-        "resource-type for this notification is interface";
-    }
-    leaf resource {
-      type string;
-      description
-        "resource interface-name";
-    }
-    container nbr-info {
-      uses nbr-info-grp;
-    }
-    leaf event-time {
-      type yang:date-and-time;
-    }
-  }
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:protocols" {
-    when "/org-openroadm-device:org-openroadm-device/org-openroadm-device:info/org-openroadm-device:node-type='rdm' or /org-openroadm-device:org-openroadm-device/org-openroadm-device:info/org-openroadm-device:node-type='ila'";
-    uses lldp-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-maintenance-loopback@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-maintenance-loopback@2017-12-15.yang
deleted file mode 100644 (file)
index 996fabd..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-module org-openroadm-maintenance-loopback {
-  namespace "http://org/openroadm/maintenance-loopback";
-  prefix org-openroadm-maint-loopback;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for maintenance loopback.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping maint-loopback {
-    container maint-loopback {
-      leaf enabled {
-        type boolean;
-        default "false";
-        description
-          "loopback operation enable flag";
-      }
-      leaf type {
-        when "../enabled = 'true'";
-        type enumeration {
-          enum "fac" {
-            value 0;
-            description
-              "pre-FEC Loopback in the facility direction";
-          }
-          enum "term" {
-            value 1;
-            description
-              "Loopback in the terminal direction";
-          }
-          enum "fac2" {
-            value 2;
-            description
-              "post-FEC Loopback in the facility direction";
-          }
-        }
-        default "fac";
-        description
-          "Set Loopback type (or direction).";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-maintenance-testsignal@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-maintenance-testsignal@2017-12-15.yang
deleted file mode 100644 (file)
index e658e7f..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-module org-openroadm-maintenance-testsignal {
-  namespace "http://org/openroadm/maintenance-testsignal";
-  prefix org-openroadm-maint-testsignal;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for maintenance testsignal.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping maint-testsignal {
-    container maint-testsignal {
-      leaf enabled {
-        type boolean;
-        default "false";
-        description
-          "testsignal enabled flag";
-      }
-      leaf testPattern {
-        when "../enabled = 'true'";
-        type enumeration {
-          enum "PRBS" {
-            value 0;
-            description
-              "Unframed, inverted PN-31 pattern or PRBS31 pattern per IEEE 802.3 clause 50.3.8.2 (inverted PN-31at line rate)";
-          }
-          enum "PRBS31" {
-            value 1;
-            description
-              "PRBS31 with standard mapping per G.709";
-          }
-          enum "PRBS23" {
-            value 2;
-            description
-              "SONET/SDH Framed,inverted PN-23 pattern.";
-          }
-          enum "PRZEROS" {
-            value 3;
-            description
-              "pseudo-random with zeros data pattern per IEEE 802.3 clause 49.2.8";
-          }
-          enum "IDLE" {
-            value 4;
-            description
-              "Scrambled IDLE test-pattern per IEEE 802.3ba";
-          }
-        }
-        description
-          "Set test signal pattern";
-      }
-      leaf type {
-        when "../enabled = 'true'";
-        type enumeration {
-          enum "fac" {
-            value 0;
-            description
-              "test signal in the facility direction";
-          }
-          enum "term" {
-            value 1;
-            description
-              "test signal in the terminal direction";
-          }
-        }
-        default "fac";
-        description
-          "Set test signal type (or direction).";
-      }
-      leaf bitErrors {
-        when "../enabled = 'true' and ../type = 'fac'";
-        type uint32 {
-          range "0..4294967295";
-        }
-        config false;
-        description
-          "bit errors for test signal in facility direction.";
-      }
-      leaf bitErrorsTerminal {
-        when "../enabled = 'true' and ../type = 'term'";
-        type uint32 {
-          range "0..4294967295";
-        }
-        config false;
-        description
-          "bit errors for test signal in terminal direction.";
-      }
-      leaf syncSeconds {
-        when "../enabled = 'true' and ../type = 'fac'";
-        type string;
-        config false;
-        description
-          "number of seconds the received facility test signal is in sync.";
-      }
-      leaf syncSecondsTerminal {
-        when "../enabled = 'true' and ../type = 'term'";
-        type string;
-        config false;
-        description
-          "number of seconds the received terminal test signal is in sync.";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-media-channel-interfaces@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-media-channel-interfaces@2018-10-19.yang
deleted file mode 100644 (file)
index 8409455..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-module org-openroadm-media-channel-interfaces {
-  namespace "http://org/openroadm/media-channel-interfaces";
-  prefix org-openroadm-media-channel-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility och interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-
-  grouping mc-ttp-attributes {
-    description
-      "Media channel termination point. Models bandwidth allocation in physical media. Network media channels may be provisioned in the spectrum characterized by the frequency limits.";
-    leaf min-freq {
-      type org-openroadm-common-types:frequency-THz;
-      config true;
-      description
-        "Minimum Frequency in THz. Granularity is hardware dependent, based on pixel resolution. eg. ITU 12.5GHz frequency slots. Range covers C+L";
-    }
-    leaf max-freq {
-      type org-openroadm-common-types:frequency-THz;
-      config true;
-      description
-        "Maximum Frequency in THz. Granularity is hardware dependent, based on pixel resolution. eg. ITU 12.5GHz frequency slots. Range covers C+L";
-    }
-    leaf center-freq {
-      type org-openroadm-common-types:frequency-THz;
-      config false;
-      description
-        "Center Frequency in THz. Granularity is hardware dependent, based on center-freq-granularity.";
-    }
-    leaf slot-width {
-      type org-openroadm-common-types:frequency-GHz;
-      config false;
-      description
-        "Width of the slot.  Granularity is hardware dependent, based on slot-width-granularity";
-    }
-  }
-
-  grouping mc-ttp-container {
-    container mc-ttp {
-      description
-        "Media Channel Trail Termination Point (MC-TTP)";
-      uses mc-ttp-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:mediaChannelTrailTerminationPoint'";
-    uses mc-ttp-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-network-media-channel-interfaces@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-network-media-channel-interfaces@2018-10-19.yang
deleted file mode 100644 (file)
index 51f8946..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-module org-openroadm-network-media-channel-interfaces {
-  namespace "http://org/openroadm/network-media-channel-interfaces";
-  prefix org-openroadm-network-media-channel-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility och interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-
-  grouping nmc-ctp-attributes {
-    description
-      "Network Media Channel attributes";
-    leaf frequency {
-      type org-openroadm-common-types:frequency-THz;
-      config true;
-      description
-        "Center Frequency in THz.  This is not constrained by mc-capabilities.  It must fit (when combined with width) inside any containing media channel.";
-    }
-    leaf width {
-      type org-openroadm-common-types:frequency-GHz;
-      config true;
-      description
-        "Frequency width in GHz.  This is not constrained by mc-capabilities.  It must fit (when combined with frequency) inside any containing media channel.";
-    }
-  }
-
-  grouping nmc-ctp-container {
-    container nmc-ctp {
-      description
-        "Network Media Channel Connection Termination Point (NMC-CTP)";
-      uses nmc-ctp-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:networkMediaChannelConnectionTerminationPoint'";
-    uses nmc-ctp-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-optical-channel-interfaces@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-optical-channel-interfaces@2018-10-19.yang
deleted file mode 100644 (file)
index c944745..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-module org-openroadm-optical-channel-interfaces {
-  namespace "http://org/openroadm/optical-channel-interfaces";
-  prefix org-openroadm-optical-channel-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility och interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping och-attributes {
-    description
-      "Optical Channel attributes";
-    leaf rate {
-      type identityref {
-        base org-openroadm-common-types:och-rate-identity;
-      }
-      description
-        "rate";
-    }
-    leaf frequency {
-      type org-openroadm-common-types:frequency-THz;
-      config true;
-      description
-        "Center Frequency in THz.";
-    }
-    leaf width {
-      type org-openroadm-common-types:frequency-GHz;
-      config false;
-      description
-        "Frequency width in GHz.";
-    }
-    leaf modulation-format {
-      type org-openroadm-common-types:modulation-format;
-    }
-    leaf transmit-power {
-      type org-openroadm-common-types:power-dBm;
-      description
-        "The target transmit power for this channel. When set, the xponder will work to ensure that port-current-power reaches this level. Applicable only to channel on top of xpdr-network port";
-    }
-  }
-
-  grouping och-container {
-    container och {
-      description
-        "Optical Channel (OCh):
-         Models the optical channel interfaces for an Optical White Box.";
-      uses och-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:opticalChannel'";
-    uses och-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-optical-transport-interfaces@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-optical-transport-interfaces@2018-10-19.yang
deleted file mode 100644 (file)
index e1d39dc..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-module org-openroadm-optical-transport-interfaces {
-  namespace "http://org/openroadm/optical-transport-interfaces";
-  prefix org-openroadm-optical-transport-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "This module contains YANG definitions
-     for the Optical Transport Interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping ots-attributes {
-    description
-      "Optical Transport Section (OTS) attributes";
-    leaf fiber-type {
-      type enumeration {
-        enum "smf" {
-          value 0;
-          description
-            "Single Mode Fiber";
-        }
-        enum "eleaf" {
-          value 1;
-          description
-            "ELEAF";
-        }
-        enum "oleaf" {
-          value 2;
-          description
-            "OLEAF";
-        }
-        enum "dsf" {
-          value 3;
-          description
-            "DSF";
-        }
-        enum "truewave" {
-          value 4;
-          description
-            "TRUEWAVE Reduced Slope";
-        }
-        enum "truewavec" {
-          value 5;
-          description
-            "TRUEWAVE Classic";
-        }
-        enum "nz-dsf" {
-          value 6;
-          description
-            "NZ-DSF";
-        }
-        enum "ull" {
-          value 7;
-          description
-            "Ultra Low Loss (ULL)";
-        }
-      }
-      default "smf";
-      description
-        "fiber type
-         Default    : SMF ";
-    }
-    leaf span-loss-receive {
-      type org-openroadm-common-types:ratio-dB;
-      description
-        "Span loss on the receiver side. Set by the controller and used by device to set AMP gain.";
-    }
-    leaf span-loss-transmit {
-      type org-openroadm-common-types:ratio-dB;
-      description
-        "Span loss on the transmitter side. Set by the controller and used by device to configure MSA compliant channel launch power";
-    }
-    leaf ingress-span-loss-aging-margin {
-      type org-openroadm-common-types:ratio-dB;
-      default "0";
-      config true;
-      description
-        "Span-loss margin used to set optical amplifier gain and output-voa.
-         Day one attenuation of the link, at initial commissioning may increase across wdm link life.
-         span-loss-aging-margin defines the maximum additional loss the wdm link may experience in addition
-         to initial loss without requiring a new design (new amplifier settings). ";
-    }
-    leaf eol-max-load-pIn {
-      type org-openroadm-common-types:power-dBm;
-      config true;
-      description
-        "End Of Life Total input power at maximum load used for amplifier control.
-         Calculated during the design, this value shall be used by the amplifier device
-         for the setting so that the reasonable margin is kept to reach this value
-         at the end of life of the wdm link, considering span-loss aging margins are reached ";
-    }
-  }
-
-  grouping ots-container {
-    container ots {
-      description
-        "Optical Transport Section (OTS):
-          Models the optical interfaces for an Optical White Box.
-          The network side is represented by the OTS/OMS.";
-      uses ots-attributes;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:opticalTransport'";
-    uses ots-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-otn-common@2017-06-26.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-otn-common@2017-06-26.yang
deleted file mode 100644 (file)
index 1b2a9b8..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-module org-openroadm-otn-common {
-  namespace "http://org/openroadm/otn-common";
-  prefix org-openroadm-otn-common;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for common OTN interface atrtributes and types.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-
-  grouping trail-trace {
-    leaf tx-sapi {
-      type string {
-        length "0 .. 15";
-      }
-      description
-        "The provisioned 15 character transmit trace SAPI. Implementations shall add the [0] field automatically per ITU-T G.709";
-    }
-    leaf tx-dapi {
-      type string {
-        length "0 .. 15";
-      }
-      description
-        "The provisioned 15 character transmit trace DAPI. Implementations shall add the [0] field automatically per ITU-T G.709";
-    }
-    leaf tx-operator {
-      type string {
-        length "0 .. 32";
-      }
-      description
-        "The provisioned 32 character Operator Specific field";
-    }
-    leaf accepted-sapi {
-      type string;
-      config false;
-      description
-        "The accepted SAPI recovered from the recieved multi-frame TTI field.
-         Received SAPI contains the receive data, minus the sapi[0] and any 0x00 padding at the end";
-    }
-    leaf accepted-dapi {
-      type string;
-      config false;
-      description
-        "The accepted DAPI recovered from the recieved multi-frame TTI field
-         Received DAPI contains the receive data, minus the dapi[0] and any 0x00 padding at the end";
-    }
-    leaf accepted-operator {
-      type string;
-      config false;
-      description
-        "The accepted Operator Specific field recovered from the recieved multi-frame TTI field";
-    }
-    leaf expected-sapi {
-      type string {
-        length "0 .. 15";
-      }
-      description
-        "The provisioned expected SAPI, to be compared with accepted TTI";
-    }
-    leaf expected-dapi {
-      type string {
-        length "0 .. 15";
-      }
-      description
-        "The provisioned expected DAPI, to be compared with accepted TTI";
-    }
-    leaf tim-act-enabled {
-      type boolean;
-      default "false";
-      description
-        "Enables TTI Mismatch consequent actions.";
-    }
-    leaf tim-detect-mode {
-      type enumeration {
-        enum "Disabled" {
-          description
-            "TTI is ignored";
-        }
-        enum "SAPI" {
-          description
-            "Expected SAPI is compared to the Accpeted TTI. Other TTI fields are ignored";
-        }
-        enum "DAPI" {
-          description
-            "Expected DAPI is compared to the Accpeted TTI. Other TTI fields are ignored";
-        }
-        enum "SAPI-and-DAPI" {
-          description
-            "Expected SAPI and Expected DAPI are compared to the Accpeted TTI. Operator specific TTI field is ignored";
-        }
-      }
-      default "Disabled";
-    }
-  }
-
-  grouping deg-threshold {
-    leaf degm-intervals {
-      type uint8 {
-        range "2 .. 10";
-      }
-      default "2";
-      description
-        "G.806 - Consecutive bad intervals required for declare dDEG";
-    }
-    leaf degthr-percentage {
-      type uint16 {
-        range "1 .. 10000";
-      }
-      default "100";
-      description
-        "Percentage of errored blocks required to declare an interval bad, in units of 0.01%";
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-otn-odu-interfaces@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-otn-odu-interfaces@2018-10-19.yang
deleted file mode 100644 (file)
index 57f1fd5..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
-module org-openroadm-otn-odu-interfaces {
-  namespace "http://org/openroadm/otn-odu-interfaces";
-  prefix org-openroadm-otn-odu-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-maintenance-testsignal {
-    prefix org-openroadm-maint-testsignal;
-    revision-date 2017-12-15;
-  }
-  import org-openroadm-otn-common {
-    prefix org-openroadm-otn-common;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-otn-common-types {
-    prefix org-openroadm-otn-common-types;
-    revision-date 2017-12-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility otnodu interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping msi-entry {
-    leaf trib-slot {
-      type uint16;
-      description
-        "tributary slot (TS)";
-    }
-    leaf odtu-type {
-      type identityref {
-        base org-openroadm-otn-common-types:odtu-type-identity;
-      }
-      description
-        "ODTU type, part of the MSI (Multiplex Structure Identifier)";
-    }
-    leaf trib-port {
-      type uint16;
-      description
-        "Tributary Port Number (0-based), part of the MSI";
-    }
-    leaf trib-port-payload {
-      type string;
-      description
-        "interface name being mapped to trib-port";
-    }
-  }
-
-  grouping odu-attributes {
-    description
-      "ODU attributes";
-    leaf rate {
-      type identityref {
-        base org-openroadm-otn-common-types:odu-rate-identity;
-      }
-      description
-        "rate identity of the ODU. 'identityref' is used
-         to allow to extend for future higher rates";
-    }
-    leaf odu-function {
-      type identityref {
-        base org-openroadm-otn-common-types:odu-function-identity;
-      }
-      description
-        "function of the ODU interface";
-    }
-    leaf monitoring-mode {
-      type enumeration {
-        enum "not-terminated" {
-          description
-            "Not Terminated: no detection or generation.
-             Overhead is passed through the interface transparently in receive direction";
-        }
-        enum "terminated" {
-          description
-            "Terminated: detection and generation enabled.
-             Overhead is erased (replaced with all zeros) in receive direction";
-        }
-        enum "monitored" {
-          description
-            "Monitored: detection enabled.
-             Overhead is passed through the interface transparently in receive direction";
-        }
-      }
-      description
-        "Monitoring mode of the ODU Overhead";
-    }
-    leaf no-oam-function {
-      type empty;
-      description
-        "No OAM functionality exists for this ODU interface, the entity exists in software only. This entity does not report alarms or PM and does not support TCM, TTI, delay measurement, loopbacks, test signal and other hardware-based functions. This is an optional parameter, only needs to be present when no-oam-function supported for this interface.";
-    }
-    leaf proactive-delay-measurement-enabled {
-      type boolean;
-      description
-        "enable/disable proactive Delay Measurement";
-    }
-    uses parent-odu-allocation;
-    uses org-openroadm-otn-common:trail-trace;
-    uses org-openroadm-otn-common:deg-threshold;
-    list tcm {
-      key "layer tcm-direction";
-      max-elements "6";
-      description
-        "Tandem Connection Management";
-      uses tcm-attributes;
-    }
-    uses opu;
-  }
-
-  grouping parent-odu-allocation {
-    container parent-odu-allocation {
-      when "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface[org-openroadm-device:name = current()/../../org-openroadm-device:supporting-interface]/org-openroadm-device:type = 'openROADM-if:otnOdu'";
-      presence "Explicit assignment of parent ODU trib-slot and trib-port allocation. ";
-      leaf trib-port-number {
-        type uint16 {
-          range "1 .. 80";
-        }
-        mandatory true;
-        description
-          "Assigned tributary port number in parent OPU";
-      }
-      leaf-list trib-slots {
-        type uint16 {
-          range "1 .. 80";
-        }
-        min-elements 1;
-        max-elements "80";
-        description
-          "Assigned trib slots occupied in parent OPU MSI";
-      }
-    }
-  }
-
-  grouping opu {
-    container opu {
-      when "../monitoring-mode = 'terminated' or ../monitoring-mode = 'monitored'";
-      description
-        "Optical Channel Payload Unit (OPU)";
-      leaf payload-type {
-        type org-openroadm-otn-common-types:payload-type-def;
-        description
-          "Payload Type";
-      }
-      leaf rx-payload-type {
-        type org-openroadm-otn-common-types:payload-type-def;
-        description
-          "Received Payload Type";
-      }
-      leaf exp-payload-type {
-        type org-openroadm-otn-common-types:payload-type-def;
-        description
-          "Expected Payload Type";
-      }
-      leaf payload-interface {
-        type string;
-        description
-          "Expected Payload of OPU. It designates client interface name";
-      }
-      container msi {
-        when "../payload-type = '20' or ../payload-type = '21'";
-        list tx-msi {
-          key "trib-slot";
-          description
-            "Transmit MSI";
-          uses msi-entry;
-        }
-        list rx-msi {
-          key "trib-slot";
-          description
-            "Receive MSI";
-          uses msi-entry;
-        }
-        list exp-msi {
-          key "trib-slot";
-          description
-            "Expected MSI";
-          uses msi-entry;
-        }
-      }
-    }
-  }
-
-  grouping tcm-attributes {
-    description
-      "Tandem Connection Monitoring (TCM) attributes";
-    leaf layer {
-      type uint8 {
-        range "1..6";
-      }
-      description
-        "TCM layer";
-    }
-    leaf monitoring-mode {
-      type enumeration {
-        enum "not-terminated" {
-          description
-            "Not Terminated: no detection or generation.
-             Overhead is passed through the interface transparently in receive direction
-             unless extension is set for erase";
-        }
-        enum "terminated" {
-          description
-            "Terminated: detection and generation enabled.
-             Overhead is erased (replaced with all zeros) in receive direction, unless
-             extension is set to passthrough";
-        }
-        enum "monitored" {
-          description
-            "Monitored: detection enabled.
-             Overhead is passed through the interface transparently in receive direction
-             unless extension is set for erase";
-        }
-      }
-      description
-        "Monitoring mode of the TCM layer";
-    }
-    leaf ltc-act-enabled {
-      type boolean;
-      description
-        "enable/disable alarm transfer on detection of Loss of Tandem Connection (LTC)";
-    }
-    leaf proactive-delay-measurement-enabled {
-      type boolean;
-      description
-        "enable/disable proactive Delay Measurement for TCM";
-    }
-    leaf tcm-direction {
-      type enumeration {
-        enum "up-tcm" {
-          description
-            "TCM termination direction faces the switch fabric.";
-        }
-        enum "down-tcm" {
-          description
-            "TCM termination direction faces the facility";
-        }
-      }
-      description
-        "Direction of TCM.";
-    }
-    uses org-openroadm-otn-common:trail-trace;
-    uses org-openroadm-otn-common:deg-threshold;
-  }
-
-  grouping odu-container {
-    container odu {
-      presence "Attribute Nodes for Optical Data Unit (ODU)";
-      description
-        "Optical Channel Data Unit (ODU)";
-      uses odu-attributes {
-        refine "opu/rx-payload-type" {
-          config false;
-        }
-        refine "opu/msi" {
-          config false;
-        }
-        refine "no-oam-function" {
-          config false;
-        }
-      }
-      uses org-openroadm-maint-testsignal:maint-testsignal;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:otnOdu'";
-    uses odu-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-otn-otu-interfaces@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-otn-otu-interfaces@2018-10-19.yang
deleted file mode 100644 (file)
index 423bcd2..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-module org-openroadm-otn-otu-interfaces {
-  namespace "http://org/openroadm/otn-otu-interfaces";
-  prefix org-openroadm-otn-otu-interfaces;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-interfaces {
-    prefix openROADM-if;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-maintenance-loopback {
-    prefix org-openroadm-maint-loopback;
-    revision-date 2017-12-15;
-  }
-  import org-openroadm-otn-common {
-    prefix org-openroadm-otn-common;
-    revision-date 2017-06-26;
-  }
-  import org-openroadm-otn-common-types {
-    prefix org-openroadm-otn-common-types;
-    revision-date 2017-12-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility otnotu interfaces.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping otu-attributes {
-    description
-      "OTU attributes";
-    leaf rate {
-      type identityref {
-        base org-openroadm-otn-common-types:otu-rate-identity;
-      }
-      description
-        "rate identity of the OTU. 'identityref' is used
-         to allow to extend for future higher rates";
-    }
-    leaf fec {
-      type enumeration {
-        enum "off" {
-          value 0;
-          description
-            "fec off";
-        }
-        enum "rsfec" {
-          value 1;
-          description
-            "rsfec";
-        }
-        enum "sdfeca1" {
-          value 2;
-          description
-            "Clariphy SDFEC";
-        }
-        enum "efec" {
-          value 3;
-          description
-            "G.975.1 I.4";
-        }
-        enum "ufec" {
-          value 4;
-          description
-            "G.975.1 I.7";
-        }
-        enum "sdfec" {
-          value 5;
-          description
-            "Soft decision FEC";
-        }
-        enum "sdfecb1" {
-          value 6;
-          description
-            "SDFEC with SCFEC";
-        }
-        enum "scfec" {
-          value 7;
-          description
-            "Stair case FEC";
-        }
-      }
-      description
-        "Forward Error Correction";
-    }
-    uses org-openroadm-otn-common:trail-trace;
-    uses org-openroadm-otn-common:deg-threshold;
-  }
-
-  grouping otu-container {
-    container otu {
-      description
-        "Optical Channel Transport Unit (OTU)";
-      uses otu-attributes;
-      uses org-openroadm-maint-loopback:maint-loopback;
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
-    when "org-openroadm-device:type = 'openROADM-if:otnOtu'";
-    uses otu-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-physical-types@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-physical-types@2018-10-19.yang
deleted file mode 100644 (file)
index 8c6395d..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-module org-openroadm-physical-types {
-  namespace "http://org/openroadm/physical/types";
-  prefix org-openroadm-physical-types;
-
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-  import ietf-yang-types {
-    prefix yang;
-    revision-date 2013-07-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of physical types.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping node-info {
-    description
-      "Physical inventory data used by the node";
-    leaf vendor {
-      type string;
-      config false;
-      mandatory true;
-      description
-        "Vendor of the equipment";
-    }
-    leaf model {
-      type string;
-      config false;
-      mandatory true;
-      description
-        "Physical resource model information.";
-    }
-    leaf serial-id {
-      type string;
-      config false;
-      mandatory true;
-      description
-        "Product Code for this physical resource";
-    }
-  }
-
-  grouping common-info {
-    description
-      "Physical inventory data used by all other entities";
-    uses node-info;
-    leaf type {
-      type string;
-      config false;
-      description
-        "The specific type of this physical resource - ie the type of
-         shelf, type of circuit-pack, etc.";
-    }
-    leaf product-code {
-      type string;
-      config false;
-      description
-        "Product Code for this physical resource";
-    }
-    leaf manufacture-date {
-      type yang:date-and-time;
-      config false;
-      description
-        "Manufacture date of physical resource";
-    }
-    leaf clei {
-      type string;
-      config false;
-      description
-        "CLEI for this physical resource";
-    }
-    leaf hardware-version {
-      type string;
-      config false;
-      description
-        "The version of the hardware.";
-    }
-    leaf operational-state {
-      type org-openroadm-common-types:state;
-      config false;
-      description
-        "Operational state of the physical resource";
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-pluggable-optics-holder-capability@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-pluggable-optics-holder-capability@2018-10-19.yang
deleted file mode 100644 (file)
index b27f58e..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-module org-openroadm-pluggable-optics-holder-capability {
-  namespace "http://org/openroadm/pluggable-optics-holder-capability";
-  prefix org-openroadm-pluggable-optics-holder-capability;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-port-capability {
-    prefix org-openroadm-port-capability;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for pluggable optics holder capability.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2017 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-
-  grouping pluggable-optics-holder-capability {
-    description
-      "Pluggable optics holder capability parameters.";
-    container pluggable-optics-holder-capability {
-      config false;
-      list supported-circuit-pack-types {
-        key "supported-circuit-pack-type";
-        leaf supported-circuit-pack-type {
-          type string;
-          mandatory true;
-          description
-            "Type of pluggable circuit-pack supported";
-        }
-        list ports {
-          key "port-name";
-          description
-            "Port reference on supported pluggable circuit-pack";
-          leaf port-name {
-            type string;
-            description
-              "Port name";
-          }
-          uses org-openroadm-port-capability:port-capability-grp;
-        }
-      }
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:cp-slots" {
-    when "org-openroadm-device:slot-type='pluggable-optics-holder'";
-    uses pluggable-optics-holder-capability;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-port-capability@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-port-capability@2018-10-19.yang
deleted file mode 100644 (file)
index de1d307..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-module org-openroadm-port-capability {
-  namespace "http://org/openroadm/port-capability";
-  prefix org-openroadm-port-capability;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-port-types {
-    prefix org-openroadm-port-types;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-prot-otn-linear-aps {
-    prefix org-openroadm-prot-otn-linear-aps;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-otn-common-types {
-    prefix org-openroadm-otn-common-types;
-    revision-date 2017-12-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility OTN linear APS protection groups.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2017 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-
-  typedef tcm-direction-capability-type {
-    type enumeration {
-      enum "up-tcm" {
-        description
-          "Port supports up TCM termination, e.g., direction facing the switch fabric";
-      }
-      enum "down-tcm" {
-        description
-          "Port supports down TCM termination, e.g., direction facing out of the equipment ";
-      }
-      enum "up-down-tcm" {
-        description
-          "Port supports both up and down TCM terminations";
-      }
-    }
-    description
-      "TCM direction capability for the port";
-  }
-
-  grouping port-id-grp {
-    leaf circuit-pack-name {
-      type leafref {
-        path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:circuit-pack-name";
-      }
-      description
-        "Circuit-Pack identifier. Unique within the context of a device.";
-    }
-    leaf port-name {
-      type leafref {
-        path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:ports/org-openroadm-device:port-name";
-      }
-      description
-        "Port index identifier. Unique within the context of a circuit-pack.";
-    }
-  }
-
-  grouping slot-id-grp {
-    leaf circuit-pack-name {
-      type leafref {
-        path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:circuit-pack-name";
-      }
-      description
-        "Circuit-Pack identifier. Unique within the context of a device.";
-    }
-    leaf slot-name {
-      type leafref {
-        path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:cp-slots/org-openroadm-device:slot-name";
-      }
-      description
-        "cp-slot name. Unique within the context of a circuit-pack.";
-    }
-  }
-
-  grouping port-capability-grp {
-    description
-      "OpenROADM port capability parameters.";
-    container port-capabilities {
-      config false;
-      list supported-interface-capability {
-        key "if-cap-type";
-        description
-          "Supported interface capability on the port.";
-        leaf if-cap-type {
-          type identityref {
-            base org-openroadm-port-types:supported-if-capability;
-          }
-          description
-            "Interface type/hierarchy/rate supported on this port";
-        }
-        container otn-capability {
-          leaf-list if-protection-capability {
-            type identityref {
-              base org-openroadm-prot-otn-linear-aps:otn-protection-type;
-            }
-            description
-              "supported protection types if protection is supported on this port";
-          }
-          leaf proactive-DMp {
-            type boolean;
-            description
-              "ODU PM delay measurement (DMp) (G.709 06-2016 15.8.2.1.6)";
-          }
-          leaf tcm-capable {
-            type boolean;
-            description
-              "only when tcm-capable=true, the following two are applicable (ie, proactive-DMt, tcm-direction";
-          }
-          leaf proactive-DMt {
-            when "../tcm-capable= 'true'";
-            type boolean;
-            description
-              "ODU TCM delay measurement (DMt) (G.709 06-2016 15.8.2.2.8)";
-          }
-          leaf tcm-direction-capability {
-            when "../tcm-capable= 'true'";
-            type tcm-direction-capability-type;
-            description
-              "Supported tcm direction capability on the ODUk associated with the port.";
-          }
-          leaf-list opu-payload-type-mapping {
-            type org-openroadm-otn-common-types:payload-type-def;
-            description
-              "OPU payload-type mapping OPU.";
-          }
-          container mpdr-client-restriction {
-            description
-              "Restriction rules for how LO ODUs are multiplexed into HO ODU
-               and the relation with mapped client ports.";
-            leaf network-ho-odu-circuit-pack-name {
-              type string;
-              mandatory true;
-              description
-                "Circuit-Pack identifier. Unique within the context of a device.";
-            }
-            leaf network-ho-odu-port-name {
-              type string;
-              mandatory true;
-              description
-                "port identifier.";
-            }
-            leaf odtu-type {
-              type identityref {
-                base org-openroadm-otn-common-types:odtu-type-identity;
-              }
-              mandatory true;
-              description
-                "ODTU type, part of the MSI (Multiplex Structure Identifier)";
-            }
-            leaf network-ho-odu-trib-port-number {
-              type uint16 {
-                range "1 .. 80";
-              }
-              mandatory true;
-              description
-                "Tributary port number";
-            }
-            leaf-list network-ho-odu-trib-slots {
-              type uint16 {
-                range "1 .. 80";
-              }
-              min-elements 1;
-              max-elements "80";
-            }
-          }
-          container odu-mux-hierarchy {
-            presence "HO ODU supported hierarchy.";
-            list mux-capability {
-              key "stage-number ho-odu-type ho-odu-payload-type";
-              leaf stage-number {
-                type uint8 {
-                  range "1 .. 2";
-                }
-              }
-              leaf ho-odu-type {
-                type identityref {
-                  base org-openroadm-otn-common-types:odu-rate-identity;
-                }
-              }
-              leaf ho-odu-payload-type {
-                type org-openroadm-otn-common-types:payload-type-def;
-                description
-                  "high order ODU payload type";
-              }
-              leaf-list supported-lo-odu-type {
-                type identityref {
-                  base org-openroadm-otn-common-types:odu-rate-identity;
-                }
-              }
-              leaf lo-odu-proactive-DMp {
-                type boolean;
-                description
-                  "lo order ODU PM delay measurement (DMp) (G.709 06-2016 15.8.2.1.6)";
-              }
-              leaf lo-odu-tcm-capable {
-                type boolean;
-                description
-                  "only when lo-odu-tcm-capable=true, the following two are applicable (ie, lo-odu-proactive-DMt, lo-odu-tcm-direction";
-              }
-              leaf lo-odu-proactive-DMt {
-                when "../lo-odu-tcm-capable= 'true'";
-                type boolean;
-                description
-                  "lo order ODU TCM delay measurement (DMt) (G.709 06-2016 15.8.2.2.8)";
-              }
-              leaf lo-odu-tcm-direction-capability {
-                when "../lo-odu-tcm-capable= 'true'";
-                type tcm-direction-capability-type;
-                description
-                  "Supported tcm direction capability for low order ODU associated with the port.";
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-
-  grouping port-group-restriction-grp {
-    container port-group-restriction {
-      config false;
-      list port-bandwidth-sharing {
-        key "port-sharing-id";
-        leaf port-sharing-id {
-          type uint16;
-        }
-        list port-list {
-          key "circuit-pack-name port-name";
-          uses port-id-grp;
-        }
-        list pluggable-optics-holder-list {
-          key "circuit-pack-name slot-name";
-          uses slot-id-grp;
-        }
-        leaf shared-bandwidth {
-          type uint16;
-          units "Gbps";
-        }
-        list possible-port-config {
-          key "config-id";
-          leaf config-id {
-            type uint16;
-          }
-          list port-if-type-config {
-            key "circuit-pack-name port-name";
-            uses port-id-grp;
-            leaf-list port-if-type {
-              type identityref {
-                base org-openroadm-port-types:supported-if-capability;
-              }
-            }
-          }
-          list slot-if-type-config {
-            key "circuit-pack-name slot-name port-name";
-            uses slot-id-grp;
-            leaf port-name {
-              type string;
-            }
-            leaf-list port-if-type {
-              type identityref {
-                base org-openroadm-port-types:supported-if-capability;
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:ports" {
-    uses port-capability-grp;
-  }
-  augment "/org-openroadm-device:org-openroadm-device" {
-    uses port-group-restriction-grp;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-prot-otn-linear-aps@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-prot-otn-linear-aps@2018-10-19.yang
deleted file mode 100644 (file)
index f9add97..0000000
+++ /dev/null
@@ -1,345 +0,0 @@
-module org-openroadm-prot-otn-linear-aps {
-  namespace "http://org/openroadm/prot/otn-linear-aps";
-  prefix org-openroadm-prot-otn-linear-aps;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for device facility OTN linear APS protection groups.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-
-  identity otn-protection-type {
-    description
-      "OTN base protection identity from which
-         specific protection types are derived.";
-  }
-
-  identity odu-one-plus-one {
-    base otn-protection-type;
-    description
-      "ODU Linear Protection 1+1 permanant bridge";
-  }
-
-  grouping odu-sncp-protection-grps {
-    list odu-sncp-pg {
-      key "name";
-      leaf name {
-        type string;
-        description
-          "The odu-sncp-protection-group name";
-      }
-      leaf level {
-        type enumeration {
-          enum "line" {
-            value 1;
-          }
-          enum "path" {
-            value 2;
-          }
-        }
-        mandatory true;
-        description
-          "Designates protection group as Line or Path";
-      }
-      leaf prot-type {
-        type identityref {
-          base otn-protection-type;
-        }
-        default "odu-one-plus-one";
-        description
-          "The type of the protection group.";
-      }
-      leaf switching-direction {
-        type enumeration {
-          enum "unidirectional-switching" {
-            value 1;
-          }
-          enum "bidirectional-switching" {
-            value 2;
-          }
-        }
-        default "unidirectional-switching";
-        description
-          "Bidirectional refers to APS signaling enabled (G.873.1 Table 7-1 Table 8-1).";
-      }
-      leaf revertive {
-        type boolean;
-        default "false";
-        description
-          "Sets reversion behavior.";
-      }
-      leaf mode {
-        type enumeration {
-          enum "SNC/Ne" {
-            value 1;
-            description
-              "applicable to line or path switching";
-          }
-          enum "SNC/Ns" {
-            value 2;
-            description
-              "applicable to line or path switching";
-          }
-          enum "SNC/S" {
-            value 3;
-            description
-              "applicable to line or path switching";
-          }
-          enum "SNC/I" {
-            value 4;
-            description
-              "applicable to line switching only";
-          }
-          enum "CL-SNCG/I" {
-            value 5;
-            description
-              "applicable to line switching only";
-          }
-        }
-        mandatory true;
-        description
-          "Sets the protection mode";
-      }
-      leaf protection-trigger-level {
-        type enumeration {
-          enum "OTUk/ODUkA-SSF-SSD" {
-            value 1;
-            description
-              "applicable to SNC/I";
-          }
-          enum "ODUkP/ODUjA-SSF-SSD" {
-            value 2;
-            description
-              "applicable to CL-SNCG/I";
-          }
-          enum "ODUP-SSF-SSD" {
-            value 3;
-            description
-              "applicable to SNC/Ne";
-          }
-          enum "ODUT1" {
-            value 4;
-            description
-              "applicable to SNC/Ns or SNC/S";
-          }
-          enum "ODUT2" {
-            value 5;
-            description
-              "applicable to SNC/Ns or SNC/S";
-          }
-          enum "ODUT3" {
-            value 6;
-            description
-              "applicable to SNC/Ns or SNC/S";
-          }
-          enum "ODUT4" {
-            value 7;
-            description
-              "applicable to SNC/Ns or SNC/S";
-          }
-          enum "ODUT5" {
-            value 8;
-            description
-              "applicable to SNC/Ns or SNC/S";
-          }
-          enum "ODUT6" {
-            value 9;
-            description
-              "applicable to SNC/Ns or SNC/S";
-          }
-        }
-        description
-          "Indicates switch trigger.";
-      }
-      leaf wait-to-restore {
-        when "../revertive = 'true'";
-        type uint8 {
-          range "1..12";
-        }
-        units "minutes";
-        default "5";
-        description
-          "Wait to restore time in minutes";
-      }
-      container holdoff-timer {
-        leaf holdoff {
-          type uint8 {
-            range "0 | 20 | 100";
-          }
-          units "milliseconds";
-          default "0";
-          description
-            "switch hold-off time in milliseconds";
-        }
-        leaf holdoff-multiplier {
-          when "../holdoff= 100";
-          type uint8 {
-            range "1 .. 100";
-          }
-          default "1";
-          description
-            "switch holdoff time multiplier x100 milliseconds";
-        }
-      }
-      leaf working-if {
-        type leafref {
-          path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
-        }
-        mandatory true;
-        description
-          "Designated work interface";
-      }
-      leaf-list pg-interfaces {
-        type leafref {
-          path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
-        }
-        min-elements 1;
-        description
-          "List of interfaces in the PG";
-      }
-      leaf active-if {
-        type leafref {
-          path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
-        }
-        config false;
-        description
-          "Active interface in the PG";
-      }
-    }
-  }
-
-  rpc odu-sncp-protection-switch {
-    description
-      "ODU SNCP Protection Switch RPC with synchronous implementation";
-    input {
-      leaf protection-group {
-        type leafref {
-          path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:protection-grps/org-openroadm-prot-otn-linear-aps:odu-sncp-pg/org-openroadm-prot-otn-linear-aps:name";
-        }
-        mandatory true;
-        description
-          "Target protection group";
-      }
-      leaf pg-interface {
-        type leafref {
-          path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
-        }
-        mandatory true;
-        description
-          "Target protection group interface";
-      }
-      leaf switch-command {
-        type enumeration {
-          enum "Lock-Out-Protect" {
-            value 1;
-          }
-          enum "Force-Switch" {
-            value 2;
-          }
-          enum "Manual-Switch" {
-            value 3;
-          }
-          enum "Release" {
-            value 4;
-          }
-        }
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  notification odu-sncp-pg-switch-event {
-    leaf switch-status {
-      type enumeration {
-        enum "switched-to-protect" {
-          value 1;
-        }
-        enum "switched-back-to-working" {
-          value 2;
-        }
-      }
-      description
-        "Completed protection switch";
-    }
-    leaf odu-sncp-pg-name {
-      type string;
-      description
-        "The odu-sncp-protection-group name";
-    }
-  }
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:protection-grps" {
-    uses odu-sncp-protection-grps;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-rstp@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-rstp@2018-10-19.yang
deleted file mode 100644 (file)
index 7b70b45..0000000
+++ /dev/null
@@ -1,351 +0,0 @@
-module org-openroadm-rstp {
-  namespace "http://org/openroadm/rstp";
-  prefix org-openroadm-rstp;
-
-  import org-openroadm-device {
-    prefix org-openroadm-device;
-    revision-date 2018-10-19;
-  }
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for rstp protocol.
-
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  typedef bridge-id-type {
-    type string;
-    description
-      "Unique Bridge Identifier";
-  }
-
-  grouping rstp-common-bridge-config {
-    leaf bridge-priority {
-      type uint32 {
-        range "0..61440";
-      }
-      default "32768";
-      description
-        "Bridge Priority Value";
-    }
-    leaf shutdown {
-      type empty;
-      description
-        "Bridge admin state";
-    }
-    leaf hold-time {
-      type uint32 {
-        range "1..10";
-      }
-      default "2";
-      description
-        "The time interval during which no more than two
-            BPDUs transmitted by this node in seconds - not used in rstp mode (in seconds)";
-    }
-    leaf hello-time {
-      type uint32 {
-        range "1..2";
-      }
-      default "2";
-      description
-        "The time between the transmission of BPDU's by this node on any
-            port, when role is root (in seconds)";
-    }
-    leaf max-age {
-      type uint32 {
-        range "6..40";
-      }
-      default "20";
-      description
-        "The value that all bridges use for MaxAge when this bridge
-            is acting as the root";
-    }
-    leaf forward-delay {
-      type uint32 {
-        range "4..30";
-      }
-      default "15";
-      description
-        "The port on the Switch spends this time in the listening
-            state while moving from the blocking state to the forwarding state (in seconds)";
-    }
-    leaf transmit-hold-count {
-      type uint32 {
-        range "1..10";
-      }
-      default "2";
-      description
-        "Maximum BPDU transmission rate";
-    }
-  }
-
-  grouping rstp-root-bridge-attr {
-    leaf root-bridge-port {
-      type uint32;
-      description
-        "Port id of the root port";
-    }
-    leaf root-path-cost {
-      type uint32;
-      description
-        "The cost of the path to the root as
-               seen from this bridge";
-    }
-    leaf root-bridge-priority {
-      type uint32;
-      description
-        "Root Bridge Priority Value";
-    }
-    leaf root-bridge-id {
-      type bridge-id-type;
-      description
-        "Root Bridge identifier";
-    }
-    leaf root-hold-time {
-      type uint32;
-      description
-        "The time interval during which no more than two
-               BPDUs transmitted by this node in seconds at root node (in seconds)";
-    }
-    leaf root-hello-time {
-      type uint32;
-      description
-        "The time between the transmission of BPDU's used at root node (in seconds)";
-    }
-    leaf root-max-age {
-      type uint32;
-      description
-        "The value that all bridges use for MaxAge used at root node";
-    }
-    leaf root-forward-delay {
-      type uint32;
-      description
-        "The time in seconds spent on the listening state used at root node (in seconds)";
-    }
-  }
-
-  grouping rstp-bridge-port-state-attr {
-    list rstp-bridge-port-table {
-      key "ifname";
-      max-elements "15";
-      description
-        "This table contains port-specific information for rstp state attributes";
-      leaf ifname {
-        type string {
-          length "1..255";
-        }
-        description
-          "Interface name of the port";
-      }
-      leaf bridge-port-state {
-        type enumeration {
-          enum "discarding";
-          enum "blocked";
-          enum "learning";
-          enum "forwarding";
-          enum "unknown";
-        }
-        description
-          "The port's current state";
-      }
-      leaf bridge-port-role {
-        type enumeration {
-          enum "designated";
-          enum "root";
-          enum "alternate";
-          enum "disabled";
-          enum "backup";
-          enum "unknown";
-        }
-        description
-          "The role payed by this port in the bridge";
-      }
-      leaf bridge-port-id {
-        type uint32;
-        description
-          "Unique port id of this port";
-      }
-      leaf oper-edge-bridge-port {
-        type empty;
-        description
-          "The operational value of the Edge Port parameter";
-      }
-      leaf designated-bridge-port {
-        type uint32;
-        description
-          "Port id of the designated port";
-      }
-      leaf designated-bridgeid {
-        type bridge-id-type;
-        description
-          "The Bridge Identifier of the bridge that this port considers
-           to be the Designated Bridge for this port's segment";
-      }
-    }
-  }
-
-  grouping rstp-bridge-port-attr {
-    list rstp-bridge-port-table {
-      key "ifname";
-      max-elements "15";
-      description
-        "Table contains port-specific information for rstp config";
-      leaf ifname {
-        type leafref {
-          path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
-        }
-        description
-          "Interface name of the port";
-      }
-      leaf cost {
-        type uint32 {
-          range "2000..200000";
-        }
-        default "20000";
-        description
-          "The contribution of this port to the path cost of
-                 paths towards the spanning tree root which include this port also";
-      }
-      leaf priority {
-        type uint32 {
-          range "0..240";
-        }
-        description
-          "The value of the priority field";
-      }
-    }
-  }
-
-  grouping rstp-container {
-    container rstp {
-      description
-        "Open ROADM RSTP top level";
-      list rstp-bridge-instance {
-        key "bridge-name";
-        max-elements "1";
-        description
-          "rstp bridge instance, max instance = 1";
-        leaf bridge-name {
-          type string {
-            length "1..255";
-          }
-          description
-            "unique name of the bridge";
-        }
-        container rstp-config {
-          description
-            "Collection of rstp configuration attributes";
-          uses rstp-common-bridge-config;
-          uses rstp-bridge-port-attr;
-        }
-        container rstp-state {
-          config false;
-          description
-            "Collection of rstp operational attributes";
-          container rstp-bridge-attr {
-            description
-              "Collection of operational rstp bridge attributes";
-            uses rstp-root-bridge-attr;
-            leaf bridge-id {
-              type bridge-id-type;
-              description
-                "Bridge identifier of the bridge";
-            }
-            leaf topo-change-count {
-              type uint32;
-              description
-                "The total number of topology changes";
-            }
-            leaf time-since-topo-change {
-              type uint32;
-              description
-                "Time since last topology changes occurred (in seconds)";
-            }
-          }
-          container rstp-bridge-port-attr {
-            description
-              "Collection of operational rstp port related attributes";
-            uses rstp-bridge-port-state-attr;
-          }
-        }
-      }
-    }
-  }
-
-  notification rstp-topology-change {
-    description
-      "RSTP: A topologyChange event is sent by a bridge when any of
-       its configured ports transitions from the Learning state
-       to the Forwarding state, or from the Forwarding state to
-       the Blocking state. The event is not sent if a rstp-new-root
-       event is sent for the same transition";
-    uses org-openroadm-resource-types:device-id;
-  }
-  notification rstp-new-root {
-    description
-      "RSTP:The rstp-new-root event indicates that the sending agent has
-       become the new root of the Spanning Tree ";
-    uses org-openroadm-resource-types:device-id;
-  }
-  augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:protocols" {
-    when "/org-openroadm-device:org-openroadm-device/org-openroadm-device:info/org-openroadm-device:node-type='rdm' or /org-openroadm-device:org-openroadm-device/org-openroadm-device:info/org-openroadm-device:node-type='ila'";
-    uses rstp-container;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-swdl@2018-10-19.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-swdl@2018-10-19.yang
deleted file mode 100644 (file)
index 03c5416..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-module org-openroadm-swdl {
-  namespace "http://org/openroadm/de/swdl";
-  prefix org-openroadm-swdl;
-
-  import ietf-yang-types {
-    prefix yang;
-    revision-date 2013-07-15;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2018-10-19;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "Yang definitions for System Management.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2018-10-19 {
-    description
-      "Version 2.2.1";
-  }
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2017-06-26 {
-    description
-      "Version 2.0";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping sw-bank {
-    leaf sw-version {
-      type string;
-      description
-        "Gissue of the SW in this bank";
-    }
-    leaf sw-validation-timer {
-      type string {
-        pattern "(([0-1][0-9]|2[0-3])-([0-5][0-9])-([0-5][0-9]))";
-      }
-      description
-        "value of validation timer in hh-mm-ss";
-    }
-    leaf activation-date-time {
-      type yang:date-and-time;
-      description
-        "activation date and time: The date load was activated";
-    }
-  }
-
-  rpc sw-stage {
-    description
-      "SW stage - copies the SW from repo to staging bank";
-    input {
-      leaf filename {
-        type string {
-          length "10..255";
-        }
-        description
-          "file name which has the load";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc sw-activate {
-    description
-      "Activate new load";
-    input {
-      leaf version {
-        type string;
-        description
-          " software version of the new load which is being activated";
-      }
-      leaf validationTimer {
-        type string;
-        description
-          "validation timer hh-mm-ss";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  rpc cancel-validation-timer {
-    description
-      "Cancel validation timer which user provisioned as part of activate command";
-    input {
-      leaf accept {
-        type boolean;
-        default "true";
-        description
-          " TRUE means  validation timer is cancelled and new load is accepted";
-      }
-    }
-    output {
-      uses org-openroadm-common-types:rpc-response-status;
-    }
-  }
-  notification sw-stage-notification {
-    description
-      "notification for sw-stage.";
-    uses org-openroadm-common-types:rpc-response-status;
-  }
-  notification sw-activate-notification {
-    description
-      "notification for sw-activate events.";
-    leaf sw-active-notification-type {
-      type org-openroadm-common-types:activate-notification-type;
-    }
-    uses org-openroadm-common-types:rpc-response-status;
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-syslog@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-syslog@2017-12-15.yang
deleted file mode 100644 (file)
index 986dd78..0000000
+++ /dev/null
@@ -1,353 +0,0 @@
-module org-openroadm-syslog {
-  namespace "http://org/openroadm/syslog";
-  prefix org-openroadm-syslog;
-
-  import ietf-inet-types {
-    prefix inet;
-    revision-date 2013-07-15;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "This module contains a collection of YANG definitions
-     for Syslog configuration.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.
-
-     Also contains code components extracted from IETF Interfaces.  These code components
-     are copyrighted and licensed as follows:
-
-     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
-     All rights reserved.
-
-     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
-     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
-     publication of this document. Please review these documents carefully, as they
-     describe your rights and restrictions with respect to this document. Code Components
-     extracted from this document must include Simplified BSD License text as described in
-     Section 4.e of the Trust Legal Provisions and are provided without warranty as
-     described in the Simplified BSD License.";
-  reference "RFC 5424: The Syslog Protocol";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2017-09-29 {
-    description
-      "Version 2.1";
-  }
-  revision 2017-07-28 {
-    description
-      "Version 2.0.1 - added revision-date to imports";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  feature selector-sevop-config {
-    description
-      "This feature represents the ability to select messages
-       using the additional operators equal to, or not equal to
-       when comparing the Syslog message severity.";
-  }
-
-  feature selector-match-config {
-    description
-      "This feature represents the ability to select messages based
-       on a Posix 1003.2 regular expression pattern match.";
-  }
-
-  identity syslog-facility {
-    description
-      "The base identity to represent syslog facilities";
-  }
-
-  typedef severity {
-    type enumeration {
-      enum "emergency" {
-        value 0;
-        description
-          "Emergency Level Msg";
-      }
-      enum "alert" {
-        value 1;
-        description
-          "Alert Level Msg";
-      }
-      enum "critical" {
-        value 2;
-        description
-          "Critical Level Msg";
-      }
-      enum "error" {
-        value 3;
-        description
-          "Error Level Msg";
-      }
-      enum "warning" {
-        value 4;
-        description
-          "Warning Level Msg";
-      }
-      enum "notice" {
-        value 5;
-        description
-          "Notification Level Msg";
-      }
-      enum "info" {
-        value 6;
-        description
-          "Informational Level Msg";
-      }
-      enum "debug" {
-        value 7;
-        description
-          "Debugging Level Msg";
-      }
-      enum "all" {
-        value 8;
-        description
-          "This enum describes the case where all severities
-           are selected.";
-      }
-      enum "none" {
-        value 9;
-        description
-          "This enum describes the case where no severities
-           are selected.";
-      }
-    }
-    description
-      "The definitions for Syslog message severity as per RFC 5424.
-       Extended the RFC definition with enums for all and none";
-  }
-
-  grouping syslog-severity {
-    description
-      "This grouping defines the Syslog severity which is used to
-       select log messages.";
-    leaf severity {
-      type severity;
-      mandatory true;
-      description
-        "This leaf specifies the Syslog message severity. When
-         severity is specified, the default severity comparison
-         is all messages of the specified severity and greater are
-         selected. 'all' is a special case which means all severities
-         are selected. 'none' is a special case which means that
-         no selection should occur or disable this filter.";
-    }
-    leaf severity-operator {
-      when
-        "../severity != 'all' and
-                    ../severity != 'none'" {
-        description
-          "The severity-operator is not applicable for severity 'all' or
-           severity 'none'";
-      }
-      if-feature "selector-sevop-config";
-      type enumeration {
-        enum "equals-or-higher" {
-          description
-            "This enum specifies all messages of the specified
-             severity and higher are logged according to the
-             given log-action";
-        }
-        enum "equals" {
-          description
-            "This enum specifies all messages that are for
-             the specified severity are logged according to the
-             given log-action";
-        }
-        enum "not-equals" {
-          description
-            "This enum specifies all messages that are not for
-             the specified severity are logged according to the
-             given log-action";
-        }
-      }
-      default "equals-or-higher";
-      description
-        "This leaf describes the option to specify how the
-         severity comparison is performed.";
-    }
-  }
-
-  grouping syslog-selector {
-    description
-      "This grouping defines a Syslog selector which is used to
-       select log messages for the log-action (buffer, file,
-       etc). Choose one of the following:
-         no-log-facility
-         log-facility [<facility> <severity>...]";
-    container log-selector {
-      description
-        "This container describes the log selector parameters
-         for Syslog.";
-      choice selector-facility {
-        mandatory true;
-        description
-          "This choice describes the option to specify no
-           facilities, or a specific facility which can be
-           all for all facilities.";
-        case no-log-facility {
-          description
-            "This case specifies no facilities will match when
-             comparing the Syslog message facility. This is a
-             method that can be used to effectively disable a
-             particular log-action (buffer, file, etc).";
-          leaf no-facilities {
-            type empty;
-            description
-              "This leaf specifies that no facilities are selected
-               for this log-action.";
-          }
-        }
-        case log-facility {
-          description
-            "This case specifies one or more specified facilities
-             will match when comparing the Syslog message facility.";
-          list log-facility {
-            key "facility";
-            description
-              "This list describes a collection of Syslog
-               facilities and severities.";
-            leaf facility {
-              type union {
-                type identityref {
-                  base syslog-facility;
-                }
-                type enumeration {
-                  enum "all" {
-                    description
-                      "This enum describes the case where all
-                       facilities are requested.";
-                  }
-                }
-              }
-              description
-                "The leaf uniquely identifies a Syslog facility.";
-            }
-            uses syslog-severity;
-          }
-        }
-      }
-    }
-  }
-
-  container syslog {
-    description
-      "This container describes the configuration parameters for
-       Syslog.";
-    leaf local-syslog-filename {
-      type string;
-      config false;
-      mandatory true;
-      description
-        "The syslog file name. It should be a fully qualified name
-         so that the user can get the file using transfer RPC.";
-    }
-    container log-actions {
-      description
-        "This container describes the log-action parameters
-         for Syslog.";
-      container remote {
-        description
-          "This container describes the configuration parameters for
-           remote logging.";
-        list destination {
-          key "name";
-          description
-            "This list describes a collection of remote logging
-             destinations.";
-          leaf name {
-            type string;
-            description
-              "An arbitrary name for the endpoint to connect to.";
-          }
-          choice transport {
-            mandatory true;
-            description
-              "This choice describes the transport option.";
-            case tcp {
-              container tcp {
-                description
-                  "This container describes the TCP transport
-                   options.";
-                reference "RFC 6587: Transmission of Syslog Messages over TCP";
-                leaf address {
-                  type inet:host;
-                  description
-                    "The leaf uniquely specifies the address of
-                     the remote host. One of the following must
-                     be specified: an ipv4 address, an ipv6
-                     address, or a host name.";
-                }
-                leaf port {
-                  type inet:port-number;
-                  default "514";
-                  description
-                    "This leaf specifies the port number used to
-                     deliver messages to the remote server.";
-                }
-              }
-            }
-            case udp {
-              container udp {
-                description
-                  "This container describes the UDP transport
-                   options.";
-                reference "RFC 5426: Transmission of Syslog Messages over UDP";
-                leaf address {
-                  type inet:host;
-                  description
-                    "The leaf uniquely specifies the address of
-                     the remote host. One of the following must be
-                     specified: an ipv4 address, an ipv6 address,
-                     or a host name.";
-                }
-                leaf port {
-                  type inet:port-number;
-                  default "514";
-                  description
-                    "This leaf specifies the port number used to
-                     deliver messages to the remote server.";
-                }
-              }
-            }
-          }
-          uses syslog-selector;
-        }
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-wavelength-map@2017-12-15.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/devices/org-openroadm-wavelength-map@2017-12-15.yang
deleted file mode 100644 (file)
index 3f254e3..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-module org-openroadm-wavelength-map {
-  namespace "http://org/openroadm/wavelength-map";
-  prefix org-openroadm-wavelength-map;
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions for mapping wavelength-number to center frequency and wavelength value.
-
-     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-     AT&T Intellectual Property.  All other rights reserved.
-
-     Redistribution and use in source and binary forms, with or without modification,
-     are permitted provided that the following conditions are met:
-
-     * Redistributions of source code must retain the above copyright notice, this
-       list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above copyright notice,
-       this list of conditions and the following disclaimer in the documentation and/or
-       other materials provided with the distribution.
-     * Neither the Members of the Open ROADM MSA Agreement nor the names of its
-       contributors may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
-     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGE.";
-
-  revision 2017-12-15 {
-    description
-      "Version 2.2";
-  }
-  revision 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping wavelength-map-g {
-    list wavelengths {
-      key "wavelength-number";
-      config false;
-      leaf wavelength-number {
-        type uint32;
-      }
-      leaf center-frequency {
-        type decimal64 {
-          fraction-digits 3;
-          range "191.350..196.100";
-        }
-        units "THz";
-        description
-          "Frequency of the transmit optical channel
-           Domain range:  191.350THz .. 196.100THz ";
-      }
-      leaf wavelength {
-        type decimal64 {
-          fraction-digits 2;
-          range "1528.77..1566.72";
-        }
-        units "nm";
-        description
-          "Lambda corresponding to transmit frequency
-           Domain range:  1528.72nm .. 1566.72nm ";
-      }
-    }
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-alarm-types@2018-01-16.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-alarm-types@2018-01-16.yang
deleted file mode 100644 (file)
index 7ec8665..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-module openconfig-alarm-types {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/alarms/types";
-
-  prefix "oc-alarm-types";
-
-  // import some basic types
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines operational state data related to alarms
-    that the device is reporting.
-
-    This model reuses some data items defined in the draft IETF
-    YANG Alarm Module:
-    https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02
-
-    Portions of this code were derived from the draft IETF YANG Alarm
-    Module. Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "0.2.0";
-
-  revision "2018-01-16" {
-    description
-      "Moved alarm identities into separate types module";
-    reference "0.2.0";
-  }
-
-  // identity statements
-  identity OPENCONFIG_ALARM_TYPE_ID {
-    description
-      "Base identity for alarm type ID profiles";
-  }
-
-  identity AIS {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines an alarm indication signal type of alarm";
-  }
-
-  identity EQPT {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines an equipment related type of alarm that is specific
-       to the physical hardware";
-  }
-
-  identity LOS {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines a loss of signal type of alarm";
-  }
-
-  identity OTS {
-    base OPENCONFIG_ALARM_TYPE_ID;
-    description
-      "Defines a optical transport signal type of alarm";
-  }
-
-  identity OPENCONFIG_ALARM_SEVERITY {
-    description
-      "Base identity for alarm severity profiles. Derived
-      identities are based on contents of the draft
-      IETF YANG Alarm Module";
-    reference
-      "IETF YANG Alarm Module: Draft - typedef severity
-      https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-
-  }
-
-  identity UNKNOWN {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates that the severity level could not be determined.
-      This level SHOULD be avoided.";
-  }
-
-  identity MINOR {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates the existence of a non-service affecting fault
-      condition and that corrective action should be taken in
-      order to prevent a more serious (for example, service
-      affecting) fault. Such a severity can be reported, for
-      example, when the detected alarm condition is not currently
-      degrading the capacity of the resource";
-  }
-
-  identity WARNING {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates the detection of a potential or impending service
-      affecting fault, before any significant effects have been felt.
-      Action should be taken to further diagnose (if necessary) and
-      correct the problem in order to prevent it from becoming a more
-      serious service affecting fault.";
-  }
-
-  identity MAJOR {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates that a service affecting condition has developed
-      and an urgent corrective action is required. Such a severity
-      can be reported, for example, when there is a severe
-      degradation in the capability of the resource and its full
-      capability must be restored.";
-  }
-
-  identity CRITICAL {
-    base OPENCONFIG_ALARM_SEVERITY;
-    description
-      "Indicates that a service affecting condition has occurred
-      and an immediate corrective action is required. Such a
-      severity can be reported, for example, when a resource becomes
-      totally out of service and its capability must be restored.";
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-alarms@2018-01-16.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-alarms@2018-01-16.yang
deleted file mode 100644 (file)
index 4824e34..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-module openconfig-alarms {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/alarms";
-
-  prefix "oc-alarms";
-
-  // import some basic types
-  import openconfig-alarm-types { prefix oc-alarm-types; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-platform { prefix oc-platform; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines operational state data related to alarms
-    that the device is reporting.
-
-    This model reuses some data items defined in the draft IETF
-    YANG Alarm Module:
-    https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02
-
-    Portions of this code were derived from the draft IETF YANG Alarm
-    Module. Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "0.3.0";
-
-  revision "2018-01-16" {
-      description
-        "Moved alarm identities into separate types module";
-      reference "0.3.0";
-  }
-
-  revision "2018-01-10" {
-    description
-      "Make alarms list read only";
-    reference "0.2.0";
-  }
-
-  revision "2017-08-24" {
-    description
-      "Initial public release";
-    reference "0.1.0";
-  }
-
-
-  // grouping statements
-
-  grouping alarm-state {
-    description
-      "Operational state data for device alarms";
-
-    leaf id {
-      type string;
-      description
-        "Unique ID for the alarm -- this will not be a
-        configurable parameter on many implementations";
-    }
-
-    leaf resource {
-      type string;
-      description
-        "The item that is under alarm within the device. The
-        resource may be a reference to an item which is
-        defined elsewhere in the model. For example, it
-        may be a platform/component, interfaces/interface,
-        terminal-device/logical-channels/channel, etc. In this
-        case the system should match the name of the referenced
-        item exactly. The referenced item could alternatively be
-        the path of the item within the model.";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef resource
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-
-    leaf text {
-      type string;
-      description
-        "The string used to inform operators about the alarm. This
-         MUST contain enough information for an operator to be able
-         to understand the problem. If this string contains structure,
-         this format should be clearly documented for programs to be
-         able to parse that information";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef alarm-text
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-
-    leaf time-created {
-      type oc-types:timeticks64;
-      description
-        "The time at which the alarm was raised by the system.
-        This value is expressed as nanoseconds since the Unix Epoch";
-    }
-
-    leaf severity {
-      type identityref {
-        base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY;
-      }
-      description
-        "The severity level indicating the criticality and impact
-        of the alarm";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef severity
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-
-    leaf type-id {
-      type union {
-        type string;
-        type identityref {
-          base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID;
-        }
-      }
-      description
-        "The abbreviated name of the alarm, for example LOS,
-        EQPT, or OTS. Also referred to in different systems as
-        condition type, alarm identifier, or alarm mnemonic. It
-        is recommended to use the OPENCONFIG_ALARM_TYPE_ID
-        identities where possible and only use the string type
-        when the desired identityref is not yet defined";
-      reference
-        "IETF YANG Alarm Module: Draft - typedef alarm-type-id
-        https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-    }
-  }
-
-  grouping alarm-config {
-    description
-      "Configuration data for device alarms";
-  }
-
-  grouping alarms-top {
-    description
-      "Top-level grouping for device alarms";
-
-    container alarms {
-      description
-        "Top-level container for device alarms";
-
-      config false;
-
-      list alarm {
-        key "id";
-        description
-          "List of alarms, keyed by a unique id";
-
-        leaf id {
-          type leafref {
-            path "../state/id";
-          }
-
-          description
-            "References the unique alarm id";
-        }
-
-        container config {
-          description
-            "Configuration data for each alarm";
-
-          uses alarm-config;
-        }
-
-        container state {
-          config false;
-
-          description
-            "Operational state data for a device alarm";
-
-          uses alarm-config;
-          uses alarm-state;
-        }
-      }
-    }
-  }
-
-
-  // augments
-
-  augment "/oc-platform:components/oc-platform:component/oc-platform:state" {
-    description
-      "Adds specific alarms related to a component.";
-
-    leaf equipment-failure {
-      type boolean;
-      default "false";
-      description
-        "If true, the hardware indicates that the component's physical equipment
-        has failed";
-    }
-
-    leaf equipment-mismatch {
-      type boolean;
-      default "false";
-      description
-        "If true, the hardware indicates that the component inserted into the
-        affected component's physical location is of a different type than what
-        is configured";
-    }
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-extensions@2017-04-11.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-extensions@2017-04-11.yang
deleted file mode 100644 (file)
index f39ecf6..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-module openconfig-extensions {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/openconfig-ext";
-
-  prefix "oc-ext";
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module provides extensions to the YANG language to allow
-    OpenConfig specific functionality and meta-data to be defined.";
-
-  revision "2017-04-11" {
-    description
-      "rename password type to 'hashed' and clarify description";
-    reference "0.3.0";
-  }
-
-  revision "2017-01-29" {
-    description
-      "Added extension for annotating encrypted values.";
-    reference "0.2.0";
-  }
-
-  revision "2015-10-09" {
-    description
-      "Initial OpenConfig public release";
-    reference "0.1.0";
-  }
-
-
-  // extension statements
-  extension openconfig-version {
-    argument "semver" {
-      yin-element false;
-    }
-    description
-      "The OpenConfig version number for the module. This is
-      expressed as a semantic version number of the form:
-        x.y.z
-      where:
-        * x corresponds to the major version,
-        * y corresponds to a minor version,
-        * z corresponds to a patch version.
-      This version corresponds to the model file within which it is
-      defined, and does not cover the whole set of OpenConfig models.
-      Where several modules are used to build up a single block of
-      functionality, the same module version is specified across each
-      file that makes up the module.
-
-      A major version number of 0 indicates that this model is still
-      in development (whether within OpenConfig or with industry
-      partners), and is potentially subject to change.
-
-      Following a release of major version 1, all modules will
-      increment major revision number where backwards incompatible
-      changes to the model are made.
-
-      The minor version is changed when features are added to the
-      model that do not impact current clients use of the model.
-
-      The patch-level version is incremented when non-feature changes
-      (such as bugfixes or clarifications to human-readable
-      descriptions that do not impact model functionality) are made
-      that maintain backwards compatibility.
-
-      The version number is stored in the module meta-data.";
-  }
-
-  extension openconfig-hashed-value {
-    description
-      "This extension provides an annotation on schema nodes to
-      indicate that the corresponding value should be stored and
-      reported in hashed form.
-
-      Hash algorithms are by definition not reversible. Clients
-      reading the configuration or applied configuration for the node
-      should expect to receive only the hashed value. Values written
-      in cleartext will be hashed. This annotation may be used on
-      nodes such as secure passwords in which the device never reports
-      a cleartext value, even if the input is provided as cleartext.";
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-if-ethernet@2018-01-05.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-if-ethernet@2018-01-05.yang
deleted file mode 100644 (file)
index 354fb2d..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-module openconfig-if-ethernet {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/interfaces/ethernet";
-
-  prefix "oc-eth";
-
-  // import some basic types
-  import openconfig-interfaces { prefix oc-if; }
-  import iana-if-type { prefix ift; }
-  import openconfig-yang-types { prefix oc-yang; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "Model for managing Ethernet interfaces -- augments the OpenConfig
-    model for interface configuration and state.";
-
-  oc-ext:openconfig-version "2.3.0";
-
-  revision "2018-01-05" {
-    description
-      "Add logical loopback to interface.";
-    reference "2.3.0";
-  }
-
-  revision "2017-12-21" {
-    description
-      "Added IPv6 router advertisement configuration.";
-    reference "2.1.0";
-  }
-
-  revision "2017-07-14" {
-    description
-      "Added Ethernet/IP state data; Add dhcp-client;
-      migrate to OpenConfig types modules; Removed or
-      renamed opstate values";
-    reference "2.0.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes to Ethernet interfaces model";
-    reference "1.1.0";
-  }
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  identity ETHERNET_SPEED {
-    description "base type to specify available Ethernet link
-    speeds";
-  }
-
-  identity SPEED_10MB {
-    base ETHERNET_SPEED;
-    description "10 Mbps Ethernet";
-  }
-
-  identity SPEED_100MB {
-    base ETHERNET_SPEED;
-    description "100 Mbps Ethernet";
-  }
-
-  identity SPEED_1GB {
-    base ETHERNET_SPEED;
-    description "1 GBps Ethernet";
-  }
-
-  identity SPEED_10GB {
-    base ETHERNET_SPEED;
-    description "10 GBps Ethernet";
-  }
-
-  identity SPEED_25GB {
-    base ETHERNET_SPEED;
-    description "25 GBps Ethernet";
-  }
-
-  identity SPEED_40GB {
-    base ETHERNET_SPEED;
-    description "40 GBps Ethernet";
-  }
-
-  identity SPEED_50GB {
-    base ETHERNET_SPEED;
-    description "50 GBps Ethernet";
-  }
-
-  identity SPEED_100GB {
-    base ETHERNET_SPEED;
-    description "100 GBps Ethernet";
-  }
-
-  identity SPEED_UNKNOWN {
-    base ETHERNET_SPEED;
-    description
-      "Interface speed is unknown.  Systems may report
-      speed UNKNOWN when an interface is down or unpopuplated (e.g.,
-      pluggable not present).";
-  }
-
-  // typedef statements
-
-
-  // grouping statements
-
-  grouping ethernet-interface-config {
-    description "Configuration items for Ethernet interfaces";
-
-    leaf mac-address {
-      type oc-yang:mac-address;
-      description
-        "Assigns a MAC address to the Ethernet interface.  If not
-        specified, the corresponding operational state leaf is
-        expected to show the system-assigned MAC address.";
-    }
-
-    leaf auto-negotiate {
-      type boolean;
-      default true;
-      description
-        "Set to TRUE to request the interface to auto-negotiate
-        transmission parameters with its peer interface.  When
-        set to FALSE, the transmission parameters are specified
-        manually.";
-      reference
-        "IEEE 802.3-2012 auto-negotiation transmission parameters";
-    }
-
-    leaf duplex-mode {
-      type enumeration {
-        enum FULL {
-          description "Full duplex mode";
-        }
-        enum HALF {
-          description "Half duplex mode";
-        }
-      }
-      description
-        "When auto-negotiate is TRUE, this optionally sets the
-        duplex mode that will be advertised to the peer.  If
-        unspecified, the interface should negotiate the duplex mode
-        directly (typically full-duplex).  When auto-negotiate is
-        FALSE, this sets the duplex mode on the interface directly.";
-    }
-
-    leaf port-speed {
-      type identityref {
-        base ETHERNET_SPEED;
-      }
-      description
-        "When auto-negotiate is TRUE, this optionally sets the
-        port-speed mode that will be advertised to the peer for
-        negotiation.  If unspecified, it is expected that the
-        interface will select the highest speed available based on
-        negotiation.  When auto-negotiate is set to FALSE, sets the
-        link speed to a fixed value -- supported values are defined
-        by ETHERNET_SPEED identities";
-    }
-
-    leaf enable-flow-control {
-      type boolean;
-      default false;
-      description
-        "Enable or disable flow control for this interface.
-        Ethernet flow control is a mechanism by which a receiver
-        may send PAUSE frames to a sender to stop transmission for
-        a specified time.
-
-        This setting should override auto-negotiated flow control
-        settings.  If left unspecified, and auto-negotiate is TRUE,
-        flow control mode is negotiated with the peer interface.";
-      reference
-        "IEEE 802.3x";
-    }
-  }
-
-  grouping ethernet-interface-state-counters {
-    description
-      "Ethernet-specific counters and statistics";
-
-    // ingress counters
-
-    leaf in-mac-control-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer control frames received on the interface";
-    }
-
-    leaf in-mac-pause-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer PAUSE frames received on the interface";
-    }
-
-    leaf in-oversize-frames {
-      type oc-yang:counter64;
-      description
-        "Number of oversize frames received on the interface";
-    }
-
-    leaf in-jabber-frames {
-      type oc-yang:counter64;
-      description
-        "Number of jabber frames received on the
-        interface.  Jabber frames are typically defined as oversize
-        frames which also have a bad CRC.  Implementations may use
-        slightly different definitions of what constitutes a jabber
-        frame.  Often indicative of a NIC hardware problem.";
-    }
-
-    leaf in-fragment-frames {
-      type oc-yang:counter64;
-      description
-        "Number of fragment frames received on the interface.";
-    }
-
-    leaf in-8021q-frames {
-      type oc-yang:counter64;
-      description
-        "Number of 802.1q tagged frames received on the interface";
-    }
-
-    leaf in-crc-errors {
-      type oc-yang:counter64;
-      description
-        "Number of receive error events due to FCS/CRC check
-        failure";
-    }
-
-    // egress counters
-
-    leaf out-mac-control-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer control frames sent on the interface";
-    }
-
-    leaf out-mac-pause-frames {
-      type oc-yang:counter64;
-      description
-        "MAC layer PAUSE frames sent on the interface";
-    }
-
-    leaf out-8021q-frames {
-      type oc-yang:counter64;
-      description
-        "Number of 802.1q tagged frames sent on the interface";
-    }
-  }
-
-  grouping ethernet-interface-state {
-    description
-      "Grouping for defining Ethernet-specific operational state";
-
-    leaf hw-mac-address {
-      type oc-yang:mac-address;
-      description
-        "Represenets the 'burned-in',  or system-assigned, MAC
-        address for the Ethernet interface.";
-    }
-
-    leaf negotiated-duplex-mode {
-      type enumeration {
-        enum FULL {
-          description "Full duplex mode";
-        }
-        enum HALF {
-          description "Half duplex mode";
-        }
-      }
-      description
-        "When auto-negotiate is set to TRUE, and the interface has
-        completed auto-negotiation with the remote peer, this value
-        shows the duplex mode that has been negotiated.";
-    }
-
-    leaf negotiated-port-speed {
-      type identityref {
-        base ETHERNET_SPEED;
-      }
-      description
-        "When auto-negotiate is set to TRUE, and the interface has
-        completed auto-negotiation with the remote peer, this value
-        shows the interface speed that has been negotiated.";
-    }
-
-    container counters {
-      description "Ethernet interface counters";
-
-      uses ethernet-interface-state-counters;
-
-    }
-
-  }
-
-  // data definition statements
-
-  grouping ethernet-top {
-    description "top-level Ethernet config and state containers";
-
-    container ethernet {
-      description
-        "Top-level container for ethernet configuration
-        and state";
-
-      container config {
-        description "Configuration data for ethernet interfaces";
-
-        uses ethernet-interface-config;
-
-      }
-
-      container state {
-
-        config false;
-        description "State variables for Ethernet interfaces";
-
-        uses ethernet-interface-config;
-        uses ethernet-interface-state;
-
-      }
-
-    }
-  }
-
-  // augment statements
-
-  augment "/oc-if:interfaces/oc-if:interface" {
-    description "Adds addtional Ethernet-specific configuration to
-    interfaces model";
-
-    uses ethernet-top {
-      when "oc-if:state/oc-if:type = 'ift:ethernetCsmacd'" {
-      description "Additional interface configuration parameters when
-      the interface type is Ethernet";
-      }
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-interfaces@2018-01-05.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-interfaces@2018-01-05.yang
deleted file mode 100644 (file)
index 2c95ea4..0000000
+++ /dev/null
@@ -1,992 +0,0 @@
-module openconfig-interfaces {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/interfaces";
-
-  prefix "oc-if";
-
-  // import some basic types
-  import ietf-interfaces { prefix ietf-if; }
-  import openconfig-yang-types { prefix oc-yang; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "Model for managing network interfaces and subinterfaces.  This
-    module also defines convenience types / groupings for other
-    models to create references to interfaces:
-
-      base-interface-ref (type) -  reference to a base interface
-      interface-ref (grouping) -  container for reference to a
-        interface + subinterface
-      interface-ref-state (grouping) - container for read-only
-        (opstate) reference to interface + subinterface
-
-    This model reuses data items defined in the IETF YANG model for
-    interfaces described by RFC 7223 with an alternate structure
-    (particularly for operational state data) and with
-    additional configuration items.
-
-    Portions of this code were derived from IETF RFC 7223.
-    Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "2.3.0";
-
-  revision "2018-01-05" {
-    description
-      "Add logical loopback to interface.";
-    reference "2.3.0";
-  }
-
-  revision "2017-12-22" {
-    description
-      "Add IPv4 proxy ARP configuration.";
-    reference "2.2.0";
-  }
-
-  revision "2017-12-21" {
-    description
-      "Added IPv6 router advertisement configuration.";
-    reference "2.1.0";
-  }
-
-  revision "2017-07-14" {
-    description
-      "Added Ethernet/IP state data; Add dhcp-client;
-      migrate to OpenConfig types modules; Removed or
-      renamed opstate values";
-    reference "2.0.0";
-  }
-
-  revision "2017-04-03" {
-    description
-      "Update copyright notice.";
-    reference "1.1.1";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes to Ethernet interfaces model";
-    reference "1.1.0";
-  }
-
-
-  // typedef statements
-
-  typedef base-interface-ref {
-    type leafref {
-      path "/oc-if:interfaces/oc-if:interface/oc-if:name";
-    }
-    description
-      "Reusable type for by-name reference to a base interface.
-      This type may be used in cases where ability to reference
-      a subinterface is not required.";
-  }
-
-  typedef interface-id {
-    type string;
-    description
-      "User-defined identifier for an interface, generally used to
-      name a interface reference.  The id can be arbitrary but a
-      useful convention is to use a combination of base interface
-      name and subinterface index.";
-  }
-
-  // grouping statements
-
-  grouping interface-ref-common {
-    description
-      "Reference leafrefs to interface / subinterface";
-
-    leaf interface {
-      type leafref {
-        path "/oc-if:interfaces/oc-if:interface/oc-if:name";
-      }
-      description
-        "Reference to a base interface.  If a reference to a
-        subinterface is required, this leaf must be specified
-        to indicate the base interface.";
-    }
-
-    leaf subinterface {
-      type leafref {
-        path "/oc-if:interfaces/" +
-          "oc-if:interface[oc-if:name=current()/../interface]/" +
-          "oc-if:subinterfaces/oc-if:subinterface/oc-if:index";
-      }
-      description
-        "Reference to a subinterface -- this requires the base
-        interface to be specified using the interface leaf in
-        this container.  If only a reference to a base interface
-        is requuired, this leaf should not be set.";
-    }
-  }
-
-  grouping interface-ref-state-container {
-    description
-      "Reusable opstate w/container for a reference to an
-      interface or subinterface";
-
-    container state {
-      config false;
-      description
-        "Operational state for interface-ref";
-
-      uses interface-ref-common;
-    }
-  }
-
-  grouping interface-ref {
-    description
-      "Reusable definition for a reference to an interface or
-      subinterface";
-
-    container interface-ref {
-      description
-        "Reference to an interface or subinterface";
-
-      container config {
-        description
-          "Configured reference to interface / subinterface";
-
-        uses interface-ref-common;
-      }
-
-      uses interface-ref-state-container;
-    }
-  }
-
-  grouping interface-ref-state {
-    description
-      "Reusable opstate w/container for a reference to an
-      interface or subinterface";
-
-    container interface-ref {
-      description
-        "Reference to an interface or subinterface";
-
-      uses interface-ref-state-container;
-    }
-  }
-
-  grouping base-interface-ref-state {
-    description
-      "Reusable opstate w/container for a reference to a
-      base interface (no subinterface).";
-
-      container state {
-        config false;
-        description
-          "Operational state for base interface reference";
-
-        leaf interface {
-          type base-interface-ref;
-          description
-            "Reference to a base interface.";
-        }
-      }
-  }
-
-
-  grouping interface-common-config {
-    description
-      "Configuration data data nodes common to physical interfaces
-      and subinterfaces";
-
-    leaf description {
-      type string;
-      description
-        "A textual description of the interface.
-
-        A server implementation MAY map this leaf to the ifAlias
-        MIB object.  Such an implementation needs to use some
-        mechanism to handle the differences in size and characters
-        allowed between this leaf and ifAlias.  The definition of
-        such a mechanism is outside the scope of this document.
-
-        Since ifAlias is defined to be stored in non-volatile
-        storage, the MIB implementation MUST map ifAlias to the
-        value of 'description' in the persistently stored
-        datastore.
-
-        Specifically, if the device supports ':startup', when
-        ifAlias is read the device MUST return the value of
-        'description' in the 'startup' datastore, and when it is
-        written, it MUST be written to the 'running' and 'startup'
-        datastores.  Note that it is up to the implementation to
-
-        decide whether to modify this single leaf in 'startup' or
-        perform an implicit copy-config from 'running' to
-        'startup'.
-
-        If the device does not support ':startup', ifAlias MUST
-        be mapped to the 'description' leaf in the 'running'
-        datastore.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAlias";
-    }
-
-    leaf enabled {
-      type boolean;
-      default "true";
-      description
-        "This leaf contains the configured, desired state of the
-        interface.
-
-        Systems that implement the IF-MIB use the value of this
-        leaf in the 'running' datastore to set
-        IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
-        has been initialized, as described in RFC 2863.
-
-        Changes in this leaf in the 'running' datastore are
-        reflected in ifAdminStatus, but if ifAdminStatus is
-        changed over SNMP, this leaf is not affected.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-    }
-
-  }
-
-  grouping interface-phys-config {
-    description
-      "Configuration data for physical interfaces";
-
-    leaf name {
-      type string;
-      description
-        "The name of the interface.
-
-        A device MAY restrict the allowed values for this leaf,
-        possibly depending on the type of the interface.
-        For system-controlled interfaces, this leaf is the
-        device-specific name of the interface.  The 'config false'
-        list interfaces/interface[name]/state contains the currently
-        existing interfaces on the device.
-
-        If a client tries to create configuration for a
-        system-controlled interface that is not present in the
-        corresponding state list, the server MAY reject
-        the request if the implementation does not support
-        pre-provisioning of interfaces or if the name refers to
-        an interface that can never exist in the system.  A
-        NETCONF server MUST reply with an rpc-error with the
-        error-tag 'invalid-value' in this case.
-
-        The IETF model in RFC 7223 provides YANG features for the
-        following (i.e., pre-provisioning and arbitrary-names),
-        however they are omitted here:
-
-          If the device supports pre-provisioning of interface
-          configuration, the 'pre-provisioning' feature is
-          advertised.
-
-          If the device allows arbitrarily named user-controlled
-          interfaces, the 'arbitrary-names' feature is advertised.
-
-        When a configured user-controlled interface is created by
-        the system, it is instantiated with the same name in the
-        /interfaces/interface[name]/state list.";
-    }
-
-    leaf type {
-      type identityref {
-        base ietf-if:interface-type;
-      }
-      mandatory true;
-      description
-        "The type of the interface.
-
-        When an interface entry is created, a server MAY
-        initialize the type leaf with a valid value, e.g., if it
-        is possible to derive the type from the name of the
-        interface.
-
-        If a client tries to set the type of an interface to a
-        value that can never be used by the system, e.g., if the
-        type is not supported or if the type does not match the
-        name of the interface, the server MUST reject the request.
-        A NETCONF server MUST reply with an rpc-error with the
-        error-tag 'invalid-value' in this case.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifType";
-    }
-
-    leaf mtu {
-      type uint16;
-      description
-        "Set the max transmission unit size in octets
-        for the physical interface.  If this is not set, the mtu is
-        set to the operational default -- e.g., 1514 bytes on an
-        Ethernet interface.";
-    }
-
-    leaf loopback-mode {
-      type boolean;
-      default false;
-      description
-        "When set to true, the interface is logically looped back,
-        such that packets that are forwarded via the interface
-        are received on the same interface.";
-    }
-
-    uses interface-common-config;
-  }
-
-  grouping interface-phys-holdtime-config {
-    description
-      "Configuration data for interface hold-time settings --
-      applies to physical interfaces.";
-
-    leaf up {
-      type uint32;
-      units milliseconds;
-      default 0;
-      description
-        "Dampens advertisement when the interface
-        transitions from down to up.  A zero value means dampening
-        is turned off, i.e., immediate notification.";
-    }
-
-    leaf down {
-      type uint32;
-      units milliseconds;
-      default 0;
-      description
-        "Dampens advertisement when the interface transitions from
-        up to down.  A zero value means dampening is turned off,
-        i.e., immediate notification.";
-    }
-  }
-
-  grouping interface-phys-holdtime-state {
-    description
-      "Operational state data for interface hold-time.";
-  }
-
-  grouping interface-phys-holdtime-top {
-    description
-      "Top-level grouping for setting link transition
-      dampening on physical and other types of interfaces.";
-
-    container hold-time {
-      description
-        "Top-level container for hold-time settings to enable
-        dampening advertisements of interface transitions.";
-
-      container config {
-        description
-          "Configuration data for interface hold-time settings.";
-
-        uses interface-phys-holdtime-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for interface hold-time.";
-
-        uses interface-phys-holdtime-config;
-        uses interface-phys-holdtime-state;
-      }
-    }
-  }
-
-  grouping interface-common-state {
-    description
-      "Operational state data (in addition to intended configuration)
-      at the global level for this interface";
-
-    leaf ifindex {
-      type uint32;
-      description
-        "System assigned number for each interface.  Corresponds to
-        ifIndex object in SNMP Interface MIB";
-      reference
-        "RFC 2863 - The Interfaces Group MIB";
-    }
-
-    leaf admin-status {
-      type enumeration {
-        enum UP {
-          description
-            "Ready to pass packets.";
-        }
-        enum DOWN {
-          description
-            "Not ready to pass packets and not in some test mode.";
-        }
-        enum TESTING {
-          //TODO: This is generally not supported as a configured
-          //admin state, though it's in the standard interfaces MIB.
-          //Consider removing it.
-          description
-            "In some test mode.";
-        }
-      }
-      //TODO:consider converting to an identity to have the
-      //flexibility to remove some values defined by RFC 7223 that
-      //are not used or not implemented consistently.
-      mandatory true;
-      description
-        "The desired state of the interface.  In RFC 7223 this leaf
-        has the same read semantics as ifAdminStatus.  Here, it
-        reflects the administrative state as set by enabling or
-        disabling the interface.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-    }
-
-    leaf oper-status {
-      type enumeration {
-        enum UP {
-          value 1;
-          description
-            "Ready to pass packets.";
-        }
-        enum DOWN {
-          value 2;
-          description
-            "The interface does not pass any packets.";
-        }
-        enum TESTING {
-          value 3;
-          description
-            "In some test mode.  No operational packets can
-             be passed.";
-        }
-        enum UNKNOWN {
-          value 4;
-          description
-            "Status cannot be determined for some reason.";
-        }
-        enum DORMANT {
-          value 5;
-          description
-            "Waiting for some external event.";
-        }
-        enum NOT_PRESENT {
-          value 6;
-          description
-            "Some component (typically hardware) is missing.";
-        }
-        enum LOWER_LAYER_DOWN {
-          value 7;
-          description
-            "Down due to state of lower-layer interface(s).";
-        }
-      }
-      //TODO:consider converting to an identity to have the
-      //flexibility to remove some values defined by RFC 7223 that
-      //are not used or not implemented consistently.
-      mandatory true;
-      description
-        "The current operational state of the interface.
-
-         This leaf has the same semantics as ifOperStatus.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifOperStatus";
-    }
-
-    leaf last-change {
-      type oc-types:timeticks64;
-      units nanoseconds;
-      description
-        "This timestamp indicates the time of the last state change
-        of the interface (e.g., up-to-down transition). This
-        corresponds to the ifLastChange object in the standard
-        interface MIB.
-
-        The value is the timestamp in nanoseconds relative to
-        the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifLastChange";
-    }
-
-  }
-
-
-  grouping interface-counters-state {
-    description
-      "Operational state representing interface counters
-      and statistics.";
-
-      //TODO: we may need to break this list of counters into those
-      //that would appear for physical vs. subinterface or logical
-      //interfaces.  For now, just replicating the full stats
-      //grouping to both interface and subinterface.
-
-    container counters {
-      description
-        "A collection of interface-related statistics objects.";
-
-      leaf in-octets {
-        type oc-yang:counter64;
-        description
-          "The total number of octets received on the interface,
-          including framing characters.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
-      }
-
-      leaf in-unicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The number of packets, delivered by this sub-layer to a
-          higher (sub-)layer, that were not addressed to a
-          multicast or broadcast address at this sub-layer.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
-      }
-
-      leaf in-broadcast-pkts {
-        type oc-yang:counter64;
-        description
-          "The number of packets, delivered by this sub-layer to a
-          higher (sub-)layer, that were addressed to a broadcast
-          address at this sub-layer.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCInBroadcastPkts";
-      }
-
-      leaf in-multicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The number of packets, delivered by this sub-layer to a
-          higher (sub-)layer, that were addressed to a multicast
-          address at this sub-layer.  For a MAC-layer protocol,
-          this includes both Group and Functional addresses.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCInMulticastPkts";
-      }
-
-      leaf in-discards {
-        type oc-yang:counter64;
-        description
-          "The number of inbound packets that were chosen to be
-          discarded even though no errors had been detected to
-          prevent their being deliverable to a higher-layer
-          protocol.  One possible reason for discarding such a
-          packet could be to free up buffer space.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-
-
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInDiscards";
-      }
-
-      leaf in-errors {
-        type oc-yang:counter64;
-        description
-          "For packet-oriented interfaces, the number of inbound
-          packets that contained errors preventing them from being
-          deliverable to a higher-layer protocol.  For character-
-          oriented or fixed-length interfaces, the number of
-          inbound transmission units that contained errors
-          preventing them from being deliverable to a higher-layer
-          protocol.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInErrors";
-      }
-
-      leaf in-unknown-protos {
-        type oc-yang:counter64;
-        description
-          "For packet-oriented interfaces, the number of packets
-          received via the interface that were discarded because
-          of an unknown or unsupported protocol.  For
-          character-oriented or fixed-length interfaces that
-          support protocol multiplexing, the number of
-          transmission units received via the interface that were
-          discarded because of an unknown or unsupported protocol.
-          For any interface that does not support protocol
-          multiplexing, this counter is not present.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
-      }
-
-      leaf in-fcs-errors {
-        type oc-yang:counter64;
-        description
-          "Number of received packets which had errors in the
-          frame check sequence (FCS), i.e., framing errors.
-
-          Discontinuities in the value of this counter can occur
-          when the device is re-initialization as indicated by the
-          value of 'last-clear'.";
-      }
-
-      leaf out-octets {
-        type oc-yang:counter64;
-        description
-          "The total number of octets transmitted out of the
-          interface, including framing characters.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
-      }
-
-      leaf out-unicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets that higher-level protocols
-          requested be transmitted, and that were not addressed
-          to a multicast or broadcast address at this sub-layer,
-          including those that were discarded or not sent.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
-      }
-
-      leaf out-broadcast-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets that higher-level protocols
-          requested be transmitted, and that were addressed to a
-          broadcast address at this sub-layer, including those
-          that were discarded or not sent.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCOutBroadcastPkts";
-      }
-
-
-      leaf out-multicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets that higher-level protocols
-          requested be transmitted, and that were addressed to a
-          multicast address at this sub-layer, including those
-          that were discarded or not sent.  For a MAC-layer
-          protocol, this includes both Group and Functional
-          addresses.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCOutMulticastPkts";
-      }
-
-      leaf out-discards {
-        type oc-yang:counter64;
-        description
-          "The number of outbound packets that were chosen to be
-          discarded even though no errors had been detected to
-          prevent their being transmitted.  One possible reason
-          for discarding such a packet could be to free up buffer
-          space.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
-      }
-
-      leaf out-errors {
-        type oc-yang:counter64;
-        description
-          "For packet-oriented interfaces, the number of outbound
-          packets that could not be transmitted because of errors.
-          For character-oriented or fixed-length interfaces, the
-          number of outbound transmission units that could not be
-          transmitted because of errors.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOutErrors";
-      }
-
-      leaf carrier-transitions {
-        type oc-yang:counter64;
-        description
-          "Number of times the interface state has transitioned
-          between up and down since the time the device restarted
-          or the last-clear time, whichever is most recent.";
-      }
-
-      leaf last-clear {
-        type oc-types:timeticks64;
-        units nanoseconds;
-        description
-          "Timestamp of the last time the interface counters were
-          cleared.
-
-          The value is the timestamp in nanoseconds relative to
-          the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-      }
-    }
-  }
-
-  // data definition statements
-
-  grouping sub-unnumbered-config {
-    description
-      "Configuration data for unnumbered subinterfaces";
-
-    leaf enabled {
-      type boolean;
-      default false;
-      description
-        "Indicates that the subinterface is unnumbered.  By default
-        the subinterface is numbered, i.e., expected to have an
-        IP address configuration.";
-    }
-  }
-
-  grouping sub-unnumbered-state {
-    description
-      "Operational state data unnumbered subinterfaces";
-  }
-
-  grouping sub-unnumbered-top {
-    description
-      "Top-level grouping unnumbered subinterfaces";
-
-    container unnumbered {
-      description
-        "Top-level container for setting unnumbered interfaces.
-        Includes reference the interface that provides the
-        address information";
-
-      container config {
-        description
-          "Configuration data for unnumbered interface";
-
-        uses sub-unnumbered-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for unnumbered interfaces";
-
-        uses sub-unnumbered-config;
-        uses sub-unnumbered-state;
-      }
-
-      uses oc-if:interface-ref;
-    }
-  }
-
-  grouping subinterfaces-config {
-    description
-      "Configuration data for subinterfaces";
-
-    leaf index {
-      type uint32;
-      default 0;
-      description
-        "The index of the subinterface, or logical interface number.
-        On systems with no support for subinterfaces, or not using
-        subinterfaces, this value should default to 0, i.e., the
-        default subinterface.";
-    }
-
-    uses interface-common-config;
-
-  }
-
-  grouping subinterfaces-state {
-    description
-      "Operational state data for subinterfaces";
-
-    leaf name {
-      type string;
-      description
-        "The system-assigned name for the sub-interface.  This MAY
-        be a combination of the base interface name and the
-        subinterface index, or some other convention used by the
-        system.";
-    }
-
-    uses interface-common-state;
-    uses interface-counters-state;
-  }
-
-  grouping subinterfaces-top {
-    description
-      "Subinterface data for logical interfaces associated with a
-      given interface";
-
-    container subinterfaces {
-      description
-        "Enclosing container for the list of subinterfaces associated
-        with a physical interface";
-
-      list subinterface {
-        key "index";
-
-        description
-          "The list of subinterfaces (logical interfaces) associated
-          with a physical interface";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "The index number of the subinterface -- used to address
-            the logical interface";
-        }
-
-        container config {
-          description
-            "Configurable items at the subinterface level";
-
-          uses subinterfaces-config;
-        }
-
-        container state {
-
-          config false;
-          description
-            "Operational state data for logical interfaces";
-
-          uses subinterfaces-config;
-          uses subinterfaces-state;
-        }
-      }
-    }
-  }
-
-  grouping interfaces-top {
-    description
-      "Top-level grouping for interface configuration and
-      operational state data";
-
-    container interfaces {
-      description
-        "Top level container for interfaces, including configuration
-        and state data.";
-
-
-      list interface {
-        key "name";
-
-        description
-          "The list of named interfaces on the device.";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "References the configured name of the interface";
-            //TODO: need to consider whether this should actually
-            //reference the name in the state subtree, which
-            //presumably would be the system-assigned name, or the
-            //configured name.  Points to the config/name now
-            //because of YANG 1.0 limitation that the list
-            //key must have the same "config" as the list, and
-            //also can't point to a non-config node.
-        }
-
-        container config {
-          description
-            "Configurable items at the global, physical interface
-            level";
-
-          uses interface-phys-config;
-        }
-
-        container state {
-
-          config false;
-          description
-            "Operational state data at the global interface level";
-
-          uses interface-phys-config;
-          uses interface-common-state;
-          uses interface-counters-state;
-        }
-
-        uses interface-phys-holdtime-top;
-        uses subinterfaces-top;
-      }
-    }
-  }
-
-  uses interfaces-top;
-
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-linecard@2017-08-03.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-linecard@2017-08-03.yang
deleted file mode 100644 (file)
index b041fb8..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-module openconfig-platform-linecard {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform/linecard";
-
-  prefix "oc-linecard";
-
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-platform-types { prefix oc-platform-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines data related to LINECARD components in the openconfig-platform model";
-
-  oc-ext:openconfig-version "0.1.0";
-
-  revision "2017-08-03" {
-    description
-      "Initial revision";
-    reference "0.1.0";
-  }
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  // typedef statements
-
-  // grouping statements
-
-  grouping linecard-config {
-    description
-      "Configuration data for linecard components";
-
-    leaf power-admin-state {
-      type oc-platform-types:component-power-type;
-      default POWER_ENABLED;
-      description
-        "Enable or disable power to the linecard";
-    }
-  }
-
-  grouping linecard-state {
-    description
-      "Operational state data for linecard components";
-
-    leaf slot-id {
-      type string;
-      description
-        "Identifier for the slot or chassis position in which the
-        linecard is installed";
-    }
-  }
-
-  grouping linecard-top {
-    description
-      "Top-level grouping for linecard data";
-
-    container linecard {
-      description
-        "Top-level container for linecard data";
-
-      container config {
-        description
-          "Configuration data for linecards";
-
-        uses linecard-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for linecards";
-
-        uses linecard-config;
-        uses linecard-state;
-      }
-    }
-  }
-
-  // data definition statements
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    description
-      "Adding linecard data to physical inventory";
-
-    uses linecard-top {
-      when "current()/oc-platform:state/" +
-        "oc-platform:type = 'LINECARD'" {
-        description
-          "Augment is active when component is of type LINECARD";
-      }
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
-
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-port@2018-01-20.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-port@2018-01-20.yang
deleted file mode 100644 (file)
index 2039a8e..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-module openconfig-platform-port {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform/port";
-
-  prefix "oc-port";
-
-  // import some basic types
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-interfaces { prefix oc-if; }
-  import openconfig-if-ethernet { prefix oc-eth; }
-  import openconfig-extensions { prefix oc-ext; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines data related to PORT components in the openconfig-platform model";
-
-  oc-ext:openconfig-version "0.3.0";
-
-  revision "2018-01-20" {
-    description
-      "Added augmentation for interface-to-port reference";
-    reference "0.3.0";
-  }
-
-  revision "2017-11-17" {
-    description
-      "Corrected augmentation path for port data";
-    reference "0.2.0";
-  }
-
-  revision "2016-10-24" {
-    description
-      "Initial revision";
-    reference "0.1.0";
-  }
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  // typedef statements
-
-  // grouping statements
-
-  grouping port-breakout-config {
-    description
-      "Configuration data for the port breakout mode";
-
-    leaf num-channels {
-      type uint8;
-      description
-        "Sets the number of channels to 'breakout' on a port
-        capable of channelization";
-    }
-
-    leaf channel-speed {
-      type identityref {
-        base oc-eth:ETHERNET_SPEED;
-      }
-      description
-        "Sets the channel speed on each channel -- the
-        supported values are defined by the
-        ETHERNET_SPEED identity";
-    }
-  }
-
-  grouping port-breakout-state {
-    description
-      "Operational state data for the port breakout mode ";
-  }
-
-  grouping port-breakout-top {
-    description
-      "Top-level grouping for port breakout data";
-
-    container breakout-mode {
-      description
-        "Top-level container for port breakout data";
-
-      container config {
-        description
-          "Configuration data for port breakout";
-
-        uses port-breakout-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for port breakout";
-
-        uses port-breakout-config;
-        uses port-breakout-state;
-      }
-    }
-  }
-
-  // data definition statements
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component/" +
-    "oc-platform:port" {
-    description
-      "Adding port breakout data to physical platform data";
-
-    uses port-breakout-top {
-      when "./state/type = 'PORT'" {
-        description
-          "This data is valid only for PORT components";
-      }
-    }
-  }
-
-  augment "/oc-if:interfaces/oc-if:interface/oc-if:state" {
-    description
-      "Adds a reference from the base interface to the corresponding
-      port component in the device inventory.";
-
-    leaf hardware-port {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-platform:name";
-      }
-      description
-        "For non-channelized interfaces, references the hardware port
-        corresponding to the base interface.";
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-transceiver@2018-01-22.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-transceiver@2018-01-22.yang
deleted file mode 100644 (file)
index 6bb9bd9..0000000
+++ /dev/null
@@ -1,497 +0,0 @@
-module openconfig-platform-transceiver {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform/transceiver";
-
-  prefix "oc-transceiver";
-
-  // import some basic types
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-platform-port { prefix oc-port; }
-  import openconfig-interfaces { prefix oc-if; }
-  import openconfig-transport-types { prefix oc-opt-types; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-yang-types { prefix oc-yang; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines configuration and operational state data
-    for transceivers (i.e., pluggable optics).  The module should be
-    used in conjunction with the platform model where other
-    physical entity data are represented.
-
-    In the platform model, a component of type=TRANSCEIVER is
-    expected to be a subcomponent of a PORT component.  This
-    module defines a concrete schema for the associated data for
-    components with type=TRANSCEIVER.";
-
-  oc-ext:openconfig-version "0.4.1";
-
-  revision "2018-01-22" {
-    description
-      "Fixed physical-channel path reference";
-    reference "0.4.1";
-  }
-
-  revision "2017-09-18" {
-    description
-      "Use openconfig-yang-types module";
-    reference "0.4.0";
-  }
-
-  revision "2017-07-08" {
-    description
-      "Adds clarification on aggregate power measurement data";
-    reference "0.3.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Adds preconfiguration data and clarified units";
-    reference "0.2.0";
-  }
-
-  // identity statements
-
-  // typedef statements
-
-  // grouping statements
-
-  grouping optical-power-state {
-    description
-      "Reusable leaves related to optical power state -- these
-      are read-only state values. If avg/min/max statistics are
-      not supported, the target is expected to just supply the
-      instant value";
-
-    container output-power {
-      description
-        "The output optical power of a physical channel in units
-        of 0.01dBm, which may be associated with individual
-        physical channels, or an aggregate of multiple physical
-        channels (i.e., for the overall transceiver). For an
-        aggregate, this may be a measurement from a photodetector
-        or a a calculation performed on the device by summing up
-        all of the related individual physical channels.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container input-power {
-      description
-        "The input optical power of a physical channel in units
-        of 0.01dBm, which may be associated with individual
-        physical channels, or an aggregate of multiple physical
-        channels (i.e., for the overall transceiver). For an
-        aggregate, this may be a measurement from a photodetector
-        or a a calculation performed on the device by summing up
-        all of the related individual physical channels.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container laser-bias-current {
-      description
-        "The current applied by the system to the transmit laser to
-        achieve the output power. The current is expressed in mA
-        with up to two decimal precision. Values include the
-        instantaneous, average, minimum, and maximum statistics.
-        If avg/min/max statistics are not supported, the target is
-        expected to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-mA;
-    }
-  }
-
-  grouping output-optical-frequency {
-    description
-      "Reusable leaves related to optical output power -- this is
-      typically configurable on line side and read-only on the
-      client-side";
-
-    leaf output-frequency {
-      type oc-opt-types:frequency-type;
-      description
-        "The frequency in MHz of the individual physical channel
-        (e.g. ITU C50 - 195.0THz and would be reported as
-        195,000,000 MHz in this model). This attribute is not
-        configurable on most client ports.";
-    }
-  }
-
-
-  grouping physical-channel-config {
-    description
-      "Configuration data for physical client channels";
-
-    leaf index {
-      type uint16 {
-        range 0..max;
-      }
-      description
-        "Index of the physical channnel or lane within a physical
-        client port";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Text description for the client physical channel";
-    }
-
-    leaf tx-laser {
-      type boolean;
-      description
-        "Enable (true) or disable (false) the transmit label for the
-        channel";
-    }
-
-    leaf target-output-power {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "Target output optical power level of the optical channel,
-        expressed in increments of 0.01 dBm (decibel-milliwats)";
-    }
-  }
-
-  grouping physical-channel-state {
-    description
-      "Operational state data for client channels.";
-
-    uses output-optical-frequency;
-    uses optical-power-state;
-  }
-
-  grouping physical-channel-top {
-    description
-      "Top-level grouping for physical client channels";
-
-    container physical-channels {
-      description
-        "Enclosing container for client channels";
-
-      list channel {
-        key "index";
-        description
-          "List of client channels, keyed by index within a physical
-          client port.  A physical port with a single channel would
-          have a single zero-indexed element";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index number of the channel";
-        }
-
-        container config {
-          description
-            "Configuration data for physical channels";
-
-          uses physical-channel-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for channels";
-
-          uses physical-channel-config;
-          uses physical-channel-state;
-        }
-      }
-    }
-  }
-
-
-  grouping port-transceiver-config {
-    description
-      "Configuration data for client port transceivers";
-
-    leaf enabled {
-      type boolean;
-      description
-        "Turns power on / off to the transceiver -- provides a means
-        to power on/off the transceiver (in the case of SFP, SFP+,
-        QSFP,...) or enable high-power mode (in the case of CFP,
-        CFP2, CFP4) and is optionally supported (device can choose to
-        always enable).  True = power on / high power, False =
-        powered off";
-    }
-
-    leaf form-factor-preconf {
-      type identityref {
-        base oc-opt-types:TRANSCEIVER_FORM_FACTOR_TYPE;
-      }
-      description
-        "Indicates the type of optical transceiver used on this
-        port.  If the client port is built into the device and not
-        pluggable, then non-pluggable is the corresponding state. If
-        a device port supports multiple form factors (e.g. QSFP28
-        and QSFP+, then the value of the transceiver installed shall
-        be reported. If no transceiver is present, then the value of
-        the highest rate form factor shall be reported
-        (QSFP28, for example).
-
-        The form factor is included in configuration data to allow
-        pre-configuring a device with the expected type of
-        transceiver ahead of deployment.  The corresponding state
-        leaf should reflect the actual transceiver type plugged into
-        the system.";
-    }
-
-    leaf ethernet-pmd-preconf {
-      type identityref {
-        base oc-opt-types:ETHERNET_PMD_TYPE;
-      }
-      description
-        "The Ethernet PMD is a property of the optical transceiver
-        used on the port, indicating the type of physical connection.
-        It is included in configuration data to allow pre-configuring
-        a port/transceiver with the expected PMD.  The actual PMD is
-        indicated by the ethernet-pmd state leaf.";
-    }
-  }
-
-  grouping port-transceiver-state {
-    description
-      "Operational state data for client port transceivers";
-
-    leaf present {
-      type enumeration {
-        enum PRESENT {
-          description
-            "Transceiver is present on the port";
-        }
-        enum NOT_PRESENT {
-          description
-            "Transceiver is not present on the port";
-        }
-      }
-      description
-        "Indicates whether a transceiver is present in
-        the specified client port.";
-    }
-
-    leaf form-factor {
-      type identityref {
-        base oc-opt-types:TRANSCEIVER_FORM_FACTOR_TYPE;
-      }
-      description
-        "Indicates the type of optical transceiver used on this
-        port.  If the client port is built into the device and not
-        pluggable, then non-pluggable is the corresponding state. If
-        a device port supports multiple form factors (e.g. QSFP28
-        and QSFP+, then the value of the transceiver installed shall
-        be reported. If no transceiver is present, then the value of
-        the highest rate form factor shall be reported
-        (QSFP28, for example).";
-    }
-
-    leaf connector-type {
-      type identityref {
-        base oc-opt-types:FIBER_CONNECTOR_TYPE;
-      }
-      description
-        "Connector type used on this port";
-    }
-
-    leaf internal-temp {
-    // TODO: this should probably be removed if we add temperature
-    // as a top-level component property, i.e., transceiver temp
-    // should be reported there.
-      type int16 {
-        range -40..125;
-      }
-      description
-        "Internally measured temperature in degrees Celsius. MSA
-        valid range is between -40 and +125C. Accuracy shall be
-        better than +/- 3 degC over the whole temperature range.";
-    }
-
-    leaf vendor {
-      type string {
-        length 1..16;
-      }
-      description
-        "Full name of transceiver vendor. 16-octet field that
-        contains ASCII characters, left-aligned and padded on the
-        right with ASCII spaces (20h)";
-    }
-
-    leaf vendor-part {
-      type string {
-        length 1..16;
-      }
-      description
-        "Transceiver vendor's part number. 16-octet field that
-        contains ASCII characters, left-aligned and padded on the
-        right with ASCII spaces (20h). If part number is undefined,
-        all 16 octets = 0h";
-    }
-
-    leaf vendor-rev {
-      type string {
-        length 1..2;
-      }
-      description
-        "Transceiver vendor's revision number. 2-octet field that
-        contains ASCII characters, left-aligned and padded on the
-        right with ASCII spaces (20h)";
-    }
-
-    //TODO: these compliance code leaves should be active based on
-    //the type of port
-    leaf ethernet-pmd {
-      type identityref {
-        base oc-opt-types:ETHERNET_PMD_TYPE;
-      }
-      description
-        "Ethernet PMD (physical medium dependent sublayer) that the
-        transceiver supports. The SFF/QSFP MSAs have registers for
-        this and CFP MSA has similar.";
-    }
-
-    leaf sonet-sdh-compliance-code {
-      type identityref {
-        base oc-opt-types:SONET_APPLICATION_CODE;
-      }
-      description
-        "SONET/SDH application code supported by the port";
-    }
-
-    leaf otn-compliance-code {
-      type identityref {
-        base oc-opt-types:OTN_APPLICATION_CODE;
-      }
-      description
-        "OTN application code supported by the port";
-    }
-
-    leaf serial-no {
-      type string {
-        length 1..16;
-      }
-      description
-        "Transceiver serial number. 16-octet field that contains
-        ASCII characters, left-aligned and padded on the right with
-        ASCII spaces (20h). If part serial number is undefined, all
-        16 octets = 0h";
-    }
-
-    leaf date-code {
-      type oc-yang:date-and-time;
-      description
-        "Representation of the transceiver date code, typically
-        stored as YYMMDD.  The time portion of the value is
-        undefined and not intended to be read.";
-    }
-
-    leaf fault-condition {
-      type boolean;
-      description
-        "Indicates if a fault condition exists in the transceiver";
-    }
-
-    uses optical-power-state;
-
-  }
-
-  grouping port-transceiver-top {
-    description
-      "Top-level grouping for client port transceiver data";
-
-    container transceiver {
-      description
-        "Top-level container for client port transceiver data";
-
-      container config {
-        description
-          "Configuration data for client port transceivers";
-
-        uses port-transceiver-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for client port transceivers";
-
-        uses port-transceiver-config;
-        uses port-transceiver-state;
-      }
-      // physical channels are associated with a transceiver
-      // component
-      uses physical-channel-top;
-    }
-  }
-
-  // data definition statements
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    description
-      "Adding transceiver data to physical inventory";
-
-    uses port-transceiver-top {
-      when "current()/oc-platform:state/" +
-        "oc-platform:type = 'TRANSCEIVER'" {
-        description
-          "Augment is active when component is of type TRANSCEIVER";
-      }
-    }
-  }
-
-  augment "/oc-if:interfaces/oc-if:interface/oc-if:state" {
-    //TODO: add 'when' or other condition to make sure this
-    //leafref points to a component of type TRANSCEIVER.
-    description
-      "Adds a reference from the base interface to its corresponding
-      physical channels.";
-
-    leaf-list physical-channel {
-      type leafref {
-        path "/oc-platform:components/" +
-          "oc-platform:component[oc-platform:name=current()/../oc-port:hardware-port]/" +
-          "oc-transceiver:transceiver/" +
-          "oc-transceiver:physical-channels/oc-transceiver:channel/" +
-          "oc-transceiver:index";
-      }
-      description
-        "For a channelized interface, list of references to the
-        physical channels (lanes) corresponding to the interface.";
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-types@2018-01-16.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform-types@2018-01-16.yang
deleted file mode 100644 (file)
index 5ef3209..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-module openconfig-platform-types {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform-types";
-
-  prefix "oc-platform-types";
-
-  import openconfig-types { prefix oc-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines data types (e.g., YANG identities)
-    to support the OpenConfig component inventory model.";
-
-  oc-ext:openconfig-version "0.8.0";
-
-  revision "2018-01-16" {
-    description
-      "Added new per-component common data; add temp alarm";
-    reference "0.8.0";
-  }
-
-  revision "2017-12-14" {
-    description
-      "Added anchor containers for component data, added new
-      component types";
-    reference "0.7.0";
-  }
-
-  revision "2017-08-16" {
-    description
-      "Added power state enumerated type";
-    reference "0.6.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Added temperature state variable to component";
-    reference "0.5.0";
-  }
-
-  // grouping statements
-
-  grouping avg-min-max-instant-stats-precision1-celsius {
-    description
-      "Common grouping for recording temperature values in
-      Celsius with 1 decimal precision. Values include the
-      instantaneous, average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      units celsius;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    leaf interval {
-      type oc-types:stat-interval;
-      description
-        "The time interval over which the min/max/average statistics
-        are computed by the system.";
-    }
-  }
-
-  // identity statements
-
-  identity OPENCONFIG_HARDWARE_COMPONENT {
-    description
-      "Base identity for hardware related components in a managed
-      device.  Derived identities are partially based on contents
-      of the IANA Entity MIB.";
-    reference
-      "IANA Entity MIB and RFC 6933";
-  }
-
-
-  identity OPENCONFIG_SOFTWARE_COMPONENT {
-    description
-      "Base identity for software-related components in a managed
-      device";
-  }
-
-  // hardware types
-
-  identity CHASSIS {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Chassis component, typically with multiple slots / shelves";
-  }
-
-  identity BACKPLANE {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Backplane component for aggregating traffic, typically
-      contained in a chassis component";
-  }
-
-  identity FABRIC {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Interconnect between ingress and egress ports on the
-      device (e.g., a crossbar switch).";
-  }
-
-  identity POWER_SUPPLY {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Component that is supplying power to the device";
-  }
-
-  identity FAN {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Cooling fan, or could be some other heat-reduction component";
-  }
-
-  identity SENSOR {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Physical sensor, e.g., a temperature sensor in a chassis";
-  }
-
-  identity FRU {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Replaceable hardware component that does not have a more
-      specific defined schema.";
-  }
-
-  identity LINECARD {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Linecard component, typically inserted into a chassis slot";
-  }
-
-  identity PORT {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Physical port, e.g., for attaching pluggables and networking
-      cables";
-  }
-
-  identity TRANSCEIVER {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Pluggable module present in a port";
-  }
-
-  identity CPU {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Processing unit, e.g., a management processor";
-  }
-
-  identity STORAGE {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "A storage subsystem on the device (disk, SSD, etc.)";
-  }
-
-  identity INTEGRATED_CIRCUIT {
-    base OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "A special purpose processing unit, typically for traffic
-      switching/forwarding (e.g., switching ASIC, NPU, forwarding
-      chip, etc.)";
-  }
-
-  identity OPERATING_SYSTEM {
-    base OPENCONFIG_SOFTWARE_COMPONENT;
-    description
-      "Operating system running on a component";
-  }
-
-
-  identity COMPONENT_OPER_STATUS {
-    description
-      "Current operational status of a platform component";
-  }
-
-  identity ACTIVE {
-    base COMPONENT_OPER_STATUS;
-    description
-      "Component is enabled and active (i.e., up)";
-  }
-
-  identity INACTIVE {
-    base COMPONENT_OPER_STATUS;
-    description
-      "Component is enabled but inactive (i.e., down)";
-  }
-
-  identity DISABLED {
-    base COMPONENT_OPER_STATUS;
-    description
-      "Component is administratively disabled.";
-  }
-
-  // typedef statements
-
-  typedef component-power-type {
-    type enumeration {
-      enum POWER_ENABLED {
-        description
-          "Enable power on the component";
-      }
-      enum POWER_DISABLED {
-        description
-          "Disable power on the component";
-      }
-    }
-    description
-      "A generic type reflecting whether a hardware component
-      is powered on or off";
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform@2018-01-30.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-platform@2018-01-30.yang
deleted file mode 100644 (file)
index 5930278..0000000
+++ /dev/null
@@ -1,695 +0,0 @@
-module openconfig-platform {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/platform";
-
-  prefix "oc-platform";
-
-  import openconfig-platform-types { prefix oc-platform-types; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-alarm-types { prefix oc-alarm-types; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines a data model for representing a system
-    component inventory, which can include hardware or software
-    elements arranged in an arbitrary structure. The primary
-    relationship supported by the model is containment, e.g.,
-    components containing subcomponents.
-
-    It is expected that this model reflects every field replacable
-    unit on the device at a minimum (i.e., additional information
-    may be supplied about non-replacable components).
-
-    Every element in the inventory is termed a 'component' with each
-    component expected to have a unique name and type, and optionally
-    a unique system-assigned identifier and FRU number.  The
-    uniqueness is guaranteed by the system within the device.
-
-    Components may have properties defined by the system that are
-    modeled as a list of key-value pairs. These may or may not be
-    user-configurable.  The model provides a flag for the system
-    to optionally indicate which properties are user configurable.
-
-    Each component also has a list of 'subcomponents' which are
-    references to other components. Appearance in a list of
-    subcomponents indicates a containment relationship as described
-    above.  For example, a linecard component may have a list of
-    references to port components that reside on the linecard.
-
-    This schema is generic to allow devices to express their own
-    platform-specific structure.  It may be augmented by additional
-    component type-specific schemas that provide a common structure
-    for well-known component types.  In these cases, the system is
-    expected to populate the common component schema, and may
-    optionally also represent the component and its properties in the
-    generic structure.
-
-    The properties for each component may include dynamic values,
-    e.g., in the 'state' part of the schema.  For example, a CPU
-    component may report its utilization, temperature, or other
-    physical properties.  The intent is to capture all platform-
-    specific physical data in one location, including inventory
-    (presence or absence of a component) and state (physical
-    attributes or status).";
-
-  oc-ext:openconfig-version "0.9.0";
-
-  revision "2018-01-30" {
-    description
-      "Amended approach for modelling CPU - rather than having
-      a local CPU utilisation state variable, a component with
-      a CPU should create a subcomponent of type CPU to report
-      statistics.";
-    reference "0.9.0";
-  }
-
-  revision "2018-01-16" {
-    description
-      "Added new per-component common data; add temp alarm;
-      moved hardware-port reference to port model";
-    reference "0.8.0";
-  }
-
-  revision "2017-12-14" {
-    description
-      "Added anchor containers for component data, added new
-      component types";
-    reference "0.7.0";
-  }
-
-  revision "2017-08-16" {
-    description
-      "Added power state enumerated type";
-    reference "0.6.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Added temperature state variable to component";
-    reference "0.5.0";
-  }
-
-  // grouping statements
-
-
-  grouping platform-component-properties-config {
-    description
-      "System-defined configuration data for component properties";
-
-    leaf name {
-      type string;
-      description
-        "System-supplied name of the property -- this is typically
-        non-configurable";
-    }
-
-    leaf value {
-      type union {
-        type string;
-        // type boolean;
-        type int64;
-        type uint64;
-        type decimal64 {
-          fraction-digits 2;
-        }
-      }
-      description
-        "Property values can take on a variety of types.  Signed and
-        unsigned integer types may be provided in smaller sizes,
-        e.g., int8, uint16, etc.";
-    }
-  }
-
-  grouping platform-component-properties-state {
-    description
-      "Operational state data for component properties";
-
-    leaf configurable {
-      type boolean;
-      description
-        "Indication whether the property is user-configurable";
-    }
-  }
-
-  grouping platform-component-properties-top {
-    description
-      "Top-level grouping ";
-
-    container properties {
-      description
-        "Enclosing container ";
-
-      list property {
-        key "name";
-        description
-          "List of system properties for the component";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "Reference to the property name.";
-        }
-
-        container config {
-          description
-            "Configuration data for each property";
-
-          uses platform-component-properties-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for each property";
-
-          uses platform-component-properties-config;
-          uses platform-component-properties-state;
-        }
-      }
-    }
-  }
-
-  grouping platform-subcomponent-ref-config {
-    description
-      "Configuration data for subcomponent references";
-
-    leaf name {
-        type string;
-//      type leafref {
-//        path "../../config/name";
-//      }
-      description
-        "Reference to the name of the subcomponent";
-    }
-  }
-
-  grouping platform-subcomponent-ref-state {
-    description
-      "Operational state data for subcomponent references";
-
-  }
-
-  grouping platform-subcomponent-ref-top {
-    description
-      "Top-level grouping for list of subcomponent references";
-
-    container subcomponents {
-      description
-        "Enclosing container for subcomponent references";
-
-      list subcomponent {
-        key "name";
-        description
-          "List of subcomponent references";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "Reference to the name list key";
-        }
-
-        container config {
-          description
-            "Configuration data for the subcomponent";
-
-          uses platform-subcomponent-ref-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for the subcomponent";
-
-          uses platform-subcomponent-ref-config;
-          uses platform-subcomponent-ref-state;
-        }
-      }
-    }
-  }
-
-  grouping platform-component-config {
-    description
-      "Configuration data for components";
-
-    leaf name {
-      type string;
-      description
-        "Device name for the component -- this will not be a
-        configurable parameter on many implementations";
-    }
-  }
-
-  grouping platform-component-state {
-    description
-      "Operational state data for device components.";
-
-    leaf type {
-      type union {
-        type identityref {
-          base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT;
-        }
-        type identityref {
-          base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT;
-        }
-      }
-      description
-        "Type of component as identified by the system";
-    }
-
-    leaf id {
-      type string;
-      description
-        "Unique identifier assigned by the system for the
-        component";
-    }
-
-    leaf description {
-      type string;
-      description
-        "System-supplied description of the component";
-    }
-
-    leaf mfg-name {
-      type string;
-      description
-        "System-supplied identifier for the manufacturer of the
-        component.  This data is particularly useful when a
-        component manufacturer is different than the overall
-        device vendor.";
-    }
-
-    leaf hardware-version {
-      type string;
-      description
-        "For hardware components, this is the hardware revision of
-        the component.";
-    }
-
-    leaf firmware-version {
-      type string;
-      description
-        "For hardware components, this is the version of associated
-        firmware that is running on the component, if applicable.";
-    }
-
-    leaf software-version {
-      type string;
-      description
-        "For software components such as operating system or other
-        software module, this is the version of the currently
-        running software.";
-    }
-
-    leaf serial-no {
-      type string;
-      description
-        "System-assigned serial number of the component.";
-    }
-
-    leaf part-no {
-      type string;
-      description
-        "System-assigned part number for the component.  This should
-        be present in particular if the component is also an FRU
-        (field replacable unit)";
-    }
-
-    leaf oper-status {
-      type identityref {
-        base oc-platform-types:COMPONENT_OPER_STATUS;
-      }
-      description
-        "If applicable, this reports the current operational status
-        of the component.";
-    }
-  }
-
-  grouping platform-component-temp-alarm-state {
-    description
-      "Temperature alarm data for platform components";
-
-    // TODO(aashaikh): consider if these leaves could be in a
-    // reusable grouping (not temperature-specific); threshold
-    // may always need to be units specific.
-
-    leaf alarm-status {
-      type boolean;
-      description
-        "A value of true indicates the alarm has been raised or
-        asserted.  The value should be false when the alarm is
-        cleared.";
-    }
-
-    leaf alarm-threshold {
-      type uint32;
-      description
-        "The threshold value that was crossed for this alarm.";
-    }
-
-    leaf alarm-severity {
-      type identityref {
-        base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY;
-      }
-      description
-        "The severity of the current alarm.";
-    }
-  }
-
-  grouping platform-component-power-state {
-    description
-      "Power-related operational state for device components.";
-
-    leaf allocated-power {
-      type uint32;
-      units watts;
-      description
-        "Power allocated by the system for the component.";
-    }
-
-    leaf used-power {
-      type uint32;
-      units watts;
-      description
-        "Actual power used by the component.";
-    }
-  }
-
-  grouping platform-component-temp-state {
-    description
-      "Temperature state data for device components";
-
-    container temperature {
-      description
-        "Temperature in degrees Celsius of the component. Values include
-        the instantaneous, average, minimum, and maximum statistics. If
-        avg/min/max statistics are not supported, the target is expected
-        to just supply the instant value";
-
-      uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius;
-      uses platform-component-temp-alarm-state;
-    }
-  }
-
-  grouping platform-component-memory-state {
-    description
-      "Per-component memory statistics";
-
-    container memory {
-      description
-        "For components that have associated memory, these values
-        report information about available and utilized memory.";
-
-      leaf available {
-        type uint64;
-        units bytes;
-        description
-          "The available memory physically installed, or logically
-          allocated to the component.";
-      }
-
-      // TODO(aashaikh): consider if this needs to be a
-      // min/max/avg statistic
-      leaf utilized {
-        type uint64;
-        units bytes;
-        description
-          "The memory currently in use by processes running on
-          the component, not considering reserved memory that is
-          not available for use.";
-      }
-    }
-  }
-
-  grouping platform-anchors-top {
-    description
-      "This grouping is used to add containers for components that
-      are common across systems, but do not have a defined schema
-      within the openconfig-platform module.  Containers should be
-      added to this grouping for components that are expected to
-      exist in multiple systems, with corresponding modules
-      augmenting the config/state containers directly.";
-
-    container chassis {
-      description
-        "Data for chassis components";
-
-      container config {
-        description
-          "Configuration data for chassis components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for chassis components";
-      }
-    }
-
-// TODO(aashaikh): linecard container is already defined in
-// openconfig-platform-linecard; will move to this module
-// in future.
-  /*
-    container linecard {
-      description
-        "Data for linecard components";
-
-      container config {
-        description
-          "Configuration data for linecard components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for linecard components";
-      }
-    }
-  */
-
-    container port {
-      description
-        "Data for physical port components";
-
-      container config {
-        description
-          "Configuration data for physical port components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for physical port components";
-      }
-    }
-
-// TODO(aashaikh): transceiver container is already defined in
-// openconfig-platform-transceiver; will move to this module
-// in future.
-  /*
-    container transceiver {
-      description
-        "Data for transceiver components";
-
-      container config {
-        description
-          "Configuration data for transceiver components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for transceiver components";
-      }
-    }
-  */
-
-    container power-supply {
-      description
-        "Data for power supply components";
-
-      container config {
-        description
-          "Configuration data for power supply components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for power supply components";
-      }
-    }
-
-    container fan {
-      description
-        "Data for fan components";
-
-      container config {
-        description
-          "Configuration data for fan components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for fan components";
-      }
-    }
-
-    container fabric {
-      description
-        "Data for fabric components";
-
-      container config {
-        description
-          "Configuration data for fabric components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for fabric components";
-      }
-    }
-
-    container storage {
-      description
-        "Data for storage components";
-
-      container config {
-        description
-          "Configuration data for storage components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for storage components";
-      }
-    }
-
-    container cpu {
-      description
-        "Data for cpu components";
-
-      container config {
-        description
-          "Configuration data for cpu components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for cpu components";
-      }
-    }
-
-    container integrated-circuit {
-      description
-        "Data for chip components, such as ASIC, NPUs, etc.";
-
-      container config {
-        description
-          "Configuration data for chip components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for chip components";
-      }
-    }
-
-    container backplane {
-      description
-        "Data for backplane components";
-
-      container config {
-        description
-          "Configuration data for backplane components";
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for backplane components";
-      }
-    }
-  }
-
-  grouping platform-component-top {
-    description
-      "Top-level grouping for components in the device inventory";
-
-    container components {
-      description
-        "Enclosing container for the components in the system.";
-
-      list component {
-        key "name";
-        description
-          "List of components, keyed by component name.";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "References the component name";
-        }
-
-        container config {
-          description
-            "Configuration data for each component";
-
-          uses platform-component-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for each component";
-
-          uses platform-component-config;
-          uses platform-component-state;
-          uses platform-component-temp-state;
-          uses platform-component-memory-state;
-          uses platform-component-power-state;
-        }
-
-        uses platform-component-properties-top;
-        uses platform-subcomponent-ref-top;
-        uses platform-anchors-top;
-      }
-    }
-  }
-
-
-  // data definition statements
-
-  uses platform-component-top;
-
-
-  // augments
-
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-terminal-device@2017-07-08.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-terminal-device@2017-07-08.yang
deleted file mode 100644 (file)
index 0319a6c..0000000
+++ /dev/null
@@ -1,1141 +0,0 @@
-module openconfig-terminal-device {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/terminal-device";
-
-  prefix "oc-opt-term";
-
-  import openconfig-types { prefix oc-types; }
-  import openconfig-transport-types { prefix oc-opt-types; }
-  import openconfig-if-ethernet { prefix oc-eth; }
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-platform-transceiver { prefix oc-transceiver; }
-  import openconfig-extensions { prefix oc-ext; }
-  import ietf-yang-types { prefix yang; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module describes a terminal optics device model for
-    managing the terminal systems (client and line side) in a
-    DWDM transport network.
-
-    Elements of the model:
-
-    physical port: corresponds to a physical, pluggable client
-    port on the terminal device. Examples includes 10G, 40G, 100G
-    (e.g., 10x10G, 4x25G or 1x100G) and 400G/1T in the future.
-    Physical client ports will have associated operational state or
-    PMs.
-
-    physical channel: a physical lane or channel in the
-    physical client port.  Each physical client port has 1 or more
-    channels. An example is 100GBASE-LR4 client physical port having
-    4x25G channels. Channels have their own optical PMs and can be
-    monitored independently within a client physical port (e.g.,
-    channel power).  Physical client channels are defined in the
-    model as part of a physical client port, and are modeled
-    primarily for reading their PMs.
-
-    logical channel: a logical grouping of logical grooming elements
-    that may be assigned to subsequent grooming stages for
-    multiplexing / de-multiplexing, or to an optical channel for
-    line side transmission.  The logical channels can represent, for
-    example, an ODU/OTU logical packing of the client
-    data onto the line side.  Tributaries are similarly logical
-    groupings of demand that can be represented in this structure and
-    assigned to an optical channel.  Note that different types of
-    logical channels may be present, each with their corresponding
-    PMs.
-
-    optical channel:  corresponds to an optical carrier and is
-    assigned a wavelength/frequency.  Optical channels have PMs
-    such as power, BER, and operational mode.
-
-    Directionality:
-
-    To maintain simplicity in the model, the configuration is
-    described from client-to-line direction.  The assumption is that
-    equivalent reverse configuration is implicit, resulting in
-    the same line-to-client configuration.
-
-    Physical layout:
-
-    The model does not assume a particular physical layout of client
-    and line ports on the terminal device (e.g., such as number of
-    ports per linecard, separate linecards for client and line ports,
-    etc.).";
-
-  oc-ext:openconfig-version "1.0.0";
-
-  revision "2017-07-08" {
-    description
-      "Adds test-signal";
-    reference "1.0.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes and additions to terminal optics model";
-    reference "0.4.0";
-  }
-
-
-  grouping terminal-input-optical-power {
-    description
-      "Reusable leaves related to input optical power";
-
-    leaf input-power {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The input optical power of this port in units of 0.01dBm.
-        If the port is an aggregate of multiple physical channels,
-        this attribute is the total power or sum of all channels.";
-    }
-  }
-
-  grouping terminal-ethernet-protocol-config {
-    description
-      "Configuration data for logical channels with Ethernet
-      framing";
-
-    //TODO:currently a empty container
-  }
-
-  grouping terminal-ethernet-protocol-state {
-    description
-      "Ethernet-specific counters when logical channel
-      is using Ethernet protocol framing, e.g., 10GE, 100GE";
-
-      uses oc-eth:ethernet-interface-state-counters;
-  }
-
-  grouping terminal-ethernet-protocol-top {
-    description
-      "Top-level grouping for data related to Ethernet protocol
-      framing on logical channels";
-
-    container ethernet {
-      description
-        "Top level container for data related to Ethernet framing
-        for the logical channel";
-
-      container config {
-        description
-          "Configuration data for Ethernet protocol framing on
-          logical channels";
-
-        uses terminal-ethernet-protocol-config;
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state data for Ethernet protocol framing
-          on logical channels";
-
-        uses terminal-ethernet-protocol-state;
-      }
-    }
-  }
-
-  grouping terminal-otn-protocol-config {
-    description
-      "OTU configuration when logical channel
-      framing is using an OTU protocol, e.g., OTU1, OTU3, etc.";
-
-    leaf tti-msg-transmit {
-      type string;
-      description
-        "Trail trace identifier (TTI) message transmitted";
-    }
-
-    leaf tti-msg-expected {
-      type string;
-      description
-        "Trail trace identifier (TTI) message expected";
-    }
-
-    leaf tti-msg-auto {
-      type boolean;
-      description
-        "Trail trace identifier (TTI) transmit message automatically
-        created.  If true, then setting a custom transmit message
-        would be invalid.";
-    }
-  }
-
-  grouping terminal-otn-protocol-counter-stats {
-    description
-      "Counter based statistics containers for logical channels
-      using OTN framing";
-
-    leaf errored-seconds {
-      type yang:counter64;
-      description
-        "The number of seconds that at least one errored blocks
-        occurs, at least one code violation occurs, loss of sync is
-        detected or loss of signal is detected";
-    }
-
-    leaf severely-errored-seconds {
-      type yang:counter64;
-      description
-        "The number of seconds that loss of frame is detected OR
-        the number of errored blocks, code violations, loss of sync
-        or loss of signal is detected exceeds a predefined
-        threshold";
-    }
-
-    leaf unavailable-seconds {
-      type yang:counter64;
-      description
-        "The number of seconds during which the link is unavailable";
-    }
-
-    leaf code-violations {
-      type yang:counter64;
-      description
-        "For ethernet or fiberchannel links, the number of 8b/10b
-        coding violations. For SONET/SDH, the number of BIP (bit
-        interleaved parity) errors";
-    }
-
-    leaf fec-uncorrectable-words {
-      type yang:counter64;
-      description
-        "The number words that were uncorrectable by the FEC";
-    }
-
-    leaf fec-corrected-bytes {
-      type yang:counter64;
-      description
-        "The number of bytes that were corrected by the FEC";
-    }
-
-    leaf fec-corrected-bits {
-      type yang:counter64;
-      description
-        "The number of bits that were corrected by the FEC";
-    }
-
-    leaf background-block-errors {
-      type yang:counter64;
-      description
-        "The number of background block errors";
-    }
-  }
-
-  grouping terminal-otn-protocol-multi-stats {
-    description
-      "Multi-value statistics containers for logical channels using
-      OTN framing (e.g., max, min, avg, instant)";
-
-    container pre-fec-ber {
-      description
-        "Bit error rate before forward error correction -- computed
-        value with 18 decimal precision. Note that decimal64
-        supports values as small as i x 10^-18 where i is an
-        integer. Values smaller than this should be reported as 0
-        to inidicate error free or near error free performance.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision18-ber;
-    }
-
-    container post-fec-ber {
-      description
-        "Bit error rate after forward error correction -- computed
-        value with 18 decimal precision. Note that decimal64
-        supports values as small as i x 10^-18 where i is an
-        integer. Values smaller than this should be reported as 0
-        to inidicate error free or near error free performance.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision18-ber;
-    }
-
-    container q-value {
-      description
-        "Quality value (factor) in dB of a channel with two
-        decimal precision. Values include the instantaneous,
-        average, minimum, and maximum statistics. If avg/min/max
-        statistics are not supported, the target is expected
-        to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dB;
-    }
-
-    container esnr {
-      description
-        "Electrical signal to noise ratio. Baud rate
-        normalized signal to noise ratio based on
-        error vector magnitude in dB with two decimal
-        precision. Values include the instantaneous, average,
-        minimum, and maximum statistics. If avg/min/max
-        statistics are not supported, the target is expected
-        to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dB;
-    }
-  }
-
-  grouping terminal-otn-protocol-state {
-    description
-      "OTU operational state when logical channel
-      framing is using an OTU protocol, e.g., OTU1, OTU3, etc.";
-
-
-      leaf tti-msg-recv {
-        type string;
-        description
-          "Trail trace identifier (TTI) message received";
-      }
-
-      leaf rdi-msg {
-        type string;
-        description
-          "Remote defect indication (RDI) message received";
-      }
-      uses terminal-otn-protocol-counter-stats;
-      uses terminal-otn-protocol-multi-stats;
-  }
-
-  grouping terminal-otn-protocol-top {
-    description
-      "Top-level grouping for data related to OTN protocol framing";
-
-    container otn {
-      description
-        "Top level container for OTU configuration when logical
-        channel framing is using an OTU protocol, e.g., OTU1, OTU3,
-        etc.";
-
-      container config {
-        description
-          "Configuration data for OTN protocol framing";
-
-        uses terminal-otn-protocol-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for OTN protocol PMs, statistics,
-          etc.";
-
-        uses terminal-otn-protocol-config;
-        uses terminal-otn-protocol-state;
-      }
-    }
-  }
-
-  grouping terminal-client-port-assignment-config {
-    description
-      "Configuration data for assigning physical client ports to
-      logical channels";
-
-    leaf index {
-      type uint32;
-      description
-        "Index of the client port assignment";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Descriptive name for the client port-to-logical channel
-        mapping";
-    }
-
-    leaf logical-channel {
-      type leafref {
-        path "/oc-opt-term:terminal-device/oc-opt-term:logical-channels" +
-          "/oc-opt-term:channel/oc-opt-term:index";
-      }
-      description
-        "Reference to the logical channel for this
-        assignment";
-    }
-
-    leaf allocation {
-      type decimal64 {
-        fraction-digits 3;
-      }
-      units Gbps;
-      description
-        "Allocation of the client physical port to the assigned
-        logical channel expressed in Gbps.  In most cases,
-        the full client physical port rate is assigned to a single
-        logical channel.";
-    }
-
-  }
-
-  grouping terminal-client-port-assignment-state {
-    description
-      "Operational state data for assigning physical client ports
-      to logical channels";
-  }
-
-  grouping terminal-client-port-assignment-top {
-    description
-      "Top-level grouping for the assigment of client physical ports
-      to logical channels";
-    //TODO: this grouping could be removed, instead reusing a common
-    //grouping for logical client assignment pointers
-
-    container logical-channel-assignments {
-      description
-        "Enclosing container for client port to logical client
-        mappings";
-
-      list assignment {
-        key "index";
-        description
-          "List of assignments to logical clients";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index of this logical client
-            assignment";
-        }
-
-        container config {
-          description
-            "Configuration data for the logical client assignment";
-
-          uses terminal-client-port-assignment-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for the logical client
-            assignment";
-
-          uses terminal-client-port-assignment-config;
-          uses terminal-client-port-assignment-state;
-        }
-      }
-    }
-  }
-
-
-  grouping terminal-logical-chan-assignment-config {
-    description
-      "Configuration data for assigning client logical channels
-      to line-side tributaries";
-
-    leaf index {
-      type uint32;
-      description
-        "Index of the current logical client channel to tributary
-        mapping";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Name assigned to the logical client channel";
-    }
-
-    leaf assignment-type {
-      type enumeration {
-        enum LOGICAL_CHANNEL {
-          description
-            "Subsequent channel is a logical channel";
-        }
-        enum OPTICAL_CHANNEL {
-          description
-            "Subsequent channel is a optical channel / carrier";
-        }
-      }
-      description
-        "Each logical channel element may be assigned to subsequent
-        stages of logical elements to implement further grooming, or
-        can be assigned to a line-side optical channel for
-        transmission.  Each assignment also has an associated
-        bandwidth allocation.";
-    }
-
-    leaf logical-channel {
-      type leafref {
-        path "/oc-opt-term:terminal-device/" +
-          "oc-opt-term:logical-channels/oc-opt-term:channel/" +
-          "oc-opt-term:index";
-      }
-      must "../assignment-type = 'LOGICAL_CHANNEL'" {
-        description
-          "The assignment-type must be set to LOGICAL_CHANNEL for
-          this leaf to be valid";
-      }
-      description
-         "Reference to another stage of logical channel elements.";
-    }
-
-    leaf optical-channel {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-platform:name";
-      }
-      must "../assignment-type = 'OPTICAL_CHANNEL'" {
-        description
-          "The assignment-type must be set to OPTICAL_CHANNEL for
-          this leaf to be valid";
-      }
-      description
-        "Reference to the line-side optical channel that should
-        carry the current logical channel element.  Use this
-        reference to exit the logical element stage.";
-    }
-
-    leaf allocation {
-      type decimal64 {
-        fraction-digits 3;
-      }
-      units Gbps;
-      description
-        "Allocation of the logical client channel to the tributary
-        or sub-channel, expressed in Gbps";
-    }
-
-  }
-
-  grouping terminal-logical-chan-assignment-state {
-    description
-      "Operational state data for the assignment of logical client
-      channel to line-side tributary";
-  }
-
-  grouping terminal-logical-chan-assignment-top {
-    description
-      "Top-level grouping for the list of logical client channel-to-
-      tributary assignments";
-
-    container logical-channel-assignments {
-      //TODO: we need a commonly understood name for this logical
-      //channel structure
-      description
-        "Enclosing container for tributary assignments";
-
-      list assignment {
-        key "index";
-        description
-          "Logical channel elements may be assigned directly to
-          optical channels for line-side transmission, or can be
-          further groomed into additional stages of logical channel
-          elements.  The grooming can multiplex (i.e., split the
-          current element into multiple elements in the subsequent
-          stage) or de-multiplex (i.e., combine the current element
-          with other elements into the same element in the subsequent
-          stage) logical elements in each stage.
-
-          Note that to support the ability to groom the logical
-          elements, the list of logical channel elements should be
-          populated with an entry for the logical elements at
-          each stage, starting with the initial assignment from the
-          respective client physical port.
-
-          Each logical element assignment consists of a pointer to
-          an element in the next stage, or to an optical channel,
-          along with a bandwidth allocation for the corresponding
-          assignment (e.g., to split or combine signal).";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index for the current tributary
-            assignment";
-        }
-
-        container config {
-          description
-            "Configuration data for tributary assignments";
-
-          uses terminal-logical-chan-assignment-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for tributary assignments";
-
-          uses terminal-logical-chan-assignment-config;
-          uses terminal-logical-chan-assignment-state;
-        }
-      }
-    }
-  }
-
-  grouping terminal-logical-channel-ingress-config {
-    description
-      "Configuration data for ingress signal to logical channel";
-
-    leaf transceiver {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-        "oc-platform:name";
-      }
-      description
-        "Reference to the transceiver carrying the input signal
-        for the logical channel.  If specific physical channels
-        are mapped to the logical channel (as opposed to all
-        physical channels carried by the transceiver), they can be
-        specified in the list of physical channel references.";
-    }
-
-    leaf-list physical-channel {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-transceiver:transceiver/" +
-          "oc-transceiver:physical-channels/" +
-          "oc-transceiver:channel/oc-transceiver:index";
-      }
-      description
-        "This list should be populated with references
-        to the client physical channels that feed this logical
-        channel from the transceiver specified in the 'transceiver'
-        leaf, which must be specified.  If this leaf-list is empty,
-        all physical channels in the transceiver are assumed to be
-        mapped to the logical channel.";
-    }
-  }
-
-  grouping terminal-logical-channel-ingress-state {
-    description
-      "Operational state data for ingress signal to logical channel";
-  }
-
-  grouping terminal-logical-channel-ingress-top {
-    description
-      "Top-level grouping for ingress signal to logical channel";
-
-    container ingress {
-      description
-        "Top-level container for specifying references to the
-        source of signal for the logical channel, either a
-        transceiver or individual physical channels";
-
-      container config {
-        description
-          "Configuration data for the signal source for the
-          logical channel";
-
-        uses terminal-logical-channel-ingress-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for the signal source for the
-          logical channel";
-
-        uses terminal-logical-channel-ingress-config;
-        uses terminal-logical-channel-ingress-state;
-      }
-    }
-  }
-
-  grouping terminal-logical-channel-config {
-    description
-      "Configuration data for logical channels";
-
-    leaf index {
-      type uint32;
-      description
-        "Index of the current logical channel";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Description of the logical channel";
-    }
-
-    leaf admin-state {
-      type oc-opt-types:admin-state-type;
-      description
-          "Sets the admin state of the logical channel";
-    }
-
-    leaf rate-class {
-      type identityref {
-        base oc-opt-types:TRIBUTARY_RATE_CLASS_TYPE;
-      }
-      description
-        "Rounded bit rate of the tributary signal. Exact bit rate
-        will be refined by protocol selection.";
-    }
-
-    leaf trib-protocol {
-      type identityref {
-        base oc-opt-types:TRIBUTARY_PROTOCOL_TYPE;
-      }
-      description
-        "Protocol framing of the tributary signal. If this
-        LogicalChannel is directly connected to a Client-Port or
-        Optical-Channel, this is the protocol of the associated port.
-        If the LogicalChannel is connected to other LogicalChannels,
-        the TributaryProtocol of the LogicalChannels will define a
-        specific mapping/demapping or multiplexing/demultiplexing
-        function.
-
-        Not all protocols are valid, depending on the value
-        of trib-rate-class.  The expectation is that the NMS
-        will validate that a correct combination of rate class
-        and protocol are specfied.  Basic combinations are:
-
-        rate class: 1G
-        protocols: 1GE
-
-        rate class: 2.5G
-        protocols: OC48, STM16
-
-        rate class: 10G
-        protocols:  10GE LAN, 10GE WAN, OC192, STM64, OTU2, OTU2e,
-                    OTU1e, ODU2, ODU2e, ODU1e
-
-        rate class: 40G
-        protocols:  40GE, OC768, STM256, OTU3, ODU3
-
-        rate class: 100G
-        protocols:  100GE, 100G MLG, OTU4, OTUCn, ODU4";
-    }
-
-    leaf logical-channel-type {
-      type identityref {
-        base oc-opt-types:LOGICAL_ELEMENT_PROTOCOL_TYPE;
-      }
-      description
-        "The type / stage of the logical element determines the
-        configuration and operational state parameters (PMs)
-        available for the logical element";
-    }
-
-    leaf loopback-mode {
-      type oc-opt-types:loopback-mode-type;
-      description
-        "Sets the loopback type on the logical channel. Setting the
-        mode to something besides NONE activates the loopback in
-        the specified mode.";
-    }
-
-    leaf test-signal {
-      type boolean;
-      description
-        "When enabled the logical channel's DSP will generate a pseudo
-        randmon bit stream (PRBS) which can be used during testing.";
-    }
-  }
-
-
-  grouping terminal-logical-channel-state {
-    description
-      "Operational state data for logical client channels";
-
-    leaf link-state {
-      type enumeration {
-        enum UP {
-          description
-            "Logical channel is operationally up";
-        }
-        enum DOWN {
-          description
-            "Logical channel is operationally down";
-        }
-      }
-      description
-        "Link-state of the Ethernet protocol on the logical channel,
-        SONET / SDH framed signal, etc.";
-    }
-
-  }
-
-  grouping terminal-logical-channel-top {
-    description
-      "Top-level grouping for logical channels";
-
-    container logical-channels {
-      description
-        "Enclosing container the list of logical channels";
-
-      list channel {
-        key "index";
-        description
-          "List of logical channels";
-        //TODO: naming for this list of logical elements should be
-        //revisited.
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "Reference to the index of the logical channel";
-        }
-
-        container config {
-          description
-            "Configuration data for logical channels";
-
-          uses terminal-logical-channel-config;
-
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for logical channels";
-
-          uses terminal-logical-channel-config;
-          uses terminal-logical-channel-state;
-        }
-
-        uses terminal-otn-protocol-top {
-          when "config/logical-channel-type = 'PROT_OTN'" {
-            description
-              "Include the OTN protocol data only when the
-              channel is using OTN framing.";
-          }
-        }
-        uses terminal-ethernet-protocol-top {
-          when "config/logical-channel-type = 'PROT_ETHERNET'" {
-            description
-              "Include the Ethernet protocol statistics only when the
-              protocol used by the link is Ethernet.";
-          }
-        }
-        uses terminal-logical-channel-ingress-top;
-        uses terminal-logical-chan-assignment-top;
-      }
-    }
-  }
-
-
-  grouping terminal-optical-channel-config {
-    description
-      "Configuration data for describing optical channels";
-
-    leaf frequency {
-      type oc-opt-types:frequency-type;
-      description
-        "Frequency of the optical channel, expressed in MHz";
-    }
-
-    leaf target-output-power {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "Target output optical power level of the optical channel,
-        expressed in increments of 0.01 dBm (decibel-milliwats)";
-    }
-
-    leaf operational-mode {
-      type uint16;
-      description
-        "Vendor-specific mode identifier -- sets the operational
-        mode for the channel.  The specified operational mode must
-        exist in the list of supported operational modes supplied
-        by the device";
-      //
-      // Ideally, this leaf should be a leafref to the supported
-      // operational modes, but YANG 1.0 does not allow a r/w
-      // leaf to be a leafref to a r/o leaf.
-    }
-
-
-    leaf line-port {
-      type leafref {
-        path "/oc-platform:components/oc-platform:component/" +
-          "oc-platform:name";
-      }
-      description
-        "Reference to the line-side physical port that carries
-        this optical channel.  The target port should be
-        a component in the physical inventory data model.";
-    }
-  }
-
-  grouping terminal-optical-channel-state {
-    description
-      "Operational state data for optical channels";
-
-    leaf group-id {
-      type uint32;
-      description
-        "If the device places constraints on which optical
-        channels must be managed together (e.g., transmitted on the
-        same line port), it can indicate that by setting the group-id
-        to the same value across related optical channels.";
-    }
-
-    uses oc-transceiver:optical-power-state;
-
-    container chromatic-dispersion {
-      description
-        "Chromatic Dispersion of an optical channel in
-        picoseconds / nanometer (ps/nm) as reported by receiver
-        with two decimal precision. Values include the instantaneous,
-        average, minimum, and maximum statistics. If avg/min/max
-        statistics are not supported, the target is expected to just
-        supply the instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision2-ps-nm;
-    }
-
-    container polarization-mode-dispersion {
-      description
-        "Polarization Mode Dispersion of an optical channel
-        in picosends (ps) as reported by receiver with two decimal
-        precision. Values include the instantaneous, average,
-        minimum, and maximum statistics. If avg/min/max statistics
-        are not supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision2-ps;
-    }
-
-    container second-order-polarization-mode-dispersion {
-      description
-        "Second Order Polarization Mode Dispersion of an optical
-        channel in picoseconds squared (ps^2) as reported by
-        receiver with two decimal precision. Values include the
-        instantaneous, average, minimum, and maximum statistics.
-        If avg/min/max statistics are not supported, the target
-        is expected to just supply the instant value";
-
-      uses oc-opt-types:avg-min-max-instant-stats-precision2-ps2;
-    }
-
-    container polarization-dependent-loss {
-      description
-        "Polarization Dependent Loss of an optical channel
-        in dB as reported by receiver with two decimal precision.
-        Values include the instantaneous, average, minimum, and
-        maximum statistics. If avg/min/max statistics are not
-        supported, the target is expected to just supply the
-        instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dB;
-    }
-  }
-
-  grouping terminal-optical-channel-top {
-    description
-      "Top-level grouping for optical channel data";
-
-    container optical-channel {
-      description
-        "Enclosing container for the list of optical channels";
-
-      container config {
-        description
-          "Configuration data for optical channels";
-
-        uses terminal-optical-channel-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for optical channels";
-
-        uses terminal-optical-channel-config;
-        uses terminal-optical-channel-state;
-      }
-    }
-  }
-
-  grouping terminal-operational-mode-config {
-    description
-      "Configuration data for vendor-supported operational modes";
-  }
-
-  grouping terminal-operational-mode-state {
-    description
-      "Operational state data for vendor-supported operational
-      modes";
-
-      leaf mode-id {
-        type uint16;
-        description
-          "Two-octet encoding of the vendor-defined operational
-          mode";
-      }
-
-      leaf description {
-        type string;
-        description
-          "Vendor-supplied textual description of the characteristics
-          of this operational mode to enable operators to select the
-          appropriate mode for the application.";
-      }
-
-      //TODO: examples of the kind of info that would be useful to
-      //report in the operational mode:
-      //Symbol rate (32G, 40G, 43G, 64G, etc.)
-      //Modulation (QPSK, 8-QAM, 16-QAM, etc.)
-      //Differential encoding (on, off/pilot symbol, etc)
-      //State of polarization tracking mode (default, med.
-      //high-speed, etc.)
-      //Pulse shaping (RRC, RC, roll-off factor)
-      //FEC mode (SD, HD, % OH)
-
-      leaf vendor-id {
-        type string;
-        description
-          "Identifier to represent the vendor / supplier of the
-          platform and the associated operational mode information";
-      }
-  }
-
-  grouping terminal-operational-mode-top {
-    description
-      "Top-level grouping for vendor-supported operational modes";
-
-    container operational-modes {
-      description
-        "Enclosing container for list of operational modes";
-
-      list mode {
-        key "mode-id";
-        config false;
-        description
-          "List of operational modes supported by the platform.
-          The operational mode provides a platform-defined summary
-          of information such as symbol rate, modulation, pulse
-          shaping, etc.";
-
-        leaf mode-id {
-          type leafref {
-            path "../state/mode-id";
-          }
-          description
-            "Reference to mode-id";
-        }
-
-        container config {
-          description
-            "Configuration data for operational mode";
-
-          uses terminal-operational-mode-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for the platform-defined
-            operational mode";
-
-          uses terminal-operational-mode-config;
-          uses terminal-operational-mode-state;
-        }
-      }
-    }
-  }
-
-
-  grouping terminal-device-config {
-    description
-      "Configuration data for transport terminal devices at a
-      device-wide level";
-  }
-
-  grouping terminal-device-state {
-    description
-      "Operational state data for transport terminal devices at a
-      device-wide level";
-  }
-
-  grouping terminal-device-top {
-    description
-      "Top-level grouping for data for terminal devices";
-
-    container terminal-device {
-      description
-        "Top-level container for the terminal device";
-
-      container config {
-        description
-          "Configuration data for global terminal-device";
-
-        uses terminal-device-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for global terminal device";
-
-        uses terminal-device-config;
-        uses terminal-device-state;
-      }
-
-      uses terminal-logical-channel-top;
-      uses terminal-operational-mode-top;
-
-    }
-  }
-
-  // data definition statements
-
-  uses terminal-device-top;
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    when "/oc-platform:components/oc-platform:component/" +
-      "oc-platform:state/oc-platform:type = 'OPTICAL_CHANNEL'" {
-      description
-        "Augment is active when component is of type
-        OPTICAL_CHANNEL";
-    }
-    description
-      "Adding optical channel data to physical inventory";
-
-    uses terminal-optical-channel-top {
-    }
-  }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-transport-line-common@2017-09-08.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-transport-line-common@2017-09-08.yang
deleted file mode 100644 (file)
index 813ffa6..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-module openconfig-transport-line-common {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/transport-line-common";
-
-  prefix "oc-line-com";
-
-  // import some basic types
-  import iana-if-type { prefix ift; }
-  import openconfig-extensions { prefix oc-ext; }
-  import openconfig-interfaces { prefix oc-if; }
-  import openconfig-platform { prefix oc-platform; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-transport-types { prefix oc-opt-types; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines common data elements for OpenConfig data
-    models for optical transport line system elements, such as
-    amplifiers and ROADMs (wavelength routers).";
-
-  oc-ext:openconfig-version "0.3.1";
-
-  revision "2017-09-08" {
-    description
-      "Correct bug with OSC interfaces";
-    reference "0.3.1";
-  }
-
-  revision "2017-07-08" {
-    description
-      "Add monitor port type and refs to hw ports, ";
-    reference "0.3.0";
-  }
-
-  revision "2017-03-28" {
-    description
-      "Added min/max/avg stats, status for media channels, OCM, APS";
-    reference "0.2.0";
-  }
-
-  revision "2016-03-31" {
-    description
-      "Initial public release";
-    reference "0.1.0";
-  }
-
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-  identity OPTICAL_LINE_PORT_TYPE {
-    description
-      "Type definition for optical node port types";
-  }
-
-  identity INGRESS {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Ingress port, corresponding to a signal entering
-      a line device such as an amplifier or wavelength
-      router.";
-  }
-
-  identity EGRESS {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Egress port, corresponding to a signal exiting
-      a line device such as an amplifier or wavelength
-      router.";
-  }
-
-  identity ADD {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Add port, corresponding to a signal injected
-      at a wavelength router.";
-  }
-
-  identity DROP {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Drop port, corresponding to a signal dropped
-      at a wavelength router.";
-  }
-
-  identity MONITOR {
-    base OPTICAL_LINE_PORT_TYPE;
-    description
-      "Monitor port, corresponding to a signal used by an optical
-      channel monitor. This is used to represent the connection
-      that a channel monitor port is connected to. This
-      connection may be via physical cable and faceplate ports or
-      internal to the device";
-  }
-
-  // typedef statements
-
-  // grouping statements
-
-   grouping optical-osc-config {
-    description
-      "Configuration data for OSC interfaces";
-
-    leaf interface {
-      type oc-if:base-interface-ref;
-      description
-        "Reference to an OSC interface";
-    }
-  }
-
-  grouping optical-osc-state {
-    description
-      "Operational state data for OSC interfaces";
-
-    container input-power {
-      description
-        "The input optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        the target is expected to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container output-power {
-      description
-        "The output optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        the target is expected to just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container laser-bias-current {
-      description
-        "The current applied by the system to the transmit laser to
-        achieve the output power. The current is expressed in mA
-        with up to one decimal precision. If avg/min/max statistics
-        are not supported, the target is expected to just supply
-        the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-mA;
-    }
-  }
-
-
-
-  grouping optical-osc-top {
-    description
-      "Top-level grouping for configuration and operational state
-      data for optical supervisory channels (OSC) for amplifiers,
-      WSS/ROADM, nodes, etc.";
-
-    container config {
-      description
-        "Configuration data for OSCs";
-
-      uses optical-osc-config;
-    }
-
-    container state {
-
-      config false;
-
-      description
-        "Operational state data for OSCs";
-
-      uses optical-osc-config;
-      uses optical-osc-state;
-    }
-  }
-
-
-  grouping transport-line-common-port-config {
-    description
-      "Configuration data for optical line ports";
-
-    leaf admin-state {
-      type oc-opt-types:admin-state-type;
-      description
-          "Sets the admin state of the optical-port";
-    }
-  }
-
-  grouping transport-line-common-port-state {
-    description
-      "Operational state data describing optical line ports";
-
-    leaf optical-port-type {
-      type identityref {
-        base OPTICAL_LINE_PORT_TYPE;
-      }
-      description
-        "Indicates the type of transport line port.  This is an
-        informational field that should be made available by the
-        device (e.g., in the openconfig-platform model).";
-    }
-
-    container input-power {
-      description
-        "The total input optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-
-    container output-power {
-      description
-        "The total output optical power of this port in units
-        of 0.01dBm. If avg/min/max statistics are not supported,
-        just supply the instant value";
-
-      uses oc-types:avg-min-max-instant-stats-precision2-dBm;
-    }
-  }
-
-  grouping transport-line-common-port-top {
-    description
-      "Top-level grouping ";
-
-    container optical-port {
-      description
-        "Top-level container ";
-
-      container config {
-
-        description
-          "Operational config data for optical line ports";
-
-        uses transport-line-common-port-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for optical line ports";
-
-        uses transport-line-common-port-config;
-        uses transport-line-common-port-state;
-      }
-    }
-  }
-
-
-
-  // data definition statements
-
-  // uses optical-osc-top;
-
-  // augment statements
-
-  augment "/oc-platform:components/oc-platform:component" {
-    description
-      "Adding optical line port data to platform model";
-
-    uses transport-line-common-port-top {
-      when "/oc-platform:components/oc-platform:component/" +
-        "oc-platform:state/oc-platform:type = 'PORT'" {
-        description
-          "Augment is active when component is of type
-          PORT";
-      }
-    }
-  }
-
-  //TODO:this is placeholder until SONET model is added
-  //to interfaces model
-  augment "/oc-if:interfaces/oc-if:interface" {
-    when "oc-if:config/oc-if:type = 'ift:sonet'" {
-      description "Additional interface configuration parameters when
-      the interface type is SONET/SDH";
-    }
-    description "Adds additional SONET/SDH-specific data to
-    osc model";
-
-    container sonet {
-      description
-        "Data related to SONET/SDH interfaces";
-    }
-  }
-
-  // rpc statements
-
-  // notification statements
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-transport-types@2017-08-16.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-transport-types@2017-08-16.yang
deleted file mode 100644 (file)
index 276f24b..0000000
+++ /dev/null
@@ -1,800 +0,0 @@
-module openconfig-transport-types {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/transport-types";
-
-  prefix "oc-opt-types";
-
-  import openconfig-platform-types { prefix oc-platform-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module contains general type definitions and identities
-    for optical transport models.";
-
-  oc-ext:openconfig-version "0.5.0";
-
-  revision "2017-08-16" {
-    description
-      "Added ODU Cn protocol type";
-    reference "0.5.0";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes and additions for terminal optics model";
-    reference "0.4.0";
-  }
-
-  // typedef statements
-
-  typedef frequency-type {
-    type uint64;
-    units "MHz";
-    description
-      "Type for optical spectrum frequency values";
-  }
-
-  typedef admin-state-type {
-    type enumeration {
-      enum ENABLED {
-        description
-        "Sets the channel admin state to enabled";
-      }
-      enum DISABLED {
-        description
-        "Sets the channel admin state to disabled";
-      }
-      enum MAINT {
-        description
-        "Sets the channel to maintenance / diagnostic mode";
-      }
-    }
-    description "Administrative state modes for
-    logical channels in the transponder model.";
-  }
-
-  typedef loopback-mode-type {
-    type enumeration {
-      enum NONE {
-        description
-          "No loopback is applied";
-      }
-      enum FACILITY {
-        description
-          "A loopback which directs traffic normally transmitted
-          on the port back to the device as if received on the same
-          port from an external source.";
-      }
-      enum TERMINAL {
-        description
-          "A loopback which directs traffic received from an external
-          source on the port back out the transmit side of the same
-          port.";
-      }
-    }
-    default NONE;
-    description
-      "Loopback modes for transponder logical channels";
-  }
-
-  // grouping statements
-
-  grouping avg-min-max-instant-stats-precision2-ps-nm {
-    description
-      "Common grouping for recording picosecond per nanometer
-      values with 2 decimal precision. Values include the
-      instantaneous, average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps-nm;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  grouping avg-min-max-instant-stats-precision2-ps {
-    description
-      "Common grouping for recording picosecond values with
-      2 decimal precision. Values include the instantaneous,
-      average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  grouping avg-min-max-instant-stats-precision2-ps2 {
-    description
-      "Common grouping for recording picosecond^2 values with
-      2 decimal precision. Values include the instantaneous,
-      average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units ps^2;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  grouping avg-min-max-instant-stats-precision18-ber {
-    description
-      "Common grouping for recording bit error rate (BER) values
-      with 18 decimal precision. Note that decimal64 supports
-      values as small as i x 10^-18 where i is an integer. Values
-      smaller than this should be reported as 0 to inidicate error
-      free or near error free performance. Values include the
-      instantaneous, average, minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 18;
-      }
-      units bit-errors-per-second;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-  }
-
-  // identity statements
-
-  identity TRIBUTARY_PROTOCOL_TYPE {
-    description
-      "Base identity for protocol framing used by tributary
-      signals.";
-  }
-
-  identity PROT_1GE {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "1G Ethernet protocol";
-  }
-
-  identity PROT_OC48 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OC48 protocol";
-  }
-
-  identity PROT_STM16 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "STM 16 protocol";
-  }
-
-  identity PROT_10GE_LAN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "10G Ethernet LAN protocol";
-  }
-
-  identity PROT_10GE_WAN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "10G Ethernet WAN protocol";
-  }
-
-  identity PROT_OC192 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OC 192 (9.6GB) port protocol";
-  }
-
-  identity PROT_STM64 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "STM 64 protocol";
-  }
-
-  identity PROT_OTU2 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 2 protocol";
-  }
-
-  identity PROT_OTU2E {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 2e protocol";
-  }
-
-  identity PROT_OTU1E {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 1e protocol";
-  }
-
-  identity PROT_ODU2 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 2 protocol";
-  }
-
-  identity PROT_ODU2E {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 2e protocol";
-  }
-
-  identity PROT_40GE {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "40G Ethernet port protocol";
-  }
-
-  identity PROT_OC768 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OC 768 protocol";
-  }
-
-  identity PROT_STM256 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "STM 256 protocol";
-  }
-
-  identity PROT_OTU3 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU 3 protocol";
-  }
-
-  identity PROT_ODU3 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 3 protocol";
-  }
-
-  identity PROT_100GE {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "100G Ethernet protocol";
-  }
-
-  identity PROT_100G_MLG {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "100G MLG protocol";
-  }
-
-  identity PROT_OTU4 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU4 signal protocol (112G) for transporting
-    100GE signal";
-  }
-
-  identity PROT_OTUCN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "OTU Cn protocol";
-  }
-
-  identity PROT_ODUCN {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU Cn protocol";
-  }
-
-  identity PROT_ODU4 {
-    base TRIBUTARY_PROTOCOL_TYPE;
-    description "ODU 4 protocol";
-  }
-
-  identity TRANSCEIVER_FORM_FACTOR_TYPE {
-    description
-      "Base identity for identifying the type of pluggable optic
-      transceiver (i.e,. form factor) used in a port.";
-  }
-
-  identity CFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "C form-factor pluggable, that can support up to a
-      100 Gb/s signal with 10x10G or 4x25G physical channels";
-  }
-
-  identity CFP2 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "1/2 C form-factor pluggable, that can support up to a
-      200 Gb/s signal with 10x10G, 4x25G, or 8x25G physical
-      channels";
-  }
-
-  identity CFP2_ACO {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "CFP2 analog coherent optics transceiver, supporting
-      100 Gb, 200Gb, and 250 Gb/s signal.";
-  }
-
-  identity CFP4 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "1/4 C form-factor pluggable, that can support up to a
-      100 Gb/s signal with 10x10G or 4x25G physical channels";
-  }
-
-  identity QSFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "OriginalQuad Small Form-factor Pluggable transceiver that can
-      support 4x1G physical channels.  Not commonly used.";
-  }
-
-  identity QSFP_PLUS {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Quad Small Form-factor Pluggable transceiver that can support
-      up to 4x10G physical channels.";
-  }
-
-  identity QSFP28 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "QSFP pluggable optic with support for up to 4x28G physical
-      channels";
-  }
-
-  identity CPAK {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Cisco CPAK transceiver supporting 100 Gb/s.";
-  }
-
-  identity SFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Small form-factor pluggable transceiver supporting up to
-      10 Gb/s signal";
-  }
-
-  identity SFP_PLUS {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Enhanced small form-factor pluggable transceiver supporting
-      up to 16 Gb/s signals, including 10 GbE and OTU2";
-  }
-
-  identity XFP {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "10 Gigabit small form factor pluggable transceiver supporting
-      10 GbE and OTU2";
-  }
-
-  identity X2 {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "10 Gigabit small form factor pluggable transceiver supporting
-      10 GbE using a XAUI inerface and 4 data channels.";
-  }
-
-  identity NON_PLUGGABLE {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Represents a port that does not require a pluggable optic,
-      e.g., with on-board optics like COBO";
-  }
-
-  identity OTHER {
-    base TRANSCEIVER_FORM_FACTOR_TYPE;
-    description
-      "Represents a transceiver form factor not otherwise listed";
-  }
-
-  identity FIBER_CONNECTOR_TYPE {
-    description
-      "Type of optical fiber connector";
-  }
-
-  identity SC_CONNECTOR {
-    base FIBER_CONNECTOR_TYPE;
-    description
-      "SC type fiber connector";
-  }
-
-  identity LC_CONNECTOR {
-    base FIBER_CONNECTOR_TYPE;
-    description
-      "LC type fiber connector";
-  }
-
-  identity MPO_CONNECTOR {
-    base FIBER_CONNECTOR_TYPE;
-    description
-      "MPO (multi-fiber push-on/pull-off) type fiber connector
-      1x12 fibers";
-  }
-
-  identity ETHERNET_PMD_TYPE {
-    description
-      "Ethernet compliance codes (PMD) supported by transceivers";
-  }
-
-  identity ETH_10GBASE_LRM {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_LRM";
-  }
-
-  identity ETH_10GBASE_LR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_LR";
-  }
-
-  identity ETH_10GBASE_ZR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_ZR";
-  }
-
-  identity ETH_10GBASE_ER {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_ER";
-  }
-
-  identity ETH_10GBASE_SR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 10GBASE_SR";
-  }
-
-  identity ETH_40GBASE_CR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_CR4";
-  }
-
-  identity ETH_40GBASE_SR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_SR4";
-  }
-
-  identity ETH_40GBASE_LR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_LR4";
-  }
-
-  identity ETH_40GBASE_ER4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_ER4";
-  }
-
-  identity ETH_40GBASE_PSM4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 40GBASE_PSM4";
-  }
-
-  identity ETH_4X10GBASE_LR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 4x10GBASE_LR";
-  }
-
-  identity ETH_4X10GBASE_SR {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 4x10GBASE_SR";
-  }
-
-  identity ETH_100G_AOC {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100G_AOC";
-  }
-
-  identity ETH_100G_ACC {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100G_ACC";
-  }
-
-  identity ETH_100GBASE_SR10 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_SR10";
-  }
-
-  identity ETH_100GBASE_SR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_SR4";
-  }
-
-  identity ETH_100GBASE_LR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_LR4";
-  }
-
-  identity ETH_100GBASE_ER4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_ER4";
-  }
-
-  identity ETH_100GBASE_CWDM4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_CWDM4";
-  }
-
-  identity ETH_100GBASE_CLR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_CLR4";
-  }
-
-  identity ETH_100GBASE_PSM4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_PSM4";
-  }
-
-  identity ETH_100GBASE_CR4 {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: 100GBASE_CR4";
-  }
-
-  identity ETH_UNDEFINED {
-    base ETHERNET_PMD_TYPE;
-    description "Ethernet compliance code: undefined";
-  }
-
-  identity SONET_APPLICATION_CODE {
-    description
-      "Supported SONET/SDH application codes";
-  }
-
-  identity VSR2000_3R2 {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: VSR2000_3R2";
-  }
-
-  identity VSR2000_3R3 {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: VSR2000_3R3";
-  }
-
-  identity VSR2000_3R5 {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: VSR2000_3R5";
-  }
-
-  identity SONET_UNDEFINED {
-    base SONET_APPLICATION_CODE;
-    description
-      "SONET/SDH application code: undefined";
-  }
-
-  identity OTN_APPLICATION_CODE {
-    description
-      "Supported OTN application codes";
-  }
-
-  identity P1L1_2D1 {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: P1L1_2D1";
-  }
-
-  identity P1S1_2D2 {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: P1S1_2D2";
-  }
-
-  identity P1L1_2D2 {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: P1L1_2D2";
-  }
-
-  identity OTN_UNDEFINED {
-    base OTN_APPLICATION_CODE;
-    description
-      "OTN application code: undefined";
-  }
-
-  identity TRIBUTARY_RATE_CLASS_TYPE {
-    description
-      "Rate of tributary signal _- identities will typically reflect
-      rounded bit rate.";
-  }
-
-  identity TRIB_RATE_1G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "1G tributary signal rate";
-  }
-
-  identity TRIB_RATE_2.5G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "2.5G tributary signal rate";
-  }
-
-  identity TRIB_RATE_10G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "10G tributary signal rate";
-  }
-
-  identity TRIB_RATE_40G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "40G tributary signal rate";
-  }
-
-  identity TRIB_RATE_100G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "100G tributary signal rate";
-  }
-
-  identity TRIB_RATE_150G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "150G tributary signal rate";
-  }
-
-  identity TRIB_RATE_200G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "200G tributary signal rate";
-  }
-
-  identity TRIB_RATE_250G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "250G tributary signal rate";
-  }
-
-  identity TRIB_RATE_300G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "300G tributary signal rate";
-  }
-
-  identity TRIB_RATE_400G {
-    base TRIBUTARY_RATE_CLASS_TYPE;
-    description
-      "400G tributary signal rate";
-  }
-
-  identity LOGICAL_ELEMENT_PROTOCOL_TYPE {
-    description
-      "Type of protocol framing used on the logical channel or
-      tributary";
-  }
-
-  identity PROT_ETHERNET {
-    base LOGICAL_ELEMENT_PROTOCOL_TYPE;
-    description
-      "Ethernet protocol framing";
-  }
-
-  identity PROT_OTN {
-    base LOGICAL_ELEMENT_PROTOCOL_TYPE;
-    description
-      "OTN protocol framing";
-  }
-
-  identity OPTICAL_CHANNEL {
-    base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT;
-    description
-      "Optical channels act as carriers for transport traffic
-      directed over a line system.  They are represented as
-      physical components in the physical inventory model.";
-  }
-
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-types@2018-01-16.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-types@2018-01-16.yang
deleted file mode 100644 (file)
index 94eb65d..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-module openconfig-types {
-  yang-version "1";
-
-  namespace "http://openconfig.net/yang/openconfig-types";
-
-  prefix "oc-types";
-
-  // import statements
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization
-    "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "This module contains a set of general type definitions that
-    are used across OpenConfig models. It can be imported by modules
-    that make use of these types.";
-
-  oc-ext:openconfig-version "0.4.0";
-
-  revision "2018-01-16" {
-    description
-      "Add interval to min/max/avg stats; add percentage stat";
-    reference "0.4.0";
-  }
-
-  revision "2017-08-16" {
-    description
-      "Apply fix for ieetfloat32 length parameter";
-    reference "0.3.3";
-  }
-
-  revision "2017-01-13" {
-    description
-      "Add ADDRESS_FAMILY identity";
-    reference "0.3.2";
-  }
-
-  revision "2016-11-14" {
-    description
-      "Correct length of ieeefloat32";
-    reference "0.3.1";
-  }
-
-  revision "2016-11-11" {
-    description
-      "Additional types - ieeefloat32 and routing-password";
-    reference "0.3.0";
-  }
-
-  revision "2016-05-31" {
-    description
-      "OpenConfig public release";
-    reference "0.2.0";
-  }
-
-  typedef percentage {
-    type uint8 {
-      range "0..100";
-    }
-    description
-      "Integer indicating a percentage value";
-  }
-
-  typedef std-regexp {
-    type string;
-    description
-      "This type definition is a placeholder for a standard
-      definition of a regular expression that can be utilised in
-      OpenConfig models. Further discussion is required to
-      consider the type of regular expressions that are to be
-      supported. An initial proposal is POSIX compatible.";
-  }
-
-  typedef timeticks64 {
-    type uint64;
-    description
-     "This type is based on the timeticks type defined in
-     RFC 6991, but with 64-bit width.  It represents the time,
-     modulo 2^64, in hundredths of a second between two epochs.";
-    reference
-      "RFC 6991 - Common YANG Data Types";
-  }
-
-  typedef ieeefloat32 {
-    type binary {
-      length "4";
-    }
-    description
-      "An IEEE 32-bit floating point number. The format of this number
-      is of the form:
-        1-bit  sign
-        8-bit  exponent
-        23-bit fraction
-      The floating point value is calculated using:
-        (-1)**S * 2**(Exponent-127) * (1+Fraction)";
-  }
-
-  typedef routing-password {
-    type string;
-    description
-      "This type is indicative of a password that is used within
-      a routing protocol which can be returned in plain text to the
-      NMS by the local system. Such passwords are typically stored
-      as encrypted strings. Since the encryption used is generally
-      well known, it is possible to extract the original value from
-      the string - and hence this format is not considered secure.
-      Leaves specified with this type should not be modified by
-      the system, and should be returned to the end-user in plain
-      text. This type exists to differentiate passwords, which
-      may be sensitive, from other string leaves. It could, for
-      example, be used by the NMS to censor this data when
-      viewed by particular users.";
-  }
-
-  typedef stat-interval {
-    type uint64;
-    units nanoseconds;
-    description
-      "A time interval over which a set of statistics is computed.
-      A common usage is to report the interval over which
-      avg/min/max stats are computed and reported.";
-  }
-
-  grouping stat-interval-state {
-    description
-      "Reusable leaf definition for stats computation interval";
-
-    leaf interval {
-      type oc-types:stat-interval;
-      description
-        "The time interval over which the min/max/average statistics
-        are computed by the system.";
-    }
-  }
-
-  grouping avg-min-max-stats-precision1 {
-    description
-      "Common nodes for recording average, minimum, and
-      maximum values for a statistic.  These values all have
-      fraction-digits set to 1.";
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The maximum value of the statitic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-precision1 {
-    description
-      "Common grouping for recording an instantaneous statistic value
-      in addition to avg-min-max stats";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    uses avg-min-max-stats-precision1;
-  }
-
-  grouping avg-min-max-instant-stats-precision2-dB {
-    description
-      "Common grouping for recording dB values with 2 decimal
-      precision. Values include the instantaneous, average,
-      minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-precision2-dBm {
-    description
-      "Common grouping for recording dBm values with 2 decimal
-      precision. Values include the instantaneous, average,
-      minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-precision2-mA {
-    description
-      "Common grouping for recording mA values with 2 decimal
-      precision. Values include the instantaneous, average,
-      minimum, and maximum statistics";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The arithmetic mean value of the statistic over the
-        sampling period.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The minimum value of the statistic over the sampling
-        period";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The maximum value of the statistic over the sampling
-        period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  grouping avg-min-max-instant-stats-pct {
-    description
-      "Common grouping for percentage statistics.";
-
-    leaf instant {
-      type oc-types:percentage;
-      description
-        "The instantaneous percentage value.";
-    }
-
-    leaf avg {
-      type oc-types:percentage;
-      description
-        "The arithmetic mean value of the percentage measure of the
-        statistic over the sampling period.";
-    }
-
-    leaf min {
-      type oc-types:percentage;
-      description
-        "The minimum value of the percentage measure of the
-        statistic over the sampling period";
-    }
-
-    leaf max {
-      type oc-types:percentage;
-      description
-        "The maximum value of the percentage measure of the
-        statistic over the sampling period";
-    }
-
-    uses stat-interval-state;
-  }
-
-  identity ADDRESS_FAMILY {
-    description
-      "A base identity for all address families";
-  }
-
-  identity IPV4 {
-    base ADDRESS_FAMILY;
-    description
-      "The IPv4 address family";
-  }
-
-  identity IPV6 {
-    base ADDRESS_FAMILY;
-    description
-      "The IPv6 address family";
-  }
-
-  identity MPLS {
-    base ADDRESS_FAMILY;
-    description
-      "The MPLS address family";
-  }
-
-  identity L2_ETHERNET {
-    base ADDRESS_FAMILY;
-    description
-      "The 802.3 Ethernet address family";
-  }
-
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-yang-types@2017-07-30.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-yang-types@2017-07-30.yang
deleted file mode 100644 (file)
index 749fac4..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-module openconfig-yang-types {
-
-  yang-version "1";
-  namespace "http://openconfig.net/yang/types/yang";
-  prefix "oc-yang";
-
-  import openconfig-extensions { prefix "oc-ext"; }
-
-  organization
-    "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module contains a set of extension types to the
-    YANG builtin types that are used across multiple
-    OpenConfig models.
-
-    Portions of this code were derived from IETF RFC 6021.
-    Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "0.1.2";
-
-  revision 2017-07-30 {
-    description
-      "Fixed unprintable character";
-    reference "0.1.2";
-  }
-
-  revision 2017-04-03 {
-    description
-      "Update copyright notice.";
-    reference "0.1.1";
-  }
-
-  revision 2017-01-26 {
-    description
-      "Initial module for inet types";
-    reference "0.1.0";
-  }
-
-  typedef dotted-quad {
-    type string {
-      pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|'       +
-              '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' +
-              '[0-9]|25[0-5])$';
-    }
-    description
-      "An unsigned 32-bit integer expressed as a dotted quad. The
-      format is four octets written as decimal numbers separated
-      with a period character.";
-  }
-
-  typedef hex-string {
-    type string {
-      pattern '^[0-9a-fA-F]*$';
-    }
-    description
-      "A string consisting of a hexadecimal characters.";
-  }
-
-  typedef counter32 {
-    type uint32;
-    description
-
-      "A 32-bit counter. A counter value is a monotonically increasing
-      value which is used to express a count of a number of
-      occurrences of a particular event or entity. When the counter
-      reaches its maximum value, in this case 2^32-1, it wraps to 0.
-
-      Discontinuities in the counter are generally triggered only when
-      the counter is reset to zero.";
-  }
-
-  typedef counter64 {
-    type uint64;
-    description
-
-      "A 64-bit counter. A counter value is a monotonically increasing
-      value which is used to express a count of a number of
-      occurrences of a particular event or entity. When a counter64
-      reaches its maximum value, 2^64-1, it loops to zero.
-      Discontinuities in a counter are generally triggered only when
-      the counter is reset to zero, through operator or system
-      intervention.";
-  }
-
-  typedef date-and-time {
-    type string {
-      pattern
-        '^[0-9]{4}\-[0-9]{2}\-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}' +
-        '(\.[0-9]+)?Z[+-][0-9]{2}:[0-9]{2}$';
-    }
-    description
-      "A date and time, expressed in the format described in RFC3339.
-      That is to say:
-
-      YYYY-MM-DDTHH:MM:SSZ+-hh:mm
-
-      where YYYY is the year, MM is the month expressed as a two-digit
-      month (zero padding if required), DD is the day of the month,
-      expressed as a two digit value. T is the literal character 'T',
-      HH is the hour of the day expressed as a two digit number, using
-      the 24-hour clock, MM is the minute of the hour expressed as a
-      two digit number. Z is the literal character 'Z', followed by a
-      timezone offset expressed in hours (hh) and minutes (mm), both
-      expressed as two digit numbers. The time offset is specified as
-      a positive or negative offset to UTC using the '+' or '-'
-      character preceding the offset.
-
-      Optionally, fractional seconds can be expressed after the minute
-      of the hour as a decimal number of unspecified precision
-      reflecting fractions of a second.";
-    reference
-      "RFC3339 - Date and Time on the Internet: Timestamps";
-  }
-
-  typedef gauge64 {
-    type uint64;
-    description
-      "A gauge value may increase or decrease - and reflects a value
-      at a particular point in time. If the value of the variable
-      being modeled using the gauge exceeds its maximum - 2^64-1 in
-      this case - the gauge is set to its maximum value.";
-  }
-
-  typedef phys-address {
-    type string {
-      pattern '^([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?$';
-    }
-    description
-      "A physical layer address, expressed as a series of pairs of
-      hexadecimal digits.";
-  }
-
-  typedef mac-address {
-    type string {
-      pattern '^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$';
-    }
-    description
-      "An IEEE 802 MAC address";
-  }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/CreateDeviceFromXMLFileTest.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/CreateDeviceFromXMLFileTest.java
deleted file mode 100644 (file)
index 3b1ad87..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.test;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultDeviceFactory;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Test to create {@link OrgOpenroadmDevice} object
- * from xml file or String using Yangtools
- *
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-@RunWith(Parameterized.class)
-public class CreateDeviceFromXMLFileTest {
-    private static final Logger LOG = LoggerFactory.getLogger(CreateDeviceFromXMLFileTest.class);
-    private static final String DEVICE_OPER_IN = "src/test/resources/oper-ROADMA.xml";
-    private String xml;
-
-
-    public CreateDeviceFromXMLFileTest(String xmlData) {
-        this.xml = xmlData;
-    }
-
-    @Parameterized.Parameters
-    public static Collection<Object[]> stringXML() {
-        return Arrays.asList(new Object[][]{
-            {DeviceOperToConfig.getDeviceFromXML(DeviceOperToConfig.operToConfig())}
-//                {DeviceOperToConfig.operToConfig()}
-
-        });
-    }
-
-    /**
-     * This test  create instance of
-     * {@link OrgOpenroadmDevice} with String xml
-     * from {@link DeviceOperToConfig#operToConfig()}
-     * function as parameters.
-     *
-     * @throws NullPointerException
-     */
-    @Test
-    public void createDeviceFromString() throws NullPointerException {
-        OrgOpenroadmDevice result = null;
-        LOG.info("Parameterized string is : {}", xml);
-        DataStoreContext dataStoreContextUtil = new DataStoreContextImpl();
-        DefaultDeviceFactory defaultDeviceFactory = new DefaultDeviceFactory();
-        result = defaultDeviceFactory.createDefaultDevice(dataStoreContextUtil,xml);
-        if (result != null) {
-            LOG.info("result info : {}", result.getInfo().getNodeId());
-            Assert.assertEquals("ROADMA", result.getInfo().getNodeId());
-        }
-        LOG.info("Test Succeed");
-    }
-
-
-    /**
-     * This test create Device from File
-     * located at {@link CreateDeviceFromXMLFileTest#DEVICE_OPER_IN}.
-     *
-     * @throws NullPointerException
-     */
-    @Test
-    public void createDeviceFromFile() throws NullPointerException{
-        LOG.info("test createDeviceFromFile ...");
-        OrgOpenroadmDevice result = null;
-        result = null;
-        File device_data = new File(DEVICE_OPER_IN);
-        DataStoreContext dataStoreContextUtil = new DataStoreContextImpl();
-        DefaultDeviceFactory defaultDeviceFactory = new DefaultDeviceFactory();
-        result = defaultDeviceFactory.createDefaultDevice(dataStoreContextUtil,device_data);
-        if (result != null) {
-            LOG.info("result info : {}", result.getInfo().getNodeId());
-            Assert.assertEquals("ROADMA", result.getInfo().getNodeId());
-        }
-        LOG.info("Test Succeed");
-    }
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/CreatePmListFromXMLFileTest.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/CreatePmListFromXMLFileTest.java
deleted file mode 100644 (file)
index e492035..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.test;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultPmListFactory;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-
-import java.io.File;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.CurrentPmList;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Test to create {@link CurrentPmlist} object
- * from xml file or String using Yangtools
- *
- * @author Martial COULIBALY ( martial.coulibaly@gfi.com ) on behalf of Orange
- */
-public class CreatePmListFromXMLFileTest {
-    private static final Logger LOG = LoggerFactory.getLogger(CreatePmListFromXMLFileTest.class);
-    private static final String PM_LIST_OPER_IN = "src/test/resources/oper-ROADMA-cpm.xml";
-
-    /**
-     * This test create Device from File
-     * located at {@link CreatePmListFromXMLFileTest#DEVICE_OPER_IN}.
-     *
-     * @throws NullPointerException
-     */
-    @Test
-    public void createPmListFromFile() throws NullPointerException{
-        LOG.info("test createPmListFromFile ...");
-        CurrentPmList result = null;
-        File pm_list_data = new File(PM_LIST_OPER_IN);
-        DataStoreContext dataStoreContextUtil = new DataStoreContextImpl();
-        DefaultPmListFactory defaultPmListFactory = new DefaultPmListFactory();
-        result = defaultPmListFactory.createDefaultPmList(dataStoreContextUtil,pm_list_data);
-        if (result != null) {
-            LOG.info("result pm list size : {}", result.getCurrentPmEntry().size());
-            Assert.assertEquals("result pm list size should be 4",4, result.getCurrentPmEntry().size());
-        }
-        LOG.info("Test Succeed");
-    }
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/DeviceOperToConfig.java b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/java/io/fd/honeycomb/transportpce/device/test/DeviceOperToConfig.java
deleted file mode 100644 (file)
index 9f1c577..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 2018 Orange and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.fd.honeycomb.transportpce.device.test;
-
-import io.fd.honeycomb.transportpce.device.tools.DefaultDeviceFactory;
-import io.fd.honeycomb.transportpce.device.tools.DefaultPmListFactory;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContext;
-import io.fd.honeycomb.transportpce.test.common.DataStoreContextImpl;
-
-import java.io.File;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.CurrentPmList;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Converts XML Data operation file  to Configuration file.
- *
- * @author Martial COULIBALY ( mcoulibaly.ext@orange.com ) on behalf of Orange
- */
-public class DeviceOperToConfig {
-    private static final Logger LOG = LoggerFactory.getLogger(DeviceOperToConfig.class);
-    private static final String DEVICE_OPER = "src/test/resources/oper-ROADMA.xml";
-    private static final String PM_LIST_OPER = "src/test/resources/oper-ROADMA-cpm.xml";
-    private static final String CONFIG_XSL = "src/main/resources/honeycomb-minimal-resources/config/device/config.xsl";
-    private static final String DEVICE_XSL = "src/main/resources/honeycomb-minimal-resources/config/device/OperToConfig.xsl";
-
-
-
-    /**
-     * Convert data xml to config xml device.
-     *
-     * @return String result
-     */
-    public static String operToConfig() {
-        String result =null;
-        LOG.info("process to transform xml file {}",DEVICE_OPER);
-        TransformerFactory factory = TransformerFactory.newInstance();
-        Source xslt = new StreamSource(new File(DEVICE_XSL));
-        try {
-           StringWriter tmpwriter = new StringWriter();
-            LOG.info("transforming xml data to config device ...");
-            Transformer transformer = factory.newTransformer(xslt);
-            Source text = new StreamSource(new File(DEVICE_OPER));
-            transformer.transform(text, new StreamResult(tmpwriter));
-            result = tmpwriter.toString();
-        } catch (TransformerException e) {
-            LOG.error("Transformer failed ", e);
-        }
-        return result;
-    }
-
-    public static String getDeviceFromXML(String xml) {
-        String config_result =null;
-        LOG.info("process to transform xml file to config data");
-        TransformerFactory factory = TransformerFactory.newInstance();
-        Source xslt = new StreamSource(new File(CONFIG_XSL));
-        Transformer transformer;
-        Source text;
-        StringWriter device_config = new StringWriter();
-        try {
-            LOG.info("transforming xml string to config device ...");
-            transformer = factory.newTransformer(xslt);
-            text = new StreamSource(new StringReader(xml));
-            transformer.transform(text, new StreamResult(device_config));
-            config_result = device_config.toString();
-            LOG.info(config_result);
-        } catch (TransformerException e) {
-            LOG.error("Transformer failed ");
-        }
-        return config_result;
-    }
-
-    public static void createDeviceFromString(String xml) throws NullPointerException {
-        OrgOpenroadmDevice result = null;
-        LOG.info("Parameterized string is : {}", xml);
-        DataStoreContext dataStoreContextUtil = new DataStoreContextImpl();
-        DefaultDeviceFactory defaultDeviceFactory = new DefaultDeviceFactory();
-        result = defaultDeviceFactory.createDefaultDevice(dataStoreContextUtil,xml);
-        if (result != null) {
-            LOG.info("result info : {}", result.getInfo().getNodeId());
-        } else {
-            LOG.error("failed !");
-        }
-
-    }
-
-    public static void createPmListFromFile() throws NullPointerException {
-        CurrentPmList result = null;
-        DataStoreContext dataStoreContextUtil = new DataStoreContextImpl();
-        DefaultPmListFactory defaultDeviceFactory = new DefaultPmListFactory();
-        result = defaultDeviceFactory.createDefaultPmList(dataStoreContextUtil,new File(PM_LIST_OPER));
-        if (result != null) {
-            LOG.info("result pm list size : {}", result.getCurrentPmEntry().size());
-        } else {
-            LOG.error("failed !");
-        }
-
-    }
-
-    public static void main(String[] args) {
-        DeviceOperToConfig.createPmListFromFile();
-
-    }
-}
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA-cpm.xml b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA-cpm.xml
deleted file mode 100644 (file)
index a2c543b..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-<currentPmlist xmlns="http://org/openroadm/pm">
-  <currentPm>
-    <id>18</id>
-    <retrievalTime>2018-06-07T13:22:58+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.7</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.3</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>49.9</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>19</id>
-    <retrievalTime>2018-06-07T13:23:00+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.7</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.3</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>50.2</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>10</id>
-    <retrievalTime>2018-06-07T13:23:02+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>5.4</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-6.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>44.4</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>11</id>
-    <retrievalTime>2018-06-07T13:23:04+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>5.4</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-6.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>44.4</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-</currentPmlist>
-</data>
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA-full.xml b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA-full.xml
deleted file mode 100644 (file)
index 90dce35..0000000
+++ /dev/null
@@ -1,4015 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <netconf xmlns="urn:ietf:params:xml:ns:netmod:notification">
-      <streams>
-          <stream>
-              <name>OPENROADM</name>
-          </stream>
-    </streams>
-  </netconf>
-  <org-openroadm-device xmlns="http://org/openroadm/device">
-    <info>
-      <node-id>ROADMA</node-id>
-      <node-number>2</node-number>
-      <node-type>rdm</node-type>
-      <clli>NodeA</clli>
-      <vendor>vendorA</vendor>
-      <model>2</model>
-      <serial-id>0002</serial-id>
-      <ipAddress>127.0.0.12</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.12</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <current-defaultGateway>127.0.0.20</current-defaultGateway>
-      <macAddress>aa:aa:aa:aa:aa:aa</macAddress>
-      <softwareVersion>1</softwareVersion>
-      <max-degrees>2</max-degrees>
-      <max-srgs>9</max-srgs>
-    </info>
-    <users>
-      <user>
-        <name>openroadm</name>
-        <password>openroadm</password>
-        <group>sudo</group>
-      </user>
-    </users>
-    <pending-sw>
-      <sw-version>1</sw-version>
-    </pending-sw>
-    <shelves>
-      <shelf-name>sdegE</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>2</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00002</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degE</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>2/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <shelves>
-      <shelf-name>sdegW</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>3</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00003</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>3/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-        <shelves>
-      <shelf-name>ssrg</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>4</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00004</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>srgW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>4/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <circuit-packs>
-      <circuit-pack-name>2/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss1</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>2/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>2/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHE</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss2</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>3/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>3/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHW</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>4/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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-CP-TXRX</logical-connection-point>
-      </ports>
-    </circuit-packs>
-    <interface>
-      <name>eth-2/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>2/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-    <interface>
-      <name>eth-3/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>3/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-    <protocols>
-      <lldp xmlns="http://org/openroadm/lldp">
-        <global-config>
-          <adminStatus>enable</adminStatus>
-          <msgTxInterval>20</msgTxInterval>
-          <msgTxHoldMultiplier>4</msgTxHoldMultiplier>
-        </global-config>
-        <port-config>
-          <ifName>eth-2/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-        <port-config>
-          <ifName>eth-3/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-        <nbr-list>
-          <if-name>
-            <ifName>eth-2/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMC</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-3/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-          <if-name>
-            <ifName>eth-3/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMB</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-2/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-        </nbr-list>
-      </lldp>
-    </protocols>
-    <wavelength-map>
-      <wavelengths>
-        <wavelength-number>1</wavelength-number>
-        <center-frequency>196.1</center-frequency>
-        <wavelength>1528.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>2</wavelength-number>
-        <center-frequency>196.05</center-frequency>
-        <wavelength>1529.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>3</wavelength-number>
-        <center-frequency>196.0</center-frequency>
-        <wavelength>1529.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>4</wavelength-number>
-        <center-frequency>195.95</center-frequency>
-        <wavelength>1529.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>5</wavelength-number>
-        <center-frequency>195.9</center-frequency>
-        <wavelength>1530.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>6</wavelength-number>
-        <center-frequency>195.85</center-frequency>
-        <wavelength>1530.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>7</wavelength-number>
-        <center-frequency>195.8</center-frequency>
-        <wavelength>1531.11</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>8</wavelength-number>
-        <center-frequency>195.75</center-frequency>
-        <wavelength>1531.5</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>9</wavelength-number>
-        <center-frequency>195.7</center-frequency>
-        <wavelength>1531.89</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>10</wavelength-number>
-        <center-frequency>195.65</center-frequency>
-        <wavelength>1532.28</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>11</wavelength-number>
-        <center-frequency>195.6</center-frequency>
-        <wavelength>1532.67</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>12</wavelength-number>
-        <center-frequency>195.55</center-frequency>
-        <wavelength>1533.06</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>13</wavelength-number>
-        <center-frequency>195.5</center-frequency>
-        <wavelength>1533.45</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>14</wavelength-number>
-        <center-frequency>195.45</center-frequency>
-        <wavelength>1533.84</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>15</wavelength-number>
-        <center-frequency>195.4</center-frequency>
-        <wavelength>1534.23</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>16</wavelength-number>
-        <center-frequency>195.35</center-frequency>
-        <wavelength>1534.62</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>17</wavelength-number>
-        <center-frequency>195.3</center-frequency>
-        <wavelength>1535.01</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>18</wavelength-number>
-        <center-frequency>195.25</center-frequency>
-        <wavelength>1535.4</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>19</wavelength-number>
-        <center-frequency>195.2</center-frequency>
-        <wavelength>1535.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>20</wavelength-number>
-        <center-frequency>195.15</center-frequency>
-        <wavelength>1536.18</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>21</wavelength-number>
-        <center-frequency>195.1</center-frequency>
-        <wavelength>1536.57</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>22</wavelength-number>
-        <center-frequency>195.05</center-frequency>
-        <wavelength>1536.96</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>23</wavelength-number>
-        <center-frequency>195.0</center-frequency>
-        <wavelength>1537.35</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>24</wavelength-number>
-        <center-frequency>194.95</center-frequency>
-        <wavelength>1537.74</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>25</wavelength-number>
-        <center-frequency>194.9</center-frequency>
-        <wavelength>1538.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>26</wavelength-number>
-        <center-frequency>194.85</center-frequency>
-        <wavelength>1538.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>27</wavelength-number>
-        <center-frequency>194.8</center-frequency>
-        <wavelength>1538.91</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>28</wavelength-number>
-        <center-frequency>194.75</center-frequency>
-        <wavelength>1539.3</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>29</wavelength-number>
-        <center-frequency>194.7</center-frequency>
-        <wavelength>1539.69</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>30</wavelength-number>
-        <center-frequency>194.65</center-frequency>
-        <wavelength>1540.08</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>31</wavelength-number>
-        <center-frequency>194.6</center-frequency>
-        <wavelength>1540.47</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>32</wavelength-number>
-        <center-frequency>194.55</center-frequency>
-        <wavelength>1540.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>33</wavelength-number>
-        <center-frequency>194.5</center-frequency>
-        <wavelength>1541.25</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>34</wavelength-number>
-        <center-frequency>194.45</center-frequency>
-        <wavelength>1541.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>35</wavelength-number>
-        <center-frequency>194.4</center-frequency>
-        <wavelength>1542.03</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>36</wavelength-number>
-        <center-frequency>194.35</center-frequency>
-        <wavelength>1542.42</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>37</wavelength-number>
-        <center-frequency>194.3</center-frequency>
-        <wavelength>1542.81</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>38</wavelength-number>
-        <center-frequency>194.25</center-frequency>
-        <wavelength>1543.2</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>39</wavelength-number>
-        <center-frequency>194.2</center-frequency>
-        <wavelength>1543.59</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>40</wavelength-number>
-        <center-frequency>194.15</center-frequency>
-        <wavelength>1543.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>41</wavelength-number>
-        <center-frequency>194.1</center-frequency>
-        <wavelength>1544.37</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>42</wavelength-number>
-        <center-frequency>194.05</center-frequency>
-        <wavelength>1544.76</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>43</wavelength-number>
-        <center-frequency>194.0</center-frequency>
-        <wavelength>1545.15</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>44</wavelength-number>
-        <center-frequency>193.95</center-frequency>
-        <wavelength>1545.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>45</wavelength-number>
-        <center-frequency>193.9</center-frequency>
-        <wavelength>1545.93</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>46</wavelength-number>
-        <center-frequency>193.85</center-frequency>
-        <wavelength>1546.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>47</wavelength-number>
-        <center-frequency>193.8</center-frequency>
-        <wavelength>1546.71</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>48</wavelength-number>
-        <center-frequency>193.75</center-frequency>
-        <wavelength>1547.1</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>49</wavelength-number>
-        <center-frequency>193.7</center-frequency>
-        <wavelength>1547.49</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>50</wavelength-number>
-        <center-frequency>193.65</center-frequency>
-        <wavelength>1547.88</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>51</wavelength-number>
-        <center-frequency>193.6</center-frequency>
-        <wavelength>1548.27</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>52</wavelength-number>
-        <center-frequency>193.55</center-frequency>
-        <wavelength>1548.66</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>53</wavelength-number>
-        <center-frequency>193.5</center-frequency>
-        <wavelength>1549.05</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>54</wavelength-number>
-        <center-frequency>193.45</center-frequency>
-        <wavelength>1549.44</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>55</wavelength-number>
-        <center-frequency>193.4</center-frequency>
-        <wavelength>1549.83</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>56</wavelength-number>
-        <center-frequency>193.35</center-frequency>
-        <wavelength>1550.22</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>57</wavelength-number>
-        <center-frequency>193.3</center-frequency>
-        <wavelength>1550.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>58</wavelength-number>
-        <center-frequency>193.25</center-frequency>
-        <wavelength>1551.0</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>59</wavelength-number>
-        <center-frequency>193.2</center-frequency>
-        <wavelength>1551.39</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>60</wavelength-number>
-        <center-frequency>193.15</center-frequency>
-        <wavelength>1551.78</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>61</wavelength-number>
-        <center-frequency>193.1</center-frequency>
-        <wavelength>1552.17</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>62</wavelength-number>
-        <center-frequency>193.05</center-frequency>
-        <wavelength>1552.56</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>63</wavelength-number>
-        <center-frequency>193.0</center-frequency>
-        <wavelength>1552.95</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>64</wavelength-number>
-        <center-frequency>192.95</center-frequency>
-        <wavelength>1553.34</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>65</wavelength-number>
-        <center-frequency>192.9</center-frequency>
-        <wavelength>1553.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>66</wavelength-number>
-        <center-frequency>192.85</center-frequency>
-        <wavelength>1554.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>67</wavelength-number>
-        <center-frequency>192.8</center-frequency>
-        <wavelength>1554.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>68</wavelength-number>
-        <center-frequency>192.75</center-frequency>
-        <wavelength>1554.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>69</wavelength-number>
-        <center-frequency>192.7</center-frequency>
-        <wavelength>1555.29</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>70</wavelength-number>
-        <center-frequency>192.65</center-frequency>
-        <wavelength>1555.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>71</wavelength-number>
-        <center-frequency>192.6</center-frequency>
-        <wavelength>1556.07</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>72</wavelength-number>
-        <center-frequency>192.55</center-frequency>
-        <wavelength>1556.46</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>73</wavelength-number>
-        <center-frequency>192.5</center-frequency>
-        <wavelength>1556.85</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>74</wavelength-number>
-        <center-frequency>192.45</center-frequency>
-        <wavelength>1557.24</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>75</wavelength-number>
-        <center-frequency>192.4</center-frequency>
-        <wavelength>1557.63</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>76</wavelength-number>
-        <center-frequency>192.35</center-frequency>
-        <wavelength>1558.02</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>77</wavelength-number>
-        <center-frequency>192.3</center-frequency>
-        <wavelength>1558.41</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>78</wavelength-number>
-        <center-frequency>192.25</center-frequency>
-        <wavelength>1558.8</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>79</wavelength-number>
-        <center-frequency>192.2</center-frequency>
-        <wavelength>1559.19</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>80</wavelength-number>
-        <center-frequency>192.15</center-frequency>
-        <wavelength>1559.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>81</wavelength-number>
-        <center-frequency>192.1</center-frequency>
-        <wavelength>1559.97</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>82</wavelength-number>
-        <center-frequency>192.05</center-frequency>
-        <wavelength>1560.36</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>83</wavelength-number>
-        <center-frequency>192.0</center-frequency>
-        <wavelength>1560.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>84</wavelength-number>
-        <center-frequency>191.95</center-frequency>
-        <wavelength>1561.14</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>85</wavelength-number>
-        <center-frequency>191.9</center-frequency>
-        <wavelength>1561.53</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>86</wavelength-number>
-        <center-frequency>191.85</center-frequency>
-        <wavelength>1561.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>87</wavelength-number>
-        <center-frequency>191.8</center-frequency>
-        <wavelength>1562.31</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>88</wavelength-number>
-        <center-frequency>191.75</center-frequency>
-        <wavelength>1562.7</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>89</wavelength-number>
-        <center-frequency>191.7</center-frequency>
-        <wavelength>1563.09</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>90</wavelength-number>
-        <center-frequency>191.65</center-frequency>
-        <wavelength>1563.48</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>91</wavelength-number>
-        <center-frequency>191.6</center-frequency>
-        <wavelength>1563.87</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>92</wavelength-number>
-        <center-frequency>191.55</center-frequency>
-        <wavelength>1564.26</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>93</wavelength-number>
-        <center-frequency>191.5</center-frequency>
-        <wavelength>1564.65</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>94</wavelength-number>
-        <center-frequency>191.45</center-frequency>
-        <wavelength>1565.04</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>95</wavelength-number>
-        <center-frequency>191.4</center-frequency>
-        <wavelength>1565.43</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>96</wavelength-number>
-        <center-frequency>191.35</center-frequency>
-        <wavelength>1565.82</wavelength>
-      </wavelengths>
-    </wavelength-map>
-    <internal-link>
-      <internal-link-name>2/0/C1-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C2-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C3-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C4-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C5-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C6-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C7-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C8-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C9-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C1-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C2-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C3-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C4-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C5-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C6-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C7-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C8-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C9-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <physical-link>
-      <physical-link-name>phylink-1</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-2</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-3</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-4</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-5</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-6</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <degree>
-      <degree-number>1</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <degree>
-      <degree-number>2</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <shared-risk-group>
-      <srg-number>1</srg-number>
-      <max-add-drop-ports>16</max-add-drop-ports>
-      <wavelengthDuplication>onePerSRG</wavelengthDuplication>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>4/0</circuit-pack-name>
-      </circuit-packs>
-    </shared-risk-group>
-    <connection-map>
-      <connection-map-number>1</connection-map-number>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>2</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>3</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>4</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>5</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>6</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>7</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>8</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>9</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>10</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>11</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>12</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>13</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>14</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>15</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>16</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>17</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>18</connection-map-number>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>19</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>20</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>21</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>22</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>23</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>24</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>25</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>26</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>27</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>28</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>29</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>30</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>31</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>32</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>33</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>34</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-  </org-openroadm-device>
-  <currentPmlist xmlns="http://org/openroadm/pm">
-  <currentPm>
-    <id>18</id>
-    <retrievalTime>2018-06-07T13:22:58+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.7</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.3</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>49.9</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>19</id>
-    <retrievalTime>2018-06-07T13:23:00+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.7</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.3</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>50.2</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>10</id>
-    <retrievalTime>2018-06-07T13:23:02+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>5.4</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-6.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>44.4</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>11</id>
-    <retrievalTime>2018-06-07T13:23:04+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>5.4</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-6.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>44.4</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-</currentPmlist>
-</data>
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA.xml b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMA.xml
deleted file mode 100644 (file)
index fac7a35..0000000
+++ /dev/null
@@ -1,3810 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <org-openroadm-device xmlns="http://org/openroadm/device">
-    <info>
-      <node-id>ROADMA</node-id>
-      <node-number>2</node-number>
-      <node-type>rdm</node-type>
-      <clli>NodeA</clli>
-      <vendor>vendorA</vendor>
-      <model>2</model>
-      <serial-id>0002</serial-id>
-      <ipAddress>127.0.0.12</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.12</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <current-defaultGateway>127.0.0.20</current-defaultGateway>
-      <macAddress>aa:aa:aa:aa:aa:aa</macAddress>
-      <softwareVersion>1</softwareVersion>
-      <max-degrees>2</max-degrees>
-      <max-srgs>9</max-srgs>
-    </info>
-    <users>
-      <user>
-        <name>openroadm</name>
-        <password>openroadm</password>
-        <group>sudo</group>
-      </user>
-    </users>
-    <pending-sw>
-      <sw-version>1</sw-version>
-    </pending-sw>
-    <shelves>
-      <shelf-name>sdegE</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>2</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00002</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degE</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>2/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <shelves>
-      <shelf-name>sdegW</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>3</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00003</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>3/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-        <shelves>
-      <shelf-name>ssrg</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>4</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00004</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>srgW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>4/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <circuit-packs>
-      <circuit-pack-name>2/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss1</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>2/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-  <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>2/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-<circuit-packs>
-      <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHE</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-  <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss2</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>3/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-  <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>3/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-<circuit-packs>
-      <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHW</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-  <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>4/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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-CP-TXRX</logical-connection-point>
-      </ports>
-    </circuit-packs>
-<interface>
-      <name>eth-2/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>2/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-    <interface>
-      <name>eth-3/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>3/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-<protocols>
-      <lldp xmlns="http://org/openroadm/lldp">
-        <global-config>
-          <adminStatus>enable</adminStatus>
-          <msgTxInterval>20</msgTxInterval>
-          <msgTxHoldMultiplier>4</msgTxHoldMultiplier>
-        </global-config>
-        <port-config>
-          <ifName>eth-2/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-<port-config>
-          <ifName>eth-3/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-        <nbr-list>
-          <if-name>
-            <ifName>eth-2/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMC</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-3/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-          <if-name>
-            <ifName>eth-3/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMB</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-2/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-        </nbr-list>
-      </lldp>
-    </protocols>
-    <wavelength-map>
-      <wavelengths>
-        <wavelength-number>1</wavelength-number>
-        <center-frequency>196.1</center-frequency>
-        <wavelength>1528.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>2</wavelength-number>
-        <center-frequency>196.05</center-frequency>
-        <wavelength>1529.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>3</wavelength-number>
-        <center-frequency>196.0</center-frequency>
-        <wavelength>1529.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>4</wavelength-number>
-        <center-frequency>195.95</center-frequency>
-        <wavelength>1529.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>5</wavelength-number>
-        <center-frequency>195.9</center-frequency>
-        <wavelength>1530.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>6</wavelength-number>
-        <center-frequency>195.85</center-frequency>
-        <wavelength>1530.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>7</wavelength-number>
-        <center-frequency>195.8</center-frequency>
-        <wavelength>1531.11</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>8</wavelength-number>
-        <center-frequency>195.75</center-frequency>
-        <wavelength>1531.5</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>9</wavelength-number>
-        <center-frequency>195.7</center-frequency>
-        <wavelength>1531.89</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>10</wavelength-number>
-        <center-frequency>195.65</center-frequency>
-        <wavelength>1532.28</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>11</wavelength-number>
-        <center-frequency>195.6</center-frequency>
-        <wavelength>1532.67</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>12</wavelength-number>
-        <center-frequency>195.55</center-frequency>
-        <wavelength>1533.06</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>13</wavelength-number>
-        <center-frequency>195.5</center-frequency>
-        <wavelength>1533.45</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>14</wavelength-number>
-        <center-frequency>195.45</center-frequency>
-        <wavelength>1533.84</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>15</wavelength-number>
-        <center-frequency>195.4</center-frequency>
-        <wavelength>1534.23</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>16</wavelength-number>
-        <center-frequency>195.35</center-frequency>
-        <wavelength>1534.62</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>17</wavelength-number>
-        <center-frequency>195.3</center-frequency>
-        <wavelength>1535.01</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>18</wavelength-number>
-        <center-frequency>195.25</center-frequency>
-        <wavelength>1535.4</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>19</wavelength-number>
-        <center-frequency>195.2</center-frequency>
-        <wavelength>1535.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>20</wavelength-number>
-        <center-frequency>195.15</center-frequency>
-        <wavelength>1536.18</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>21</wavelength-number>
-        <center-frequency>195.1</center-frequency>
-        <wavelength>1536.57</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>22</wavelength-number>
-        <center-frequency>195.05</center-frequency>
-        <wavelength>1536.96</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>23</wavelength-number>
-        <center-frequency>195.0</center-frequency>
-        <wavelength>1537.35</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>24</wavelength-number>
-        <center-frequency>194.95</center-frequency>
-        <wavelength>1537.74</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>25</wavelength-number>
-        <center-frequency>194.9</center-frequency>
-        <wavelength>1538.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>26</wavelength-number>
-        <center-frequency>194.85</center-frequency>
-        <wavelength>1538.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>27</wavelength-number>
-        <center-frequency>194.8</center-frequency>
-        <wavelength>1538.91</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>28</wavelength-number>
-        <center-frequency>194.75</center-frequency>
-        <wavelength>1539.3</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>29</wavelength-number>
-        <center-frequency>194.7</center-frequency>
-        <wavelength>1539.69</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>30</wavelength-number>
-        <center-frequency>194.65</center-frequency>
-        <wavelength>1540.08</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>31</wavelength-number>
-        <center-frequency>194.6</center-frequency>
-        <wavelength>1540.47</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>32</wavelength-number>
-        <center-frequency>194.55</center-frequency>
-        <wavelength>1540.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>33</wavelength-number>
-        <center-frequency>194.5</center-frequency>
-        <wavelength>1541.25</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>34</wavelength-number>
-        <center-frequency>194.45</center-frequency>
-        <wavelength>1541.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>35</wavelength-number>
-        <center-frequency>194.4</center-frequency>
-        <wavelength>1542.03</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>36</wavelength-number>
-        <center-frequency>194.35</center-frequency>
-        <wavelength>1542.42</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>37</wavelength-number>
-        <center-frequency>194.3</center-frequency>
-        <wavelength>1542.81</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>38</wavelength-number>
-        <center-frequency>194.25</center-frequency>
-        <wavelength>1543.2</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>39</wavelength-number>
-        <center-frequency>194.2</center-frequency>
-        <wavelength>1543.59</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>40</wavelength-number>
-        <center-frequency>194.15</center-frequency>
-        <wavelength>1543.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>41</wavelength-number>
-        <center-frequency>194.1</center-frequency>
-        <wavelength>1544.37</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>42</wavelength-number>
-        <center-frequency>194.05</center-frequency>
-        <wavelength>1544.76</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>43</wavelength-number>
-        <center-frequency>194.0</center-frequency>
-        <wavelength>1545.15</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>44</wavelength-number>
-        <center-frequency>193.95</center-frequency>
-        <wavelength>1545.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>45</wavelength-number>
-        <center-frequency>193.9</center-frequency>
-        <wavelength>1545.93</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>46</wavelength-number>
-        <center-frequency>193.85</center-frequency>
-        <wavelength>1546.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>47</wavelength-number>
-        <center-frequency>193.8</center-frequency>
-        <wavelength>1546.71</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>48</wavelength-number>
-        <center-frequency>193.75</center-frequency>
-        <wavelength>1547.1</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>49</wavelength-number>
-        <center-frequency>193.7</center-frequency>
-        <wavelength>1547.49</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>50</wavelength-number>
-        <center-frequency>193.65</center-frequency>
-        <wavelength>1547.88</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>51</wavelength-number>
-        <center-frequency>193.6</center-frequency>
-        <wavelength>1548.27</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>52</wavelength-number>
-        <center-frequency>193.55</center-frequency>
-        <wavelength>1548.66</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>53</wavelength-number>
-        <center-frequency>193.5</center-frequency>
-        <wavelength>1549.05</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>54</wavelength-number>
-        <center-frequency>193.45</center-frequency>
-        <wavelength>1549.44</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>55</wavelength-number>
-        <center-frequency>193.4</center-frequency>
-        <wavelength>1549.83</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>56</wavelength-number>
-        <center-frequency>193.35</center-frequency>
-        <wavelength>1550.22</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>57</wavelength-number>
-        <center-frequency>193.3</center-frequency>
-        <wavelength>1550.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>58</wavelength-number>
-        <center-frequency>193.25</center-frequency>
-        <wavelength>1551.0</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>59</wavelength-number>
-        <center-frequency>193.2</center-frequency>
-        <wavelength>1551.39</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>60</wavelength-number>
-        <center-frequency>193.15</center-frequency>
-        <wavelength>1551.78</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>61</wavelength-number>
-        <center-frequency>193.1</center-frequency>
-        <wavelength>1552.17</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>62</wavelength-number>
-        <center-frequency>193.05</center-frequency>
-        <wavelength>1552.56</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>63</wavelength-number>
-        <center-frequency>193.0</center-frequency>
-        <wavelength>1552.95</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>64</wavelength-number>
-        <center-frequency>192.95</center-frequency>
-        <wavelength>1553.34</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>65</wavelength-number>
-        <center-frequency>192.9</center-frequency>
-        <wavelength>1553.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>66</wavelength-number>
-        <center-frequency>192.85</center-frequency>
-        <wavelength>1554.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>67</wavelength-number>
-        <center-frequency>192.8</center-frequency>
-        <wavelength>1554.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>68</wavelength-number>
-        <center-frequency>192.75</center-frequency>
-        <wavelength>1554.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>69</wavelength-number>
-        <center-frequency>192.7</center-frequency>
-        <wavelength>1555.29</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>70</wavelength-number>
-        <center-frequency>192.65</center-frequency>
-        <wavelength>1555.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>71</wavelength-number>
-        <center-frequency>192.6</center-frequency>
-        <wavelength>1556.07</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>72</wavelength-number>
-        <center-frequency>192.55</center-frequency>
-        <wavelength>1556.46</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>73</wavelength-number>
-        <center-frequency>192.5</center-frequency>
-        <wavelength>1556.85</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>74</wavelength-number>
-        <center-frequency>192.45</center-frequency>
-        <wavelength>1557.24</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>75</wavelength-number>
-        <center-frequency>192.4</center-frequency>
-        <wavelength>1557.63</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>76</wavelength-number>
-        <center-frequency>192.35</center-frequency>
-        <wavelength>1558.02</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>77</wavelength-number>
-        <center-frequency>192.3</center-frequency>
-        <wavelength>1558.41</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>78</wavelength-number>
-        <center-frequency>192.25</center-frequency>
-        <wavelength>1558.8</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>79</wavelength-number>
-        <center-frequency>192.2</center-frequency>
-        <wavelength>1559.19</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>80</wavelength-number>
-        <center-frequency>192.15</center-frequency>
-        <wavelength>1559.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>81</wavelength-number>
-        <center-frequency>192.1</center-frequency>
-        <wavelength>1559.97</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>82</wavelength-number>
-        <center-frequency>192.05</center-frequency>
-        <wavelength>1560.36</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>83</wavelength-number>
-        <center-frequency>192.0</center-frequency>
-        <wavelength>1560.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>84</wavelength-number>
-        <center-frequency>191.95</center-frequency>
-        <wavelength>1561.14</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>85</wavelength-number>
-        <center-frequency>191.9</center-frequency>
-        <wavelength>1561.53</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>86</wavelength-number>
-        <center-frequency>191.85</center-frequency>
-        <wavelength>1561.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>87</wavelength-number>
-        <center-frequency>191.8</center-frequency>
-        <wavelength>1562.31</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>88</wavelength-number>
-        <center-frequency>191.75</center-frequency>
-        <wavelength>1562.7</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>89</wavelength-number>
-        <center-frequency>191.7</center-frequency>
-        <wavelength>1563.09</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>90</wavelength-number>
-        <center-frequency>191.65</center-frequency>
-        <wavelength>1563.48</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>91</wavelength-number>
-        <center-frequency>191.6</center-frequency>
-        <wavelength>1563.87</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>92</wavelength-number>
-        <center-frequency>191.55</center-frequency>
-        <wavelength>1564.26</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>93</wavelength-number>
-        <center-frequency>191.5</center-frequency>
-        <wavelength>1564.65</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>94</wavelength-number>
-        <center-frequency>191.45</center-frequency>
-        <wavelength>1565.04</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>95</wavelength-number>
-        <center-frequency>191.4</center-frequency>
-        <wavelength>1565.43</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>96</wavelength-number>
-        <center-frequency>191.35</center-frequency>
-        <wavelength>1565.82</wavelength>
-      </wavelengths>
-    </wavelength-map>
-    <internal-link>
-      <internal-link-name>2/0/C1-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C2-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C3-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C4-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C5-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C6-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C7-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C8-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C9-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C1-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C2-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C3-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C4-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C5-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C6-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C7-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C8-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C9-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <physical-link>
-      <physical-link-name>phylink-1</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-2</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-3</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-4</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-5</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-6</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <degree>
-      <degree-number>1</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <degree>
-      <degree-number>2</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <shared-risk-group>
-      <srg-number>1</srg-number>
-      <max-add-drop-ports>16</max-add-drop-ports>
-      <wavelengthDuplication>onePerSRG</wavelengthDuplication>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>4/0</circuit-pack-name>
-      </circuit-packs>
-    </shared-risk-group>
-    <connection-map>
-      <connection-map-number>1</connection-map-number>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>2</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>3</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>4</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>5</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>6</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>7</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>8</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>9</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>10</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>11</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>12</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>13</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>14</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>15</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>16</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>17</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>18</connection-map-number>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>19</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>20</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>21</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>22</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>23</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>24</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>25</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>26</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>27</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>28</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>29</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>30</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>31</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>32</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>33</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>34</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-  </org-openroadm-device>
-</data>
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC-cpm.xml b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC-cpm.xml
deleted file mode 100644 (file)
index fd40c61..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-<currentPmlist xmlns="http://org/openroadm/pm">
-  <currentPm>
-    <id>18</id>
-    <retrievalTime>2018-06-07T13:43:16+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>4.6</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-15.1</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>49.1</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>19</id>
-    <retrievalTime>2018-06-07T13:43:20+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>4.6</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-15.1</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>49.2</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>10</id>
-    <retrievalTime>2018-06-07T13:43:20+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>48.8</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>11</id>
-    <retrievalTime>2018-06-07T13:43:24+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>48.9</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-</currentPmlist>
-</data>
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC-full.xml b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC-full.xml
deleted file mode 100644 (file)
index 615995f..0000000
+++ /dev/null
@@ -1,4015 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <netconf xmlns="urn:ietf:params:xml:ns:netmod:notification">
-      <streams>
-          <stream>
-              <name>OPENROADM</name>
-          </stream>
-    </streams>
-  </netconf>
-  <org-openroadm-device xmlns="http://org/openroadm/device">
-    <info>
-      <node-id>ROADMC</node-id>
-      <node-number>2</node-number>
-      <node-type>rdm</node-type>
-      <clli>NodeC</clli>
-      <vendor>vendorA</vendor>
-      <model>2</model>
-      <serial-id>0002</serial-id>
-      <ipAddress>127.0.0.14</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.14</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <current-defaultGateway>127.0.0.20</current-defaultGateway>
-      <macAddress>cc:cc:cc:cc:cc:cc</macAddress>
-      <softwareVersion>1</softwareVersion>
-      <max-degrees>2</max-degrees>
-      <max-srgs>9</max-srgs>
-    </info>
-    <users>
-      <user>
-        <name>openroadm</name>
-        <password>openroadm</password>
-        <group>sudo</group>
-      </user>
-    </users>
-    <pending-sw>
-      <sw-version>1</sw-version>
-    </pending-sw>
-    <shelves>
-      <shelf-name>sdegE</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>2</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00002</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degE</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>2/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <shelves>
-      <shelf-name>sdegW</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>3</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00003</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>3/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <shelves>
-      <shelf-name>ssrg</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>4</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00004</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>srgW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>4/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <circuit-packs>
-      <circuit-pack-name>2/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss1</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>2/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>2/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHE</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss2</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>3/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>3/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHW</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>4/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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-CP-TXRX</logical-connection-point>
-      </ports>
-    </circuit-packs>
-    <interface>
-      <name>eth-2/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>2/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-    <interface>
-      <name>eth-3/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>3/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-    <protocols>
-      <lldp xmlns="http://org/openroadm/lldp">
-        <global-config>
-          <adminStatus>enable</adminStatus>
-          <msgTxInterval>20</msgTxInterval>
-          <msgTxHoldMultiplier>4</msgTxHoldMultiplier>
-        </global-config>
-        <port-config>
-          <ifName>eth-2/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-        <port-config>
-          <ifName>eth-3/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-        <nbr-list>
-          <if-name>
-            <ifName>eth-3/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMA</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-2/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-          <if-name>
-            <ifName>eth-2/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMB</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-3/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-        </nbr-list>
-      </lldp>
-    </protocols>
-    <wavelength-map>
-      <wavelengths>
-        <wavelength-number>1</wavelength-number>
-        <center-frequency>196.1</center-frequency>
-        <wavelength>1528.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>2</wavelength-number>
-        <center-frequency>196.05</center-frequency>
-        <wavelength>1529.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>3</wavelength-number>
-        <center-frequency>196.0</center-frequency>
-        <wavelength>1529.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>4</wavelength-number>
-        <center-frequency>195.95</center-frequency>
-        <wavelength>1529.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>5</wavelength-number>
-        <center-frequency>195.9</center-frequency>
-        <wavelength>1530.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>6</wavelength-number>
-        <center-frequency>195.85</center-frequency>
-        <wavelength>1530.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>7</wavelength-number>
-        <center-frequency>195.8</center-frequency>
-        <wavelength>1531.11</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>8</wavelength-number>
-        <center-frequency>195.75</center-frequency>
-        <wavelength>1531.5</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>9</wavelength-number>
-        <center-frequency>195.7</center-frequency>
-        <wavelength>1531.89</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>10</wavelength-number>
-        <center-frequency>195.65</center-frequency>
-        <wavelength>1532.28</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>11</wavelength-number>
-        <center-frequency>195.6</center-frequency>
-        <wavelength>1532.67</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>12</wavelength-number>
-        <center-frequency>195.55</center-frequency>
-        <wavelength>1533.06</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>13</wavelength-number>
-        <center-frequency>195.5</center-frequency>
-        <wavelength>1533.45</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>14</wavelength-number>
-        <center-frequency>195.45</center-frequency>
-        <wavelength>1533.84</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>15</wavelength-number>
-        <center-frequency>195.4</center-frequency>
-        <wavelength>1534.23</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>16</wavelength-number>
-        <center-frequency>195.35</center-frequency>
-        <wavelength>1534.62</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>17</wavelength-number>
-        <center-frequency>195.3</center-frequency>
-        <wavelength>1535.01</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>18</wavelength-number>
-        <center-frequency>195.25</center-frequency>
-        <wavelength>1535.4</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>19</wavelength-number>
-        <center-frequency>195.2</center-frequency>
-        <wavelength>1535.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>20</wavelength-number>
-        <center-frequency>195.15</center-frequency>
-        <wavelength>1536.18</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>21</wavelength-number>
-        <center-frequency>195.1</center-frequency>
-        <wavelength>1536.57</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>22</wavelength-number>
-        <center-frequency>195.05</center-frequency>
-        <wavelength>1536.96</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>23</wavelength-number>
-        <center-frequency>195.0</center-frequency>
-        <wavelength>1537.35</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>24</wavelength-number>
-        <center-frequency>194.95</center-frequency>
-        <wavelength>1537.74</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>25</wavelength-number>
-        <center-frequency>194.9</center-frequency>
-        <wavelength>1538.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>26</wavelength-number>
-        <center-frequency>194.85</center-frequency>
-        <wavelength>1538.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>27</wavelength-number>
-        <center-frequency>194.8</center-frequency>
-        <wavelength>1538.91</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>28</wavelength-number>
-        <center-frequency>194.75</center-frequency>
-        <wavelength>1539.3</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>29</wavelength-number>
-        <center-frequency>194.7</center-frequency>
-        <wavelength>1539.69</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>30</wavelength-number>
-        <center-frequency>194.65</center-frequency>
-        <wavelength>1540.08</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>31</wavelength-number>
-        <center-frequency>194.6</center-frequency>
-        <wavelength>1540.47</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>32</wavelength-number>
-        <center-frequency>194.55</center-frequency>
-        <wavelength>1540.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>33</wavelength-number>
-        <center-frequency>194.5</center-frequency>
-        <wavelength>1541.25</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>34</wavelength-number>
-        <center-frequency>194.45</center-frequency>
-        <wavelength>1541.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>35</wavelength-number>
-        <center-frequency>194.4</center-frequency>
-        <wavelength>1542.03</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>36</wavelength-number>
-        <center-frequency>194.35</center-frequency>
-        <wavelength>1542.42</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>37</wavelength-number>
-        <center-frequency>194.3</center-frequency>
-        <wavelength>1542.81</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>38</wavelength-number>
-        <center-frequency>194.25</center-frequency>
-        <wavelength>1543.2</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>39</wavelength-number>
-        <center-frequency>194.2</center-frequency>
-        <wavelength>1543.59</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>40</wavelength-number>
-        <center-frequency>194.15</center-frequency>
-        <wavelength>1543.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>41</wavelength-number>
-        <center-frequency>194.1</center-frequency>
-        <wavelength>1544.37</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>42</wavelength-number>
-        <center-frequency>194.05</center-frequency>
-        <wavelength>1544.76</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>43</wavelength-number>
-        <center-frequency>194.0</center-frequency>
-        <wavelength>1545.15</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>44</wavelength-number>
-        <center-frequency>193.95</center-frequency>
-        <wavelength>1545.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>45</wavelength-number>
-        <center-frequency>193.9</center-frequency>
-        <wavelength>1545.93</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>46</wavelength-number>
-        <center-frequency>193.85</center-frequency>
-        <wavelength>1546.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>47</wavelength-number>
-        <center-frequency>193.8</center-frequency>
-        <wavelength>1546.71</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>48</wavelength-number>
-        <center-frequency>193.75</center-frequency>
-        <wavelength>1547.1</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>49</wavelength-number>
-        <center-frequency>193.7</center-frequency>
-        <wavelength>1547.49</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>50</wavelength-number>
-        <center-frequency>193.65</center-frequency>
-        <wavelength>1547.88</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>51</wavelength-number>
-        <center-frequency>193.6</center-frequency>
-        <wavelength>1548.27</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>52</wavelength-number>
-        <center-frequency>193.55</center-frequency>
-        <wavelength>1548.66</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>53</wavelength-number>
-        <center-frequency>193.5</center-frequency>
-        <wavelength>1549.05</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>54</wavelength-number>
-        <center-frequency>193.45</center-frequency>
-        <wavelength>1549.44</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>55</wavelength-number>
-        <center-frequency>193.4</center-frequency>
-        <wavelength>1549.83</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>56</wavelength-number>
-        <center-frequency>193.35</center-frequency>
-        <wavelength>1550.22</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>57</wavelength-number>
-        <center-frequency>193.3</center-frequency>
-        <wavelength>1550.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>58</wavelength-number>
-        <center-frequency>193.25</center-frequency>
-        <wavelength>1551.0</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>59</wavelength-number>
-        <center-frequency>193.2</center-frequency>
-        <wavelength>1551.39</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>60</wavelength-number>
-        <center-frequency>193.15</center-frequency>
-        <wavelength>1551.78</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>61</wavelength-number>
-        <center-frequency>193.1</center-frequency>
-        <wavelength>1552.17</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>62</wavelength-number>
-        <center-frequency>193.05</center-frequency>
-        <wavelength>1552.56</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>63</wavelength-number>
-        <center-frequency>193.0</center-frequency>
-        <wavelength>1552.95</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>64</wavelength-number>
-        <center-frequency>192.95</center-frequency>
-        <wavelength>1553.34</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>65</wavelength-number>
-        <center-frequency>192.9</center-frequency>
-        <wavelength>1553.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>66</wavelength-number>
-        <center-frequency>192.85</center-frequency>
-        <wavelength>1554.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>67</wavelength-number>
-        <center-frequency>192.8</center-frequency>
-        <wavelength>1554.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>68</wavelength-number>
-        <center-frequency>192.75</center-frequency>
-        <wavelength>1554.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>69</wavelength-number>
-        <center-frequency>192.7</center-frequency>
-        <wavelength>1555.29</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>70</wavelength-number>
-        <center-frequency>192.65</center-frequency>
-        <wavelength>1555.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>71</wavelength-number>
-        <center-frequency>192.6</center-frequency>
-        <wavelength>1556.07</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>72</wavelength-number>
-        <center-frequency>192.55</center-frequency>
-        <wavelength>1556.46</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>73</wavelength-number>
-        <center-frequency>192.5</center-frequency>
-        <wavelength>1556.85</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>74</wavelength-number>
-        <center-frequency>192.45</center-frequency>
-        <wavelength>1557.24</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>75</wavelength-number>
-        <center-frequency>192.4</center-frequency>
-        <wavelength>1557.63</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>76</wavelength-number>
-        <center-frequency>192.35</center-frequency>
-        <wavelength>1558.02</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>77</wavelength-number>
-        <center-frequency>192.3</center-frequency>
-        <wavelength>1558.41</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>78</wavelength-number>
-        <center-frequency>192.25</center-frequency>
-        <wavelength>1558.8</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>79</wavelength-number>
-        <center-frequency>192.2</center-frequency>
-        <wavelength>1559.19</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>80</wavelength-number>
-        <center-frequency>192.15</center-frequency>
-        <wavelength>1559.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>81</wavelength-number>
-        <center-frequency>192.1</center-frequency>
-        <wavelength>1559.97</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>82</wavelength-number>
-        <center-frequency>192.05</center-frequency>
-        <wavelength>1560.36</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>83</wavelength-number>
-        <center-frequency>192.0</center-frequency>
-        <wavelength>1560.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>84</wavelength-number>
-        <center-frequency>191.95</center-frequency>
-        <wavelength>1561.14</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>85</wavelength-number>
-        <center-frequency>191.9</center-frequency>
-        <wavelength>1561.53</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>86</wavelength-number>
-        <center-frequency>191.85</center-frequency>
-        <wavelength>1561.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>87</wavelength-number>
-        <center-frequency>191.8</center-frequency>
-        <wavelength>1562.31</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>88</wavelength-number>
-        <center-frequency>191.75</center-frequency>
-        <wavelength>1562.7</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>89</wavelength-number>
-        <center-frequency>191.7</center-frequency>
-        <wavelength>1563.09</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>90</wavelength-number>
-        <center-frequency>191.65</center-frequency>
-        <wavelength>1563.48</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>91</wavelength-number>
-        <center-frequency>191.6</center-frequency>
-        <wavelength>1563.87</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>92</wavelength-number>
-        <center-frequency>191.55</center-frequency>
-        <wavelength>1564.26</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>93</wavelength-number>
-        <center-frequency>191.5</center-frequency>
-        <wavelength>1564.65</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>94</wavelength-number>
-        <center-frequency>191.45</center-frequency>
-        <wavelength>1565.04</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>95</wavelength-number>
-        <center-frequency>191.4</center-frequency>
-        <wavelength>1565.43</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>96</wavelength-number>
-        <center-frequency>191.35</center-frequency>
-        <wavelength>1565.82</wavelength>
-      </wavelengths>
-    </wavelength-map>
-    <internal-link>
-      <internal-link-name>2/0/C1-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C2-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C3-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C4-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C5-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C6-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C7-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C8-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C9-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C1-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C2-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C3-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C4-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C5-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C6-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C7-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C8-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C9-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <physical-link>
-      <physical-link-name>phylink-1</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-2</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-3</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-4</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-5</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-6</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <degree>
-      <degree-number>1</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <degree>
-      <degree-number>2</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <shared-risk-group>
-      <srg-number>1</srg-number>
-      <max-add-drop-ports>16</max-add-drop-ports>
-      <wavelengthDuplication>onePerSRG</wavelengthDuplication>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>4/0</circuit-pack-name>
-      </circuit-packs>
-    </shared-risk-group>
-    <connection-map>
-      <connection-map-number>1</connection-map-number>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>2</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>3</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>4</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>5</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>6</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>7</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>8</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>9</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>10</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>11</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>12</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>13</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>14</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>15</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>16</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>17</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>18</connection-map-number>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>19</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>20</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>21</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>22</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>23</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>24</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>25</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>26</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>27</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>28</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>29</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>30</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>31</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>32</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>33</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>34</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-  </org-openroadm-device>
-  <currentPmlist xmlns="http://org/openroadm/pm">
-  <currentPm>
-    <id>18</id>
-    <retrievalTime>2018-06-07T13:43:16+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>4.6</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-15.1</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>49.1</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>19</id>
-    <retrievalTime>2018-06-07T13:43:20+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>4.6</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>-15.1</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>49.2</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>10</id>
-    <retrievalTime>2018-06-07T13:43:20+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>48.8</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-  <currentPm>
-    <id>11</id>
-    <retrievalTime>2018-06-07T13:43:24+00:00</retrievalTime>
-    <granularity>24Hour</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>1.5</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>48.9</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMC</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG2-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-  </currentPm>
-</currentPmlist>
-</data>
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC.xml b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-ROADMC.xml
deleted file mode 100644 (file)
index 78dc8da..0000000
+++ /dev/null
@@ -1,3810 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <org-openroadm-device xmlns="http://org/openroadm/device">
-    <info>
-      <node-id>ROADMC</node-id>
-      <node-number>2</node-number>
-      <node-type>rdm</node-type>
-      <clli>NodeC</clli>
-      <vendor>vendorA</vendor>
-      <model>2</model>
-      <serial-id>0002</serial-id>
-      <ipAddress>127.0.0.14</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.14</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <current-defaultGateway>127.0.0.20</current-defaultGateway>
-      <macAddress>cc:cc:cc:cc:cc:cc</macAddress>
-      <softwareVersion>1</softwareVersion>
-      <max-degrees>2</max-degrees>
-      <max-srgs>9</max-srgs>
-    </info>
-    <users>
-      <user>
-        <name>openroadm</name>
-        <password>openroadm</password>
-        <group>sudo</group>
-      </user>
-    </users>
-    <pending-sw>
-      <sw-version>1</sw-version>
-    </pending-sw>
-    <shelves>
-      <shelf-name>sdegE</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>2</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00002</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degE</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>2/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <shelves>
-      <shelf-name>sdegW</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>3</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00003</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>degW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>3/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <shelves>
-      <shelf-name>ssrg</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>4</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00004</serial-id>
-      <product-code>xxxxx</product-code>
-      <clei>srgW</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2016-10-25T09:00:00-00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>4/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <circuit-packs>
-      <circuit-pack-name>2/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss1</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>2/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-  <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>2/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG1-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-<circuit-packs>
-      <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHE</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>2</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-  <parent-circuit-pack>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-</circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0</circuit-pack-name>
-      <circuit-pack-type>WSSDEG</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>WSS9</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>wss2</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <cp-slots>
-        <slot-name>OSC-SLOT</slot-name>
-        <label>OSC-SLOT</label>
-        <provisioned-circuit-pack>3/0/OSC-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-  <cp-slots>
-        <slot-name>ETH-PLUG</slot-name>
-        <label>ETH-PLUG</label>
-        <provisioned-circuit-pack>3/0/ETH-PLUG</provisioned-circuit-pack>
-      </cp-slots>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C2</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C3</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C4</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C5</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C6</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C7</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C8</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>C9</port-name>
-        <port-type>Client</port-type>
-        <port-qual>roadm-internal</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-CTP-TXRX</logical-connection-point>
-      </ports>
-      <ports>
-        <port-name>L1</port-name>
-        <port-type>LINE</port-type>
-        <port-qual>roadm-external</port-qual>
-        <port-wavelength-type>multi-wavelength</port-wavelength-type>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>1</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <operational-state>inService</operational-state>
-        <logical-connection-point>DEG2-TTP-TXRX</logical-connection-point>
-        <roadm-port>
-          <port-power-capability-min-rx>-35.0</port-power-capability-min-rx>
-          <port-power-capability-min-tx>-9.0</port-power-capability-min-tx>
-          <port-power-capability-max-rx>14.0</port-power-capability-max-rx>
-          <port-power-capability-max-tx>21.82</port-power-capability-max-tx>
-        </roadm-port>
-      </ports>
-      <ports>
-        <port-name>LOG1</port-name>
-        <port-type>Logical</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>
-      </ports>
-      <ports>
-        <port-name>OSC-DEMUX</port-name>
-        <port-type>OSC</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>SFP/SFP+</model>
-      <serial-id>00000163600843</serial-id>
-      <product-code>oooooo</product-code>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>oscplug</clei>
-      <hardware-version>01</hardware-version>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-      <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>OSC-SLOT</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>OSC-PORT</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-<circuit-packs>
-      <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      <circuit-pack-type>port</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VENDORA</vendor>
-      <model>GIGAETHMGT</model>
-      <manufacture-date>2017-08-08T10:47:04.698808+00:00</manufacture-date>
-      <clei>ETHW</clei>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <circuit-pack-mode>NORMAL</circuit-pack-mode>
-      <shelf>3</shelf>
-      <slot>0</slot>
-      <subSlot>0</subSlot>
-  <parent-circuit-pack>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <cp-slot-name>ETH-PLUG</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>ETH-PLUG</port-name>
-        <port-type>1GEX</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>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>4/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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-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>SRG1-CP-TXRX</logical-connection-point>
-      </ports>
-    </circuit-packs>
-<interface>
-      <name>eth-2/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>2/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-    <interface>
-      <name>eth-3/0/ETH-PLUG</name>
-      <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:ethernetCsmacd</type>
-      <administrative-state>inService</administrative-state>
-      <operational-state>inService</operational-state>
-      <supporting-circuit-pack-name>3/0/ETH-PLUG</supporting-circuit-pack-name>
-      <supporting-port>ETH-PLUG</supporting-port>
-      <ethernet xmlns="http://org/openroadm/ethernet-interfaces">
-        <speed>1000</speed>
-        <duplex>full</duplex>
-        <mtu>1800</mtu>
-        <auto-negotiation>enabled</auto-negotiation>
-        <curr-speed>1000</curr-speed>
-        <curr-duplex>FULL</curr-duplex>
-      </ethernet>
-    </interface>
-<protocols>
-      <lldp xmlns="http://org/openroadm/lldp">
-        <global-config>
-          <adminStatus>enable</adminStatus>
-          <msgTxInterval>20</msgTxInterval>
-          <msgTxHoldMultiplier>4</msgTxHoldMultiplier>
-        </global-config>
-        <port-config>
-          <ifName>eth-2/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-<port-config>
-          <ifName>eth-3/0/ETH-PLUG</ifName>
-          <adminStatus>txandrx</adminStatus>
-        </port-config>
-        <nbr-list>
-          <if-name>
-            <ifName>eth-3/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMA</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-2/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-          <if-name>
-            <ifName>eth-2/0/ETH-PLUG</ifName>
-            <remoteSysName>ROADMB</remoteSysName>
-            <remoteMgmtAddressSubType>ipV4</remoteMgmtAddressSubType>
-            <remoteMgmtAddress>1.1.1.1</remoteMgmtAddress>
-            <remotePortIdSubType>ifalias</remotePortIdSubType>
-            <remotePortId>eth-3/0/ETH-PLUG</remotePortId>
-            <remoteChassisIdSubType>chassiscomponent</remoteChassisIdSubType>
-            <remoteChassisId>1?</remoteChassisId>
-          </if-name>
-        </nbr-list>
-      </lldp>
-    </protocols>
-    <wavelength-map>
-      <wavelengths>
-        <wavelength-number>1</wavelength-number>
-        <center-frequency>196.1</center-frequency>
-        <wavelength>1528.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>2</wavelength-number>
-        <center-frequency>196.05</center-frequency>
-        <wavelength>1529.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>3</wavelength-number>
-        <center-frequency>196.0</center-frequency>
-        <wavelength>1529.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>4</wavelength-number>
-        <center-frequency>195.95</center-frequency>
-        <wavelength>1529.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>5</wavelength-number>
-        <center-frequency>195.9</center-frequency>
-        <wavelength>1530.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>6</wavelength-number>
-        <center-frequency>195.85</center-frequency>
-        <wavelength>1530.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>7</wavelength-number>
-        <center-frequency>195.8</center-frequency>
-        <wavelength>1531.11</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>8</wavelength-number>
-        <center-frequency>195.75</center-frequency>
-        <wavelength>1531.5</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>9</wavelength-number>
-        <center-frequency>195.7</center-frequency>
-        <wavelength>1531.89</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>10</wavelength-number>
-        <center-frequency>195.65</center-frequency>
-        <wavelength>1532.28</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>11</wavelength-number>
-        <center-frequency>195.6</center-frequency>
-        <wavelength>1532.67</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>12</wavelength-number>
-        <center-frequency>195.55</center-frequency>
-        <wavelength>1533.06</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>13</wavelength-number>
-        <center-frequency>195.5</center-frequency>
-        <wavelength>1533.45</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>14</wavelength-number>
-        <center-frequency>195.45</center-frequency>
-        <wavelength>1533.84</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>15</wavelength-number>
-        <center-frequency>195.4</center-frequency>
-        <wavelength>1534.23</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>16</wavelength-number>
-        <center-frequency>195.35</center-frequency>
-        <wavelength>1534.62</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>17</wavelength-number>
-        <center-frequency>195.3</center-frequency>
-        <wavelength>1535.01</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>18</wavelength-number>
-        <center-frequency>195.25</center-frequency>
-        <wavelength>1535.4</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>19</wavelength-number>
-        <center-frequency>195.2</center-frequency>
-        <wavelength>1535.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>20</wavelength-number>
-        <center-frequency>195.15</center-frequency>
-        <wavelength>1536.18</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>21</wavelength-number>
-        <center-frequency>195.1</center-frequency>
-        <wavelength>1536.57</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>22</wavelength-number>
-        <center-frequency>195.05</center-frequency>
-        <wavelength>1536.96</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>23</wavelength-number>
-        <center-frequency>195.0</center-frequency>
-        <wavelength>1537.35</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>24</wavelength-number>
-        <center-frequency>194.95</center-frequency>
-        <wavelength>1537.74</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>25</wavelength-number>
-        <center-frequency>194.9</center-frequency>
-        <wavelength>1538.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>26</wavelength-number>
-        <center-frequency>194.85</center-frequency>
-        <wavelength>1538.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>27</wavelength-number>
-        <center-frequency>194.8</center-frequency>
-        <wavelength>1538.91</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>28</wavelength-number>
-        <center-frequency>194.75</center-frequency>
-        <wavelength>1539.3</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>29</wavelength-number>
-        <center-frequency>194.7</center-frequency>
-        <wavelength>1539.69</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>30</wavelength-number>
-        <center-frequency>194.65</center-frequency>
-        <wavelength>1540.08</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>31</wavelength-number>
-        <center-frequency>194.6</center-frequency>
-        <wavelength>1540.47</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>32</wavelength-number>
-        <center-frequency>194.55</center-frequency>
-        <wavelength>1540.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>33</wavelength-number>
-        <center-frequency>194.5</center-frequency>
-        <wavelength>1541.25</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>34</wavelength-number>
-        <center-frequency>194.45</center-frequency>
-        <wavelength>1541.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>35</wavelength-number>
-        <center-frequency>194.4</center-frequency>
-        <wavelength>1542.03</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>36</wavelength-number>
-        <center-frequency>194.35</center-frequency>
-        <wavelength>1542.42</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>37</wavelength-number>
-        <center-frequency>194.3</center-frequency>
-        <wavelength>1542.81</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>38</wavelength-number>
-        <center-frequency>194.25</center-frequency>
-        <wavelength>1543.2</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>39</wavelength-number>
-        <center-frequency>194.2</center-frequency>
-        <wavelength>1543.59</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>40</wavelength-number>
-        <center-frequency>194.15</center-frequency>
-        <wavelength>1543.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>41</wavelength-number>
-        <center-frequency>194.1</center-frequency>
-        <wavelength>1544.37</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>42</wavelength-number>
-        <center-frequency>194.05</center-frequency>
-        <wavelength>1544.76</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>43</wavelength-number>
-        <center-frequency>194.0</center-frequency>
-        <wavelength>1545.15</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>44</wavelength-number>
-        <center-frequency>193.95</center-frequency>
-        <wavelength>1545.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>45</wavelength-number>
-        <center-frequency>193.9</center-frequency>
-        <wavelength>1545.93</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>46</wavelength-number>
-        <center-frequency>193.85</center-frequency>
-        <wavelength>1546.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>47</wavelength-number>
-        <center-frequency>193.8</center-frequency>
-        <wavelength>1546.71</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>48</wavelength-number>
-        <center-frequency>193.75</center-frequency>
-        <wavelength>1547.1</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>49</wavelength-number>
-        <center-frequency>193.7</center-frequency>
-        <wavelength>1547.49</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>50</wavelength-number>
-        <center-frequency>193.65</center-frequency>
-        <wavelength>1547.88</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>51</wavelength-number>
-        <center-frequency>193.6</center-frequency>
-        <wavelength>1548.27</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>52</wavelength-number>
-        <center-frequency>193.55</center-frequency>
-        <wavelength>1548.66</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>53</wavelength-number>
-        <center-frequency>193.5</center-frequency>
-        <wavelength>1549.05</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>54</wavelength-number>
-        <center-frequency>193.45</center-frequency>
-        <wavelength>1549.44</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>55</wavelength-number>
-        <center-frequency>193.4</center-frequency>
-        <wavelength>1549.83</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>56</wavelength-number>
-        <center-frequency>193.35</center-frequency>
-        <wavelength>1550.22</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>57</wavelength-number>
-        <center-frequency>193.3</center-frequency>
-        <wavelength>1550.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>58</wavelength-number>
-        <center-frequency>193.25</center-frequency>
-        <wavelength>1551.0</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>59</wavelength-number>
-        <center-frequency>193.2</center-frequency>
-        <wavelength>1551.39</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>60</wavelength-number>
-        <center-frequency>193.15</center-frequency>
-        <wavelength>1551.78</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>61</wavelength-number>
-        <center-frequency>193.1</center-frequency>
-        <wavelength>1552.17</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>62</wavelength-number>
-        <center-frequency>193.05</center-frequency>
-        <wavelength>1552.56</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>63</wavelength-number>
-        <center-frequency>193.0</center-frequency>
-        <wavelength>1552.95</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>64</wavelength-number>
-        <center-frequency>192.95</center-frequency>
-        <wavelength>1553.34</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>65</wavelength-number>
-        <center-frequency>192.9</center-frequency>
-        <wavelength>1553.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>66</wavelength-number>
-        <center-frequency>192.85</center-frequency>
-        <wavelength>1554.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>67</wavelength-number>
-        <center-frequency>192.8</center-frequency>
-        <wavelength>1554.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>68</wavelength-number>
-        <center-frequency>192.75</center-frequency>
-        <wavelength>1554.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>69</wavelength-number>
-        <center-frequency>192.7</center-frequency>
-        <wavelength>1555.29</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>70</wavelength-number>
-        <center-frequency>192.65</center-frequency>
-        <wavelength>1555.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>71</wavelength-number>
-        <center-frequency>192.6</center-frequency>
-        <wavelength>1556.07</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>72</wavelength-number>
-        <center-frequency>192.55</center-frequency>
-        <wavelength>1556.46</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>73</wavelength-number>
-        <center-frequency>192.5</center-frequency>
-        <wavelength>1556.85</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>74</wavelength-number>
-        <center-frequency>192.45</center-frequency>
-        <wavelength>1557.24</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>75</wavelength-number>
-        <center-frequency>192.4</center-frequency>
-        <wavelength>1557.63</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>76</wavelength-number>
-        <center-frequency>192.35</center-frequency>
-        <wavelength>1558.02</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>77</wavelength-number>
-        <center-frequency>192.3</center-frequency>
-        <wavelength>1558.41</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>78</wavelength-number>
-        <center-frequency>192.25</center-frequency>
-        <wavelength>1558.8</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>79</wavelength-number>
-        <center-frequency>192.2</center-frequency>
-        <wavelength>1559.19</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>80</wavelength-number>
-        <center-frequency>192.15</center-frequency>
-        <wavelength>1559.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>81</wavelength-number>
-        <center-frequency>192.1</center-frequency>
-        <wavelength>1559.97</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>82</wavelength-number>
-        <center-frequency>192.05</center-frequency>
-        <wavelength>1560.36</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>83</wavelength-number>
-        <center-frequency>192.0</center-frequency>
-        <wavelength>1560.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>84</wavelength-number>
-        <center-frequency>191.95</center-frequency>
-        <wavelength>1561.14</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>85</wavelength-number>
-        <center-frequency>191.9</center-frequency>
-        <wavelength>1561.53</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>86</wavelength-number>
-        <center-frequency>191.85</center-frequency>
-        <wavelength>1561.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>87</wavelength-number>
-        <center-frequency>191.8</center-frequency>
-        <wavelength>1562.31</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>88</wavelength-number>
-        <center-frequency>191.75</center-frequency>
-        <wavelength>1562.7</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>89</wavelength-number>
-        <center-frequency>191.7</center-frequency>
-        <wavelength>1563.09</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>90</wavelength-number>
-        <center-frequency>191.65</center-frequency>
-        <wavelength>1563.48</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>91</wavelength-number>
-        <center-frequency>191.6</center-frequency>
-        <wavelength>1563.87</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>92</wavelength-number>
-        <center-frequency>191.55</center-frequency>
-        <wavelength>1564.26</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>93</wavelength-number>
-        <center-frequency>191.5</center-frequency>
-        <wavelength>1564.65</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>94</wavelength-number>
-        <center-frequency>191.45</center-frequency>
-        <wavelength>1565.04</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>95</wavelength-number>
-        <center-frequency>191.4</center-frequency>
-        <wavelength>1565.43</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>96</wavelength-number>
-        <center-frequency>191.35</center-frequency>
-        <wavelength>1565.82</wavelength>
-      </wavelengths>
-    </wavelength-map>
-    <internal-link>
-      <internal-link-name>2/0/C1-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C2-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C3-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C4-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C5-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C6-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C7-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C8-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/C9-to-2/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>2/0/L1-to-2/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C1-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C2-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C3-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C4-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C5-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C6-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C7-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C8-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/C9-to-3/0/L1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>3/0/L1-to-3/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C1-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C2-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C3-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C4-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C5-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C6-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C7-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C8-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C9-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C10-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C11-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C12-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C13-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C14-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C15-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/C16-to-4/0/ADD-DEG4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG1-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG2-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG3-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C1</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C2</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C3</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C4</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C5</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C6</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C7</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C8</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C9</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C10</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C11</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C12</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C13</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C14</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C15</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-    </internal-link>
-    <internal-link>
-      <internal-link-name>4/0/ADD-DEG4-to-4/0/C16</internal-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </internal-link>
-    <physical-link>
-      <physical-link-name>phylink-1</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-2</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-3</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-4</physical-link-name>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>ADD-DEG2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-5</physical-link-name>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <physical-link>
-      <physical-link-name>phylink-6</physical-link-name>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-    </physical-link>
-    <degree>
-      <degree-number>1</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>2/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>2/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <degree>
-      <degree-number>2</degree-number>
-      <max-wavelengths>96</max-wavelengths>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>2</index>
-        <circuit-pack-name>3/0/OSC-PLUG</circuit-pack-name>
-      </circuit-packs>
-  <circuit-packs>
-        <index>3</index>
-        <circuit-pack-name>3/0/ETH-PLUG</circuit-pack-name>
-      </circuit-packs>
-      <connection-ports>
-        <index>1</index>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </connection-ports>
-    </degree>
-    <shared-risk-group>
-      <srg-number>1</srg-number>
-      <max-add-drop-ports>16</max-add-drop-ports>
-      <wavelengthDuplication>onePerSRG</wavelengthDuplication>
-      <circuit-packs>
-        <index>1</index>
-        <circuit-pack-name>4/0</circuit-pack-name>
-      </circuit-packs>
-    </shared-risk-group>
-    <connection-map>
-      <connection-map-number>1</connection-map-number>
-      <source>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>2</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>3</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>4</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>5</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>6</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>7</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>8</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>9</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>10</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>11</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>12</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>13</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>14</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>15</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>16</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>17</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>2/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>18</connection-map-number>
-      <source>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>L1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </destination>
-      <destination>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>19</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>20</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C2</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>21</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C3</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>22</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C4</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>23</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C5</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>24</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C6</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>25</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C7</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>26</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C8</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>27</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C9</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>28</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C10</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>29</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C11</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>30</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C12</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>31</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C13</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>32</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C14</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>33</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C15</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-    <connection-map>
-      <connection-map-number>34</connection-map-number>
-      <source>
-        <circuit-pack-name>4/0</circuit-pack-name>
-        <port-name>C16</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>3/0</circuit-pack-name>
-        <port-name>E1</port-name>
-      </destination>
-    </connection-map>
-  </org-openroadm-device>
-</data>
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRA-OCbidouille.xml b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRA-OCbidouille.xml
deleted file mode 100644 (file)
index 4a468dc..0000000
+++ /dev/null
@@ -1,3039 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <netconf xmlns="urn:ietf:params:xml:ns:netmod:notification" />
-  <org-openroadm-device xmlns="http://org/openroadm/device">
-    <info>
-      <node-id>XPDRA</node-id>
-      <node-number>1</node-number>
-      <node-type>xpdr</node-type>
-      <clli>NodeA</clli>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00001</serial-id>
-      <ipAddress>127.0.0.10</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.10</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <macAddress>aa:aa:aa:aa:aa:aa</macAddress>
-      <softwareVersion>1.0</softwareVersion>
-      <template>TPCE-XPDR001</template>
-      <current-datetime>2017-08-29T15:58:01+00:00</current-datetime>
-      <geoLocation>
-        <latitude>33</latitude>
-        <longitude>-96</longitude>
-      </geoLocation>
-    </info>
-    <users>
-      <user>
-        <name>openroadm</name>
-        <password>openroadm</password>
-        <group>sudo</group>
-      </user>
-    </users>
-    <shelves>
-      <shelf-name>1</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>1</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>0001</serial-id>
-      <type>pizza</type>
-      <product-code>zzz</product-code>
-      <manufacture-date>2017-04-01T00:00:00+00:00</manufacture-date>
-      <clei>www</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2017-02-24T15:56:10+00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>1/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <circuit-packs>
-      <circuit-pack-name>1/0</circuit-pack-name>
-      <circuit-pack-type>TSP100G</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VendorA</vendor>
-      <model>WDM80</model>
-      <serial-id>aaaaa</serial-id>
-      <type>TSP</type>
-      <product-code>TSP100G1</product-code>
-      <manufacture-date>2017-04-01T00:00:00+00:00</manufacture-date>
-      <clei>xxx</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <circuit-pack-category>
-        <type>circuitPack</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>0</subSlot>
-      <due-date>2017-04-12T15:56:10+00:00</due-date>
-      <cp-slots>
-        <slot-name>1</slot-name>
-        <label>1</label>
-        <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-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>
-      <circuit-pack-name>1/0/1-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>1</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>1</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>1</port-name>
-        <port-type>CFP2</port-type>
-        <port-qual>xpdr-network</port-qual>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>XPDRA-NETWORK</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <logical-connection-point>XPDR1-NETWORK1</logical-connection-point>
-        <transponder-port>
-            <port-power-capability-min-tx>-10</port-power-capability-min-tx>
-            <port-power-capability-max-tx>0</port-power-capability-max-tx>
-            <port-power-capability-min-rx>-10</port-power-capability-min-rx>
-            <port-power-capability-max-rx>0</port-power-capability-max-rx>
-        </transponder-port>
-      </ports>
-    </circuit-packs>
-    <circuit-packs>
-      <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>1</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>
-            <port-power-capability-min-tx>-10</port-power-capability-min-tx>
-            <port-power-capability-max-tx>0</port-power-capability-max-tx>
-            <port-power-capability-min-rx>-10</port-power-capability-min-rx>
-            <port-power-capability-max-rx>0</port-power-capability-max-rx>
-        </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>
-      <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>C1</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>C1</port-name>
-        <port-type>QSFP28</port-type>
-        <port-qual>xpdr-client</port-qual>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>XPDRA-CLIENT1</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/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>
-        <center-frequency>196.1</center-frequency>
-        <wavelength>1528.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>2</wavelength-number>
-        <center-frequency>196.05</center-frequency>
-        <wavelength>1529.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>3</wavelength-number>
-        <center-frequency>196.0</center-frequency>
-        <wavelength>1529.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>4</wavelength-number>
-        <center-frequency>195.95</center-frequency>
-        <wavelength>1529.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>5</wavelength-number>
-        <center-frequency>195.9</center-frequency>
-        <wavelength>1530.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>6</wavelength-number>
-        <center-frequency>195.85</center-frequency>
-        <wavelength>1530.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>7</wavelength-number>
-        <center-frequency>195.8</center-frequency>
-        <wavelength>1531.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>8</wavelength-number>
-        <center-frequency>195.75</center-frequency>
-        <wavelength>1531.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>9</wavelength-number>
-        <center-frequency>195.7</center-frequency>
-        <wavelength>1531.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>10</wavelength-number>
-        <center-frequency>195.65</center-frequency>
-        <wavelength>1532.29</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>11</wavelength-number>
-        <center-frequency>195.6</center-frequency>
-        <wavelength>1532.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>12</wavelength-number>
-        <center-frequency>195.55</center-frequency>
-        <wavelength>1533.07</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>13</wavelength-number>
-        <center-frequency>195.5</center-frequency>
-        <wavelength>1533.47</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>14</wavelength-number>
-        <center-frequency>195.45</center-frequency>
-        <wavelength>1533.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>15</wavelength-number>
-        <center-frequency>195.4</center-frequency>
-        <wavelength>1534.25</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>16</wavelength-number>
-        <center-frequency>195.35</center-frequency>
-        <wavelength>1534.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>17</wavelength-number>
-        <center-frequency>195.3</center-frequency>
-        <wavelength>1535.04</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>18</wavelength-number>
-        <center-frequency>195.25</center-frequency>
-        <wavelength>1535.43</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>19</wavelength-number>
-        <center-frequency>195.2</center-frequency>
-        <wavelength>1535.82</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>20</wavelength-number>
-        <center-frequency>195.15</center-frequency>
-        <wavelength>1536.22</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>21</wavelength-number>
-        <center-frequency>195.1</center-frequency>
-        <wavelength>1536.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>22</wavelength-number>
-        <center-frequency>195.05</center-frequency>
-        <wavelength>1537.0</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>23</wavelength-number>
-        <center-frequency>195.0</center-frequency>
-        <wavelength>1537.4</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>24</wavelength-number>
-        <center-frequency>194.95</center-frequency>
-        <wavelength>1537.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>25</wavelength-number>
-        <center-frequency>194.9</center-frequency>
-        <wavelength>1538.19</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>26</wavelength-number>
-        <center-frequency>194.85</center-frequency>
-        <wavelength>1538.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>27</wavelength-number>
-        <center-frequency>194.8</center-frequency>
-        <wavelength>1538.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>28</wavelength-number>
-        <center-frequency>194.75</center-frequency>
-        <wavelength>1539.37</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>29</wavelength-number>
-        <center-frequency>194.7</center-frequency>
-        <wavelength>1539.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>30</wavelength-number>
-        <center-frequency>194.65</center-frequency>
-        <wavelength>1540.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>31</wavelength-number>
-        <center-frequency>194.6</center-frequency>
-        <wavelength>1540.56</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>32</wavelength-number>
-        <center-frequency>194.55</center-frequency>
-        <wavelength>1540.95</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>33</wavelength-number>
-        <center-frequency>194.5</center-frequency>
-        <wavelength>1541.35</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>34</wavelength-number>
-        <center-frequency>194.45</center-frequency>
-        <wavelength>1541.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>35</wavelength-number>
-        <center-frequency>194.4</center-frequency>
-        <wavelength>1542.14</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>36</wavelength-number>
-        <center-frequency>194.35</center-frequency>
-        <wavelength>1542.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>37</wavelength-number>
-        <center-frequency>194.3</center-frequency>
-        <wavelength>1542.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>38</wavelength-number>
-        <center-frequency>194.25</center-frequency>
-        <wavelength>1543.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>39</wavelength-number>
-        <center-frequency>194.2</center-frequency>
-        <wavelength>1543.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>40</wavelength-number>
-        <center-frequency>194.15</center-frequency>
-        <wavelength>1544.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>41</wavelength-number>
-        <center-frequency>194.1</center-frequency>
-        <wavelength>1544.53</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>42</wavelength-number>
-        <center-frequency>194.05</center-frequency>
-        <wavelength>1544.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>43</wavelength-number>
-        <center-frequency>194.0</center-frequency>
-        <wavelength>1545.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>44</wavelength-number>
-        <center-frequency>193.95</center-frequency>
-        <wavelength>1545.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>45</wavelength-number>
-        <center-frequency>193.9</center-frequency>
-        <wavelength>1546.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>46</wavelength-number>
-        <center-frequency>193.85</center-frequency>
-        <wavelength>1546.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>47</wavelength-number>
-        <center-frequency>193.8</center-frequency>
-        <wavelength>1546.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>48</wavelength-number>
-        <center-frequency>193.75</center-frequency>
-        <wavelength>1547.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>49</wavelength-number>
-        <center-frequency>193.7</center-frequency>
-        <wavelength>1547.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>50</wavelength-number>
-        <center-frequency>193.65</center-frequency>
-        <wavelength>1548.11</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>51</wavelength-number>
-        <center-frequency>193.6</center-frequency>
-        <wavelength>1548.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>52</wavelength-number>
-        <center-frequency>193.55</center-frequency>
-        <wavelength>1548.91</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>53</wavelength-number>
-        <center-frequency>193.5</center-frequency>
-        <wavelength>1549.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>54</wavelength-number>
-        <center-frequency>193.45</center-frequency>
-        <wavelength>1549.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>55</wavelength-number>
-        <center-frequency>193.4</center-frequency>
-        <wavelength>1550.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>56</wavelength-number>
-        <center-frequency>193.35</center-frequency>
-        <wavelength>1550.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>57</wavelength-number>
-        <center-frequency>193.3</center-frequency>
-        <wavelength>1550.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>58</wavelength-number>
-        <center-frequency>193.25</center-frequency>
-        <wavelength>1551.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>59</wavelength-number>
-        <center-frequency>193.2</center-frequency>
-        <wavelength>1551.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>60</wavelength-number>
-        <center-frequency>193.15</center-frequency>
-        <wavelength>1552.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>61</wavelength-number>
-        <center-frequency>193.1</center-frequency>
-        <wavelength>1552.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>62</wavelength-number>
-        <center-frequency>193.05</center-frequency>
-        <wavelength>1552.93</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>63</wavelength-number>
-        <center-frequency>193.0</center-frequency>
-        <wavelength>1553.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>64</wavelength-number>
-        <center-frequency>192.95</center-frequency>
-        <wavelength>1553.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>65</wavelength-number>
-        <center-frequency>192.9</center-frequency>
-        <wavelength>1554.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>66</wavelength-number>
-        <center-frequency>192.85</center-frequency>
-        <wavelength>1554.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>67</wavelength-number>
-        <center-frequency>192.8</center-frequency>
-        <wavelength>1554.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>68</wavelength-number>
-        <center-frequency>192.75</center-frequency>
-        <wavelength>1555.34</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>69</wavelength-number>
-        <center-frequency>192.7</center-frequency>
-        <wavelength>1555.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>70</wavelength-number>
-        <center-frequency>192.65</center-frequency>
-        <wavelength>1556.15</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>71</wavelength-number>
-        <center-frequency>192.6</center-frequency>
-        <wavelength>1556.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>72</wavelength-number>
-        <center-frequency>192.55</center-frequency>
-        <wavelength>1556.96</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>73</wavelength-number>
-        <center-frequency>192.5</center-frequency>
-        <wavelength>1557.36</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>74</wavelength-number>
-        <center-frequency>192.45</center-frequency>
-        <wavelength>1557.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>75</wavelength-number>
-        <center-frequency>192.4</center-frequency>
-        <wavelength>1558.17</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>76</wavelength-number>
-        <center-frequency>192.35</center-frequency>
-        <wavelength>1558.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>77</wavelength-number>
-        <center-frequency>192.3</center-frequency>
-        <wavelength>1558.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>78</wavelength-number>
-        <center-frequency>192.25</center-frequency>
-        <wavelength>1559.39</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>79</wavelength-number>
-        <center-frequency>192.2</center-frequency>
-        <wavelength>1559.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>80</wavelength-number>
-        <center-frequency>192.15</center-frequency>
-        <wavelength>1560.2</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>81</wavelength-number>
-        <center-frequency>192.1</center-frequency>
-        <wavelength>1560.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>82</wavelength-number>
-        <center-frequency>192.05</center-frequency>
-        <wavelength>1561.01</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>83</wavelength-number>
-        <center-frequency>192.0</center-frequency>
-        <wavelength>1561.42</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>84</wavelength-number>
-        <center-frequency>191.95</center-frequency>
-        <wavelength>1561.83</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>85</wavelength-number>
-        <center-frequency>191.9</center-frequency>
-        <wavelength>1562.23</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>86</wavelength-number>
-        <center-frequency>191.85</center-frequency>
-        <wavelength>1562.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>87</wavelength-number>
-        <center-frequency>191.8</center-frequency>
-        <wavelength>1563.05</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>88</wavelength-number>
-        <center-frequency>191.75</center-frequency>
-        <wavelength>1563.45</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>89</wavelength-number>
-        <center-frequency>191.7</center-frequency>
-        <wavelength>1563.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>90</wavelength-number>
-        <center-frequency>191.65</center-frequency>
-        <wavelength>1564.27</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>91</wavelength-number>
-        <center-frequency>191.6</center-frequency>
-        <wavelength>1564.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>92</wavelength-number>
-        <center-frequency>191.55</center-frequency>
-        <wavelength>1565.09</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>93</wavelength-number>
-        <center-frequency>191.5</center-frequency>
-        <wavelength>1565.5</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>94</wavelength-number>
-        <center-frequency>191.45</center-frequency>
-        <wavelength>1565.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>95</wavelength-number>
-        <center-frequency>191.4</center-frequency>
-        <wavelength>1566.31</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>96</wavelength-number>
-        <center-frequency>191.35</center-frequency>
-        <wavelength>1566.72</wavelength>
-      </wavelengths>
-    </wavelength-map>
-    <internal-link>
-      <internal-link-name>1/0/C1-PLUG-CLIENT-to-1/0/1-PLUG-NET
-      </internal-link-name>
-      <source>
-        <circuit-pack-name>1/0/C1-PLUG-CLIENT</circuit-pack-name>
-        <port-name>1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>1/0/1-PLUG-NET</circuit-pack-name>
-        <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/C1-PLUG-CLIENT</circuit-pack-name>
-        <port-name>C1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>1/0/1-PLUG-NET</circuit-pack-name>
-        <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>C1</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>C3</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>C3</port-name>
-      </destination>
-    </connection-map>
-  </org-openroadm-device>
-
-
-
-
-  <components xmlns="http://openconfig.net/yang/platform">
-    <component>
-    <name>TRANSCEIVER-1-2-49</name>
-    <state>
-    <mfg-name></mfg-name>
-        <id>/1-2-49</id>
-        <serial-no></serial-no>
-        <name>TRANSCEIVER-1-2-49</name>
-        <equipment-failure xmlns="http://openconfig.net/yang/alarms">true</equipment-failure>
-        <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-        <!--type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type-->
-        <temperature>
-        <alarm-status>false</alarm-status>
-        </temperature>
-        <hardware-version></hardware-version>
-        <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-49</name>
-    </config>
-<subcomponents></subcomponents>
-<transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-<nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-<config>
-<input-power-thresholds>
-<absolute-threshold>99.99</absolute-threshold>
-<delta-threshold>0.0</delta-threshold>
-</input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-      <output-power>
-      <avg>0.0</avg>
-         <min>-40.0</min>
-         <interval>10000000000</interval>
-        <instant>-40.0</instant>
-        <max>-40.0</max>
-        </output-power>
-        <input-power>
-        <avg>0.0</avg>
-        <min>-40.0</min>
-            <interval>10000000000</interval>
-            <instant>-40.0</instant>
-            <max>-40.0</max>
-        </input-power>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-    </state>
-    <physical-channels></physical-channels>
-</transceiver>
-</component>
-<component>
-    <name>PORT-1-2-33</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/33</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/33</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property xmlns:oc-platform="http://openconfig.net/yang/platform">
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value></value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-33</id>
-      <description></description>
-      <name>PORT-1-2-33</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-33</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-33</name>
-        <state>
-          <name>TRANSCEIVER-1-2-33</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-33</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-
-
-  <!--component>
-    <name>PORT-1-2-13</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/13</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/13</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-13</id>
-      <description></description>
-      <name>PORT-1-2-13</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-13</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-13</name>
-        <state>
-          <name>TRANSCEIVER-1-2-13</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-13</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-
-
-  <component>
-    <name>TRANSCEIVER-1-2-45</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-45</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-45</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-45</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-
-
-  <component>
-    <name>TRANSCEIVER-1-2-25</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-25</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-25</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-25</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>PORT-1-2-37</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/37</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/37</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-37</id>
-      <description></description>
-      <name>PORT-1-2-37</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-37</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-37</name>
-        <state>
-          <name>TRANSCEIVER-1-2-37</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-37</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>PORT-1-2-4</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/4</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/4</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-4</id>
-      <description></description>
-      <name>PORT-1-2-4</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-4</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-4</name>
-        <state>
-          <name>OCH-1-2-4</name>
-        </state>
-        <config>
-          <name>OCH-1-2-4</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>PORT-1-2-17</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/17</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/17</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-17</id>
-      <description></description>
-      <name>PORT-1-2-17</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-17</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-17</name>
-        <state>
-          <name>TRANSCEIVER-1-2-17</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-17</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>PORT-1-2-9</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/9</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/9</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>100GIGE_LANETH/1-2-9</id>
-      <description></description>
-      <name>PORT-1-2-9</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>DISABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>DISABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-9</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-9</name>
-        <state>
-          <name>TRANSCEIVER-1-2-9</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-9</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>TRANSCEIVER-1-2-9</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-9</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-9</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-9</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <output-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </output-power>
-        <input-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </input-power>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>TRANSCEIVER-1-2-41</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-41</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-41</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-41</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>TRANSCEIVER-1-2-21</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-21</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-21</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-21</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>SYSTEM-SOFTWARE</name>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:OPERATING_SYSTEM</type>
-      <description>Nokia 1830 PSI v2.0 SONET ADM</description>
-      <software-version>1830PSS-19.27-20</software-version>
-      <name>SYSTEM-SOFTWARE</name>
-    </state>
-    <config>
-      <name>SYSTEM-SOFTWARE</name>
-    </config>
-  </component>
-  <component>
-    <name>TRANSCEIVER-1-2-17</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-17</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-17</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-17</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>PORT-1-2-21</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/21</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/21</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-21</id>
-      <description></description>
-      <name>PORT-1-2-21</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-21</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-21</name>
-        <state>
-          <name>TRANSCEIVER-1-2-21</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-21</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>PORT-1-2-45</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/45</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/45</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-45</id>
-      <description></description>
-      <name>PORT-1-2-45</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-45</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-45</name>
-        <state>
-          <name>TRANSCEIVER-1-2-45</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-45</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>TRANSCEIVER-1-2-13</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-13</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-13</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-13</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>PORT-1-2-25</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/25</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/25</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-25</id>
-      <description></description>
-      <name>PORT-1-2-25</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-25</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-25</name>
-        <state>
-          <name>TRANSCEIVER-1-2-25</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-25</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>TRANSCEIVER-1-2-37</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-37</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-37</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-37</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>PORT-1-2-49</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/49</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/49</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>100GIGE_LANETH/1-2-49</id>
-      <description></description>
-      <name>PORT-1-2-49</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-49</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-49</name>
-        <state>
-          <name>TRANSCEIVER-1-2-49</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-49</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>OCH-1-2-2</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>OTU4/1-2-2</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-2</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <target-output-power>-20.0</target-output-power>
-        <input-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </input-power>
-        <chromatic-dispersion>
-          <max>100.0</max>
-          <instant>100.0</instant>
-          <avg>100.0</avg>
-          <min>100.0</min>
-        </chromatic-dispersion>
-        <operational-mode>34</operational-mode>
-        <output-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </output-power>
-        <line-port>PORT-1-2-2</line-port>
-        <frequency>0</frequency>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-          <differential-group-delay>
-            <instant>20.0</instant>
-            <max>20.0</max>
-            <avg>20.0</avg>
-            <min>20.0</min>
-          </differential-group-delay>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>34</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-2</name>
-    </config>
-  </component>
-  <component>
-    <name>OCH-1-2-1</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>OTU4/1-2-1</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-1</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <target-output-power>-10.0</target-output-power>
-        <input-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </input-power>
-        <chromatic-dispersion>
-          <max>100.0</max>
-          <instant>100.0</instant>
-          <avg>100.0</avg>
-          <min>100.0</min>
-        </chromatic-dispersion>
-        <operational-mode>34</operational-mode>
-        <output-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </output-power>
-        <line-port>PORT-1-2-1</line-port>
-        <frequency>191700000</frequency>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-          <differential-group-delay>
-            <instant>20.0</instant>
-            <max>20.0</max>
-            <avg>20.0</avg>
-            <min>20.0</min>
-          </differential-group-delay>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>191700000</frequency>
-        <target-output-power>-10.0</target-output-power>
-        <operational-mode>34</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-1</name>
-    </config>
-  </component>
-  <component>
-    <name>OCH-1-2-4</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>UNASSIGNED/1-2-4</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-4</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <line-port>PORT-1-2-4</line-port>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-4</name>
-    </config>
-  </component>
-  <component>
-    <name>OCH-1-2-3</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>UNASSIGNED/1-2-3</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-3</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <line-port>PORT-1-2-3</line-port>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-3</name>
-    </config>
-  </component>
-  <component>
-    <name>PORT-1-2-1</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/1</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/1</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>OTU4/1-2-1</id>
-      <description></description>
-      <name>PORT-1-2-1</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-1</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-1</name>
-        <state>
-          <name>OCH-1-2-1</name>
-        </state>
-        <config>
-          <name>OCH-1-2-1</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>CARD-1-2</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Card-1-2</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Card-1-2</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <linecard xmlns="http://openconfig.net/yang/platform/linecard">
-      <state>
-        <power-admin-state>POWER_ENABLED</power-admin-state>
-        <slot-id>2</slot-id>
-      </state>
-      <config>
-        <power-admin-state>POWER_ENABLED</power-admin-state>
-      </config>
-    </linecard>
-    <properties>
-      <property>
-        <name>CardMode</name>
-        <state>
-          <configurable>true</configurable>
-          <name>CardMode</name>
-          <value>ETH_100G</value>
-        </state>
-        <config>
-          <name>CardMode</name>
-          <value>ETH_100G</value>
-        </config>
-      </property>
-      <property>
-        <name>InterworkingMode</name>
-        <state>
-          <configurable>true</configurable>
-          <name>InterworkingMode</name>
-          <value>LEGACY</value>
-        </state>
-        <config>
-          <name>InterworkingMode</name>
-          <value>LEGACY</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <mfg-name>NOK</mfg-name>
-      <id>Card-1-2</id>
-      <serial-no>MV12345678</serial-no>
-      <name>CARD-1-2</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:LINECARD</type>
-      <temperature>
-        <instant>0.0</instant>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <description></description>
-      <hardware-version>OTLCI2000</hardware-version>
-      <part-no>8DG59339AAAA01</part-no>
-    </state>
-    <config>
-      <name>CARD-1-2</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>PORT-1-2-4</name>
-        <state>
-          <name>PORT-1-2-4</name>
-        </state>
-        <config>
-          <name>PORT-1-2-4</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-9</name>
-        <state>
-          <name>PORT-1-2-9</name>
-        </state>
-        <config>
-          <name>PORT-1-2-9</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-41</name>
-        <state>
-          <name>PORT-1-2-41</name>
-        </state>
-        <config>
-          <name>PORT-1-2-41</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-17</name>
-        <state>
-          <name>PORT-1-2-17</name>
-        </state>
-        <config>
-          <name>PORT-1-2-17</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-33</name>
-        <state>
-          <name>PORT-1-2-33</name>
-        </state>
-        <config>
-          <name>PORT-1-2-33</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-45</name>
-        <state>
-          <name>PORT-1-2-45</name>
-        </state>
-        <config>
-          <name>PORT-1-2-45</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-21</name>
-        <state>
-          <name>PORT-1-2-21</name>
-        </state>
-        <config>
-          <name>PORT-1-2-21</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-1</name>
-        <state>
-          <name>PORT-1-2-1</name>
-        </state>
-        <config>
-          <name>PORT-1-2-1</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-37</name>
-        <state>
-          <name>PORT-1-2-37</name>
-        </state>
-        <config>
-          <name>PORT-1-2-37</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-49</name>
-        <state>
-          <name>PORT-1-2-49</name>
-        </state>
-        <config>
-          <name>PORT-1-2-49</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-3</name>
-        <state>
-          <name>PORT-1-2-3</name>
-        </state>
-        <config>
-          <name>PORT-1-2-3</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-13</name>
-        <state>
-          <name>PORT-1-2-13</name>
-        </state>
-        <config>
-          <name>PORT-1-2-13</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-2</name>
-        <state>
-          <name>PORT-1-2-2</name>
-        </state>
-        <config>
-          <name>PORT-1-2-2</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-25</name>
-        <state>
-          <name>PORT-1-2-25</name>
-        </state>
-        <config>
-          <name>PORT-1-2-25</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>PORT-1-2-2</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/2</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/2</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>OTU4/1-2-2</id>
-      <description></description>
-      <name>PORT-1-2-2</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-2</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-2</name>
-        <state>
-          <name>OCH-1-2-2</name>
-        </state>
-        <config>
-          <name>OCH-1-2-2</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>PORT-1-2-3</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/3</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/3</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-3</id>
-      <description></description>
-      <name>PORT-1-2-3</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-3</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-3</name>
-        <state>
-          <name>OCH-1-2-3</name>
-        </state>
-        <config>
-          <name>OCH-1-2-3</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  <component>
-    <name>TRANSCEIVER-1-2-33</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>/1-2-33</id>
-      <serial-no></serial-no>
-      <name>TRANSCEIVER-1-2-33</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version></hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-33</name>
-    </config>
-    <subcomponents></subcomponents>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels></physical-channels>
-    </transceiver>
-  </component>
-  <component>
-    <name>CHASSIS-1</name>
-    <state>
-      <mfg-name></mfg-name>
-      <id>Master Shelf</id>
-      <serial-no></serial-no>
-      <name>CHASSIS-1</name>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:CHASSIS</type>
-      <description></description>
-      <hardware-version>PSI2T</hardware-version>
-      <part-no></part-no>
-    </state>
-    <config>
-      <name>CHASSIS-1</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>CARD-1-2</name>
-        <state>
-          <name>CARD-1-2</name>
-        </state>
-        <config>
-          <name>CARD-1-2</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Master Shelf</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Master Shelf</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-  </component>
-  <component>
-    <name>PORT-1-2-41</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/41</name>
-        <description></description>
-      </state>
-      <config>
-        <name>Port-1/2/41</name>
-        <description></description>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-41</id>
-      <description></description>
-      <name>PORT-1-2-41</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state></state>
-      <config></config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-41</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-41</name>
-        <state>
-          <name>TRANSCEIVER-1-2-41</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-41</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component-->
-
-
-</components>
-
-<currentPmlist xmlns="http://org/openroadm/pm">
-<currentPm>
-    <id>18</id>
-    <retrievalTime>2018-06-07T13:22:58+00:00</retrievalTime>
-    <granularity>15min</granularity>
-    <measurements>
-      <measurement>
-        <pmParameterValue>2.5</pmParameterValue>
-        <direction>tx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerOutput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>3</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalPowerInput</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <measurements>
-      <measurement>
-        <pmParameterValue>49.9</pmParameterValue>
-        <direction>rx</direction>
-        <validity>complete</validity>
-        <pmParameterName>
-          <type>opticalReturnLoss</type>
-        </pmParameterName>
-        <location>nearEnd</location>
-      </measurement>
-    </measurements>
-    <resource>
-      <device>
-        <node-id>ROADMA</node-id>
-      </device>
-      <resourceType>
-        <type>interface</type>
-      </resourceType>
-      <resource>
-        <interface-name>OTS-DEG1-TTP-TXRX</interface-name>
-      </resource>
-    </resource>
-</currentPm>
-</currentPmlist>
-</data>
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRA.xml b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRA.xml
deleted file mode 100644 (file)
index ac31d67..0000000
+++ /dev/null
@@ -1,673 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <org-openroadm-device xmlns="http://org/openroadm/device">
-    <info>
-      <node-id>XPDRA</node-id>
-      <node-number>1</node-number>
-      <node-type>xpdr</node-type>
-      <clli>NodeA</clli>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00001</serial-id>
-      <ipAddress>127.0.0.10</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.10</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <macAddress>aa:aa:aa:aa:aa:aa</macAddress>
-      <softwareVersion>1.0</softwareVersion>
-      <template>TPCE-XPDR001</template>
-      <current-datetime>2017-08-29T15:58:01+00:00</current-datetime>
-      <geoLocation>
-        <latitude>33</latitude>
-        <longitude>-96</longitude>
-      </geoLocation>
-    </info>
-    <users>
-      <user>
-        <name>openroadm</name>
-        <password>openroadm</password>
-        <group>sudo</group>
-      </user>
-    </users>
-    <shelves>
-      <shelf-name>1</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>1</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>0001</serial-id>
-      <type>pizza</type>
-      <product-code>zzz</product-code>
-      <manufacture-date>2017-04-01T00:00:00+00:00</manufacture-date>
-      <clei>www</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2017-02-24T15:56:10+00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>1/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <circuit-packs>
-      <circuit-pack-name>1/0</circuit-pack-name>
-      <circuit-pack-type>TSP100G</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VendorA</vendor>
-      <model>WDM80</model>
-      <serial-id>aaaaa</serial-id>
-      <type>TSP</type>
-      <product-code>TSP100G1</product-code>
-      <manufacture-date>2017-04-01T00:00:00+00:00</manufacture-date>
-      <clei>xxx</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <circuit-pack-category>
-        <type>circuitPack</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>0</subSlot>
-      <due-date>2017-04-12T15:56:10+00:00</due-date>
-      <cp-slots>
-        <slot-name>1</slot-name>
-        <label>1</label>
-        <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>
-      </cp-slots>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>1/0/1-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>1</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>1</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>1</port-name>
-        <port-type>CFP2</port-type>
-        <port-qual>xpdr-network</port-qual>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>XPDRA-NETWORK</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <logical-connection-point>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-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>2</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>1</port-name>
-        <port-type>QSFP28</port-type>
-        <port-qual>xpdr-client</port-qual>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>XPDRA-CLIENT</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <logical-connection-point>CLIENT1</logical-connection-point>
-        <transponder-port>
-        </transponder-port>
-      </ports>
-    </circuit-packs>
-    <wavelength-map>
-      <wavelengths>
-        <wavelength-number>1</wavelength-number>
-        <center-frequency>196.1</center-frequency>
-        <wavelength>1528.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>2</wavelength-number>
-        <center-frequency>196.05</center-frequency>
-        <wavelength>1529.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>3</wavelength-number>
-        <center-frequency>196.0</center-frequency>
-        <wavelength>1529.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>4</wavelength-number>
-        <center-frequency>195.95</center-frequency>
-        <wavelength>1529.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>5</wavelength-number>
-        <center-frequency>195.9</center-frequency>
-        <wavelength>1530.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>6</wavelength-number>
-        <center-frequency>195.85</center-frequency>
-        <wavelength>1530.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>7</wavelength-number>
-        <center-frequency>195.8</center-frequency>
-        <wavelength>1531.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>8</wavelength-number>
-        <center-frequency>195.75</center-frequency>
-        <wavelength>1531.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>9</wavelength-number>
-        <center-frequency>195.7</center-frequency>
-        <wavelength>1531.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>10</wavelength-number>
-        <center-frequency>195.65</center-frequency>
-        <wavelength>1532.29</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>11</wavelength-number>
-        <center-frequency>195.6</center-frequency>
-        <wavelength>1532.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>12</wavelength-number>
-        <center-frequency>195.55</center-frequency>
-        <wavelength>1533.07</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>13</wavelength-number>
-        <center-frequency>195.5</center-frequency>
-        <wavelength>1533.47</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>14</wavelength-number>
-        <center-frequency>195.45</center-frequency>
-        <wavelength>1533.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>15</wavelength-number>
-        <center-frequency>195.4</center-frequency>
-        <wavelength>1534.25</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>16</wavelength-number>
-        <center-frequency>195.35</center-frequency>
-        <wavelength>1534.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>17</wavelength-number>
-        <center-frequency>195.3</center-frequency>
-        <wavelength>1535.04</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>18</wavelength-number>
-        <center-frequency>195.25</center-frequency>
-        <wavelength>1535.43</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>19</wavelength-number>
-        <center-frequency>195.2</center-frequency>
-        <wavelength>1535.82</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>20</wavelength-number>
-        <center-frequency>195.15</center-frequency>
-        <wavelength>1536.22</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>21</wavelength-number>
-        <center-frequency>195.1</center-frequency>
-        <wavelength>1536.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>22</wavelength-number>
-        <center-frequency>195.05</center-frequency>
-        <wavelength>1537.0</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>23</wavelength-number>
-        <center-frequency>195.0</center-frequency>
-        <wavelength>1537.4</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>24</wavelength-number>
-        <center-frequency>194.95</center-frequency>
-        <wavelength>1537.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>25</wavelength-number>
-        <center-frequency>194.9</center-frequency>
-        <wavelength>1538.19</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>26</wavelength-number>
-        <center-frequency>194.85</center-frequency>
-        <wavelength>1538.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>27</wavelength-number>
-        <center-frequency>194.8</center-frequency>
-        <wavelength>1538.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>28</wavelength-number>
-        <center-frequency>194.75</center-frequency>
-        <wavelength>1539.37</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>29</wavelength-number>
-        <center-frequency>194.7</center-frequency>
-        <wavelength>1539.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>30</wavelength-number>
-        <center-frequency>194.65</center-frequency>
-        <wavelength>1540.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>31</wavelength-number>
-        <center-frequency>194.6</center-frequency>
-        <wavelength>1540.56</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>32</wavelength-number>
-        <center-frequency>194.55</center-frequency>
-        <wavelength>1540.95</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>33</wavelength-number>
-        <center-frequency>194.5</center-frequency>
-        <wavelength>1541.35</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>34</wavelength-number>
-        <center-frequency>194.45</center-frequency>
-        <wavelength>1541.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>35</wavelength-number>
-        <center-frequency>194.4</center-frequency>
-        <wavelength>1542.14</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>36</wavelength-number>
-        <center-frequency>194.35</center-frequency>
-        <wavelength>1542.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>37</wavelength-number>
-        <center-frequency>194.3</center-frequency>
-        <wavelength>1542.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>38</wavelength-number>
-        <center-frequency>194.25</center-frequency>
-        <wavelength>1543.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>39</wavelength-number>
-        <center-frequency>194.2</center-frequency>
-        <wavelength>1543.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>40</wavelength-number>
-        <center-frequency>194.15</center-frequency>
-        <wavelength>1544.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>41</wavelength-number>
-        <center-frequency>194.1</center-frequency>
-        <wavelength>1544.53</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>42</wavelength-number>
-        <center-frequency>194.05</center-frequency>
-        <wavelength>1544.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>43</wavelength-number>
-        <center-frequency>194.0</center-frequency>
-        <wavelength>1545.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>44</wavelength-number>
-        <center-frequency>193.95</center-frequency>
-        <wavelength>1545.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>45</wavelength-number>
-        <center-frequency>193.9</center-frequency>
-        <wavelength>1546.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>46</wavelength-number>
-        <center-frequency>193.85</center-frequency>
-        <wavelength>1546.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>47</wavelength-number>
-        <center-frequency>193.8</center-frequency>
-        <wavelength>1546.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>48</wavelength-number>
-        <center-frequency>193.75</center-frequency>
-        <wavelength>1547.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>49</wavelength-number>
-        <center-frequency>193.7</center-frequency>
-        <wavelength>1547.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>50</wavelength-number>
-        <center-frequency>193.65</center-frequency>
-        <wavelength>1548.11</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>51</wavelength-number>
-        <center-frequency>193.6</center-frequency>
-        <wavelength>1548.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>52</wavelength-number>
-        <center-frequency>193.55</center-frequency>
-        <wavelength>1548.91</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>53</wavelength-number>
-        <center-frequency>193.5</center-frequency>
-        <wavelength>1549.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>54</wavelength-number>
-        <center-frequency>193.45</center-frequency>
-        <wavelength>1549.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>55</wavelength-number>
-        <center-frequency>193.4</center-frequency>
-        <wavelength>1550.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>56</wavelength-number>
-        <center-frequency>193.35</center-frequency>
-        <wavelength>1550.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>57</wavelength-number>
-        <center-frequency>193.3</center-frequency>
-        <wavelength>1550.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>58</wavelength-number>
-        <center-frequency>193.25</center-frequency>
-        <wavelength>1551.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>59</wavelength-number>
-        <center-frequency>193.2</center-frequency>
-        <wavelength>1551.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>60</wavelength-number>
-        <center-frequency>193.15</center-frequency>
-        <wavelength>1552.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>61</wavelength-number>
-        <center-frequency>193.1</center-frequency>
-        <wavelength>1552.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>62</wavelength-number>
-        <center-frequency>193.05</center-frequency>
-        <wavelength>1552.93</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>63</wavelength-number>
-        <center-frequency>193.0</center-frequency>
-        <wavelength>1553.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>64</wavelength-number>
-        <center-frequency>192.95</center-frequency>
-        <wavelength>1553.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>65</wavelength-number>
-        <center-frequency>192.9</center-frequency>
-        <wavelength>1554.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>66</wavelength-number>
-        <center-frequency>192.85</center-frequency>
-        <wavelength>1554.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>67</wavelength-number>
-        <center-frequency>192.8</center-frequency>
-        <wavelength>1554.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>68</wavelength-number>
-        <center-frequency>192.75</center-frequency>
-        <wavelength>1555.34</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>69</wavelength-number>
-        <center-frequency>192.7</center-frequency>
-        <wavelength>1555.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>70</wavelength-number>
-        <center-frequency>192.65</center-frequency>
-        <wavelength>1556.15</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>71</wavelength-number>
-        <center-frequency>192.6</center-frequency>
-        <wavelength>1556.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>72</wavelength-number>
-        <center-frequency>192.55</center-frequency>
-        <wavelength>1556.96</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>73</wavelength-number>
-        <center-frequency>192.5</center-frequency>
-        <wavelength>1557.36</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>74</wavelength-number>
-        <center-frequency>192.45</center-frequency>
-        <wavelength>1557.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>75</wavelength-number>
-        <center-frequency>192.4</center-frequency>
-        <wavelength>1558.17</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>76</wavelength-number>
-        <center-frequency>192.35</center-frequency>
-        <wavelength>1558.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>77</wavelength-number>
-        <center-frequency>192.3</center-frequency>
-        <wavelength>1558.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>78</wavelength-number>
-        <center-frequency>192.25</center-frequency>
-        <wavelength>1559.39</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>79</wavelength-number>
-        <center-frequency>192.2</center-frequency>
-        <wavelength>1559.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>80</wavelength-number>
-        <center-frequency>192.15</center-frequency>
-        <wavelength>1560.2</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>81</wavelength-number>
-        <center-frequency>192.1</center-frequency>
-        <wavelength>1560.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>82</wavelength-number>
-        <center-frequency>192.05</center-frequency>
-        <wavelength>1561.01</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>83</wavelength-number>
-        <center-frequency>192.0</center-frequency>
-        <wavelength>1561.42</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>84</wavelength-number>
-        <center-frequency>191.95</center-frequency>
-        <wavelength>1561.83</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>85</wavelength-number>
-        <center-frequency>191.9</center-frequency>
-        <wavelength>1562.23</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>86</wavelength-number>
-        <center-frequency>191.85</center-frequency>
-        <wavelength>1562.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>87</wavelength-number>
-        <center-frequency>191.8</center-frequency>
-        <wavelength>1563.05</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>88</wavelength-number>
-        <center-frequency>191.75</center-frequency>
-        <wavelength>1563.45</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>89</wavelength-number>
-        <center-frequency>191.7</center-frequency>
-        <wavelength>1563.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>90</wavelength-number>
-        <center-frequency>191.65</center-frequency>
-        <wavelength>1564.27</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>91</wavelength-number>
-        <center-frequency>191.6</center-frequency>
-        <wavelength>1564.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>92</wavelength-number>
-        <center-frequency>191.55</center-frequency>
-        <wavelength>1565.09</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>93</wavelength-number>
-        <center-frequency>191.5</center-frequency>
-        <wavelength>1565.5</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>94</wavelength-number>
-        <center-frequency>191.45</center-frequency>
-        <wavelength>1565.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>95</wavelength-number>
-        <center-frequency>191.4</center-frequency>
-        <wavelength>1566.31</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>96</wavelength-number>
-        <center-frequency>191.35</center-frequency>
-        <wavelength>1566.72</wavelength>
-      </wavelengths>
-    </wavelength-map>
-    <internal-link>
-      <internal-link-name>1/0/2-PLUG-CLIENT-to-1/0/1-PLUG-NET
-      </internal-link-name>
-      <source>
-        <circuit-pack-name>1/0/2-PLUG-CLIENT</circuit-pack-name>
-        <port-name>1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>1/0/1-PLUG-NET</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>
-        <port-name>1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>1/0/1-PLUG-NET</circuit-pack-name>
-        <port-name>1</port-name>
-      </destination>
-    </connection-map>
-  </org-openroadm-device>
-</data>
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRC.xml b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-XPDRC.xml
deleted file mode 100644 (file)
index 080954b..0000000
+++ /dev/null
@@ -1,673 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <org-openroadm-device xmlns="http://org/openroadm/device">
-    <info>
-      <node-id>XPDRC</node-id>
-      <node-number>1</node-number>
-      <node-type>xpdr</node-type>
-      <clli>NodeC</clli>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00001</serial-id>
-      <ipAddress>127.0.0.12</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.11</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <macAddress>aa:aa:aa:aa:aa:aa</macAddress>
-      <softwareVersion>1.0</softwareVersion>
-      <template>TPCE-XPDR001</template>
-      <current-datetime>2017-08-29T15:58:01+00:00</current-datetime>
-      <geoLocation>
-        <latitude>33</latitude>
-        <longitude>-96</longitude>
-      </geoLocation>
-    </info>
-    <users>
-      <user>
-        <name>openroadm</name>
-        <password>openroadm</password>
-        <group>sudo</group>
-      </user>
-    </users>
-    <shelves>
-      <shelf-name>1</shelf-name>
-      <shelf-type>pizza</shelf-type>
-      <rack>XYZ</rack>
-      <shelf-position>1</shelf-position>
-      <administrative-state>inService</administrative-state>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>0001</serial-id>
-      <type>pizza</type>
-      <product-code>zzz</product-code>
-      <manufacture-date>2017-04-01T00:00:00+00:00</manufacture-date>
-      <clei>www</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <equipment-state>not-reserved-available</equipment-state>
-      <due-date>2017-02-24T15:56:10+00:00</due-date>
-      <slots>
-        <slot-name>0</slot-name>
-        <label>0</label>
-        <provisioned-circuit-pack>1/0</provisioned-circuit-pack>
-      </slots>
-    </shelves>
-    <circuit-packs>
-      <circuit-pack-name>1/0</circuit-pack-name>
-      <circuit-pack-type>TSP100G</circuit-pack-type>
-      <administrative-state>inService</administrative-state>
-      <vendor>VendorA</vendor>
-      <model>WDM80</model>
-      <serial-id>aaaaa</serial-id>
-      <type>TSP</type>
-      <product-code>TSP100G1</product-code>
-      <manufacture-date>2017-04-01T00:00:00+00:00</manufacture-date>
-      <clei>xxx</clei>
-      <hardware-version>01</hardware-version>
-      <operational-state>inService</operational-state>
-      <circuit-pack-category>
-        <type>circuitPack</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>0</subSlot>
-      <due-date>2017-04-12T15:56:10+00:00</due-date>
-      <cp-slots>
-        <slot-name>1</slot-name>
-        <label>1</label>
-        <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>
-      </cp-slots>
-    </circuit-packs>
-    <circuit-packs>
-      <circuit-pack-name>1/0/1-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>1</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>1</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>1</port-name>
-        <port-type>CFP2</port-type>
-        <port-qual>xpdr-network</port-qual>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>XPDRC-NETWORK</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <logical-connection-point>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-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>2</cp-slot-name>
-      </parent-circuit-pack>
-      <ports>
-        <port-name>1</port-name>
-        <port-type>QSFP28</port-type>
-        <port-qual>xpdr-client</port-qual>
-        <port-direction>bidirectional</port-direction>
-        <circuit-id>XPDRC-CLIENT</circuit-id>
-        <administrative-state>inService</administrative-state>
-        <logical-connection-point>CLIENT1</logical-connection-point>
-        <transponder-port>
-        </transponder-port>
-      </ports>
-    </circuit-packs>
-    <wavelength-map>
-      <wavelengths>
-        <wavelength-number>1</wavelength-number>
-        <center-frequency>196.1</center-frequency>
-        <wavelength>1528.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>2</wavelength-number>
-        <center-frequency>196.05</center-frequency>
-        <wavelength>1529.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>3</wavelength-number>
-        <center-frequency>196.0</center-frequency>
-        <wavelength>1529.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>4</wavelength-number>
-        <center-frequency>195.95</center-frequency>
-        <wavelength>1529.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>5</wavelength-number>
-        <center-frequency>195.9</center-frequency>
-        <wavelength>1530.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>6</wavelength-number>
-        <center-frequency>195.85</center-frequency>
-        <wavelength>1530.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>7</wavelength-number>
-        <center-frequency>195.8</center-frequency>
-        <wavelength>1531.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>8</wavelength-number>
-        <center-frequency>195.75</center-frequency>
-        <wavelength>1531.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>9</wavelength-number>
-        <center-frequency>195.7</center-frequency>
-        <wavelength>1531.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>10</wavelength-number>
-        <center-frequency>195.65</center-frequency>
-        <wavelength>1532.29</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>11</wavelength-number>
-        <center-frequency>195.6</center-frequency>
-        <wavelength>1532.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>12</wavelength-number>
-        <center-frequency>195.55</center-frequency>
-        <wavelength>1533.07</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>13</wavelength-number>
-        <center-frequency>195.5</center-frequency>
-        <wavelength>1533.47</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>14</wavelength-number>
-        <center-frequency>195.45</center-frequency>
-        <wavelength>1533.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>15</wavelength-number>
-        <center-frequency>195.4</center-frequency>
-        <wavelength>1534.25</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>16</wavelength-number>
-        <center-frequency>195.35</center-frequency>
-        <wavelength>1534.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>17</wavelength-number>
-        <center-frequency>195.3</center-frequency>
-        <wavelength>1535.04</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>18</wavelength-number>
-        <center-frequency>195.25</center-frequency>
-        <wavelength>1535.43</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>19</wavelength-number>
-        <center-frequency>195.2</center-frequency>
-        <wavelength>1535.82</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>20</wavelength-number>
-        <center-frequency>195.15</center-frequency>
-        <wavelength>1536.22</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>21</wavelength-number>
-        <center-frequency>195.1</center-frequency>
-        <wavelength>1536.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>22</wavelength-number>
-        <center-frequency>195.05</center-frequency>
-        <wavelength>1537.0</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>23</wavelength-number>
-        <center-frequency>195.0</center-frequency>
-        <wavelength>1537.4</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>24</wavelength-number>
-        <center-frequency>194.95</center-frequency>
-        <wavelength>1537.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>25</wavelength-number>
-        <center-frequency>194.9</center-frequency>
-        <wavelength>1538.19</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>26</wavelength-number>
-        <center-frequency>194.85</center-frequency>
-        <wavelength>1538.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>27</wavelength-number>
-        <center-frequency>194.8</center-frequency>
-        <wavelength>1538.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>28</wavelength-number>
-        <center-frequency>194.75</center-frequency>
-        <wavelength>1539.37</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>29</wavelength-number>
-        <center-frequency>194.7</center-frequency>
-        <wavelength>1539.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>30</wavelength-number>
-        <center-frequency>194.65</center-frequency>
-        <wavelength>1540.16</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>31</wavelength-number>
-        <center-frequency>194.6</center-frequency>
-        <wavelength>1540.56</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>32</wavelength-number>
-        <center-frequency>194.55</center-frequency>
-        <wavelength>1540.95</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>33</wavelength-number>
-        <center-frequency>194.5</center-frequency>
-        <wavelength>1541.35</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>34</wavelength-number>
-        <center-frequency>194.45</center-frequency>
-        <wavelength>1541.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>35</wavelength-number>
-        <center-frequency>194.4</center-frequency>
-        <wavelength>1542.14</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>36</wavelength-number>
-        <center-frequency>194.35</center-frequency>
-        <wavelength>1542.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>37</wavelength-number>
-        <center-frequency>194.3</center-frequency>
-        <wavelength>1542.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>38</wavelength-number>
-        <center-frequency>194.25</center-frequency>
-        <wavelength>1543.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>39</wavelength-number>
-        <center-frequency>194.2</center-frequency>
-        <wavelength>1543.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>40</wavelength-number>
-        <center-frequency>194.15</center-frequency>
-        <wavelength>1544.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>41</wavelength-number>
-        <center-frequency>194.1</center-frequency>
-        <wavelength>1544.53</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>42</wavelength-number>
-        <center-frequency>194.05</center-frequency>
-        <wavelength>1544.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>43</wavelength-number>
-        <center-frequency>194.0</center-frequency>
-        <wavelength>1545.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>44</wavelength-number>
-        <center-frequency>193.95</center-frequency>
-        <wavelength>1545.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>45</wavelength-number>
-        <center-frequency>193.9</center-frequency>
-        <wavelength>1546.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>46</wavelength-number>
-        <center-frequency>193.85</center-frequency>
-        <wavelength>1546.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>47</wavelength-number>
-        <center-frequency>193.8</center-frequency>
-        <wavelength>1546.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>48</wavelength-number>
-        <center-frequency>193.75</center-frequency>
-        <wavelength>1547.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>49</wavelength-number>
-        <center-frequency>193.7</center-frequency>
-        <wavelength>1547.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>50</wavelength-number>
-        <center-frequency>193.65</center-frequency>
-        <wavelength>1548.11</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>51</wavelength-number>
-        <center-frequency>193.6</center-frequency>
-        <wavelength>1548.51</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>52</wavelength-number>
-        <center-frequency>193.55</center-frequency>
-        <wavelength>1548.91</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>53</wavelength-number>
-        <center-frequency>193.5</center-frequency>
-        <wavelength>1549.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>54</wavelength-number>
-        <center-frequency>193.45</center-frequency>
-        <wavelength>1549.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>55</wavelength-number>
-        <center-frequency>193.4</center-frequency>
-        <wavelength>1550.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>56</wavelength-number>
-        <center-frequency>193.35</center-frequency>
-        <wavelength>1550.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>57</wavelength-number>
-        <center-frequency>193.3</center-frequency>
-        <wavelength>1550.92</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>58</wavelength-number>
-        <center-frequency>193.25</center-frequency>
-        <wavelength>1551.32</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>59</wavelength-number>
-        <center-frequency>193.2</center-frequency>
-        <wavelength>1551.72</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>60</wavelength-number>
-        <center-frequency>193.15</center-frequency>
-        <wavelength>1552.12</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>61</wavelength-number>
-        <center-frequency>193.1</center-frequency>
-        <wavelength>1552.52</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>62</wavelength-number>
-        <center-frequency>193.05</center-frequency>
-        <wavelength>1552.93</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>63</wavelength-number>
-        <center-frequency>193.0</center-frequency>
-        <wavelength>1553.33</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>64</wavelength-number>
-        <center-frequency>192.95</center-frequency>
-        <wavelength>1553.73</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>65</wavelength-number>
-        <center-frequency>192.9</center-frequency>
-        <wavelength>1554.13</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>66</wavelength-number>
-        <center-frequency>192.85</center-frequency>
-        <wavelength>1554.54</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>67</wavelength-number>
-        <center-frequency>192.8</center-frequency>
-        <wavelength>1554.94</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>68</wavelength-number>
-        <center-frequency>192.75</center-frequency>
-        <wavelength>1555.34</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>69</wavelength-number>
-        <center-frequency>192.7</center-frequency>
-        <wavelength>1555.75</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>70</wavelength-number>
-        <center-frequency>192.65</center-frequency>
-        <wavelength>1556.15</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>71</wavelength-number>
-        <center-frequency>192.6</center-frequency>
-        <wavelength>1556.55</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>72</wavelength-number>
-        <center-frequency>192.55</center-frequency>
-        <wavelength>1556.96</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>73</wavelength-number>
-        <center-frequency>192.5</center-frequency>
-        <wavelength>1557.36</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>74</wavelength-number>
-        <center-frequency>192.45</center-frequency>
-        <wavelength>1557.77</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>75</wavelength-number>
-        <center-frequency>192.4</center-frequency>
-        <wavelength>1558.17</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>76</wavelength-number>
-        <center-frequency>192.35</center-frequency>
-        <wavelength>1558.58</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>77</wavelength-number>
-        <center-frequency>192.3</center-frequency>
-        <wavelength>1558.98</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>78</wavelength-number>
-        <center-frequency>192.25</center-frequency>
-        <wavelength>1559.39</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>79</wavelength-number>
-        <center-frequency>192.2</center-frequency>
-        <wavelength>1559.79</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>80</wavelength-number>
-        <center-frequency>192.15</center-frequency>
-        <wavelength>1560.2</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>81</wavelength-number>
-        <center-frequency>192.1</center-frequency>
-        <wavelength>1560.61</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>82</wavelength-number>
-        <center-frequency>192.05</center-frequency>
-        <wavelength>1561.01</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>83</wavelength-number>
-        <center-frequency>192.0</center-frequency>
-        <wavelength>1561.42</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>84</wavelength-number>
-        <center-frequency>191.95</center-frequency>
-        <wavelength>1561.83</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>85</wavelength-number>
-        <center-frequency>191.9</center-frequency>
-        <wavelength>1562.23</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>86</wavelength-number>
-        <center-frequency>191.85</center-frequency>
-        <wavelength>1562.64</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>87</wavelength-number>
-        <center-frequency>191.8</center-frequency>
-        <wavelength>1563.05</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>88</wavelength-number>
-        <center-frequency>191.75</center-frequency>
-        <wavelength>1563.45</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>89</wavelength-number>
-        <center-frequency>191.7</center-frequency>
-        <wavelength>1563.86</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>90</wavelength-number>
-        <center-frequency>191.65</center-frequency>
-        <wavelength>1564.27</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>91</wavelength-number>
-        <center-frequency>191.6</center-frequency>
-        <wavelength>1564.68</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>92</wavelength-number>
-        <center-frequency>191.55</center-frequency>
-        <wavelength>1565.09</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>93</wavelength-number>
-        <center-frequency>191.5</center-frequency>
-        <wavelength>1565.5</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>94</wavelength-number>
-        <center-frequency>191.45</center-frequency>
-        <wavelength>1565.9</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>95</wavelength-number>
-        <center-frequency>191.4</center-frequency>
-        <wavelength>1566.31</wavelength>
-      </wavelengths>
-      <wavelengths>
-        <wavelength-number>96</wavelength-number>
-        <center-frequency>191.35</center-frequency>
-        <wavelength>1566.72</wavelength>
-      </wavelengths>
-    </wavelength-map>
-    <internal-link>
-      <internal-link-name>1/0/2-PLUG-CLIENT-to-1/0/1-PLUG-NET
-      </internal-link-name>
-      <source>
-        <circuit-pack-name>1/0/2-PLUG-CLIENT</circuit-pack-name>
-        <port-name>1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>1/0/1-PLUG-NET</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>
-        <port-name>1</port-name>
-      </source>
-      <destination>
-        <circuit-pack-name>1/0/1-PLUG-NET</circuit-pack-name>
-        <port-name>1</port-name>
-      </destination>
-    </connection-map>
-  </org-openroadm-device>
-</data>
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-psi2t-platform-terminal-device.xml b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/oper-psi2t-platform-terminal-device.xml
deleted file mode 100644 (file)
index 25161cc..0000000
+++ /dev/null
@@ -1,2754 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <components xmlns="http://openconfig.net/yang/platform">
-    <component>
-    <name>TRANSCEIVER-1-2-49</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-49</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-49</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">true</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-49</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <output-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </output-power>
-        <input-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </input-power>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-33</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/33</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/33</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-33</id>
-      <description/>
-      <name>PORT-1-2-33</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-33</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-33</name>
-        <state>
-          <name>TRANSCEIVER-1-2-33</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-33</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-13</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/13</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/13</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-13</id>
-      <description/>
-      <name>PORT-1-2-13</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-13</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-13</name>
-        <state>
-          <name>TRANSCEIVER-1-2-13</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-13</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-45</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-45</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-45</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-45</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-25</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-25</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-25</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-25</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-37</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/37</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/37</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-37</id>
-      <description/>
-      <name>PORT-1-2-37</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-37</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-37</name>
-        <state>
-          <name>TRANSCEIVER-1-2-37</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-37</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-4</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/4</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/4</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-4</id>
-      <description/>
-      <name>PORT-1-2-4</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-4</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-4</name>
-        <state>
-          <name>OCH-1-2-4</name>
-        </state>
-        <config>
-          <name>OCH-1-2-4</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-17</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/17</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/17</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-17</id>
-      <description/>
-      <name>PORT-1-2-17</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-17</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-17</name>
-        <state>
-          <name>TRANSCEIVER-1-2-17</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-17</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-9</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/9</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/9</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>100GIGE_LANETH/1-2-9</id>
-      <description/>
-      <name>PORT-1-2-9</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>DISABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>DISABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-9</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-9</name>
-        <state>
-          <name>TRANSCEIVER-1-2-9</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-9</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-9</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-9</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-9</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-9</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <output-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </output-power>
-        <input-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </input-power>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-41</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-41</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-41</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-41</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-21</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-21</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-21</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-21</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>SYSTEM-SOFTWARE</name>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:OPERATING_SYSTEM</type>
-      <description>Nokia 1830 PSI v2.0 SONET ADM</description>
-      <software-version>1830PSS-19.27-20</software-version>
-      <name>SYSTEM-SOFTWARE</name>
-    </state>
-    <config>
-      <name>SYSTEM-SOFTWARE</name>
-    </config>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-17</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-17</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-17</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-17</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-21</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/21</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/21</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-21</id>
-      <description/>
-      <name>PORT-1-2-21</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-21</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-21</name>
-        <state>
-          <name>TRANSCEIVER-1-2-21</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-21</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-45</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/45</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/45</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-45</id>
-      <description/>
-      <name>PORT-1-2-45</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-45</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-45</name>
-        <state>
-          <name>TRANSCEIVER-1-2-45</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-45</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-13</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-13</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-13</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-13</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-25</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/25</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/25</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-25</id>
-      <description/>
-      <name>PORT-1-2-25</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-25</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-25</name>
-        <state>
-          <name>TRANSCEIVER-1-2-25</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-25</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-37</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-37</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-37</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-37</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-49</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/49</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/49</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>100GIGE_LANETH/1-2-49</id>
-      <description/>
-      <name>PORT-1-2-49</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-49</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-49</name>
-        <state>
-          <name>TRANSCEIVER-1-2-49</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-49</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>OCH-1-2-2</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>OTU4/1-2-2</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-2</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <target-output-power>-20.0</target-output-power>
-        <input-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </input-power>
-        <chromatic-dispersion>
-          <max>100.0</max>
-          <instant>100.0</instant>
-          <avg>100.0</avg>
-          <min>100.0</min>
-        </chromatic-dispersion>
-        <operational-mode>34</operational-mode>
-        <output-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </output-power>
-        <line-port>PORT-1-2-2</line-port>
-        <frequency>0</frequency>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-          <differential-group-delay>
-            <instant>20.0</instant>
-            <max>20.0</max>
-            <avg>20.0</avg>
-            <min>20.0</min>
-          </differential-group-delay>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>34</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-2</name>
-    </config>
-  </component>
-    <component>
-    <name>OCH-1-2-1</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>OTU4/1-2-1</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-1</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <target-output-power>-10.0</target-output-power>
-        <input-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </input-power>
-        <chromatic-dispersion>
-          <max>100.0</max>
-          <instant>100.0</instant>
-          <avg>100.0</avg>
-          <min>100.0</min>
-        </chromatic-dispersion>
-        <operational-mode>34</operational-mode>
-        <output-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </output-power>
-        <line-port>PORT-1-2-1</line-port>
-        <frequency>191700000</frequency>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-          <differential-group-delay>
-            <instant>20.0</instant>
-            <max>20.0</max>
-            <avg>20.0</avg>
-            <min>20.0</min>
-          </differential-group-delay>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>191700000</frequency>
-        <target-output-power>-10.0</target-output-power>
-        <operational-mode>34</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-1</name>
-    </config>
-  </component>
-    <component>
-    <name>OCH-1-2-4</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>UNASSIGNED/1-2-4</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-4</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <line-port>PORT-1-2-4</line-port>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-4</name>
-    </config>
-  </component>
-    <component>
-    <name>OCH-1-2-3</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>UNASSIGNED/1-2-3</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-3</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <line-port>PORT-1-2-3</line-port>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-3</name>
-    </config>
-  </component>
-    <component>
-    <name>PORT-1-2-1</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/1</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/1</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>OTU4/1-2-1</id>
-      <description/>
-      <name>PORT-1-2-1</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-1</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-1</name>
-        <state>
-          <name>OCH-1-2-1</name>
-        </state>
-        <config>
-          <name>OCH-1-2-1</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>CARD-1-2</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Card-1-2</name>
-        <description/>
-      </state>
-      <config>
-        <name>Card-1-2</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <linecard xmlns="http://openconfig.net/yang/platform/linecard">
-      <state>
-        <power-admin-state>POWER_ENABLED</power-admin-state>
-        <slot-id>2</slot-id>
-      </state>
-      <config>
-        <power-admin-state>POWER_ENABLED</power-admin-state>
-      </config>
-    </linecard>
-    <properties>
-      <property>
-        <name>CardMode</name>
-        <state>
-          <configurable>true</configurable>
-          <name>CardMode</name>
-          <value>ETH_100G</value>
-        </state>
-        <config>
-          <name>CardMode</name>
-          <value>ETH_100G</value>
-        </config>
-      </property>
-      <property>
-        <name>InterworkingMode</name>
-        <state>
-          <configurable>true</configurable>
-          <name>InterworkingMode</name>
-          <value>LEGACY</value>
-        </state>
-        <config>
-          <name>InterworkingMode</name>
-          <value>LEGACY</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <mfg-name>NOK</mfg-name>
-      <id>Card-1-2</id>
-      <serial-no>MV12345678</serial-no>
-      <name>CARD-1-2</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:LINECARD</type>
-      <temperature>
-        <instant>0.0</instant>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <description/>
-      <hardware-version>OTLCI2000</hardware-version>
-      <part-no>8DG59339AAAA01</part-no>
-    </state>
-    <config>
-      <name>CARD-1-2</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>PORT-1-2-4</name>
-        <state>
-          <name>PORT-1-2-4</name>
-        </state>
-        <config>
-          <name>PORT-1-2-4</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-9</name>
-        <state>
-          <name>PORT-1-2-9</name>
-        </state>
-        <config>
-          <name>PORT-1-2-9</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-41</name>
-        <state>
-          <name>PORT-1-2-41</name>
-        </state>
-        <config>
-          <name>PORT-1-2-41</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-17</name>
-        <state>
-          <name>PORT-1-2-17</name>
-        </state>
-        <config>
-          <name>PORT-1-2-17</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-33</name>
-        <state>
-          <name>PORT-1-2-33</name>
-        </state>
-        <config>
-          <name>PORT-1-2-33</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-45</name>
-        <state>
-          <name>PORT-1-2-45</name>
-        </state>
-        <config>
-          <name>PORT-1-2-45</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-21</name>
-        <state>
-          <name>PORT-1-2-21</name>
-        </state>
-        <config>
-          <name>PORT-1-2-21</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-1</name>
-        <state>
-          <name>PORT-1-2-1</name>
-        </state>
-        <config>
-          <name>PORT-1-2-1</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-37</name>
-        <state>
-          <name>PORT-1-2-37</name>
-        </state>
-        <config>
-          <name>PORT-1-2-37</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-49</name>
-        <state>
-          <name>PORT-1-2-49</name>
-        </state>
-        <config>
-          <name>PORT-1-2-49</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-3</name>
-        <state>
-          <name>PORT-1-2-3</name>
-        </state>
-        <config>
-          <name>PORT-1-2-3</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-13</name>
-        <state>
-          <name>PORT-1-2-13</name>
-        </state>
-        <config>
-          <name>PORT-1-2-13</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-2</name>
-        <state>
-          <name>PORT-1-2-2</name>
-        </state>
-        <config>
-          <name>PORT-1-2-2</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-25</name>
-        <state>
-          <name>PORT-1-2-25</name>
-        </state>
-        <config>
-          <name>PORT-1-2-25</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-2</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/2</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/2</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>OTU4/1-2-2</id>
-      <description/>
-      <name>PORT-1-2-2</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-2</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-2</name>
-        <state>
-          <name>OCH-1-2-2</name>
-        </state>
-        <config>
-          <name>OCH-1-2-2</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-3</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/3</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/3</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-3</id>
-      <description/>
-      <name>PORT-1-2-3</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-3</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-3</name>
-        <state>
-          <name>OCH-1-2-3</name>
-        </state>
-        <config>
-          <name>OCH-1-2-3</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-33</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-33</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-33</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-33</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>CHASSIS-1</name>
-    <state>
-      <mfg-name/>
-      <id>Master Shelf</id>
-      <serial-no/>
-      <name>CHASSIS-1</name>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:CHASSIS</type>
-      <description/>
-      <hardware-version>PSI2T</hardware-version>
-      <part-no/>
-    </state>
-    <config>
-      <name>CHASSIS-1</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>CARD-1-2</name>
-        <state>
-          <name>CARD-1-2</name>
-        </state>
-        <config>
-          <name>CARD-1-2</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Master Shelf</name>
-        <description/>
-      </state>
-      <config>
-        <name>Master Shelf</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-  </component>
-    <component>
-    <name>PORT-1-2-41</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/41</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/41</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-41</id>
-      <description/>
-      <name>PORT-1-2-41</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-41</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-41</name>
-        <state>
-          <name>TRANSCEIVER-1-2-41</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-41</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  </components>
-
-
-  <terminal-device xmlns="http://openconfig.net/yang/terminal-device">
-  <config></config>
-  <state></state>
-  <logical-channels>
-    <channel>
-      <index>1010201111</index>
-      <config>
-        <loopback-mode>NONE</loopback-mode>
-        <index>1010201111</index>
-      </config>
-      <state>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <loopback-mode>NONE</loopback-mode>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <link-state>UP</link-state>
-        <index>1010201111</index>
-      </state>
-      <otn>
-        <state>
-          <post-fec-ber>
-            <max>3.0367817636E-8</max>
-            <instant>3.0367817636E-8</instant>
-            <avg>3.0367817636E-8</avg>
-            <min>3.0367817636E-8</min>
-          </post-fec-ber>
-          <pre-fec-ber>
-            <max>7.591954409E-9</max>
-            <instant>7.591954409E-9</instant>
-            <avg>7.591954409E-9</avg>
-            <min>7.591954409E-9</min>
-          </pre-fec-ber>
-        </state>
-        <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-          <config>
-            <post-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </post-fec-ber-thresholds>
-            <pre-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </pre-fec-ber-thresholds>
-          </config>
-          <state>
-            <post-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </post-fec-ber-thresholds>
-            <pre-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </pre-fec-ber-thresholds>
-          </state>
-        </nokia-telemetry-ext>
-      </otn>
-      <logical-channel-assignments>
-        <assignment>
-          <index>1010201110</index>
-          <config>
-            <index>1010201110</index>
-          </config>
-          <state>
-            <optical-channel>OCH-1-2-1</optical-channel>
-            <assignment-type>OPTICAL_CHANNEL</assignment-type>
-            <index>1010201110</index>
-          </state>
-        </assignment>
-      </logical-channel-assignments>
-    </channel>
-    <channel>
-      <index>1010268209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010268209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010268209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-    <channel>
-      <index>1010272209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010272209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010272209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-    <channel>
-      <index>1010249117</index>
-      <config>
-        <loopback-mode>NONE</loopback-mode>
-        <test-signal>false</test-signal>
-        <index>1010249117</index>
-      </config>
-      <ingress>
-        <state>
-          <transceiver>TRANSCEIVER-1-2-49</transceiver>
-        </state>
-        <config></config>
-      </ingress>
-      <state>
-        <test-signal>false</test-signal>
-        <trib-protocol xmlns:x="http://nokia.com/yang/nokia-openconfig-exttypes">x:PROT_100GE_LAN</trib-protocol>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <loopback-mode>NONE</loopback-mode>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_ETHERNET</logical-channel-type>
-        <link-state>DOWN</link-state>
-        <index>1010249117</index>
-      </state>
-      <ethernet>
-        <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-          <config>
-            <errored-seconds-thresholds>
-              <absolute-threshold>0</absolute-threshold>
-              <delta-threshold>1</delta-threshold>
-            </errored-seconds-thresholds>
-          </config>
-          <state>
-            <errored-seconds>2</errored-seconds>
-            <errored-seconds-thresholds>
-              <absolute-threshold>0</absolute-threshold>
-              <delta-threshold>1</delta-threshold>
-            </errored-seconds-thresholds>
-          </state>
-        </nokia-telemetry-ext>
-      </ethernet>
-      <logical-channel-assignments>
-        <assignment>
-          <index>1010274209</index>
-          <config>
-            <logical-channel>1010274209</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010274209</index>
-          </config>
-          <state>
-            <logical-channel>1010274209</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010274209</index>
-          </state>
-        </assignment>
-      </logical-channel-assignments>
-    </channel>
-    <channel>
-      <index>1010209117</index>
-      <config>
-        <loopback-mode>NONE</loopback-mode>
-        <test-signal>false</test-signal>
-        <index>1010209117</index>
-      </config>
-      <ingress>
-        <state>
-          <transceiver>TRANSCEIVER-1-2-9</transceiver>
-        </state>
-        <config></config>
-      </ingress>
-      <state>
-        <test-signal>false</test-signal>
-        <trib-protocol xmlns:x="http://nokia.com/yang/nokia-openconfig-exttypes">x:PROT_100GE_LAN</trib-protocol>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <loopback-mode>NONE</loopback-mode>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_ETHERNET</logical-channel-type>
-        <link-state>DOWN</link-state>
-        <index>1010209117</index>
-      </state>
-      <ethernet>
-        <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-          <config>
-            <errored-seconds-thresholds>
-              <absolute-threshold>0</absolute-threshold>
-              <delta-threshold>1</delta-threshold>
-            </errored-seconds-thresholds>
-          </config>
-          <state>
-            <errored-seconds>3</errored-seconds>
-            <errored-seconds-thresholds>
-              <absolute-threshold>0</absolute-threshold>
-              <delta-threshold>1</delta-threshold>
-            </errored-seconds-thresholds>
-          </state>
-        </nokia-telemetry-ext>
-      </ethernet>
-      <logical-channel-assignments>
-        <assignment>
-          <index>1010265209</index>
-          <config>
-            <logical-channel>1010265209</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010265209</index>
-          </config>
-          <state>
-            <logical-channel>1010265209</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010265209</index>
-          </state>
-        </assignment>
-      </logical-channel-assignments>
-    </channel>
-    <channel>
-      <index>1010202111</index>
-      <config>
-        <loopback-mode>NONE</loopback-mode>
-        <index>1010202111</index>
-      </config>
-      <state>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <loopback-mode>NONE</loopback-mode>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <link-state>UP</link-state>
-        <index>1010202111</index>
-      </state>
-      <otn>
-        <state>
-          <post-fec-ber>
-            <max>3.0367817636E-8</max>
-            <instant>3.0367817636E-8</instant>
-            <avg>3.0367817636E-8</avg>
-            <min>3.0367817636E-8</min>
-          </post-fec-ber>
-          <pre-fec-ber>
-            <max>7.591954409E-9</max>
-            <instant>7.591954409E-9</instant>
-            <avg>7.591954409E-9</avg>
-            <min>7.591954409E-9</min>
-          </pre-fec-ber>
-        </state>
-        <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-          <config>
-            <post-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </post-fec-ber-thresholds>
-            <pre-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </pre-fec-ber-thresholds>
-          </config>
-          <state>
-            <post-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </post-fec-ber-thresholds>
-            <pre-fec-ber-thresholds>
-              <absolute-threshold>1E-18</absolute-threshold>
-              <delta-threshold>0.0</delta-threshold>
-            </pre-fec-ber-thresholds>
-          </state>
-        </nokia-telemetry-ext>
-      </otn>
-      <logical-channel-assignments>
-        <assignment>
-          <index>1010202110</index>
-          <config>
-            <index>1010202110</index>
-          </config>
-          <state>
-            <optical-channel>OCH-1-2-2</optical-channel>
-            <assignment-type>OPTICAL_CHANNEL</assignment-type>
-            <index>1010202110</index>
-          </state>
-        </assignment>
-      </logical-channel-assignments>
-    </channel>
-    <channel>
-      <index>1010265209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010265209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010265209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-      <logical-channel-assignments>
-        <assignment>
-          <index>1010201111</index>
-          <config>
-            <logical-channel>1010201111</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010201111</index>
-          </config>
-          <state>
-            <logical-channel>1010201111</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010201111</index>
-          </state>
-        </assignment>
-      </logical-channel-assignments>
-    </channel>
-    <channel>
-      <index>1010269209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010269209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010269209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-    <channel>
-      <index>1010273209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010273209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010273209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-    <channel>
-      <index>1010266209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010266209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010266209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-    <channel>
-      <index>1010270209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010270209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010270209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-    <channel>
-      <index>1010274209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010274209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010274209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-    <channel>
-      <index>1010267209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010267209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010267209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-      <logical-channel-assignments>
-        <assignment>
-          <index>1010202111</index>
-          <config>
-            <logical-channel>1010202111</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010202111</index>
-          </config>
-          <state>
-            <logical-channel>1010202111</logical-channel>
-            <assignment-type>LOGICAL_CHANNEL</assignment-type>
-            <index>1010202111</index>
-          </state>
-        </assignment>
-      </logical-channel-assignments>
-    </channel>
-    <channel>
-      <index>1010271209</index>
-      <config>
-        <admin-state>ENABLED</admin-state>
-        <index>1010271209</index>
-      </config>
-      <state>
-        <admin-state>ENABLED</admin-state>
-        <rate-class xmlns:x="http://openconfig.net/yang/transport-types">x:TRIB_RATE_100G</rate-class>
-        <logical-channel-type xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTN</logical-channel-type>
-        <index>1010271209</index>
-        <trib-protocol xmlns:x="http://openconfig.net/yang/transport-types">x:PROT_OTU4</trib-protocol>
-      </state>
-      <otn>
-        <state>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-          <tti-msg-auto>false</tti-msg-auto>
-          <tti-msg-recv></tti-msg-recv>
-        </state>
-        <config>
-          <tti-msg-expected></tti-msg-expected>
-          <tti-msg-transmit></tti-msg-transmit>
-        </config>
-      </otn>
-    </channel>
-  </logical-channels>
-  <operational-modes>
-    <mode>
-      <mode-id>0</mode-id>
-      <config></config>
-      <state>
-        <description>Unknown/invalid operational-mode</description>
-        <mode-id>0</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>32</mode-id>
-      <config></config>
-      <state>
-        <description>QPSK/50GHz/AFEC/100G/Differential</description>
-        <mode-id>32</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>31</mode-id>
-      <config></config>
-      <state>
-        <description>QPSK/50GHz/SDFEC/100G/Differential</description>
-        <mode-id>31</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>36</mode-id>
-      <config></config>
-      <state>
-        <description>SP-QPSK/62.5GHz/SDFEC-G2/100G/Absolute</description>
-        <mode-id>36</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>35</mode-id>
-      <config></config>
-      <state>
-        <description>SP-QPSK/62.5GHz/SDFEC-G2/100G/Differential</description>
-        <mode-id>35</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>34</mode-id>
-      <config></config>
-      <state>
-        <description>QPSK/50GHz/SDFEC-G2/100G/Absolute</description>
-        <mode-id>34</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>33</mode-id>
-      <config></config>
-      <state>
-        <description>QPSK/50GHz/SDFEC-G2/100G/Differential</description>
-        <mode-id>33</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>38</mode-id>
-      <config></config>
-      <state>
-        <description>QPSK/50GHz/SCFEC/100G/Differential</description>
-        <mode-id>38</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>37</mode-id>
-      <config></config>
-      <state>
-        <description>QPSK/50GHz/SDFEC-ACC/100G/Absolute</description>
-        <mode-id>37</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>44</mode-id>
-      <config></config>
-      <state>
-        <description>16QAM/50GHz/SDFEC-G2/200G/Absolute</description>
-        <mode-id>44</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>43</mode-id>
-      <config></config>
-      <state>
-        <description>16QAM/50GHz/SDFEC-G2/200G/Differential</description>
-        <mode-id>43</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>42</mode-id>
-      <config></config>
-      <state>
-        <description>16QAM/50GHz/SDFEC/200G/Absolute</description>
-        <mode-id>42</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>41</mode-id>
-      <config></config>
-      <state>
-        <description>16QAM/50GHz/SDFEC/200G/Differential</description>
-        <mode-id>41</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>47</mode-id>
-      <config></config>
-      <state>
-        <description>16QAM/50GHz/SDFEC-ACC/200G/Absolute</description>
-        <mode-id>47</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>46</mode-id>
-      <config></config>
-      <state>
-        <description>8QAM/62.5GHz/SDFEC-G2/200G/Absolute</description>
-        <mode-id>46</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>45</mode-id>
-      <config></config>
-      <state>
-        <description>8QAM/62.5GHz/SDFEC-G2/200G/Differential</description>
-        <mode-id>45</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>52</mode-id>
-      <config></config>
-      <state>
-        <description>16QAM-250/62.5GHz/SDFEC-G2/250G/Absolute</description>
-        <mode-id>52</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>51</mode-id>
-      <config></config>
-      <state>
-        <description>16QAM-250/62.5GHz/SDFEC-G2/250G/Differential</description>
-        <mode-id>51</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>22</mode-id>
-      <config></config>
-      <state>
-        <description>BPSK/50GHz/SDFEC-G2/50G/Absolute</description>
-        <mode-id>22</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-    <mode>
-      <mode-id>21</mode-id>
-      <config></config>
-      <state>
-        <description>BPSK/50GHz/SDFEC-G2/50G/Differential</description>
-        <mode-id>21</mode-id>
-        <vendor-id>NOKIA</vendor-id>
-      </state>
-    </mode>
-  </operational-modes>
-</terminal-device>
-</data>
-
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/psi-2t-operational-data.xml b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/psi-2t-operational-data.xml
deleted file mode 100644 (file)
index 54268b1..0000000
+++ /dev/null
@@ -1,2203 +0,0 @@
-<data>
-    <components xmlns="http://openconfig.net/yang/platform">
-      <component>
-        <name>SYSTEM-SOFTWARE</name>
-        <config>
-          <name>SYSTEM-SOFTWARE</name>
-        </config>
-        <state>
-          <name>SYSTEM-SOFTWARE</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:OPERATING_SYSTEM</type>
-          <description>Nokia 1830 PSI v2.0 SONET ADM</description>
-          <software-version>1830PSI-2.0-0</software-version>
-        </state>
-      </component>
-      <component>
-        <name>CHASSIS-1</name>
-        <config>
-          <name>CHASSIS-1</name>
-        </config>
-        <state>
-          <name>CHASSIS-1</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:CHASSIS</type>
-          <id>Master Shelf</id>
-          <description/>
-          <mfg-name/>
-          <hardware-version>PSI2T</hardware-version>
-          <serial-no/>
-          <part-no/>
-        </state>
-        <subcomponents>
-          <subcomponent>
-            <name>CARD-1-2</name>
-            <config>
-              <name>CARD-1-2</name>
-            </config>
-            <state>
-              <name>CARD-1-2</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Master Shelf</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Master Shelf</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-      </component>
-      <component>
-        <name>CARD-1-2</name>
-        <config>
-          <name>CARD-1-2</name>
-        </config>
-        <state>
-          <name>CARD-1-2</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:LINECARD</type>
-          <id>Card-1-2</id>
-          <description/>
-          <mfg-name>NOK </mfg-name>
-          <hardware-version>OTLCI2000</hardware-version>
-          <serial-no>D0183326695       </serial-no>
-          <part-no>8DG63680AAAA02</part-no>
-          <temperature>
-            <instant>0.0</instant>
-          </temperature>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <properties>
-          <property>
-            <name>CardMode</name>
-            <config>
-              <name>CardMode</name>
-              <value>ETH_100G</value>
-            </config>
-            <state>
-              <name>CardMode</name>
-              <value>ETH_100G</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-          <property>
-            <name>InterworkingMode</name>
-            <config>
-              <name>InterworkingMode</name>
-              <value>LEGACY</value>
-            </config>
-            <state>
-              <name>InterworkingMode</name>
-              <value>LEGACY</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>PORT-1-2-1</name>
-            <config>
-              <name>PORT-1-2-1</name>
-            </config>
-            <state>
-              <name>PORT-1-2-1</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-2</name>
-            <config>
-              <name>PORT-1-2-2</name>
-            </config>
-            <state>
-              <name>PORT-1-2-2</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-3</name>
-            <config>
-              <name>PORT-1-2-3</name>
-            </config>
-            <state>
-              <name>PORT-1-2-3</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-4</name>
-            <config>
-              <name>PORT-1-2-4</name>
-            </config>
-            <state>
-              <name>PORT-1-2-4</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-9</name>
-            <config>
-              <name>PORT-1-2-9</name>
-            </config>
-            <state>
-              <name>PORT-1-2-9</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-13</name>
-            <config>
-              <name>PORT-1-2-13</name>
-            </config>
-            <state>
-              <name>PORT-1-2-13</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-17</name>
-            <config>
-              <name>PORT-1-2-17</name>
-            </config>
-            <state>
-              <name>PORT-1-2-17</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-21</name>
-            <config>
-              <name>PORT-1-2-21</name>
-            </config>
-            <state>
-              <name>PORT-1-2-21</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-25</name>
-            <config>
-              <name>PORT-1-2-25</name>
-            </config>
-            <state>
-              <name>PORT-1-2-25</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-33</name>
-            <config>
-              <name>PORT-1-2-33</name>
-            </config>
-            <state>
-              <name>PORT-1-2-33</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-37</name>
-            <config>
-              <name>PORT-1-2-37</name>
-            </config>
-            <state>
-              <name>PORT-1-2-37</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-41</name>
-            <config>
-              <name>PORT-1-2-41</name>
-            </config>
-            <state>
-              <name>PORT-1-2-41</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-45</name>
-            <config>
-              <name>PORT-1-2-45</name>
-            </config>
-            <state>
-              <name>PORT-1-2-45</name>
-            </state>
-          </subcomponent>
-          <subcomponent>
-            <name>PORT-1-2-49</name>
-            <config>
-              <name>PORT-1-2-49</name>
-            </config>
-            <state>
-              <name>PORT-1-2-49</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Card-1-2</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Card-1-2</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-linecard:linecard xmlns:oc-linecard="http://openconfig.net/yang/platform/linecard">
-          <oc-linecard:config>
-            <oc-linecard:power-admin-state>POWER_ENABLED</oc-linecard:power-admin-state>
-          </oc-linecard:config>
-          <oc-linecard:state>
-            <oc-linecard:power-admin-state>POWER_ENABLED</oc-linecard:power-admin-state>
-            <oc-linecard:slot-id>2</oc-linecard:slot-id>
-          </oc-linecard:state>
-        </oc-linecard:linecard>
-      </component>
-      <component>
-        <name>PORT-1-2-1</name>
-        <config>
-          <name>PORT-1-2-1</name>
-        </config>
-        <state>
-          <name>PORT-1-2-1</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>OTU4HALF_X5/1-2-1</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>OCH-1-2-1</name>
-            <config>
-              <name>OCH-1-2-1</name>
-            </config>
-            <state>
-              <name>OCH-1-2-1</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/1</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/1</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>OCH-1-2-1</name>
-        <config>
-          <name>OCH-1-2-1</name>
-        </config>
-        <state>
-          <name>OCH-1-2-1</name>
-          <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-          <id>OTU4HALF_X5/1-2-1</id>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <properties>
-          <property>
-            <name>BandCapable</name>
-            <config>
-              <name>BandCapable</name>
-            </config>
-            <state>
-              <name>BandCapable</name>
-              <value>C_BAND</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>FlexGridCapable</name>
-            <config>
-              <name>FlexGridCapable</name>
-            </config>
-            <state>
-              <name>FlexGridCapable</name>
-              <value>true</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MinFrequence_C_Band</name>
-            <config>
-              <name>MinFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MinFrequence_C_Band</name>
-              <value>191300000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MaxFrequence_C_Band</name>
-            <config>
-              <name>MaxFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MaxFrequence_C_Band</name>
-              <value>196050000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-        </properties>
-        <oc-opt-term:optical-channel xmlns:oc-opt-term="http://openconfig.net/yang/terminal-device">
-          <oc-opt-term:config>
-            <oc-opt-term:frequency>193000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>-1.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-          </oc-opt-term:config>
-          <oc-opt-term:state>
-            <oc-opt-term:frequency>193000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>-1.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-            <oc-opt-term:line-port>PORT-1-2-1</oc-opt-term:line-port>
-            <oc-opt-term:output-power>
-              <oc-opt-term:instant>-1.15</oc-opt-term:instant>
-              <oc-opt-term:avg>-1.13</oc-opt-term:avg>
-              <oc-opt-term:min>-1.15</oc-opt-term:min>
-              <oc-opt-term:max>-1.11</oc-opt-term:max>
-            </oc-opt-term:output-power>
-            <oc-opt-term:input-power>
-              <oc-opt-term:instant>-14.51</oc-opt-term:instant>
-              <oc-opt-term:avg>-14.49</oc-opt-term:avg>
-              <oc-opt-term:min>-14.51</oc-opt-term:min>
-              <oc-opt-term:max>-14.47</oc-opt-term:max>
-            </oc-opt-term:input-power>
-            <oc-opt-term:chromatic-dispersion>
-              <oc-opt-term:instant>-20.0</oc-opt-term:instant>
-              <oc-opt-term:avg>-20.0</oc-opt-term:avg>
-              <oc-opt-term:min>-20.0</oc-opt-term:min>
-              <oc-opt-term:max>-20.0</oc-opt-term:max>
-            </oc-opt-term:chromatic-dispersion>
-          </oc-opt-term:state>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-              <n-oc-telem-ext:differential-group-delay>
-                <n-oc-telem-ext:instant>0.6</n-oc-telem-ext:instant>
-                <n-oc-telem-ext:avg>1.4</n-oc-telem-ext:avg>
-                <n-oc-telem-ext:min>0.2</n-oc-telem-ext:min>
-                <n-oc-telem-ext:max>4.3</n-oc-telem-ext:max>
-              </n-oc-telem-ext:differential-group-delay>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-opt-term:optical-channel>
-      </component>
-      <component>
-        <name>PORT-1-2-2</name>
-        <config>
-          <name>PORT-1-2-2</name>
-        </config>
-        <state>
-          <name>PORT-1-2-2</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>OTU4HALF_X5/1-2-2</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>OCH-1-2-2</name>
-            <config>
-              <name>OCH-1-2-2</name>
-            </config>
-            <state>
-              <name>OCH-1-2-2</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/2</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/2</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>OCH-1-2-2</name>
-        <config>
-          <name>OCH-1-2-2</name>
-        </config>
-        <state>
-          <name>OCH-1-2-2</name>
-          <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-          <id>OTU4HALF_X5/1-2-2</id>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <properties>
-          <property>
-            <name>BandCapable</name>
-            <config>
-              <name>BandCapable</name>
-            </config>
-            <state>
-              <name>BandCapable</name>
-              <value>C_BAND</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>FlexGridCapable</name>
-            <config>
-              <name>FlexGridCapable</name>
-            </config>
-            <state>
-              <name>FlexGridCapable</name>
-              <value>true</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MinFrequence_C_Band</name>
-            <config>
-              <name>MinFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MinFrequence_C_Band</name>
-              <value>191300000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MaxFrequence_C_Band</name>
-            <config>
-              <name>MaxFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MaxFrequence_C_Band</name>
-              <value>196050000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-        </properties>
-        <oc-opt-term:optical-channel xmlns:oc-opt-term="http://openconfig.net/yang/terminal-device">
-          <oc-opt-term:config>
-            <oc-opt-term:frequency>194000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>-1.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-          </oc-opt-term:config>
-          <oc-opt-term:state>
-            <oc-opt-term:frequency>194000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>-1.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-            <oc-opt-term:line-port>PORT-1-2-2</oc-opt-term:line-port>
-            <oc-opt-term:output-power>
-              <oc-opt-term:instant>-1.13</oc-opt-term:instant>
-              <oc-opt-term:avg>-1.11</oc-opt-term:avg>
-              <oc-opt-term:min>-1.13</oc-opt-term:min>
-              <oc-opt-term:max>-1.09</oc-opt-term:max>
-            </oc-opt-term:output-power>
-            <oc-opt-term:input-power>
-              <oc-opt-term:instant>-14.47</oc-opt-term:instant>
-              <oc-opt-term:avg>-14.45</oc-opt-term:avg>
-              <oc-opt-term:min>-14.5</oc-opt-term:min>
-              <oc-opt-term:max>-14.41</oc-opt-term:max>
-            </oc-opt-term:input-power>
-            <oc-opt-term:chromatic-dispersion>
-              <oc-opt-term:instant>0.0</oc-opt-term:instant>
-              <oc-opt-term:avg>0.0</oc-opt-term:avg>
-              <oc-opt-term:min>0.0</oc-opt-term:min>
-              <oc-opt-term:max>0.0</oc-opt-term:max>
-            </oc-opt-term:chromatic-dispersion>
-          </oc-opt-term:state>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-              <n-oc-telem-ext:differential-group-delay>
-                <n-oc-telem-ext:instant>5.9</n-oc-telem-ext:instant>
-                <n-oc-telem-ext:avg>5.4</n-oc-telem-ext:avg>
-                <n-oc-telem-ext:min>4.5</n-oc-telem-ext:min>
-                <n-oc-telem-ext:max>6.4</n-oc-telem-ext:max>
-              </n-oc-telem-ext:differential-group-delay>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-opt-term:optical-channel>
-      </component>
-      <component>
-        <name>PORT-1-2-3</name>
-        <config>
-          <name>PORT-1-2-3</name>
-        </config>
-        <state>
-          <name>PORT-1-2-3</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>OTU4HALF_X5/1-2-3</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>OCH-1-2-3</name>
-            <config>
-              <name>OCH-1-2-3</name>
-            </config>
-            <state>
-              <name>OCH-1-2-3</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/3</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/3</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>OCH-1-2-3</name>
-        <config>
-          <name>OCH-1-2-3</name>
-        </config>
-        <state>
-          <name>OCH-1-2-3</name>
-          <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-          <id>OTU4HALF_X5/1-2-3</id>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <properties>
-          <property>
-            <name>BandCapable</name>
-            <config>
-              <name>BandCapable</name>
-            </config>
-            <state>
-              <name>BandCapable</name>
-              <value>C_BAND</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>FlexGridCapable</name>
-            <config>
-              <name>FlexGridCapable</name>
-            </config>
-            <state>
-              <name>FlexGridCapable</name>
-              <value>true</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MinFrequence_C_Band</name>
-            <config>
-              <name>MinFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MinFrequence_C_Band</name>
-              <value>191300000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MaxFrequence_C_Band</name>
-            <config>
-              <name>MaxFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MaxFrequence_C_Band</name>
-              <value>196050000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-        </properties>
-        <oc-opt-term:optical-channel xmlns:oc-opt-term="http://openconfig.net/yang/terminal-device">
-          <oc-opt-term:config>
-            <oc-opt-term:frequency>195000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>0.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-          </oc-opt-term:config>
-          <oc-opt-term:state>
-            <oc-opt-term:frequency>195000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>0.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-            <oc-opt-term:line-port>PORT-1-2-3</oc-opt-term:line-port>
-            <oc-opt-term:output-power>
-              <oc-opt-term:instant>-1.12</oc-opt-term:instant>
-              <oc-opt-term:avg>-1.12</oc-opt-term:avg>
-              <oc-opt-term:min>-1.12</oc-opt-term:min>
-              <oc-opt-term:max>-1.12</oc-opt-term:max>
-            </oc-opt-term:output-power>
-            <oc-opt-term:input-power>
-              <oc-opt-term:instant>-14.39</oc-opt-term:instant>
-              <oc-opt-term:avg>-14.39</oc-opt-term:avg>
-              <oc-opt-term:min>-14.39</oc-opt-term:min>
-              <oc-opt-term:max>-14.39</oc-opt-term:max>
-            </oc-opt-term:input-power>
-            <oc-opt-term:chromatic-dispersion>
-              <oc-opt-term:instant>0.0</oc-opt-term:instant>
-              <oc-opt-term:avg>0.0</oc-opt-term:avg>
-              <oc-opt-term:min>0.0</oc-opt-term:min>
-              <oc-opt-term:max>0.0</oc-opt-term:max>
-            </oc-opt-term:chromatic-dispersion>
-          </oc-opt-term:state>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-              <n-oc-telem-ext:differential-group-delay>
-                <n-oc-telem-ext:instant>5.1</n-oc-telem-ext:instant>
-                <n-oc-telem-ext:avg>5.1</n-oc-telem-ext:avg>
-                <n-oc-telem-ext:min>5.1</n-oc-telem-ext:min>
-                <n-oc-telem-ext:max>5.1</n-oc-telem-ext:max>
-              </n-oc-telem-ext:differential-group-delay>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-opt-term:optical-channel>
-      </component>
-      <component>
-        <name>PORT-1-2-4</name>
-        <config>
-          <name>PORT-1-2-4</name>
-        </config>
-        <state>
-          <name>PORT-1-2-4</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>OTU4HALF_X5/1-2-4</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>OTU4HALF_X5</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>OCH-1-2-4</name>
-            <config>
-              <name>OCH-1-2-4</name>
-            </config>
-            <state>
-              <name>OCH-1-2-4</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/4</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/4</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>OCH-1-2-4</name>
-        <config>
-          <name>OCH-1-2-4</name>
-        </config>
-        <state>
-          <name>OCH-1-2-4</name>
-          <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-          <id>OTU4HALF_X5/1-2-4</id>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <properties>
-          <property>
-            <name>BandCapable</name>
-            <config>
-              <name>BandCapable</name>
-            </config>
-            <state>
-              <name>BandCapable</name>
-              <value>C_BAND</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>FlexGridCapable</name>
-            <config>
-              <name>FlexGridCapable</name>
-            </config>
-            <state>
-              <name>FlexGridCapable</name>
-              <value>true</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MinFrequence_C_Band</name>
-            <config>
-              <name>MinFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MinFrequence_C_Band</name>
-              <value>191300000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-          <property>
-            <name>MaxFrequence_C_Band</name>
-            <config>
-              <name>MaxFrequence_C_Band</name>
-            </config>
-            <state>
-              <name>MaxFrequence_C_Band</name>
-              <value>196050000</value>
-              <configurable>false</configurable>
-            </state>
-          </property>
-        </properties>
-        <oc-opt-term:optical-channel xmlns:oc-opt-term="http://openconfig.net/yang/terminal-device">
-          <oc-opt-term:config>
-            <oc-opt-term:frequency>196000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>0.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-          </oc-opt-term:config>
-          <oc-opt-term:state>
-            <oc-opt-term:frequency>196000000</oc-opt-term:frequency>
-            <oc-opt-term:target-output-power>0.0</oc-opt-term:target-output-power>
-            <oc-opt-term:operational-mode>52</oc-opt-term:operational-mode>
-            <oc-opt-term:line-port>PORT-1-2-4</oc-opt-term:line-port>
-            <oc-opt-term:output-power>
-              <oc-opt-term:instant>-1.13</oc-opt-term:instant>
-              <oc-opt-term:avg>-1.13</oc-opt-term:avg>
-              <oc-opt-term:min>-1.13</oc-opt-term:min>
-              <oc-opt-term:max>-1.13</oc-opt-term:max>
-            </oc-opt-term:output-power>
-            <oc-opt-term:input-power>
-              <oc-opt-term:instant>-14.48</oc-opt-term:instant>
-              <oc-opt-term:avg>-14.48</oc-opt-term:avg>
-              <oc-opt-term:min>-14.48</oc-opt-term:min>
-              <oc-opt-term:max>-14.48</oc-opt-term:max>
-            </oc-opt-term:input-power>
-            <oc-opt-term:chromatic-dispersion>
-              <oc-opt-term:instant>0.0</oc-opt-term:instant>
-              <oc-opt-term:avg>0.0</oc-opt-term:avg>
-              <oc-opt-term:min>0.0</oc-opt-term:min>
-              <oc-opt-term:max>0.0</oc-opt-term:max>
-            </oc-opt-term:chromatic-dispersion>
-          </oc-opt-term:state>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-              <n-oc-telem-ext:chromatic-dispersion-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:chromatic-dispersion-thresholds>
-              <n-oc-telem-ext:differential-group-delay-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:differential-group-delay-thresholds>
-              <n-oc-telem-ext:differential-group-delay>
-                <n-oc-telem-ext:instant>3.0</n-oc-telem-ext:instant>
-                <n-oc-telem-ext:avg>3.0</n-oc-telem-ext:avg>
-                <n-oc-telem-ext:min>3.0</n-oc-telem-ext:min>
-                <n-oc-telem-ext:max>3.0</n-oc-telem-ext:max>
-              </n-oc-telem-ext:differential-group-delay>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-opt-term:optical-channel>
-      </component>
-      <component>
-        <name>PORT-1-2-9</name>
-        <config>
-          <name>PORT-1-2-9</name>
-        </config>
-        <state>
-          <name>PORT-1-2-9</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-9</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-9</name>
-            <config>
-              <name>TRANSCEIVER-1-2-9</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-9</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/9</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/9</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-9</name>
-        <config>
-          <name>TRANSCEIVER-1-2-9</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-9</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>Q28LR4D/1-2-9</id>
-          <mfg-name>NOK </mfg-name>
-          <hardware-version>Q28LR4D </hardware-version>
-          <serial-no>FG022527001C-Q  </serial-no>
-          <part-no>############  </part-no>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>PRESENT</oc-transceiver:present>
-            <oc-transceiver:form-factor xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</oc-transceiver:form-factor>
-            <oc-transceiver:connector-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:LC_CONNECTOR</oc-transceiver:connector-type>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:vendor>NOK</oc-transceiver:vendor>
-            <oc-transceiver:vendor-part>############</oc-transceiver:vendor-part>
-            <oc-transceiver:vendor-rev>LQ</oc-transceiver:vendor-rev>
-            <oc-transceiver:ethernet-pmd xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:ETH_100GBASE_LR4</oc-transceiver:ethernet-pmd>
-            <oc-transceiver:serial-no>FG022527001C-Q</oc-transceiver:serial-no>
-            <!--oc-transceiver:date-code>2016-04-26T00:00:00Z+00:00</oc-transceiver:date-code-->
-            <oc-transceiver:fault-condition>false</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>6.53</oc-transceiver:instant>
-              <oc-transceiver:avg>6.53</oc-transceiver:avg>
-              <oc-transceiver:min>6.53</oc-transceiver:min>
-              <oc-transceiver:max>6.53</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>7.35</oc-transceiver:instant>
-              <oc-transceiver:avg>7.35</oc-transceiver:avg>
-              <oc-transceiver:min>7.35</oc-transceiver:min>
-              <oc-transceiver:max>7.35</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels>
-            <oc-transceiver:channel>
-              <oc-transceiver:index>1</oc-transceiver:index>
-              <oc-transceiver:config>
-                <oc-transceiver:index>1</oc-transceiver:index>
-              </oc-transceiver:config>
-              <oc-transceiver:state>
-                <oc-transceiver:index>1</oc-transceiver:index>
-                <oc-transceiver:output-frequency>228999540</oc-transceiver:output-frequency>
-              </oc-transceiver:state>
-            </oc-transceiver:channel>
-            <oc-transceiver:channel>
-              <oc-transceiver:index>2</oc-transceiver:index>
-              <oc-transceiver:config>
-                <oc-transceiver:index>2</oc-transceiver:index>
-              </oc-transceiver:config>
-              <oc-transceiver:state>
-                <oc-transceiver:index>2</oc-transceiver:index>
-                <oc-transceiver:output-frequency>229799980</oc-transceiver:output-frequency>
-              </oc-transceiver:state>
-            </oc-transceiver:channel>
-            <oc-transceiver:channel>
-              <oc-transceiver:index>3</oc-transceiver:index>
-              <oc-transceiver:config>
-                <oc-transceiver:index>3</oc-transceiver:index>
-              </oc-transceiver:config>
-              <oc-transceiver:state>
-                <oc-transceiver:index>3</oc-transceiver:index>
-                <oc-transceiver:output-frequency>230600714</oc-transceiver:output-frequency>
-              </oc-transceiver:state>
-            </oc-transceiver:channel>
-            <oc-transceiver:channel>
-              <oc-transceiver:index>4</oc-transceiver:index>
-              <oc-transceiver:config>
-                <oc-transceiver:index>4</oc-transceiver:index>
-              </oc-transceiver:config>
-              <oc-transceiver:state>
-                <oc-transceiver:index>4</oc-transceiver:index>
-                <oc-transceiver:output-frequency>231399903</oc-transceiver:output-frequency>
-              </oc-transceiver:state>
-            </oc-transceiver:channel>
-          </oc-transceiver:physical-channels>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-13</name>
-        <config>
-          <name>PORT-1-2-13</name>
-        </config>
-        <state>
-          <name>PORT-1-2-13</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-13</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-13</name>
-            <config>
-              <name>TRANSCEIVER-1-2-13</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-13</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/13</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/13</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-13</name>
-        <config>
-          <name>TRANSCEIVER-1-2-13</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-13</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-13</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-17</name>
-        <config>
-          <name>PORT-1-2-17</name>
-        </config>
-        <state>
-          <name>PORT-1-2-17</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-17</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-17</name>
-            <config>
-              <name>TRANSCEIVER-1-2-17</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-17</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/17</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/17</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-17</name>
-        <config>
-          <name>TRANSCEIVER-1-2-17</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-17</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-17</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-21</name>
-        <config>
-          <name>PORT-1-2-21</name>
-        </config>
-        <state>
-          <name>PORT-1-2-21</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-21</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-21</name>
-            <config>
-              <name>TRANSCEIVER-1-2-21</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-21</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/21</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/21</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-21</name>
-        <config>
-          <name>TRANSCEIVER-1-2-21</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-21</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-21</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-25</name>
-        <config>
-          <name>PORT-1-2-25</name>
-        </config>
-        <state>
-          <name>PORT-1-2-25</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-25</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-25</name>
-            <config>
-              <name>TRANSCEIVER-1-2-25</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-25</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/25</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/25</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-25</name>
-        <config>
-          <name>TRANSCEIVER-1-2-25</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-25</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-25</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-33</name>
-        <config>
-          <name>PORT-1-2-33</name>
-        </config>
-        <state>
-          <name>PORT-1-2-33</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-33</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-33</name>
-            <config>
-              <name>TRANSCEIVER-1-2-33</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-33</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/33</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/33</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-33</name>
-        <config>
-          <name>TRANSCEIVER-1-2-33</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-33</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-33</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-37</name>
-        <config>
-          <name>PORT-1-2-37</name>
-        </config>
-        <state>
-          <name>PORT-1-2-37</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-37</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-37</name>
-            <config>
-              <name>TRANSCEIVER-1-2-37</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-37</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/37</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/37</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-37</name>
-        <config>
-          <name>TRANSCEIVER-1-2-37</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-37</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-37</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-41</name>
-        <config>
-          <name>PORT-1-2-41</name>
-        </config>
-        <state>
-          <name>PORT-1-2-41</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-41</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-41</name>
-            <config>
-              <name>TRANSCEIVER-1-2-41</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-41</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/41</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/41</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-41</name>
-        <config>
-          <name>TRANSCEIVER-1-2-41</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-41</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-41</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-45</name>
-        <config>
-          <name>PORT-1-2-45</name>
-        </config>
-        <state>
-          <name>PORT-1-2-45</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-45</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-45</name>
-            <config>
-              <name>TRANSCEIVER-1-2-45</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-45</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/45</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/45</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-45</name>
-        <config>
-          <name>TRANSCEIVER-1-2-45</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-45</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-45</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-      <component>
-        <name>PORT-1-2-49</name>
-        <config>
-          <name>PORT-1-2-49</name>
-        </config>
-        <state>
-          <name>PORT-1-2-49</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-          <id>100GIGE_LANETH/1-2-49</id>
-          <description/>
-        </state>
-        <properties>
-          <property>
-            <name>PortType</name>
-            <config>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-            </config>
-            <state>
-              <name>PortType</name>
-              <value>100GIGE_LANETH</value>
-              <configurable>true</configurable>
-            </state>
-          </property>
-        </properties>
-        <subcomponents>
-          <subcomponent>
-            <name>TRANSCEIVER-1-2-49</name>
-            <config>
-              <name>TRANSCEIVER-1-2-49</name>
-            </config>
-            <state>
-              <name>TRANSCEIVER-1-2-49</name>
-            </state>
-          </subcomponent>
-        </subcomponents>
-        <n-oc-usrlbl-ext:nokia-userlabel-ext xmlns:n-oc-usrlbl-ext="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-          <n-oc-usrlbl-ext:config>
-            <n-oc-usrlbl-ext:name>Port-1/2/49</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:config>
-          <n-oc-usrlbl-ext:state>
-            <n-oc-usrlbl-ext:name>Port-1/2/49</n-oc-usrlbl-ext:name>
-            <n-oc-usrlbl-ext:description/>
-          </n-oc-usrlbl-ext:state>
-        </n-oc-usrlbl-ext:nokia-userlabel-ext>
-        <oc-line-com:optical-port xmlns:oc-line-com="http://openconfig.net/yang/transport-line-common">
-          <oc-line-com:config>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:config>
-          <oc-line-com:state>
-            <oc-line-com:admin-state>ENABLED</oc-line-com:admin-state>
-          </oc-line-com:state>
-        </oc-line-com:optical-port>
-      </component>
-      <component>
-        <name>TRANSCEIVER-1-2-49</name>
-        <config>
-          <name>TRANSCEIVER-1-2-49</name>
-        </config>
-        <state>
-          <name>TRANSCEIVER-1-2-49</name>
-          <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-          <id>/1-2-49</id>
-          <mfg-name/>
-          <hardware-version/>
-          <serial-no/>
-          <part-no/>
-          <oc-alarms:equipment-failure xmlns:oc-alarms="http://openconfig.net/yang/alarms">true</oc-alarms:equipment-failure>
-          <oc-alarms:equipment-mismatch xmlns:oc-alarms="http://openconfig.net/yang/alarms">false</oc-alarms:equipment-mismatch>
-        </state>
-        <oc-transceiver:transceiver xmlns:oc-transceiver="http://openconfig.net/yang/platform/transceiver">
-          <oc-transceiver:state>
-            <oc-transceiver:enabled>true</oc-transceiver:enabled>
-            <oc-transceiver:present>NOT_PRESENT</oc-transceiver:present>
-            <oc-transceiver:internal-temp>0</oc-transceiver:internal-temp>
-            <oc-transceiver:fault-condition>true</oc-transceiver:fault-condition>
-            <oc-transceiver:output-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:output-power>
-            <oc-transceiver:input-power>
-              <oc-transceiver:instant>-40.0</oc-transceiver:instant>
-              <oc-transceiver:avg>0.0</oc-transceiver:avg>
-              <oc-transceiver:min>-40.0</oc-transceiver:min>
-              <oc-transceiver:max>-40.0</oc-transceiver:max>
-            </oc-transceiver:input-power>
-          </oc-transceiver:state>
-          <oc-transceiver:physical-channels/>
-          <n-oc-telem-ext:nokia-telemetry-ext xmlns:n-oc-telem-ext="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-            <n-oc-telem-ext:config>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:config>
-            <n-oc-telem-ext:state>
-              <n-oc-telem-ext:output-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>3.39</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:output-power-thresholds>
-              <n-oc-telem-ext:input-power-thresholds>
-                <n-oc-telem-ext:absolute-threshold>0.0</n-oc-telem-ext:absolute-threshold>
-                <n-oc-telem-ext:delta-threshold>0.0</n-oc-telem-ext:delta-threshold>
-              </n-oc-telem-ext:input-power-thresholds>
-            </n-oc-telem-ext:state>
-          </n-oc-telem-ext:nokia-telemetry-ext>
-        </oc-transceiver:transceiver>
-      </component>
-    </components>
-  </data>
-
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/result.xml b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/test/resources/result.xml
deleted file mode 100644 (file)
index 0022315..0000000
+++ /dev/null
@@ -1,2060 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-  <!--netconf xmlns="urn:ietf:params:xml:ns:netmod:notification" />
-  <org-openroadm-device xmlns="http://org/openroadm/device" />
-    <info>
-      <node-id>XPDRA</node-id>
-      <node-number>1</node-number>
-      <node-type>xpdr</node-type>
-      <clli>NodeA</clli>
-      <vendor>vendorA</vendor>
-      <model>1</model>
-      <serial-id>00001</serial-id>
-      <ipAddress>127.0.0.10</ipAddress>
-      <prefix-length>28</prefix-length>
-      <defaultGateway>127.0.0.20</defaultGateway>
-      <source>static</source>
-      <current-ipAddress>127.0.0.10</current-ipAddress>
-      <current-prefix-length>28</current-prefix-length>
-      <macAddress>aa:aa:aa:aa:aa:aa</macAddress>
-      <softwareVersion>1.0</softwareVersion>
-      <template>TPCE-XPDR001</template>
-      <current-datetime>2017-08-29T15:58:01+00:00</current-datetime>
-      <geoLocation>
-        <latitude>33</latitude>
-        <longitude>-96</longitude>
-      </geoLocation>
-    </info>
-  </org-openroadm-device-->
-  <components xmlns="http://openconfig.net/yang/platform">
-    <component>
-    <name>TRANSCEIVER-1-2-49</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-49</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-49</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">true</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-49</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <output-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </output-power>
-        <input-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </input-power>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-33</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/33</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/33</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-33</id>
-      <description/>
-      <name>PORT-1-2-33</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-33</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-33</name>
-        <state>
-          <name>TRANSCEIVER-1-2-33</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-33</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-13</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/13</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/13</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-13</id>
-      <description/>
-      <name>PORT-1-2-13</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-13</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-13</name>
-        <state>
-          <name>TRANSCEIVER-1-2-13</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-13</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-45</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-45</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-45</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-45</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-25</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-25</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-25</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-25</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-37</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/37</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/37</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-37</id>
-      <description/>
-      <name>PORT-1-2-37</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-37</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-37</name>
-        <state>
-          <name>TRANSCEIVER-1-2-37</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-37</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-4</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/4</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/4</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-4</id>
-      <description/>
-      <name>PORT-1-2-4</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-4</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-4</name>
-        <state>
-          <name>OCH-1-2-4</name>
-        </state>
-        <config>
-          <name>OCH-1-2-4</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-17</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/17</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/17</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-17</id>
-      <description/>
-      <name>PORT-1-2-17</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-17</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-17</name>
-        <state>
-          <name>TRANSCEIVER-1-2-17</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-17</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-9</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/9</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/9</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>100GIGE_LANETH/1-2-9</id>
-      <description/>
-      <name>PORT-1-2-9</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>DISABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>DISABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-9</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-9</name>
-        <state>
-          <name>TRANSCEIVER-1-2-9</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-9</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-9</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-9</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-9</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-9</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <output-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </output-power>
-        <input-power>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-          <instant>-40.0</instant>
-          <max>-40.0</max>
-        </input-power>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-41</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-41</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-41</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-41</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-21</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-21</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-21</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-21</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>SYSTEM-SOFTWARE</name>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:OPERATING_SYSTEM</type>
-      <description>Nokia 1830 PSI v2.0 SONET ADM</description>
-      <software-version>1830PSS-19.27-20</software-version>
-      <name>SYSTEM-SOFTWARE</name>
-    </state>
-    <config>
-      <name>SYSTEM-SOFTWARE</name>
-    </config>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-17</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-17</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-17</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-17</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-21</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/21</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/21</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-21</id>
-      <description/>
-      <name>PORT-1-2-21</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-21</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-21</name>
-        <state>
-          <name>TRANSCEIVER-1-2-21</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-21</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-45</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/45</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/45</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-45</id>
-      <description/>
-      <name>PORT-1-2-45</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-45</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-45</name>
-        <state>
-          <name>TRANSCEIVER-1-2-45</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-45</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-13</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-13</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-13</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-13</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-25</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/25</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/25</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-25</id>
-      <description/>
-      <name>PORT-1-2-25</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-25</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-25</name>
-        <state>
-          <name>TRANSCEIVER-1-2-25</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-25</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-37</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-37</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-37</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-37</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>PORT-1-2-49</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/49</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/49</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>100GIGE_LANETH</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>100GIGE_LANETH/1-2-49</id>
-      <description/>
-      <name>PORT-1-2-49</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-49</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-49</name>
-        <state>
-          <name>TRANSCEIVER-1-2-49</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-49</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>OCH-1-2-2</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>OTU4/1-2-2</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-2</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <target-output-power>-20.0</target-output-power>
-        <input-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </input-power>
-        <chromatic-dispersion>
-          <max>100.0</max>
-          <instant>100.0</instant>
-          <avg>100.0</avg>
-          <min>100.0</min>
-        </chromatic-dispersion>
-        <operational-mode>34</operational-mode>
-        <output-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </output-power>
-        <line-port>PORT-1-2-2</line-port>
-        <frequency>0</frequency>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-          <differential-group-delay>
-            <instant>20.0</instant>
-            <max>20.0</max>
-            <avg>20.0</avg>
-            <min>20.0</min>
-          </differential-group-delay>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>34</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-2</name>
-    </config>
-  </component>
-    <component>
-    <name>OCH-1-2-1</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>OTU4/1-2-1</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-1</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <target-output-power>-10.0</target-output-power>
-        <input-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </input-power>
-        <chromatic-dispersion>
-          <max>100.0</max>
-          <instant>100.0</instant>
-          <avg>100.0</avg>
-          <min>100.0</min>
-        </chromatic-dispersion>
-        <operational-mode>34</operational-mode>
-        <output-power>
-          <max>-40.0</max>
-          <instant>-40.0</instant>
-          <avg>0.0</avg>
-          <min>-40.0</min>
-          <interval>10000000000</interval>
-        </output-power>
-        <line-port>PORT-1-2-1</line-port>
-        <frequency>191700000</frequency>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-          <differential-group-delay>
-            <instant>20.0</instant>
-            <max>20.0</max>
-            <avg>20.0</avg>
-            <min>20.0</min>
-          </differential-group-delay>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>191700000</frequency>
-        <target-output-power>-10.0</target-output-power>
-        <operational-mode>34</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-1</name>
-    </config>
-  </component>
-    <component>
-    <name>OCH-1-2-4</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>UNASSIGNED/1-2-4</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-4</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <line-port>PORT-1-2-4</line-port>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-4</name>
-    </config>
-  </component>
-    <component>
-    <name>OCH-1-2-3</name>
-    <properties>
-      <property>
-        <name>MinFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MinFrequence_C_Band</name>
-          <value>191300000</value>
-        </state>
-        <config>
-          <name>MinFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>FlexGridCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>FlexGridCapable</name>
-          <value>true</value>
-        </state>
-        <config>
-          <name>FlexGridCapable</name>
-        </config>
-      </property>
-      <property>
-        <name>MaxFrequence_C_Band</name>
-        <state>
-          <configurable>false</configurable>
-          <name>MaxFrequence_C_Band</name>
-          <value>196050000</value>
-        </state>
-        <config>
-          <name>MaxFrequence_C_Band</name>
-        </config>
-      </property>
-      <property>
-        <name>BandCapable</name>
-        <state>
-          <configurable>false</configurable>
-          <name>BandCapable</name>
-          <value>C_BAND</value>
-        </state>
-        <config>
-          <name>BandCapable</name>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:OPTICAL_CHANNEL</type>
-      <id>UNASSIGNED/1-2-3</id>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <name>OCH-1-2-3</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-    </state>
-    <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
-      <state>
-        <line-port>PORT-1-2-3</line-port>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </state>
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </config>
-        <state>
-          <differential-group-delay-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </differential-group-delay-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <chromatic-dispersion-thresholds>
-            <absolute-threshold>-999.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </chromatic-dispersion-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <config>
-        <frequency>0</frequency>
-        <target-output-power>-20.0</target-output-power>
-        <operational-mode>46</operational-mode>
-      </config>
-    </optical-channel>
-    <config>
-      <name>OCH-1-2-3</name>
-    </config>
-  </component>
-    <component>
-    <name>PORT-1-2-1</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/1</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/1</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>OTU4/1-2-1</id>
-      <description/>
-      <name>PORT-1-2-1</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-1</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-1</name>
-        <state>
-          <name>OCH-1-2-1</name>
-        </state>
-        <config>
-          <name>OCH-1-2-1</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>CARD-1-2</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Card-1-2</name>
-        <description/>
-      </state>
-      <config>
-        <name>Card-1-2</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <linecard xmlns="http://openconfig.net/yang/platform/linecard">
-      <state>
-        <power-admin-state>POWER_ENABLED</power-admin-state>
-        <slot-id>2</slot-id>
-      </state>
-      <config>
-        <power-admin-state>POWER_ENABLED</power-admin-state>
-      </config>
-    </linecard>
-    <properties>
-      <property>
-        <name>CardMode</name>
-        <state>
-          <configurable>true</configurable>
-          <name>CardMode</name>
-          <value>ETH_100G</value>
-        </state>
-        <config>
-          <name>CardMode</name>
-          <value>ETH_100G</value>
-        </config>
-      </property>
-      <property>
-        <name>InterworkingMode</name>
-        <state>
-          <configurable>true</configurable>
-          <name>InterworkingMode</name>
-          <value>LEGACY</value>
-        </state>
-        <config>
-          <name>InterworkingMode</name>
-          <value>LEGACY</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <mfg-name>NOK</mfg-name>
-      <id>Card-1-2</id>
-      <serial-no>MV12345678</serial-no>
-      <name>CARD-1-2</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:LINECARD</type>
-      <temperature>
-        <instant>0.0</instant>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <description/>
-      <hardware-version>OTLCI2000</hardware-version>
-      <part-no>8DG59339AAAA01</part-no>
-    </state>
-    <config>
-      <name>CARD-1-2</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>PORT-1-2-4</name>
-        <state>
-          <name>PORT-1-2-4</name>
-        </state>
-        <config>
-          <name>PORT-1-2-4</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-9</name>
-        <state>
-          <name>PORT-1-2-9</name>
-        </state>
-        <config>
-          <name>PORT-1-2-9</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-41</name>
-        <state>
-          <name>PORT-1-2-41</name>
-        </state>
-        <config>
-          <name>PORT-1-2-41</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-17</name>
-        <state>
-          <name>PORT-1-2-17</name>
-        </state>
-        <config>
-          <name>PORT-1-2-17</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-33</name>
-        <state>
-          <name>PORT-1-2-33</name>
-        </state>
-        <config>
-          <name>PORT-1-2-33</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-45</name>
-        <state>
-          <name>PORT-1-2-45</name>
-        </state>
-        <config>
-          <name>PORT-1-2-45</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-21</name>
-        <state>
-          <name>PORT-1-2-21</name>
-        </state>
-        <config>
-          <name>PORT-1-2-21</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-1</name>
-        <state>
-          <name>PORT-1-2-1</name>
-        </state>
-        <config>
-          <name>PORT-1-2-1</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-37</name>
-        <state>
-          <name>PORT-1-2-37</name>
-        </state>
-        <config>
-          <name>PORT-1-2-37</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-49</name>
-        <state>
-          <name>PORT-1-2-49</name>
-        </state>
-        <config>
-          <name>PORT-1-2-49</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-3</name>
-        <state>
-          <name>PORT-1-2-3</name>
-        </state>
-        <config>
-          <name>PORT-1-2-3</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-13</name>
-        <state>
-          <name>PORT-1-2-13</name>
-        </state>
-        <config>
-          <name>PORT-1-2-13</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-2</name>
-        <state>
-          <name>PORT-1-2-2</name>
-        </state>
-        <config>
-          <name>PORT-1-2-2</name>
-        </config>
-      </subcomponent>
-      <subcomponent>
-        <name>PORT-1-2-25</name>
-        <state>
-          <name>PORT-1-2-25</name>
-        </state>
-        <config>
-          <name>PORT-1-2-25</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-2</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/2</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/2</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>OTU4</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>OTU4/1-2-2</id>
-      <description/>
-      <name>PORT-1-2-2</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state>
-        <admin-state>ENABLED</admin-state>
-      </state>
-      <config>
-        <admin-state>ENABLED</admin-state>
-      </config>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-2</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-2</name>
-        <state>
-          <name>OCH-1-2-2</name>
-        </state>
-        <config>
-          <name>OCH-1-2-2</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>PORT-1-2-3</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/3</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/3</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-3</id>
-      <description/>
-      <name>PORT-1-2-3</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-3</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>OCH-1-2-3</name>
-        <state>
-          <name>OCH-1-2-3</name>
-        </state>
-        <config>
-          <name>OCH-1-2-3</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-    <component>
-    <name>TRANSCEIVER-1-2-33</name>
-    <state>
-      <mfg-name/>
-      <id>/1-2-33</id>
-      <serial-no/>
-      <name>TRANSCEIVER-1-2-33</name>
-      <equipment-failure xmlns="http://openconfig.net/yang/alarms">false</equipment-failure>
-      <equipment-mismatch xmlns="http://openconfig.net/yang/alarms">false</equipment-mismatch>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:TRANSCEIVER</type>
-      <temperature>
-        <alarm-status>false</alarm-status>
-      </temperature>
-      <hardware-version/>
-      <part-no/>
-    </state>
-    <config>
-      <name>TRANSCEIVER-1-2-33</name>
-    </config>
-    <subcomponents/>
-    <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
-      <nokia-telemetry-ext xmlns="http://nokia.com/yang/nokia-openconfig-telemetry-ext">
-        <config>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </config>
-        <state>
-          <input-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </input-power-thresholds>
-          <output-power-thresholds>
-            <absolute-threshold>99.99</absolute-threshold>
-            <delta-threshold>0.0</delta-threshold>
-          </output-power-thresholds>
-        </state>
-      </nokia-telemetry-ext>
-      <state>
-        <internal-temp>0</internal-temp>
-        <fault-condition>true</fault-condition>
-        <present>NOT_PRESENT</present>
-        <enabled>true</enabled>
-      </state>
-      <physical-channels/>
-    </transceiver>
-  </component>
-    <component>
-    <name>CHASSIS-1</name>
-    <state>
-      <mfg-name/>
-      <id>Master Shelf</id>
-      <serial-no/>
-      <name>CHASSIS-1</name>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:CHASSIS</type>
-      <description/>
-      <hardware-version>PSI2T</hardware-version>
-      <part-no/>
-    </state>
-    <config>
-      <name>CHASSIS-1</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>CARD-1-2</name>
-        <state>
-          <name>CARD-1-2</name>
-        </state>
-        <config>
-          <name>CARD-1-2</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Master Shelf</name>
-        <description/>
-      </state>
-      <config>
-        <name>Master Shelf</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-  </component>
-    <component>
-    <name>PORT-1-2-41</name>
-    <nokia-userlabel-ext xmlns="http://nokia.com/yang/nokia-openconfig-userlabel-ext">
-      <state>
-        <name>Port-1/2/41</name>
-        <description/>
-      </state>
-      <config>
-        <name>Port-1/2/41</name>
-        <description/>
-      </config>
-    </nokia-userlabel-ext>
-    <properties>
-      <property>
-        <name>PortType</name>
-        <state>
-          <configurable>true</configurable>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </state>
-        <config>
-          <name>PortType</name>
-          <value>UNASSIGNED</value>
-        </config>
-      </property>
-    </properties>
-    <state>
-      <type xmlns:oc-platform-types="http://openconfig.net/yang/platform-types">oc-platform-types:PORT</type>
-      <id>UNASSIGNED/1-2-41</id>
-      <description/>
-      <name>PORT-1-2-41</name>
-    </state>
-    <optical-port xmlns="http://openconfig.net/yang/transport-line-common">
-      <state/>
-      <config/>
-    </optical-port>
-    <config>
-      <name>PORT-1-2-41</name>
-    </config>
-    <subcomponents>
-      <subcomponent>
-        <name>TRANSCEIVER-1-2-41</name>
-        <state>
-          <name>TRANSCEIVER-1-2-41</name>
-        </state>
-        <config>
-          <name>TRANSCEIVER-1-2-41</name>
-        </config>
-      </subcomponent>
-    </subcomponents>
-  </component>
-  </components>
-
-  <!--terminal-device xmlns="http://openconfig.net/yang/terminal-device"/-->
-
-</data>
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/asciidoc/Readme.adoc b/tests/honeynode/2.2.1/minimal-distribution-core/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index e8306c2..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-= minimal-distribution-core
-
-Project contains core modules for minimal distribution
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/pom.xml b/tests/honeynode/2.2.1/minimal-distribution-core/pom.xml
deleted file mode 100644 (file)
index 347fa32..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ~ Copyright (c) 2017 Cisco and/or its affiliates. ~ ~ Licensed under
-    the Apache License, Version 2.0 (the "License"); ~ you may not use this file
-    except in compliance with the License. ~ You may obtain a copy of the License
-    at: ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by
-    applicable law or agreed to in writing, software ~ distributed under the
-    License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS
-    OF ANY KIND, either express or implied. ~ See the License for the specific
-    language governing permissions and ~ limitations under the License. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>impl-parent</artifactId>
-        <groupId>io.fd.honeycomb.common</groupId>
-        <version>1.19.04</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>io.fd.honeycomb.transportpce</groupId>
-    <artifactId>minimal-distribution-core</artifactId>
-    <name>${project.artifactId}</name>
-    <properties>
-        <commons-io.version>2.5</commons-io.version>
-        <osgi.core.version>5.0.0</osgi.core.version>
-        <!-- Core guice modules does not need any yang modules itself -->
-        <skip.module.list.generation>true</skip.module.list.generation>
-        <honeycomb.version>1.19.04</honeycomb.version>
-        <java.version>11</java.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <maven.javadoc.skip>true</maven.javadoc.skip>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-    </properties>
-    <dependencies>
-        <!-- DI -->
-        <dependency>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>net.jmob</groupId>
-            <artifactId>guice.conf</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.inject.extensions</groupId>
-            <artifactId>guice-multibindings</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>binding-init</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- ODL -->
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-data-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-core-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-broker-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-broker-impl</artifactId>
-        </dependency>
-        <!-- OSGI Even tough not running in OSGI, dependency needs to be here since
-            some deprecated MD-SAL APIs rely on osgi core -->
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <version>${osgi.core.version}</version>
-        </dependency>
-        <!-- Northbound -->
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound</groupId>
-            <artifactId>common</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- HC -->
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>cfg-init</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>notification-api</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>rpc-impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>data-impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>honeycomb-impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>notification-impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- Utilities -->
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>${commons-io.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.javassist</groupId>
-            <artifactId>javassist</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>javax.activation</groupId>
-            <artifactId>activation</artifactId>
-            <version>1.1.1</version>
-        </dependency>
-    </dependencies>
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.8.1</version>
-                    <configuration>
-                        <source>${java.version}</source>
-                        <target>${java.version}</target>
-                    </configuration>
-                </plugin>
-                <!--This plugin's configuration is used to store Eclipse m2e settings
-                    only. It has no influence on the Maven build itself. -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmaven</groupId>
-                                        <artifactId>groovy-maven-plugin</artifactId>
-                                        <versionRange>[2.0,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-checkstyle-plugin</artifactId>
-                                        <versionRange>[3.0.0,)</versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-dependency-plugin</artifactId>
-                                        <versionRange>[2.10,)</versionRange>
-                                        <goals>
-                                            <goal>copy-dependencies</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmavenplus</groupId>
-                                        <artifactId>gmavenplus-plugin</artifactId>
-                                        <versionRange>[1.6.2,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/InitializationException.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/InitializationException.java
deleted file mode 100644 (file)
index 0ed530c..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro;
-
-/**
- * Exception thrown when a failure occurs during HC initialization.
- */
-public class InitializationException extends RuntimeException {
-
-    public InitializationException(final String s) {
-        super(s);
-    }
-
-    public InitializationException(final String s, final Throwable throwable) {
-        super(s, throwable);
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActivationConfig.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActivationConfig.java
deleted file mode 100644 (file)
index ecda4ae..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.activation;
-
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-import java.util.Optional;
-
-@BindConfig(value = "activation", syntax = Syntax.JSON)
-public class ActivationConfig {
-
-    @InjectConfig("modules-resource-path")
-    public String modulesResourcePath;
-
-    @InjectConfig("yang-modules-index-path")
-    public String yangModulesIndexPath;
-
-    public String getModulesResourcePath() {
-        return Optional.ofNullable(modulesResourcePath).orElse("../modules/");
-    }
-
-    public String getYangModulesIndexPath() {
-        return Optional.ofNullable(yangModulesIndexPath).orElse("../yang-mapping/");
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActivationModule.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActivationModule.java
deleted file mode 100644 (file)
index 00f77a6..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.activation;
-
-import com.google.inject.AbstractModule;
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-/**
- * Module that provides set of modules activated by distribution and binds this set to be available
- */
-public class ActivationModule extends AbstractModule {
-    @Override
-    protected void configure() {
-        install(ConfigurationModule.create());
-        requestInjection(ActivationConfig.class);
-        bind(ActiveModules.class).toProvider(ActiveModuleProvider.class).asEagerSingleton();
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActiveModuleProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActiveModuleProvider.java
deleted file mode 100644 (file)
index 643af16..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.activation;
-
-import com.google.inject.Inject;
-import com.google.inject.Module;
-import com.google.inject.Provider;
-import io.fd.honeycomb.infra.distro.schema.ResourceLoader;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import javax.annotation.Nonnull;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Provides list of active modules for distribution
- */
-public class ActiveModuleProvider implements Provider<ActiveModules>, ResourceLoader {
-
-    private static final Logger LOG = LoggerFactory.getLogger(ActiveModuleProvider.class);
-
-    @Inject
-    private ActivationConfig config;
-
-    @Override
-    public ActiveModules get() {
-        return new ActiveModules(loadActiveModules(
-                aggregateResources(config.getModulesResourcePath())));
-    }
-
-    /**
-     * Provide unique set of active modules filtered from provided resources
-     */
-    static Set<Class<? extends Module>> loadActiveModules(@Nonnull final List<String> moduleNames) {
-        final ClassLoader classLoader = ActiveModuleProvider.class.getClassLoader();
-        LOG.info("Reading active modules configuration for distribution");
-
-        // process resources to resource modules
-        return moduleNames.stream()
-                .map(String::trim)
-                .filter(trimmedLine -> trimmedLine.length() != 0)
-                // filter out commented lines
-                .filter(nonEmptyLine -> !nonEmptyLine.startsWith("//"))
-                // filter duplicates
-                .distinct()
-                .map(validLine -> moduleNameToClass(validLine, classLoader))
-                // filters out classes that are not modules
-                .filter(ActiveModuleProvider::filterNonModules)
-                .collect(Collectors.toSet());
-    }
-
-    /**
-     * Aggregate all resources from provided relative path into a {@code List<String>}
-     */
-    public List<String> aggregateResources(final String relativePath) {
-        // must use universal approach of loading from folder/jar
-        // because of memory footprint benchmark
-        return new ArrayList<>(loadResourceContentsOnPath(relativePath));
-    }
-
-    private static boolean filterNonModules(final Class<?> clazz) {
-        final boolean isModule = Module.class.isAssignableFrom(clazz);
-        if (!isModule) {
-            LOG.warn("Class {} is provided in modules configuration, but is not a Module and will be ignored", clazz);
-        }
-        return isModule;
-    }
-
-    /**
-     * Loads class by provided name
-     */
-    private static Class<? extends Module> moduleNameToClass(final String name,
-                                                             final ClassLoader classLoader) {
-        try {
-            LOG.debug("Loading module class {}", name);
-            return (Class<? extends Module>) classLoader.loadClass(name);
-        } catch (ClassNotFoundException e) {
-            LOG.error("Unable to convert {} to class, make sure you've provided sources to classpath", name);
-            throw new IllegalStateException(
-                    "Unable to convert " + name + " to class, make sure you've provided sources to classpath", e);
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActiveModules.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/activation/ActiveModules.java
deleted file mode 100644 (file)
index 601e9b6..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.activation;
-
-import com.google.inject.Module;
-
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import static java.lang.String.format;
-
-/**
- * Provides static set of active activeModulesClasses
- */
-public class ActiveModules {
-    private final Set<Class<? extends Module>> activeModulesClasses;
-
-    public ActiveModules(final Set<Class<? extends Module>> activeModulesClasses) {
-        this.activeModulesClasses = activeModulesClasses;
-    }
-
-    public Set<Class<? extends Module>> getActiveModulesClasses() {
-        return activeModulesClasses;
-    }
-
-    public Set<? extends Module> createModuleInstances() {
-        return activeModulesClasses.stream()
-                .map(moduleClass -> {
-                    try {
-                        return moduleClass.newInstance();
-                    } catch (InstantiationException | IllegalAccessException e) {
-                        throw new IllegalStateException(format("Unable to create instance of module %s", moduleClass),
-                                e);
-                    }
-                }).collect(Collectors.toSet());
-    }
-
-    @Override
-    public String toString() {
-        return "ActiveModules{" +
-                "activeModulesClasses=" + activeModulesClasses +
-                '}';
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/cfgattrs/CfgAttrsModule.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/cfgattrs/CfgAttrsModule.java
deleted file mode 100644 (file)
index 29e79a2..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.cfgattrs;
-
-import com.google.inject.AbstractModule;
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-/**
- * Load the configuration from json into HoneycombConfiguration and make it available.
- */
-public class CfgAttrsModule extends AbstractModule {
-
-    @Override
-    protected void configure() {
-        install(ConfigurationModule.create());
-        // Inject non-dependency configuration
-        requestInjection(HoneycombConfiguration.class);
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/cfgattrs/HoneycombConfiguration.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/cfgattrs/HoneycombConfiguration.java
deleted file mode 100644 (file)
index cfe1408..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.cfgattrs;
-
-import com.google.common.base.MoreObjects;
-import java.util.Optional;
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-/**
- * This is the Java equivalent for honeyconb.json file. We use guice-config library to load all the config attributes
- * into this class instance.
- *
- * The BindConfig annotation tells that honeycomb.json file should be looked up on classpath root.
- */
-@BindConfig(value = "honeycomb", syntax = Syntax.JSON)
-public class HoneycombConfiguration {
-
-    @InjectConfig("persist-context")
-    public Optional<String> persistContext = Optional.of("true");
-    @InjectConfig("persisted-context-path")
-    public String peristContextPath;
-    @InjectConfig("persisted-context-restoration-type")
-    public String persistedContextRestorationType;
-    @InjectConfig("persist-config")
-    public Optional<String> persistConfig = Optional.of("true");
-    @InjectConfig("persisted-config-path")
-    public String peristConfigPath;
-    @InjectConfig("persisted-config-restoration-type")
-    public String persistedConfigRestorationType;
-    @InjectConfig("notification-service-queue-depth")
-    public int notificationServiceQueueDepth;
-
-    public boolean isConfigPersistenceEnabled() {
-        return persistConfig.isPresent() && Boolean.valueOf(persistConfig.get());
-    }
-
-    public boolean isContextPersistenceEnabled() {
-        return persistContext.isPresent() && Boolean.valueOf(persistContext.get());
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-            .add("peristContextPath", peristContextPath)
-            .add("persistedContextRestorationType", persistedContextRestorationType)
-            .add("peristConfigPath", peristConfigPath)
-            .add("persistedConfigRestorationType", persistedConfigRestorationType)
-            .add("notificationServiceQueueDepth", notificationServiceQueueDepth)
-            .toString();
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/BindingDataBrokerProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/BindingDataBrokerProvider.java
deleted file mode 100644 (file)
index 1a95ee1..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataBrokerAdapter;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-
-public final class BindingDataBrokerProvider extends ProviderTrait<DataBroker> {
-
-    @Inject
-    private DOMDataBroker domDataBroker;
-    @Inject
-    private BindingToNormalizedNodeCodec mappingService;
-
-    @Override
-    protected BindingDOMDataBrokerAdapter create() {
-        return new BindingDOMDataBrokerAdapter(domDataBroker, mappingService);
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ConfigAndOperationalPipelineModule.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ConfigAndOperationalPipelineModule.java
deleted file mode 100644 (file)
index a98b220..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (c) 2016, 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.PrivateModule;
-import com.google.inject.Singleton;
-import com.google.inject.name.Names;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.ReadableDataManager;
-import io.fd.honeycomb.data.init.DataTreeInitializer;
-import io.fd.honeycomb.data.init.ShutdownHandler;
-import io.fd.honeycomb.impl.EmptyDomMountService;
-import io.fd.honeycomb.infra.distro.data.config.WriterRegistryProvider;
-import io.fd.honeycomb.infra.distro.data.oper.ReadableDTDelegProvider;
-import io.fd.honeycomb.infra.distro.data.oper.ReaderRegistryProvider;
-import io.fd.honeycomb.rpc.RpcRegistry;
-import io.fd.honeycomb.rpc.RpcRegistryBuilder;
-import io.fd.honeycomb.translate.read.registry.ReaderRegistry;
-import io.fd.honeycomb.translate.write.registry.WriterRegistry;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.api.DOMMountPointService;
-import org.opendaylight.mdsal.dom.api.DOMRpcService;
-import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-
-public class ConfigAndOperationalPipelineModule extends PrivateModule {
-
-    public static final String HONEYCOMB_CONFIG_NONPERSIST = "honeycomb-config-nopersist";
-    public static final String HONEYCOMB_CONFIG = "honeycomb-config";
-
-    @Override
-    protected void configure() {
-        bind(ShutdownHandler.class).toProvider(ShutdownHandlerProvider.class).in(Singleton.class);
-        expose(ShutdownHandler.class);
-
-        // Mount point service is required by notification service and restconf
-        bind(DOMMountPointService.class).to(EmptyDomMountService.class).in(Singleton.class);
-        expose(DOMMountPointService.class);
-
-        // Expose registries for plugin reader/writer factories
-        bind(WriterRegistry.class).toProvider(WriterRegistryProvider.class).in(Singleton.class);
-        expose(WriterRegistry.class);
-        bind(ReaderRegistry.class).toProvider(ReaderRegistryProvider.class).in(Singleton.class);
-        expose(ReaderRegistry.class);
-
-        // Non persisting data tree for config
-        bind(DataTree.class).annotatedWith(Names.named(HONEYCOMB_CONFIG_NONPERSIST))
-                .toProvider(DataTreeProvider.ConfigDataTreeProvider.class).in(Singleton.class);
-        expose(DataTree.class).annotatedWith(Names.named(HONEYCOMB_CONFIG_NONPERSIST));
-        // Persisting data tree wrapper for config
-        bind(DataTree.class).annotatedWith(Names.named(HONEYCOMB_CONFIG))
-                .toProvider(PersistingDataTreeProvider.ConfigPersistingDataTreeProvider.class).in(Singleton.class);
-        expose(DataTree.class).annotatedWith(Names.named(HONEYCOMB_CONFIG));
-
-        // Config Data Tree manager working on top of config data tree + writer registry
-        bind(ModifiableDataManager.class).toProvider(ModifiableDTDelegProvider.class).in(Singleton.class);
-        // Operational Data Tree manager working on top of reader registry
-        bind(ReadableDataManager.class).toProvider(ReadableDTDelegProvider.class).in(Singleton.class);
-        expose(ReadableDataManager.class);
-
-        // DOMDataBroker wrapper on top of data tree managers
-        HoneycombDOMDataBrokerProvider domBrokerProvider = new HoneycombDOMDataBrokerProvider();
-        bind(DOMDataBroker.class).annotatedWith(Names.named(HONEYCOMB_CONFIG)).toProvider(domBrokerProvider).in(Singleton.class);
-        expose(DOMDataBroker.class).annotatedWith(Names.named(HONEYCOMB_CONFIG));
-
-        // BA version of data broker
-        bind(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_CONFIG)).toProvider(HoneycombBindingDataBrokerProvider.class)
-                .in(Singleton.class);
-        expose(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_CONFIG));
-
-        // Create initializer to init persisted config data
-        bind(DataTreeInitializer.class).annotatedWith(Names.named(HONEYCOMB_CONFIG))
-                .toProvider(PersistedConfigInitializerProvider.class)
-                .in(Singleton.class);
-        expose(DataTreeInitializer.class).annotatedWith(Names.named(HONEYCOMB_CONFIG));
-
-        configureNotifications();
-        configureRpcs();
-    }
-
-    private void configureNotifications() {
-        // Create notification service
-        bind(DOMNotificationRouter.class).toProvider(DOMNotificationServiceProvider.class).in(Singleton.class);
-        expose(DOMNotificationRouter.class);
-    }
-
-    private void configureRpcs() {
-        // Create rpc service
-        bind(DOMRpcService.class).toProvider(HoneycombDOMRpcServiceProvider.class).in(Singleton.class);
-        expose(DOMRpcService.class);
-
-        bind(RpcRegistryBuilder.class).toProvider(RpcRegistryBuilderProvider.class).in(Singleton.class);
-        expose(RpcRegistryBuilder.class);
-
-        bind(RpcRegistry.class).toProvider(RpcRegistryProvider.class).in(Singleton.class);
-        expose(RpcRegistry.class);
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DOMNotificationServiceProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DOMNotificationServiceProvider.java
deleted file mode 100644 (file)
index 4c87cce..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
-import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter;
-
-public final class DOMNotificationServiceProvider extends ProviderTrait<DOMNotificationRouter> {
-
-    @Inject
-    private HoneycombConfiguration cfg;
-
-    @Override
-    protected DOMNotificationRouter create() {
-        return DOMNotificationRouter.create(cfg.notificationServiceQueueDepth);
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DataStoreProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DataStoreProvider.java
deleted file mode 100644 (file)
index 4067f95..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-
-import java.util.concurrent.ExecutorService;
-
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
-import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStoreConfigProperties;
-import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStoreFactory;
-import org.opendaylight.yangtools.util.concurrent.SpecialExecutors;
-
-
-
-public final class DataStoreProvider extends ProviderTrait<InMemoryDOMDataStore> {
-
-    @Inject
-    private DOMSchemaService schemaService;
-    private String name;
-    private LogicalDatastoreType type;
-
-    public DataStoreProvider(final String name, final  LogicalDatastoreType type) {
-        this.name = name;
-        this.type=type;
-    }
-
-    @Override
-    protected InMemoryDOMDataStore create() {
-         final ExecutorService dataChangeListenerExecutor = createExecutorService(name, InMemoryDOMDataStoreConfigProperties.getDefault());
-         final InMemoryDOMDataStore dataStore = new InMemoryDOMDataStore(name, this.type, dataChangeListenerExecutor,
-                 InMemoryDOMDataStoreConfigProperties.getDefault().getMaxDataChangeListenerQueueSize(), InMemoryDOMDataStoreConfigProperties.getDefault().getDebugTransactions());
-
-         if (schemaService != null) {
-             schemaService.registerSchemaContextListener(dataStore);
-         }
-
-         return dataStore;
-    }
-
-    private static ExecutorService createExecutorService(final String name,
-            final InMemoryDOMDataStoreConfigProperties props) {
-        // For DataChangeListener notifications we use an executor that provides the fastest
-        // task execution time to get higher throughput as DataChangeListeners typically provide
-        // much of the business logic for a data model. If the executor queue size limit is reached,
-        // subsequent submitted notifications will block the calling thread.
-        return SpecialExecutors.newBlockingBoundedFastThreadPool(
-            props.getMaxDataChangeExecutorPoolSize(), props.getMaxDataChangeExecutorQueueSize(),
-            name + "-DCL", InMemoryDOMDataStore.class);
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DataTreeProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/DataTreeProvider.java
deleted file mode 100644 (file)
index 5f5ef66..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory;
-
-public abstract class DataTreeProvider extends ProviderTrait<DataTree> {
-
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    private HoneycombConfiguration config;
-
-    @Override
-    public DataTree create() {
-        DataTree delegate = new InMemoryDataTreeFactory().create(getType());
-        delegate.setSchemaContext(schemaService.getGlobalContext());
-        return delegate;
-    }
-
-    public abstract DataTreeConfiguration getType();
-
-    public static class ConfigDataTreeProvider extends DataTreeProvider {
-        @Override
-        public DataTreeConfiguration getType() {
-            return DataTreeConfiguration.DEFAULT_CONFIGURATION;
-        }
-
-    }
-
-    public static class ContextDataTreeProvider extends DataTreeProvider {
-        @Override
-        public DataTreeConfiguration getType() {
-            return DataTreeConfiguration.DEFAULT_OPERATIONAL;
-        }
-
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombBindingDataBrokerProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombBindingDataBrokerProvider.java
deleted file mode 100644 (file)
index 0315978..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import static io.fd.honeycomb.infra.distro.data.ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataBrokerAdapter;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-
-/**
- * Provides binding adapter for {@link io.fd.honeycomb.data.impl.DataBroker}.
- */
-final class HoneycombBindingDataBrokerProvider extends ProviderTrait<DataBroker> {
-
-    @Inject
-    @Named(HONEYCOMB_CONFIG)
-    private DOMDataBroker domDataBroker;
-    @Inject
-    private BindingToNormalizedNodeCodec mappingService;
-
-    @Override
-    protected BindingDOMDataBrokerAdapter create() {
-        return new BindingDOMDataBrokerAdapter(domDataBroker, mappingService);
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMDataBrokerProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMDataBrokerProvider.java
deleted file mode 100644 (file)
index ab29d4d..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.ReadableDataManager;
-import io.fd.honeycomb.data.impl.DataBroker;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-
-public final class HoneycombDOMDataBrokerProvider extends ProviderTrait<DOMDataBroker> {
-
-    @Inject
-    private ModifiableDataManager modDataManager;
-    @Inject(optional = true)
-    private ReadableDataManager readDataManager;
-
-    @Override
-    protected DataBroker create() {
-        return readDataManager != null
-                ? DataBroker.create(modDataManager, readDataManager)
-                : DataBroker.create(modDataManager);
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMRpcServiceProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMRpcServiceProvider.java
deleted file mode 100644 (file)
index ee750b2..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.rpc.HoneycombDOMRpcService;
-import io.fd.honeycomb.rpc.RpcRegistry;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.api.DOMRpcService;
-
-public final class HoneycombDOMRpcServiceProvider extends ProviderTrait<DOMRpcService> {
-
-    @Inject
-    private BindingToNormalizedNodeCodec serializer;
-
-    @Inject
-    private RpcRegistry rpcRegistry;
-
-    @Override
-    protected DOMRpcService create() {
-        return new HoneycombDOMRpcService(serializer, rpcRegistry);
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombNotificationManagerProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombNotificationManagerProvider.java
deleted file mode 100644 (file)
index 7acfae6..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.notification.ManagedNotificationProducer;
-import io.fd.honeycomb.notification.NotificationCollector;
-import io.fd.honeycomb.notification.impl.HoneycombNotificationCollector;
-import io.fd.honeycomb.notification.impl.NotificationProducerRegistry;
-import io.fd.honeycomb.notification.impl.NotificationProducerTracker;
-import java.util.HashSet;
-import java.util.Set;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMNotificationPublishServiceAdapter;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter;
-
-public final class HoneycombNotificationManagerProvider extends ProviderTrait<NotificationCollector> {
-
-    @Inject
-    private DOMNotificationRouter notificationRouter;
-    @Inject(optional = true)
-    private Set<ManagedNotificationProducer> notificationProducers = new HashSet<>();
-    @Inject
-    private BindingToNormalizedNodeCodec codec;
-
-    @Override
-    protected HoneycombNotificationCollector create() {
-        // Create the registry to keep track of what'OPERATIONAL registered
-        NotificationProducerRegistry notificationProducerRegistry =
-                new NotificationProducerRegistry(Lists.newArrayList(notificationProducers));
-
-        // Create BA version of notification service (implementation is free from ODL)
-        BindingDOMNotificationPublishServiceAdapter bindingDOMNotificationPublishServiceAdapter =
-                new BindingDOMNotificationPublishServiceAdapter(notificationRouter, codec);
-
-        // Create Collector on top of BA notification service and registry
-        HoneycombNotificationCollector honeycombNotificationCollector =
-                new HoneycombNotificationCollector(bindingDOMNotificationPublishServiceAdapter,
-                        notificationProducerRegistry);
-
-        // Create tracker, responsible for starting and stopping registered notification producers whenever necessary
-        NotificationProducerTracker notificationProducerTracker =
-                new NotificationProducerTracker(notificationProducerRegistry, honeycombNotificationCollector,
-                        notificationRouter);
-
-        // DOMNotificationService is already provided by DOMBroker injected into RESTCONF, however RESTCONF
-        // only supports data-change notification, nothing else. So currently (Beryllium-SR2) honeycomb notifications
-        // won't be available over RESTCONF.
-
-        return honeycombNotificationCollector;
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/InmemoryDOMDataBrokerProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/InmemoryDOMDataBrokerProvider.java
deleted file mode 100644 (file)
index 52d4ca5..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.concurrent.ExecutorService;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.common.api.TransactionCommitDeadlockException;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker;
-import org.opendaylight.mdsal.dom.spi.store.DOMStore;
-import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
-import org.opendaylight.yangtools.util.concurrent.DeadlockDetectingListeningExecutorService;
-import org.opendaylight.yangtools.util.concurrent.SpecialExecutors;
-
-public final class InmemoryDOMDataBrokerProvider extends ProviderTrait<DOMDataBroker> {
-
-    public static final String CONFIG = "config";
-    public static final String OPERATIONAL = "operational";
-
-    @Inject
-    @Named(InmemoryDOMDataBrokerProvider.CONFIG)
-    private InMemoryDOMDataStore cfgDataStore;
-    @Inject
-    @Named(InmemoryDOMDataBrokerProvider.OPERATIONAL)
-    private InMemoryDOMDataStore operDataStore;
-
-    @Override
-    protected SerializedDOMDataBroker create() {
-        // This Databroker is dedicated for netconf metadata, not expected to be under heavy load
-        ExecutorService listenableFutureExecutor =
-            SpecialExecutors.newBlockingBoundedCachedThreadPool(1, 100, "commits", getClass());
-        ExecutorService commitExecutor =
-            SpecialExecutors.newBoundedSingleThreadExecutor(100, "WriteTxCommit", getClass());
-        // TODO HONEYCOMB-164 try to provide more lightweight implementation of DataBroker
-
-        Map<LogicalDatastoreType, DOMStore> map = new LinkedHashMap<>();
-        map.put(LogicalDatastoreType.CONFIGURATION, cfgDataStore);
-        map.put(LogicalDatastoreType.OPERATIONAL, operDataStore);
-
-        return new SerializedDOMDataBroker(map, new DeadlockDetectingListeningExecutorService(commitExecutor,
-            TransactionCommitDeadlockException.DEADLOCK_EXCEPTION_SUPPLIER, listenableFutureExecutor));
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/LegacyBindingDataBrokerProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/LegacyBindingDataBrokerProvider.java
deleted file mode 100644 (file)
index 3b3bc83..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2019 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter;
-import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
-import org.opendaylight.controller.sal.core.compat.LegacyDOMDataBrokerAdapter;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-
-import com.google.inject.Inject;
-
-import io.fd.honeycomb.binding.init.ProviderTrait;
-
-/**
- * Provider for legacy {@linkDataBroker} used in BGP Module.
- */
-public class LegacyBindingDataBrokerProvider extends ProviderTrait<DataBroker> {
-    @Inject
-    private DOMDataBroker domDataBroker;
-    @Inject
-    private BindingToNormalizedNodeCodec mappingService;
-    @Inject
-    private ModuleInfoBackedContext mibCtx;
-
-    @Override
-    protected BindingDOMDataBrokerAdapter create() {
-        return new BindingDOMDataBrokerAdapter(new LegacyDOMDataBrokerAdapter(domDataBroker), mappingService);
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ModifiableDTDelegProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ModifiableDTDelegProvider.java
deleted file mode 100644 (file)
index 4a0daf0..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.impl.ModifiableDataTreeDelegator;
-import io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule;
-import io.fd.honeycomb.translate.write.registry.WriterRegistry;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-
-public final class ModifiableDTDelegProvider extends ProviderTrait<ModifiableDataManager> {
-
-    @Inject
-    private BindingToNormalizedNodeCodec serializer;
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    @Named(ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG)
-    private DataTree dataTree;
-    @Inject
-    private WriterRegistry registry;
-    @Inject
-    @Named(ContextPipelineModule.HONEYCOMB_CONTEXT)
-    private DataBroker contextBroker;
-
-    @Override
-    protected ModifiableDataTreeDelegator create() {
-        return new ModifiableDataTreeDelegator(serializer, dataTree, schemaService.getGlobalContext(),
-            registry, contextBroker);
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/PersistedConfigInitializerProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/PersistedConfigInitializerProvider.java
deleted file mode 100644 (file)
index 26b6b87..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import java.nio.file.Paths;
-
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.RestoringInitializer;
-import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
-
-final class PersistedConfigInitializerProvider extends ProviderTrait<RestoringInitializer> {
-
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    protected HoneycombConfiguration cfgAttributes;
-    @Inject
-    // @Named(HONEYCOMB_CONFIG)
-    // modified to be able to restore config to device config datastore
-    @Named("device-databroker")
-    private DOMDataBroker domDataBroker;
-
-    @Override
-    public RestoringInitializer create() {
-        return new RestoringInitializer(schemaService, Paths.get(cfgAttributes.peristConfigPath), domDataBroker,
-                RestoringInitializer.RestorationType.valueOf(cfgAttributes.persistedConfigRestorationType),
-                LogicalDatastoreType.CONFIGURATION);
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/PersistingDataTreeProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/PersistingDataTreeProvider.java
deleted file mode 100644 (file)
index df56f46..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.impl.PersistingDataTreeAdapter;
-import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
-import io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule;
-import java.nio.file.Paths;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType;
-
-public abstract class PersistingDataTreeProvider extends ProviderTrait<DataTree> {
-
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    protected HoneycombConfiguration config;
-
-    @Override
-    public DataTree create() {
-        return isEnabled()
-                ? new PersistingDataTreeAdapter(getDelegate(), schemaService, Paths.get(getPath()))
-                : getDelegate();
-    }
-
-    public abstract String getPath();
-
-    public abstract TreeType getType();
-
-    public abstract DataTree getDelegate();
-
-    protected abstract boolean isEnabled();
-
-    public static final class ConfigPersistingDataTreeProvider extends PersistingDataTreeProvider {
-
-        @Inject
-        @Named(ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG_NONPERSIST)
-        private DataTree delegate;
-
-        @Override
-        public String getPath() {
-            return config.peristConfigPath;
-        }
-
-        @Override
-        public TreeType getType() {
-            return TreeType.CONFIGURATION;
-        }
-
-        @Override
-        public DataTree getDelegate() {
-            return delegate;
-        }
-
-        @Override
-        protected boolean isEnabled() {
-            return config.isConfigPersistenceEnabled();
-        }
-    }
-
-    public static final class ContextPersistingDataTreeProvider extends PersistingDataTreeProvider {
-
-        @Inject
-        @Named(ContextPipelineModule.HONEYCOMB_CONTEXT_NOPERSIST)
-        private DataTree delegate;
-
-        @Override
-        public String getPath() {
-            return config.peristContextPath;
-        }
-
-        @Override
-        public TreeType getType() {
-            return TreeType.OPERATIONAL;
-        }
-
-        @Override
-        public DataTree getDelegate() {
-            return delegate;
-        }
-
-        @Override
-        protected boolean isEnabled() {
-            return config.isContextPersistenceEnabled();
-        }
-
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/RpcRegistryBuilderProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/RpcRegistryBuilderProvider.java
deleted file mode 100644 (file)
index 3184363..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.rpc.RpcRegistryBuilder;
-import io.fd.honeycomb.rpc.RpcService;
-import java.util.HashSet;
-import java.util.Set;
-
-public final class RpcRegistryBuilderProvider extends ProviderTrait<RpcRegistryBuilder> {
-
-    @Inject(optional = true)
-    private Set<RpcService> rpcServices = new HashSet<>();
-
-    @Override
-    protected RpcRegistryBuilder create() {
-        final RpcRegistryBuilder builder = new RpcRegistryBuilder();
-        rpcServices.stream()
-                .forEach(service -> builder.addService(service));
-        return builder;
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/RpcRegistryProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/RpcRegistryProvider.java
deleted file mode 100644 (file)
index fd6499b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.rpc.RpcRegistry;
-import io.fd.honeycomb.rpc.RpcRegistryBuilder;
-
-public final class RpcRegistryProvider extends ProviderTrait<RpcRegistry> {
-
-    @Inject
-    private RpcRegistryBuilder builder;
-
-    @Override
-    protected RpcRegistry create() {
-        return builder.build();
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ShutdownHandlerProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/ShutdownHandlerProvider.java
deleted file mode 100644 (file)
index a062ad1..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2018 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data;
-
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.ShutdownHandler;
-import io.fd.honeycomb.impl.ShutdownHandlerImpl;
-
-public class ShutdownHandlerProvider extends ProviderTrait<ShutdownHandler> {
-    @Override
-    protected ShutdownHandler create() {
-        final ShutdownHandler handler = new ShutdownHandlerImpl();
-        // Make sure ShutdownHandler is run on JVM shutdown
-        Runtime.getRuntime().addShutdownHook(new Thread(handler::performShutdown));
-        return handler;
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/config/WriterRegistryProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/config/WriterRegistryProvider.java
deleted file mode 100644 (file)
index fa37d10..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.config;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.translate.impl.write.registry.FlatWriterRegistryBuilder;
-import io.fd.honeycomb.translate.util.YangDAG;
-import io.fd.honeycomb.translate.write.WriterFactory;
-import io.fd.honeycomb.translate.write.registry.WriterRegistry;
-import java.util.HashSet;
-import java.util.Set;
-
-public final class WriterRegistryProvider extends ProviderTrait<WriterRegistry> {
-
-    @Inject(optional = true)
-    private Set<WriterFactory> writerFactories = new HashSet<>();
-
-    @Override
-    protected WriterRegistry create() {
-        final FlatWriterRegistryBuilder builder = new FlatWriterRegistryBuilder(new YangDAG());
-        writerFactories
-                .stream()
-                .forEach(it -> it.init(builder));
-        return builder.build();
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/ContextPipelineModule.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/ContextPipelineModule.java
deleted file mode 100644 (file)
index e3b3b53..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.context;
-
-import com.google.inject.PrivateModule;
-import com.google.inject.Singleton;
-import com.google.inject.name.Names;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.init.DataTreeInitializer;
-import io.fd.honeycomb.infra.distro.data.BindingDataBrokerProvider;
-import io.fd.honeycomb.infra.distro.data.DataTreeProvider;
-import io.fd.honeycomb.infra.distro.data.PersistingDataTreeProvider;
-import io.fd.honeycomb.translate.MappingContext;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-
-public class ContextPipelineModule extends PrivateModule {
-
-    public static final String HONEYCOMB_CONTEXT_NOPERSIST = "honeycomb-context-nopersist";
-    public static final String HONEYCOMB_CONTEXT = "honeycomb-context";
-
-    @Override
-    protected void configure() {
-        // Non persisting data tree for context
-        DataTreeProvider.ContextDataTreeProvider noPersistDataTreeProvider =
-                new DataTreeProvider.ContextDataTreeProvider();
-        bind(DataTree.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT_NOPERSIST))
-                .toProvider(noPersistDataTreeProvider).in(Singleton.class);
-        expose(DataTree.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT_NOPERSIST));
-        // Persisting data tree wrapper for context
-        PersistingDataTreeProvider.ContextPersistingDataTreeProvider dataTreeProvider =
-                new PersistingDataTreeProvider.ContextPersistingDataTreeProvider();
-        bind(DataTree.class).toProvider(dataTreeProvider).in(Singleton.class);
-
-        // Data Tree manager (without any delegation) on top of context data tree
-        bind(ModifiableDataManager.class).toProvider(ModifiableDTMgrProvider.class).in(Singleton.class);
-
-        // DOMDataBroker interface on top of data tree manager
-        HoneycombContextDOMDataBrokerProvider domBrokerProvider = new HoneycombContextDOMDataBrokerProvider();
-        bind(DOMDataBroker.class).toProvider(domBrokerProvider).in(Singleton.class);
-
-        // BA version of data broker for context
-        bind(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT)).toProvider(BindingDataBrokerProvider.class)
-                .in(Singleton.class);
-        expose(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT));
-
-        // Create initializer to init persisted config data
-        bind(DataTreeInitializer.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT))
-                .toProvider(PersistedContextInitializerProvider.class)
-                .in(Singleton.class);
-        expose(DataTreeInitializer.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT));
-
-        // Mapping context is just a small adapter on top of BA data broker to simplify CRUD of context data
-        bind(MappingContext.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT))
-                .toProvider(RealtimeMappingContextProvider.class).in(Singleton.class);
-        expose(MappingContext.class).annotatedWith(Names.named(HONEYCOMB_CONTEXT));
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/HoneycombContextDOMDataBrokerProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/HoneycombContextDOMDataBrokerProvider.java
deleted file mode 100644 (file)
index d3663df..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.context;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.impl.DataBroker;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-
-public final class HoneycombContextDOMDataBrokerProvider extends ProviderTrait<DOMDataBroker> {
-
-    @Inject
-    private ModifiableDataManager modDataManager;
-
-    @Override
-    public DataBroker create() {
-        return DataBroker.create(modDataManager);
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/ModifiableDTMgrProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/ModifiableDTMgrProvider.java
deleted file mode 100644 (file)
index c703e95..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.context;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.impl.ModifiableDataTreeManager;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-
-public final class ModifiableDTMgrProvider extends ProviderTrait<ModifiableDataManager> {
-
-    @Inject
-    private DataTree dataTree;
-
-    @Override
-    public ModifiableDataTreeManager create() {
-        return new ModifiableDataTreeManager(dataTree);
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/PersistedContextInitializerProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/PersistedContextInitializerProvider.java
deleted file mode 100644 (file)
index 45948ec..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.context;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.RestoringInitializer;
-import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
-import java.nio.file.Paths;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-
-final class PersistedContextInitializerProvider extends ProviderTrait<RestoringInitializer> {
-
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    protected HoneycombConfiguration cfgAttributes;
-    // injects data broker from within context of private module
-    @Inject
-    private DOMDataBroker domDataBroker;
-
-    @Override
-    public RestoringInitializer create() {
-        return new RestoringInitializer(schemaService, Paths.get(cfgAttributes.peristContextPath), domDataBroker,
-                RestoringInitializer.RestorationType.valueOf(cfgAttributes.persistedContextRestorationType),
-                LogicalDatastoreType.OPERATIONAL);
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/RealtimeMappingContextProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/context/RealtimeMappingContextProvider.java
deleted file mode 100644 (file)
index e2ed580..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.context;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.translate.MappingContext;
-import io.fd.honeycomb.translate.util.RealtimeMappingContext;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-
-public final class RealtimeMappingContextProvider extends ProviderTrait<MappingContext> {
-
-    @Inject
-    @Named(ContextPipelineModule.HONEYCOMB_CONTEXT)
-    private DataBroker contextDataBroker;
-
-    @Override
-    public RealtimeMappingContext create() {
-        return new RealtimeMappingContext(contextDataBroker);
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/oper/ReadableDTDelegProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/oper/ReadableDTDelegProvider.java
deleted file mode 100644 (file)
index 71ec18a..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.oper;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.ReadableDataManager;
-import io.fd.honeycomb.data.impl.ReadableDataTreeDelegator;
-import io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule;
-import io.fd.honeycomb.translate.read.registry.ReaderRegistry;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-
-public final class ReadableDTDelegProvider extends ProviderTrait<ReadableDataManager> {
-
-    @Inject
-    private BindingToNormalizedNodeCodec serializer;
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    private ReaderRegistry registry;
-    @Inject
-    @Named(ContextPipelineModule.HONEYCOMB_CONTEXT)
-    private DataBroker contextBroker;
-
-    @Override
-    protected ReadableDataTreeDelegator create() {
-        return new ReadableDataTreeDelegator(serializer, schemaService.getGlobalContext(), registry, contextBroker);
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/oper/ReaderRegistryProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/data/oper/ReaderRegistryProvider.java
deleted file mode 100644 (file)
index 8e0b776..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.data.oper;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.translate.impl.read.registry.CompositeReaderRegistryBuilder;
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ReaderRegistry;
-import io.fd.honeycomb.translate.util.YangDAG;
-import java.util.HashSet;
-import java.util.Set;
-
-public final class ReaderRegistryProvider extends ProviderTrait<ReaderRegistry> {
-
-    @Inject(optional = true)
-    private Set<ReaderFactory> readerFactories = new HashSet<>();
-
-    @Override
-    protected ReaderRegistry create() {
-        final CompositeReaderRegistryBuilder builder = new CompositeReaderRegistryBuilder(new YangDAG());
-        readerFactories.stream()
-            .forEach(it -> it.init(builder));
-        return builder.build();
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.java
deleted file mode 100644 (file)
index 7f15527..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.initializer;
-
-import com.google.inject.PrivateModule;
-import com.google.inject.Singleton;
-import com.google.inject.name.Names;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.init.InitializerRegistry;
-import io.fd.honeycomb.infra.distro.data.BindingDataBrokerProvider;
-import io.fd.honeycomb.infra.distro.data.HoneycombDOMDataBrokerProvider;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-
-public final class InitializerPipelineModule extends PrivateModule {
-
-    public static final String HONEYCOMB_INITIALIZER = "honeycomb-initializer";
-
-    @Override
-    protected void configure() {
-        // Create data tree manager on top of non-persisting config data tree
-        bind(ModifiableDataManager.class).toProvider(ModifiableDTDelegInitProvider.class).in(Singleton.class);
-        // Wrap as DOMDataBroker
-        bind(DOMDataBroker.class).toProvider(HoneycombDOMDataBrokerProvider.class).in(Singleton.class);
-        // Wrap as BA data broker
-        bind(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER))
-                .toProvider(BindingDataBrokerProvider.class).in(Singleton.class);
-        expose(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER));
-
-        // Create initializer registry so that plugins can provide their initializers
-        bind(InitializerRegistry.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER))
-                .toProvider(InitializerRegistryAdapterProvider.class).in(Singleton.class);
-        expose(InitializerRegistry.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER));
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java
deleted file mode 100644 (file)
index 08f9bad..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.initializer;
-
-import io.fd.honeycomb.data.init.DataTreeInitializer;
-import io.fd.honeycomb.data.init.InitializerRegistry;
-import io.fd.honeycomb.translate.MappingContext;
-import io.fd.honeycomb.translate.ModificationCache;
-import io.fd.honeycomb.translate.read.ReadContext;
-import io.fd.honeycomb.translate.read.registry.InitRegistry;
-import javax.annotation.Nonnull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-final class InitializerRegistryAdapter implements InitializerRegistry {
-
-    private static final Logger LOG = LoggerFactory.getLogger(InitializerRegistryAdapter.class);
-
-    private final DataTreeInitializer configInitializer;
-    private final DataTreeInitializer contextInitializer;
-    private final InitRegistry initRegistry;
-    private final DataBroker dataBroker;
-    private final MappingContext realtimeMappingContext;
-
-    InitializerRegistryAdapter(final DataTreeInitializer configInitializer,
-                               final DataTreeInitializer contextInitializer,
-                               final InitRegistry initRegistry,
-                               final DataBroker noopConfigDataBroker,
-                               final MappingContext realtimeMappingContext) {
-        this.configInitializer = configInitializer;
-        this.contextInitializer = contextInitializer;
-        this.initRegistry = initRegistry;
-        this.dataBroker = noopConfigDataBroker;
-        this.realtimeMappingContext = realtimeMappingContext;
-    }
-
-    @Override
-    public void initialize() throws DataTreeInitializer.InitializeException {
-        LOG.info("Config initialization started");
-
-        try {
-            // Initialize contexts first so that other initializers can find any relevant mapping before initializing
-            // configuration to what is already in VPP
-            contextInitializer.initialize();
-            LOG.info("Persisted context restored successfully");
-            // Initialize all registered initializers
-            initRegistry.initAll(dataBroker, new InitReadContext(realtimeMappingContext));
-            LOG.info("Configuration initialized successfully");
-            // Initialize stored configuration on top
-            configInitializer.initialize();
-            LOG.info("Persisted configuration restored successfully");
-        } catch (Exception e) {
-            LOG.warn("Failed to initialize config", e);
-        }
-
-        LOG.info("Honeycomb initialized");
-    }
-
-    private static final class InitReadContext implements ReadContext {
-
-        private final ModificationCache modificationCache;
-        private final MappingContext realtimeMappingContext;
-
-        InitReadContext(final MappingContext realtimeMappingContext) {
-            modificationCache = new ModificationCache();
-            this.realtimeMappingContext = realtimeMappingContext;
-        }
-
-        @Nonnull
-        @Override
-        public ModificationCache getModificationCache() {
-            return modificationCache;
-        }
-
-        @Nonnull
-        @Override
-        public MappingContext getMappingContext() {
-            return realtimeMappingContext;
-        }
-
-        @Override
-        public void close() {
-            modificationCache.close();
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapterProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapterProvider.java
deleted file mode 100644 (file)
index dbf180b..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.initializer;
-
-import static io.fd.honeycomb.infra.distro.data.ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG;
-import static io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule.HONEYCOMB_CONTEXT;
-import static io.fd.honeycomb.infra.distro.initializer.InitializerPipelineModule.HONEYCOMB_INITIALIZER;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.DataTreeInitializer;
-import io.fd.honeycomb.data.init.InitializerRegistry;
-import io.fd.honeycomb.translate.MappingContext;
-import io.fd.honeycomb.translate.read.registry.ReaderRegistry;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-
-public final class InitializerRegistryAdapterProvider extends ProviderTrait<InitializerRegistry> {
-
-    @Inject
-    @Named(HONEYCOMB_CONTEXT)
-    private DataTreeInitializer contextInitializer;
-    @Inject
-    @Named(HONEYCOMB_CONFIG)
-    private DataTreeInitializer configInitializer;
-    @Inject
-    private ReaderRegistry initRegistry;
-    @Inject
-    @Named(HONEYCOMB_INITIALIZER)
-    private DataBroker noopConfigDataBroker;
-    @Inject
-    @Named(HONEYCOMB_CONTEXT)
-    private MappingContext realtimeMappingContext;
-
-    @Override
-    protected InitializerRegistryAdapter create() {
-        return new InitializerRegistryAdapter(configInitializer, contextInitializer, initRegistry,
-                noopConfigDataBroker, realtimeMappingContext);
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.java
deleted file mode 100644 (file)
index d009241..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.initializer;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.impl.ModifiableDataTreeDelegator;
-import io.fd.honeycomb.infra.distro.data.ConfigAndOperationalPipelineModule;
-import io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule;
-import io.fd.honeycomb.translate.util.write.NoopWriterRegistry;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-
-public final class ModifiableDTDelegInitProvider extends ProviderTrait<ModifiableDataManager> {
-
-    @Inject
-    private BindingToNormalizedNodeCodec serializer;
-    @Inject
-    @Named(ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG_NONPERSIST)
-    private DataTree dataTree;
-    @Inject
-    @Named(ContextPipelineModule.HONEYCOMB_CONTEXT)
-    private DataBroker contextBroker;
-    @Inject
-    private DOMSchemaService schemaService;
-
-    @Override
-    public ModifiableDataTreeDelegator create() {
-        return new ModifiableDataTreeDelegator(serializer, dataTree, schemaService.getGlobalContext(),
-                new NoopWriterRegistry(), contextBroker);
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/LegacySerializerProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/LegacySerializerProvider.java
deleted file mode 100644 (file)
index cc6c376..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2019 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import javassist.ClassPool;
-import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.binding.dom.codec.gen.impl.DataObjectSerializerGenerator;
-import org.opendaylight.mdsal.binding.dom.codec.gen.impl.StreamWriterGenerator;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext;
-import org.opendaylight.mdsal.binding.generator.util.JavassistUtils;
-
-public class LegacySerializerProvider extends ProviderTrait<BindingToNormalizedNodeCodec> {
-
-    @Inject
-    private ModuleInfoBackedContext mibCtx;
-
-    @Override
-    protected BindingToNormalizedNodeCodec create() {
-        final DataObjectSerializerGenerator serializerGenerator =
-            StreamWriterGenerator.create(JavassistUtils.forClassPool(ClassPool.getDefault()));
-
-        BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(serializerGenerator);
-        BindingRuntimeContext ctx = BindingRuntimeContext.create(mibCtx, mibCtx.getSchemaContext());
-        codecRegistry.onBindingRuntimeContextUpdated(ctx);
-        BindingToNormalizedNodeCodec codec = new BindingToNormalizedNodeCodec(mibCtx, codecRegistry);
-        codec.onGlobalContextUpdated(mibCtx.getSchemaContext());
-        return codec;
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/ModuleInfoBackedCtxProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/ModuleInfoBackedCtxProvider.java
deleted file mode 100644 (file)
index 01b03c4..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import static io.fd.honeycomb.infra.distro.schema.YangModulesProvider.YangModules;
-
-import com.google.common.base.MoreObjects;
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import java.util.stream.Collectors;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.yangtools.yang.binding.YangModelBindingProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class ModuleInfoBackedCtxProvider extends ProviderTrait<ModuleInfoBackedContext> {
-    private static final Logger LOG = LoggerFactory.getLogger(ModuleInfoBackedCtxProvider.class);
-
-    // optional in sense that list of modules inside can be empty if none was found
-    @Inject
-    private YangModules moduleInfos;
-
-    @Override
-    protected ModuleInfoBackedContext create() {
-        ModuleInfoBackedContext create = ModuleInfoBackedContext.create();
-        create.addModuleInfos(moduleInfos.getYangBindings().stream()
-                .map(YangModelBindingProvider::getModuleInfo)
-                .collect(Collectors.toList()));
-        LOG.debug("ModuleInfoBackedContext created from {}", moduleInfos);
-        return create;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this).add("writerFactories", moduleInfos).toString();
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/ResourceLoader.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/ResourceLoader.java
deleted file mode 100644 (file)
index 99aa451..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static java.lang.String.format;
-
-import com.google.common.base.Charsets;
-import com.google.common.base.Strings;
-import com.google.common.io.Resources;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Set;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.stream.Collectors;
-import org.apache.commons.io.IOUtils;
-
-/**
- * Allows loading content of X amount of files from filesystem or archive
- */
-public interface ResourceLoader {
-
-    default Set<String> loadResourceContentsOnPath(final String path) {
-        final URL folderUrl = getClass().getClassLoader().getResource(path);
-        checkState(folderUrl != null, "Resources %s not found", path);
-
-        if (ResourceLoaderIml.urlToUri(folderUrl).getScheme().equals("jar")) {
-            return ResourceLoaderIml.readFromJar(path, folderUrl);
-        } else {
-            return ResourceLoaderIml.readFromFolder(folderUrl);
-        }
-
-    }
-
-    final class ResourceLoaderIml {
-
-        private ResourceLoaderIml() {
-            throw new UnsupportedOperationException();
-        }
-
-        private static Set<String> readFromFolder(final URL folderUrl) {
-            final File folder = new File(folderUrl.getPath());
-            final File[] files = checkNotNull(folder.listFiles(), "No files present on path %s", folderUrl);
-            return Arrays.stream(files)
-                    .map(ResourceLoaderIml::fileToUrl)
-                    .map(ResourceLoaderIml::urlToContentString)
-                    .flatMap(content -> Arrays.stream(content.split(System.lineSeparator())))
-                    .filter(ResourceLoaderIml::filterNonEmpty)
-                    .collect(Collectors.toSet());
-        }
-
-        private static Set<String> readFromJar(final String path, final URL url) {
-            final String uriString = urlToUri(url).toString();
-            final String fileReference = extractJarFilePath(uriString);
-            try (JarFile jar = new JarFile(new File(fileReference))) {
-                return Collections.list(jar.entries())
-                        .stream()
-                        .filter(jarEntry -> jarEntry.getName().contains(path))
-                        .map(jarEntry -> getJarEntryStream(jar, jarEntry))
-                        .map(ResourceLoaderIml::readJarEntryStream)
-                        .flatMap(content -> Arrays.stream(content.split(System.lineSeparator())))
-                        .filter(ResourceLoaderIml::filterNonEmpty)
-                        .collect(Collectors.toSet());
-            } catch (IOException e) {
-                throw new IllegalStateException(e);
-            }
-        }
-
-        private static String extractJarFilePath(final String uriString) {
-            return uriString.substring(0, uriString.indexOf("!")).replace("jar:file:", "");
-        }
-
-        private static boolean filterNonEmpty(final String line) {
-            return !Strings.isNullOrEmpty(line.trim());
-        }
-
-        private static String readJarEntryStream(final InputStream inputStream) {
-            try {
-                final String value = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
-                IOUtils.closeQuietly(inputStream);
-                return value;
-            } catch (IOException e) {
-                throw new IllegalStateException(e);
-            }
-        }
-
-        private static InputStream getJarEntryStream(final JarFile jar, final JarEntry jarEntry) {
-            try {
-                return jar.getInputStream(jarEntry);
-            } catch (IOException e) {
-                throw new IllegalStateException(format("Unable to get stream for entry %s | jar %s", jar, jarEntry), e);
-            }
-        }
-
-        private static URI urlToUri(final URL url) {
-            try {
-                return url.toURI();
-            } catch (URISyntaxException e) {
-                throw new IllegalStateException(format("Unable to convert URL %s to URI", url), e);
-            }
-        }
-
-        private static String urlToContentString(final URL url) {
-            try {
-                return Resources.toString(url, Charsets.UTF_8);
-            } catch (IOException e) {
-                throw new IllegalArgumentException("Unable to read resource from: " + url, e);
-            }
-        }
-
-        private static URL fileToUrl(final File file) {
-            try {
-                return file.toURI().toURL();
-            } catch (MalformedURLException e) {
-                throw new IllegalStateException(e);
-            }
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SchemaModule.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SchemaModule.java
deleted file mode 100644 (file)
index c824a0d..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Singleton;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-
-public class SchemaModule extends AbstractModule {
-
-    @Override
-    protected void configure() {
-        bind(ModuleInfoBackedContext.class).toProvider(ModuleInfoBackedCtxProvider.class).in(Singleton.class);
-        bind(DOMSchemaService.class).toProvider(SchemaServiceProvider.class).in(Singleton.class);
-        bind(BindingToNormalizedNodeCodec.class).toProvider(SerializerProvider.class).in(Singleton.class);
-        bind(org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.class)
-                .toProvider(LegacySerializerProvider.class).in(Singleton.class);
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SchemaServiceProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SchemaServiceProvider.java
deleted file mode 100644 (file)
index 22fe023..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import com.google.common.collect.ClassToInstanceMap;
-import com.google.common.collect.ImmutableClassToInstanceMap;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.mdsal.dom.api.DOMSchemaServiceExtension;
-import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
-import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
-import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
-
-public final class SchemaServiceProvider extends ProviderTrait<DOMSchemaService> {
-
-    @Inject
-    private ModuleInfoBackedContext mibCtx;
-
-    @Override
-    public StaticSchemaService create() {
-        return new StaticSchemaService(mibCtx);
-    }
-
-    /**
-     * Static schema context provider service.
-     */
-    private static final class StaticSchemaService implements DOMSchemaService, DOMYangTextSourceProvider {
-        private final ModuleInfoBackedContext moduleInfoBackedContext;
-
-        StaticSchemaService(ModuleInfoBackedContext moduleInfoBackedContext) {
-            this.moduleInfoBackedContext = moduleInfoBackedContext;
-        }
-
-        @Override
-        public SchemaContext getSessionContext() {
-            return moduleInfoBackedContext.getSchemaContext();
-        }
-
-        @Override
-        public SchemaContext getGlobalContext() {
-            return moduleInfoBackedContext.getSchemaContext();
-        }
-
-        @Override
-        public ListenerRegistration<SchemaContextListener> registerSchemaContextListener(
-                final SchemaContextListener listener) {
-            listener.onGlobalContextUpdated(moduleInfoBackedContext.getSchemaContext());
-            return new ListenerRegistration<SchemaContextListener>() {
-                @Override
-                public void close() {}
-
-                @Override
-                public SchemaContextListener getInstance() {
-                    return listener;
-                }
-
-            };
-        }
-
-        @Override
-        public ClassToInstanceMap<DOMSchemaServiceExtension> getExtensions() {
-            return ImmutableClassToInstanceMap.of(DOMYangTextSourceProvider.class, this);
-        }
-
-        @Override
-        public ListenableFuture<? extends YangTextSchemaSource> getSource(final SourceIdentifier sourceIdentifier) {
-            return moduleInfoBackedContext.getSource(sourceIdentifier);
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SerializerProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/SerializerProvider.java
deleted file mode 100644 (file)
index af7aa9e..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import javassist.ClassPool;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.binding.dom.codec.gen.impl.DataObjectSerializerGenerator;
-import org.opendaylight.mdsal.binding.dom.codec.gen.impl.StreamWriterGenerator;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext;
-import org.opendaylight.mdsal.binding.generator.util.JavassistUtils;
-
-public class SerializerProvider extends ProviderTrait<BindingToNormalizedNodeCodec> {
-
-    @Inject
-    private ModuleInfoBackedContext mibCtx;
-
-    @Override
-    protected BindingToNormalizedNodeCodec create() {
-        final DataObjectSerializerGenerator serializerGenerator =
-            StreamWriterGenerator.create(JavassistUtils.forClassPool(ClassPool.getDefault()));
-        BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(serializerGenerator);
-        BindingRuntimeContext ctx = BindingRuntimeContext.create(mibCtx, mibCtx.getSchemaContext());
-        codecRegistry.onBindingRuntimeContextUpdated(ctx);
-        BindingToNormalizedNodeCodec codec = new BindingToNormalizedNodeCodec(mibCtx, codecRegistry);
-        codec.onGlobalContextUpdated(mibCtx.getSchemaContext());
-        return codec;
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangBindingProviderModule.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangBindingProviderModule.java
deleted file mode 100644 (file)
index d43485f..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import com.google.inject.AbstractModule;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class YangBindingProviderModule extends AbstractModule {
-    private static final Logger LOG = LoggerFactory.getLogger(YangBindingProviderModule.class);
-
-    @Override
-    protected void configure() {
-        LOG.info("Configuring YangBindingProviderModule");
-        bind(YangModulesProvider.YangModules.class).toProvider(YangModulesProvider.class).asEagerSingleton();
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangModuleMappingIndex.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangModuleMappingIndex.java
deleted file mode 100644 (file)
index a483cfd..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.LinkedListMultimap;
-import com.google.common.collect.Multimap;
-import java.util.Arrays;
-import java.util.Set;
-import java.util.stream.Stream;
-import javax.annotation.Nonnull;
-
-/**
- * Index from guice module to yang module providers
- */
-class YangModuleMappingIndex implements ResourceLoader {
-
-    private static final String G_MODULE_TOKEN = "GUICE_MODULE:";
-    private static final String KEY_VALUE_SEPARATOR = "|";
-    private static final String Y_MODULE_TOKEN = "YANG_MODULES:";
-    private static final String Y_MODULE_SEPARATOR = ",";
-
-    /**
-     * key - module class name
-     * value  - yang module provider
-     */
-    private final Multimap<String, String> index;
-
-    YangModuleMappingIndex(final String indexPath) {
-        this.index = LinkedListMultimap.create();
-        loadResourceContentsOnPath(indexPath)
-                .forEach(line -> {
-                    final String moduleName = parseModuleName(line);
-                    parseYangModules(line).forEach(yModuleProvider -> index.put(moduleName, yModuleProvider));
-                });
-    }
-
-    Set<String> getByModuleName(@Nonnull final String moduleName) {
-        return ImmutableSet.copyOf(index.get(moduleName));
-    }
-
-    int applicationModulesCount() {
-        return index.keySet().size();
-    }
-
-    private static String parseModuleName(final String rawLine) {
-        return rawLine.substring(rawLine.indexOf(G_MODULE_TOKEN) + G_MODULE_TOKEN.length(),
-                rawLine.indexOf(KEY_VALUE_SEPARATOR));
-    }
-
-    private static Stream<String> parseYangModules(final String rawLine) {
-        return Arrays.stream(rawLine.substring(rawLine.indexOf(Y_MODULE_TOKEN) + Y_MODULE_TOKEN.length())
-                .split(Y_MODULE_SEPARATOR));
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangModulesProvider.java b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/java/io/fd/honeycomb/infra/distro/schema/YangModulesProvider.java
deleted file mode 100644 (file)
index 5acc1ea..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.schema;
-
-
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-import io.fd.honeycomb.infra.distro.activation.ActivationConfig;
-import io.fd.honeycomb.infra.distro.activation.ActiveModules;
-import org.opendaylight.yangtools.yang.binding.YangModelBindingProvider;
-
-import javax.annotation.Nonnull;
-import java.util.Collection;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import static java.lang.String.format;
-
-/**
- * Loads active yang modules
- * Relying on generate yang-module-index
- */
-public class YangModulesProvider implements Provider<YangModulesProvider.YangModules> {
-
-    @Inject
-    private ActiveModules activeModules;
-
-    @Inject
-    private ActivationConfig config;
-
-    @Override
-    public YangModules get() {
-        // no need to bind this, pretty big map and its needed just here
-        final YangModuleMappingIndex index = new YangModuleMappingIndex(config.getYangModulesIndexPath());
-
-        return new YangModules(activeModules.getActiveModulesClasses().stream()
-                .map(Class::getName)
-                .map(index::getByModuleName)
-                .flatMap(Collection::stream)
-                .map(YangModulesProvider::loadClass)
-                .map(aClass -> (Class<? extends YangModelBindingProvider>) aClass)
-                .collect(Collectors.toSet()));
-    }
-
-    static class YangModules {
-        private final Set<Class<? extends YangModelBindingProvider>> yangBindings;
-
-        YangModules(final Set<Class<? extends YangModelBindingProvider>> yangBindings) {
-            this.yangBindings = yangBindings;
-        }
-
-        Set<YangModelBindingProvider> getYangBindings() {
-            return yangBindings.stream()
-                    .map(providerClass -> {
-                        try {
-                            return providerClass.newInstance();
-                        } catch (InstantiationException | IllegalAccessException e) {
-                            throw new IllegalStateException(format("Unable to create instance of %s", providerClass),
-                                    e);
-                        }
-                    }).collect(Collectors.toSet());
-        }
-    }
-
-    private static Class<?> loadClass(@Nonnull final String className) {
-        try {
-            return Class.forName(className);
-        } catch (ClassNotFoundException e) {
-            throw new IllegalArgumentException("Unable to load class: " + className, e);
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/cert/honeycomb-keystore b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/cert/honeycomb-keystore
deleted file mode 100644 (file)
index 27a2633..0000000
Binary files a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/cert/honeycomb-keystore and /dev/null differ
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/WEB-INF/web.xml b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/WEB-INF/web.xml
deleted file mode 100644 (file)
index b5d2c8b..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-  ~ Copyright (c) 2016 Cisco and/or its affiliates.
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at:
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
-    version="3.0">
-
-    <filter>
-        <filter-name>cross-origin-restconf</filter-name>
-        <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
-        <init-param>
-            <param-name>allowedOrigins</param-name>
-            <param-value>*</param-value>
-        </init-param>
-        <init-param>
-            <param-name>allowedMethods</param-name>
-            <param-value>GET,POST,OPTIONS,DELETE,PUT,HEAD</param-value>
-        </init-param>
-        <init-param>
-            <param-name>allowedHeaders</param-name>
-            <param-value>origin, content-type, accept, authorization</param-value>
-        </init-param>
-        <init-param>
-            <param-name>exposedHeaders</param-name>
-            <param-value>location</param-value>
-        </init-param>
-    </filter>
-    <filter-mapping>
-        <filter-name>cross-origin-restconf</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
-
-    <security-constraint>
-        <web-resource-collection>
-            <web-resource-name>NB api</web-resource-name>
-            <url-pattern>/*</url-pattern>
-            <http-method>POST</http-method>
-            <http-method>GET</http-method>
-            <http-method>PUT</http-method>
-            <http-method>PATCH</http-method>
-            <http-method>DELETE</http-method>
-            <http-method>HEAD</http-method>
-        </web-resource-collection>
-    </security-constraint>
-
-</web-app>
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/activation.json b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/activation.json
deleted file mode 100644 (file)
index 8dd1687..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "modules-resource-path": "../modules/",
-  "yang-modules-index-path": "../yang-mapping/"
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/honeycomb.json b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/honeycomb.json
deleted file mode 100644 (file)
index a0a2a5c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "persist-context": "true",
-  "persisted-context-path": "persist/data-context.json",
-  "persisted-context-restoration-type": "Merge",
-  "persist-config": "true",
-  "persisted-config-path": "persist/data-config.json",
-  "persisted-config-restoration-type": "Merge",
-  "notification-service-queue-depth": 1,  
-  "netconf-initial-config-xml" : "device/oper-ROADMA.xml",
-  "netconf-initial-pm-xml" : "device/oper-ROADMA-cpm.xml"
-  
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/logback.xml b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/config/logback.xml
deleted file mode 100644 (file)
index 5167747..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<configuration scan="true">
-
-    <appender name="STDOUT"
-        class="ch.qos.logback.core.ConsoleAppender">
-        <encoder>
-            <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level
-                %logger{36} - %msg%n</pattern>
-        </encoder>
-    </appender>
-    <appender name="honeycomb.log"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-       <file>${logback.logs.directory}/honeycomb-${DEVICE}.log</file>
-
-        <rollingPolicy
-            class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <maxIndex>3</maxIndex>
-           <FileNamePattern>${logback.logs.directory}/honeycomb-${DEVICE}.log.%i</FileNamePattern>
-        </rollingPolicy>
-        <triggeringPolicy
-            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-            <MaxFileSize>10000KB</MaxFileSize>
-        </triggeringPolicy>
-
-        <encoder>
-            <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level
-                %logger{35} - %msg%n</pattern>
-        </encoder>
-    </appender>
-
-    <root level="WARN">
-        <appender-ref ref="STDOUT" />
-        <appender-ref ref="honeycomb.log" />
-    </root>
-
-    <logger name="org.opendaylight" level="INFO">
-        <appender-ref ref="STDOUT" />
-        <appender-ref ref="honeycomb.log" />
-    </logger>
-    <logger name="io.fd" level="INFO">
-        <appender-ref ref="STDOUT" />
-        <appender-ref ref="honeycomb.log" />
-    </logger>
-</configuration>
diff --git a/tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/honeycomb-tpce b/tests/honeynode/2.2.1/minimal-distribution-core/src/main/resources/honeycomb-minimal-resources/honeycomb-tpce
deleted file mode 100755 (executable)
index 331ca69..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/sh -
-STATUS=100
-JAVA_CMD="java"
-[ -n "$JAVA_HOME" ] && JAVA_CMD="$JAVA_HOME/bin/java"
-JAVA_VER=$("$JAVA_CMD" -version 2>&1 | sed -n ';s/.* version "\(.*\)\.\(.*\)\..*".*$/\1\2/p;')
-echo $JAVA_VER
-[ "$JAVA_VER" -ge 110 ] && echo "ok, java is 11 or newer" || { echo "it's too old..."; exit 1; }
-if [ -d  $(dirname $0)/config/yang/common ]; then
-    mv  $(dirname $0)/config/yang/common/*  $(dirname $0)/config/yang/.
-    rm -rf  $(dirname $0)/config/yang/common
-fi
-if [ -d  $(dirname $0)/config/yang/devices ]; then
-    mv  $(dirname $0)/config/yang/devices/*  $(dirname $0)/config/yang/.
-    rm -rf  $(dirname $0)/config/yang/devices
-fi
-if [ -d  $(dirname $0)/config/yang/openconfig ]; then
-    mv  $(dirname $0)/config/yang/openconfig/*  $(dirname $0)/config/yang/.
-    rm -rf  $(dirname $0)/config/yang/openconfig
-fi
-
-if [ "$#" -ge 2 ]
-then
-    PORT=$1
-    CONFIG=$2
-    if [ -e $CONFIG ]
-    then
-        mkdir -p  $(dirname $0)/persist
-        mkdir -p  $(dirname $0)/logs
-        REST_HTTP=$(echo 81`echo $PORT | tail -c 3`)
-        REST_WEBSOCKET=$(echo 77`echo $PORT | tail -c 3`)
-        cp $CONFIG $(dirname $0)/config/device/
-        filename=$(basename -- "$CONFIG")
-        device=$(basename "$CONFIG" .xml)
-        echo "changing netconf port with $PORT in netconf.json file ..."
-        sed  -i' ' "s/\"netconf-ssh-binding-port\".*,/\"netconf-ssh-binding-port\" : "$PORT",/g" $(dirname $0)/config/netconf.json
-        echo "changing restconf http port with $REST_HTTP in restconf.json file ..."
-        sed  -i' ' "s/\"restconf-port\".*,/\"restconf-port\" : "$REST_HTTP",/g" $(dirname $0)/config/restconf.json
-        echo "changing restconf websocket with $REST_WEBSOCKET in restconf.json file ..."
-        sed  -i' ' "s/\"restconf-websocket-port\".*,/\"restconf-websocket-port\" : "$REST_WEBSOCKET",/g" $(dirname $0)/config/restconf.json
-        echo "changing restconf-https-enabled to false in restconf.json file ..."
-        sed  -i' ' "s/\"restconf-https-enabled\".*,/\"restconf-https-enabled\" : \"false\",/g" $(dirname $0)/config/restconf.json
-        echo "changing persist-context and persist-config to false in honeycomb.json file ..."
-        sed  -i' ' "s/\"persist-context\".*,/\"persist-context\" : \"false\",/g" $(dirname $0)/config/honeycomb.json
-        sed  -i' ' "s/\"persist-config\".*,/\"persist-config\" : \"false\",/g" $(dirname $0)/config/honeycomb.json
-        echo "changing netconf-initial-config-xml location with $CONFIG in honeycomb.json file ..."
-        sed -i' ' "s@\"netconf-initial-config-xml\".*,@\"netconf-initial-config-xml\" : \"device/$filename\",@g" $(dirname $0)/config/honeycomb.json
-         while [ $STATUS -eq 100 ]
-         do
-           . $(dirname $0)/../../../../../../reflectwarn.sh
-           # needed to remove JDK11 reflective access warning
-           "$JAVA_CMD" -DDEVICE=${device} -Dlogback.logs.directory=$(dirname $0)/logs -Xms512m -Xmn512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -jar $(dirname $0)/honeynode-distribution-1.19.04.jar
-           STATUS=$?
-           echo "Honeycomb exited with status: $STATUS"
-           if [ $STATUS -eq 100 ]
-           then
-             echo "Restarting..."
-           fi
-         done
-    else
-        echo "initial config file doesn't exist !"
-    fi
-else
-    echo "honeycomb-tpce port initial-config-xml"
-    echo "Eg : honeycomb-tpce 17832 sample-config-ROADM.xml (rest-http port will be 81 + netconf-port last two digits : 8132)"
-fi
diff --git a/tests/honeynode/2.2.1/minimal-distribution/asciidoc/Readme.adoc b/tests/honeynode/2.2.1/minimal-distribution/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index 1da86ca..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-= minimal-distribution
-
-Overview of minimal-distribution
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/minimal-distribution/pom.xml b/tests/honeynode/2.2.1/minimal-distribution/pom.xml
deleted file mode 100644 (file)
index 828890c..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (c) 2015 Cisco and/or its affiliates.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at:
-     http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>io.fd.honeycomb.common</groupId>
-        <artifactId>minimal-distribution-parent</artifactId>
-        <version>1.19.04</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>io.fd.honeycomb.transportpce</groupId>
-    <artifactId>minimal-distribution</artifactId>
-    <name>${project.artifactId}</name>
-    <properties>
-        <main.class>io.fd.honeycomb.infra.distro.Main</main.class>
-        <distribution.modules>
-            io.fd.honeycomb.infra.distro.schema.YangBindingProviderModule,
-            io.fd.honeycomb.infra.distro.schema.SchemaModule,
-            io.fd.honeycomb.infra.distro.data.ConfigAndOperationalPipelineModule,
-            io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule,
-            io.fd.honeycomb.infra.distro.initializer.InitializerPipelineModule,
-            io.fd.honeycomb.northbound.CredentialsModule,
-            io.fd.honeycomb.northbound.netconf.NetconfModule,
-            io.fd.honeycomb.northbound.netconf.NetconfReadersModule,
-            io.fd.honeycomb.northbound.restconf.RestconfModule,
-            io.fd.honeycomb.infra.distro.cfgattrs.CfgAttrsModule,
-            // io.fd.honeycomb.infra.bgp.BgpModule,
-            // io.fd.honeycomb.infra.bgp.BgpReadersModule,
-            // io.fd.honeycomb.infra.bgp.BgpWritersModule,
-            // io.fd.honeycomb.northbound.bgp.extension.EvpnModule,
-            // io.fd.honeycomb.northbound.bgp.extension.InetModule,
-            // io.fd.honeycomb.northbound.bgp.extension.L3VpnV4Module,
-            // io.fd.honeycomb.northbound.bgp.extension.L3VpnV6Module,
-            // io.fd.honeycomb.northbound.bgp.extension.LabeledUnicastModule,
-            // io.fd.honeycomb.northbound.bgp.extension.LinkstateModule,
-            // io.fd.honeycomb.footprint.FootprintModule
-        </distribution.modules>
-         <honeycomb.version>1.19.04</honeycomb.version>
-        <java.version>11</java.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <maven.javadoc.skip>true</maven.javadoc.skip>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-    </properties>
-    <dependencies>
-        <!-- DI-->
-        <dependency>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-        </dependency>
-        <!-- TPCE Distribution core -->
-        <dependency>
-            <groupId>io.fd.honeycomb.transportpce</groupId>
-            <artifactId>minimal-distribution-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.transportpce</groupId>
-            <artifactId>restconf</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.transportpce</groupId>
-            <artifactId>netconf</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <!-- Distribution core -->
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>minimal-distribution-core</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- Northbound interfaces -->
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound</groupId>
-            <artifactId>common</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-<!--         <dependency> -->
-<!--             <groupId>io.fd.honeycomb.northbound</groupId> -->
-<!--             <artifactId>restconf</artifactId> -->
-<!--             <version>${honeycomb.version}</version> -->
-<!--         </dependency> -->
-<!--         <dependency> -->
-<!--             <groupId>io.fd.honeycomb.northbound</groupId> -->
-<!--             <artifactId>netconf</artifactId> -->
-<!--             <version>${honeycomb.version}</version> -->
-<!--         </dependency> -->
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound</groupId>
-            <artifactId>bgp</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- Bgp extension modules -->
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound.bgp</groupId>
-            <artifactId>extension-common</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound.bgp</groupId>
-            <artifactId>evpn</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound.bgp</groupId>
-            <artifactId>inet</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound.bgp</groupId>
-            <artifactId>l3-vpn-v4</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound.bgp</groupId>
-            <artifactId>l3-vpn-v6</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound.bgp</groupId>
-            <artifactId>linkstate</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound.bgp</groupId>
-            <artifactId>labeled-unicast</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- Footprint api -->
-        <dependency>
-            <groupId>io.fd.honeycomb.footprint</groupId>
-            <artifactId>impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-    </dependencies>
-        <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.8.1</version>
-                    <configuration>
-                        <source>${java.version}</source>
-                        <target>${java.version}</target>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>3.1.0</version>
-                    <executions>
-                        <execution>
-                            <id>attach-javadocs</id>
-                            <goals>
-                                <goal>jar</goal>
-                            </goals>
-                            <configuration> <!-- add this to disable checking -->
-                                <doclint>none</doclint>
-                            </configuration>
-                        </execution>
-                    </executions>
-                </plugin>
-                <!--This plugin's configuration is used to store Eclipse m2e settings
-                    only. It has no influence on the Maven build itself. -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmaven</groupId>
-                                        <artifactId>groovy-maven-plugin</artifactId>
-                                        <versionRange>[2.0,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-checkstyle-plugin</artifactId>
-                                        <versionRange>[3.0.0,)</versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-dependency-plugin</artifactId>
-                                        <versionRange>[2.10,)</versionRange>
-                                        <goals>
-                                            <goal>copy-dependencies</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmavenplus</groupId>
-                                        <artifactId>gmavenplus-plugin</artifactId>
-                                        <versionRange>[1.6.2,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-        <plugins>
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <!-- MacOS X and posix compatibility, fix error "group id is too big" -->
-                    <tarLongFileMode>posix</tarLongFileMode>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/tests/honeynode/2.2.1/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java b/tests/honeynode/2.2.1/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java
deleted file mode 100644 (file)
index fce1699..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro;
-
-import static com.google.inject.Guice.createInjector;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.ConfigurationException;
-import com.google.inject.CreationException;
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.Module;
-import com.google.inject.ProvisionException;
-import com.google.inject.name.Names;
-import io.fd.honeycomb.data.init.DataTreeInitializer;
-import io.fd.honeycomb.data.init.InitializerRegistry;
-import io.fd.honeycomb.infra.distro.activation.ActivationModule;
-import io.fd.honeycomb.infra.distro.activation.ActiveModules;
-import io.fd.honeycomb.infra.distro.initializer.InitializerPipelineModule;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-public final class Main {
-
-    private static final Logger LOG = LoggerFactory.getLogger(Main.class);
-
-    private Main() {
-    }
-
-    public static void main(String[] args) {
-        init(new ActivationModule());
-    }
-
-    /**
-     * Initialize the Honeycomb with provided modules
-     */
-    public static Injector init(final ActivationModule activationModule) {
-        try {
-            LOG.info("Starting honeycomb");
-            // creating child injector does not work in this case, so just create injector, and does not store ref
-            // to it, or its active modules instance
-            Injector injector = createInjector(ImmutableSet.<Module>builder()
-                    .add(activationModule)
-                    .addAll(createInjector(activationModule).getInstance(ActiveModules.class).createModuleInstances())
-                    .build());
-
-            // Log all bindings
-            injector.getAllBindings().entrySet().stream()
-                    .forEach(e -> LOG.trace("Component available under: {} is {}", e.getKey(), e.getValue()));
-
-            try {
-                LOG.info("Initializing configuration");
-                injector.getInstance(Key.get(InitializerRegistry.class,
-                        Names.named(InitializerPipelineModule.HONEYCOMB_INITIALIZER))).initialize();
-                LOG.info("Configuration initialized successfully");
-            } catch (DataTreeInitializer.InitializeException e) {
-                LOG.error("Unable to initialize configuration", e);
-            }
-
-            LOG.info("Honeycomb started successfully!");
-
-            return injector;
-        } catch (CreationException | ProvisionException | ConfigurationException e) {
-            LOG.error("Failed to initialize Honeycomb components", e);
-            throw e;
-        } catch (RuntimeException e) {
-            LOG.error("Unexpected initialization failure", e);
-            throw e;
-        } finally {
-            // Trigger gc to force collect initial garbage + dedicated classloader
-            System.gc();
-        }
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/pom.xml b/tests/honeynode/2.2.1/netconf-impl/pom.xml
deleted file mode 100644 (file)
index f8353d9..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. 
-    This program and the accompanying materials are made available under the 
-    terms of the Eclipse Public License v1.0 which accompanies this distribution, 
-    and is available at http://www.eclipse.org/legal/epl-v10.html -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.opendaylight.netconf</groupId>
-        <artifactId>netconf-parent</artifactId>
-        <version>1.5.0</version>
-        <relativePath />
-    </parent>
-    <artifactId>netconf-impl</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
-    <properties>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-        <java.version>11</java.version>
-        <jacoco.version>0.8.5</jacoco.version>
-    </properties>
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>config-artifacts</artifactId>
-                <version>0.9.0</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>ietf-netconf-monitoring</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>ietf-netconf-monitoring-extension</artifactId>
-        </dependency>
-        <!-- compile dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-mapping-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-notifications-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-notifications-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-netty-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>threadpool-config-api</artifactId>
-        </dependency>
-        <!-- test dependencies -->
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-client</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-client</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-util</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>xmlunit</groupId>
-            <artifactId>xmlunit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.0</version>
-                <configuration>
-                    <source>${java.version}</source>
-                    <target>${java.version}</target>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Bundle-Activator>org.opendaylight.netconf.impl.osgi.NetconfImplActivator</Bundle-Activator>
-                        <Export-Package>org.opendaylight.netconf.impl.*</Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                        <phase>package</phase>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-        <pluginManagement>
-            <plugins>
-                <!--This plugin's configuration is used to store Eclipse m2e settings 
-                    only. It has no influence on the Maven build itself. -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.apache.maven.plugins
-                                        </groupId>
-                                        <artifactId>
-                                            maven-checkstyle-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [2.17,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore></ignore>
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerDispatcherImpl.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerDispatcherImpl.java
deleted file mode 100644 (file)
index 394771b..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelFuture;
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.local.LocalAddress;
-import io.netty.channel.local.LocalServerChannel;
-import io.netty.util.concurrent.Promise;
-import java.net.InetSocketAddress;
-import org.opendaylight.netconf.api.NetconfServerDispatcher;
-import org.opendaylight.netconf.impl.util.DeserializerExceptionHandler;
-import org.opendaylight.netconf.nettyutil.AbstractChannelInitializer;
-import org.opendaylight.protocol.framework.AbstractDispatcher;
-
-public class NetconfServerDispatcherImpl extends AbstractDispatcher<NetconfServerSession,
-        NetconfServerSessionListener> implements NetconfServerDispatcher {
-
-    private final ServerChannelInitializer initializer;
-
-    public NetconfServerDispatcherImpl(ServerChannelInitializer serverChannelInitializer, EventLoopGroup bossGroup,
-                                       EventLoopGroup workerGroup) {
-        super(bossGroup, workerGroup);
-        this.initializer = serverChannelInitializer;
-    }
-
-    @Override
-    public ChannelFuture createServer(InetSocketAddress address) {
-        return super.createServer(address, initializer::initialize);
-    }
-
-    @Override
-    public ChannelFuture createLocalServer(LocalAddress address) {
-        return super.createServer(address, LocalServerChannel.class, initializer::initialize);
-    }
-
-    public static class ServerChannelInitializer extends AbstractChannelInitializer<NetconfServerSession> {
-
-        public static final String DESERIALIZER_EX_HANDLER_KEY = "deserializerExHandler";
-
-        private final NetconfServerSessionNegotiatorFactory negotiatorFactory;
-
-
-        public ServerChannelInitializer(NetconfServerSessionNegotiatorFactory negotiatorFactory) {
-            this.negotiatorFactory = negotiatorFactory;
-
-        }
-
-        @Override
-        protected void initializeMessageDecoder(Channel ch) {
-            super.initializeMessageDecoder(ch);
-            ch.pipeline().addLast(DESERIALIZER_EX_HANDLER_KEY, new DeserializerExceptionHandler());
-        }
-
-        @Override
-        protected void initializeSessionNegotiator(Channel ch, Promise<NetconfServerSession> promise) {
-            ch.pipeline().addAfter(DESERIALIZER_EX_HANDLER_KEY, AbstractChannelInitializer.NETCONF_SESSION_NEGOTIATOR,
-                    negotiatorFactory.getSessionNegotiator(null, ch, promise));
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSession.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSession.java
deleted file mode 100644 (file)
index bb0964b..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import com.google.common.base.Preconditions;
-import com.google.common.net.InetAddresses;
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelFuture;
-import io.netty.handler.codec.ByteToMessageDecoder;
-import io.netty.handler.codec.MessageToByteEncoder;
-import java.net.Inet4Address;
-import java.net.InetAddress;
-import java.time.Instant;
-import java.time.ZoneId;
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
-import org.opendaylight.netconf.api.monitoring.NetconfManagementSession;
-import org.opendaylight.netconf.nettyutil.AbstractNetconfSession;
-import org.opendaylight.netconf.nettyutil.handler.NetconfMessageToXMLEncoder;
-import org.opendaylight.netconf.nettyutil.handler.NetconfXMLToMessageDecoder;
-import org.opendaylight.netconf.notifications.NetconfNotification;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210.NetconfTcp;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210.Session1;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210.Session1Builder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfSsh;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.Transport;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.SessionBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.SessionKey;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.ZeroBasedCounter32;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class NetconfServerSession extends AbstractNetconfSession<NetconfServerSession,
-        NetconfServerSessionListener> implements NetconfManagementSession {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfServerSession.class);
-    private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
-    private static final String DATE_TIME_PATTERN_STRING = DateAndTime.PATTERN_CONSTANTS.get(0);
-    private static final Pattern DATE_TIME_PATTERN = Pattern.compile(DATE_TIME_PATTERN_STRING);
-
-    private final NetconfHelloMessageAdditionalHeader header;
-    private final NetconfServerSessionListener sessionListener;
-
-    private ZonedDateTime loginTime;
-    private long inRpcSuccess;
-    private long inRpcFail;
-    private long outRpcError;
-    private long outNotification;
-    private volatile boolean delayedClose;
-
-    public NetconfServerSession(final NetconfServerSessionListener sessionListener, final Channel channel,
-                                final long sessionId, final NetconfHelloMessageAdditionalHeader header) {
-        super(sessionListener, channel, sessionId);
-        this.header = header;
-        this.sessionListener = sessionListener;
-        LOG.debug("Session {} created", toString());
-    }
-
-    @Override
-    protected void sessionUp() {
-        Preconditions.checkState(loginTime == null, "Session is already up");
-        this.loginTime = Instant.now().atZone(ZoneId.systemDefault());
-        super.sessionUp();
-    }
-
-    /**
-     * Close this session after next message is sent.
-     * Suitable for close rpc that needs to send ok response before the session is closed.
-     */
-    public void delayedClose() {
-        this.delayedClose = true;
-    }
-
-    @Override
-    public ChannelFuture sendMessage(final NetconfMessage netconfMessage) {
-        final ChannelFuture channelFuture = super.sendMessage(netconfMessage);
-        if (netconfMessage instanceof NetconfNotification) {
-            outNotification++;
-            sessionListener.onNotification(this, (NetconfNotification) netconfMessage);
-        }
-        // delayed close was set, close after the message was sent
-        if (delayedClose) {
-            channelFuture.addListener(future -> close());
-        }
-        return channelFuture;
-    }
-
-    public void onIncommingRpcSuccess() {
-        inRpcSuccess++;
-    }
-
-    public void onIncommingRpcFail() {
-        inRpcFail++;
-    }
-
-    public void onOutgoingRpcError() {
-        outRpcError++;
-    }
-
-    @Override
-    public Session toManagementSession() {
-        SessionBuilder builder = new SessionBuilder();
-
-        builder.setSessionId(getSessionId());
-        IpAddress address;
-        InetAddress address1 = InetAddresses.forString(header.getAddress());
-        if (address1 instanceof Inet4Address) {
-            address = new IpAddress(new Ipv4Address(header.getAddress()));
-        } else {
-            address = new IpAddress(new Ipv6Address(header.getAddress()));
-        }
-        builder.setSourceHost(new Host(address));
-
-        Preconditions.checkState(DateAndTime.PATTERN_CONSTANTS.size() == 1);
-        String formattedDateTime = DATE_FORMATTER.format(loginTime);
-
-        Matcher matcher = DATE_TIME_PATTERN.matcher(formattedDateTime);
-        Preconditions.checkState(matcher.matches(), "Formatted datetime %s does not match pattern %s",
-                formattedDateTime, DATE_TIME_PATTERN);
-        builder.setLoginTime(new DateAndTime(formattedDateTime));
-
-        builder.setInBadRpcs(new ZeroBasedCounter32(inRpcFail));
-        builder.setInRpcs(new ZeroBasedCounter32(inRpcSuccess));
-        builder.setOutRpcErrors(new ZeroBasedCounter32(outRpcError));
-
-        builder.setUsername(header.getUserName());
-        builder.setTransport(getTransportForString(header.getTransport()));
-
-        builder.setOutNotifications(new ZeroBasedCounter32(outNotification));
-
-        builder.withKey(new SessionKey(getSessionId()));
-
-        Session1Builder builder1 = new Session1Builder();
-        builder1.setSessionIdentifier(header.getSessionIdentifier());
-        builder.addAugmentation(Session1.class, builder1.build());
-
-        return builder.build();
-    }
-
-    private static Class<? extends Transport> getTransportForString(final String transport) {
-        switch (transport) {
-            case "ssh":
-                return NetconfSsh.class;
-            case "tcp":
-                return NetconfTcp.class;
-            default:
-                throw new IllegalArgumentException("Unknown transport type " + transport);
-        }
-    }
-
-    @Override
-    protected NetconfServerSession thisInstance() {
-        return this;
-    }
-
-    @Override
-    protected void addExiHandlers(final ByteToMessageDecoder decoder,
-                                  final MessageToByteEncoder<NetconfMessage> encoder) {
-        replaceMessageDecoder(decoder);
-        replaceMessageEncoderAfterNextMessage(encoder);
-    }
-
-    @Override
-    public void stopExiCommunication() {
-        replaceMessageDecoder(new NetconfXMLToMessageDecoder());
-        replaceMessageEncoderAfterNextMessage(new NetconfMessageToXMLEncoder());
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionListener.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionListener.java
deleted file mode 100644 (file)
index e0b18ce..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableMap;
-
-import java.util.regex.PatternSyntaxException;
-
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.NetconfSessionListener;
-import org.opendaylight.netconf.api.NetconfTerminationReason;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.monitoring.SessionEvent;
-import org.opendaylight.netconf.api.monitoring.SessionListener;
-import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.osgi.NetconfOperationRouter;
-import org.opendaylight.netconf.notifications.NetconfNotification;
-import org.opendaylight.netconf.util.messages.SendErrorExceptionUtil;
-import org.opendaylight.netconf.util.messages.SubtreeFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class NetconfServerSessionListener implements NetconfSessionListener<NetconfServerSession> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfServerSessionListener.class);
-    private final SessionListener monitoringSessionListener;
-    private final NetconfOperationRouter operationRouter;
-    private final AutoCloseable onSessionDownCloseable;
-
-    public NetconfServerSessionListener(final NetconfOperationRouter operationRouter,
-            final NetconfMonitoringService monitoringService, final AutoCloseable onSessionDownCloseable) {
-        this.operationRouter = operationRouter;
-        this.monitoringSessionListener = monitoringService.getSessionListener();
-        this.onSessionDownCloseable = onSessionDownCloseable;
-    }
-
-    @Override
-    public void onSessionUp(final NetconfServerSession netconfNetconfServerSession) {
-        monitoringSessionListener.onSessionUp(netconfNetconfServerSession);
-    }
-
-    @Override
-    public void onSessionDown(final NetconfServerSession netconfNetconfServerSession, final Exception cause) {
-        LOG.debug("Session {} down, reason: {}", netconfNetconfServerSession, cause.getMessage());
-        onDown(netconfNetconfServerSession);
-    }
-
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    public void onDown(final NetconfServerSession netconfNetconfServerSession) {
-        monitoringSessionListener.onSessionDown(netconfNetconfServerSession);
-
-        try {
-            operationRouter.close();
-        } catch (final Exception closingEx) {
-            LOG.debug("Ignoring exception while closing operationRouter", closingEx);
-        }
-        try {
-            onSessionDownCloseable.close();
-        } catch (final Exception ex) {
-            LOG.debug("Ignoring exception while closing onSessionDownCloseable", ex);
-        }
-    }
-
-    @Override
-    public void onSessionTerminated(final NetconfServerSession netconfNetconfServerSession,
-            final NetconfTerminationReason netconfTerminationReason) {
-        LOG.debug("Session {} terminated, reason: {}", netconfNetconfServerSession,
-                netconfTerminationReason.getErrorMessage());
-        onDown(netconfNetconfServerSession);
-    }
-
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    @Override
-    public void onMessage(final NetconfServerSession session, final NetconfMessage netconfMessage) {
-        try {
-
-            Preconditions.checkState(operationRouter != null, "Cannot handle message, session up was not yet received");
-            // there is no validation since the document may contain yang schemas
-            final NetconfMessage message = processDocument(netconfMessage, session);
-            final NetconfMessage modifiedmessage = modifyType(message);
-            LOG.debug("Responding with message {}", modifiedmessage);
-            session.sendMessage(message);
-            monitoringSessionListener.onSessionEvent(SessionEvent.inRpcSuccess(session));
-        } catch (final RuntimeException e) {
-            // TODO: should send generic error or close session?
-            LOG.error("Unexpected exception", e);
-            session.onIncommingRpcFail();
-            monitoringSessionListener.onSessionEvent(SessionEvent.inRpcFail(session));
-            throw new IllegalStateException("Unable to process incoming message " + netconfMessage, e);
-        } catch (final DocumentedException e) {
-            LOG.trace("Error occurred while processing message", e);
-            session.onOutgoingRpcError();
-            session.onIncommingRpcFail();
-            monitoringSessionListener.onSessionEvent(SessionEvent.inRpcFail(session));
-            monitoringSessionListener.onSessionEvent(SessionEvent.outRpcError(session));
-            SendErrorExceptionUtil.sendErrorMessage(session, e, netconfMessage);
-        }
-    }
-
-    private NetconfMessage modifyType(NetconfMessage message) {
-        Document doc = message.getDocument();
-        NodeList result = doc.getElementsByTagName("components");
-        if (result.getLength() > 0) {
-            NodeList components = doc.getElementsByTagName("component");
-            for (int i = 0; i < components.getLength(); i++) {
-                try {
-                    Element component = (Element) components.item(i);
-                    Element state = getChild(component, "state");
-                    if (state != null) {
-                        LOG.debug("state gets : {}", state.getTextContent());
-                        Element type = getChild(state, "type");
-                        if (type != null) {
-                            LOG.debug("type gets : {}", type.getTextContent());
-                            LOG.debug("formatting ...");
-                            String textContent = type.getTextContent();
-                            LOG.debug("formatting : {}", textContent);
-                            String[] splitValue = textContent.split("\\)");
-                            String value = null;
-                            String namespace = null;
-                            if (splitValue.length == 2) {
-                                namespace = splitValue[0];
-                                value = splitValue[1];
-                                if ((value != null) && (namespace != null)) {
-                                    if (namespace.contains("http://openconfig.net/yang/platform-types")) {
-                                        type.setAttribute("xmlns:oc-platform-types",
-                                                "http://openconfig.net/yang/platform-types");
-                                        type.setTextContent("oc-platform-types:" + value);
-                                    } else if (namespace.contains("http://openconfig.net/yang/transport-types")) {
-                                        type.setAttribute("xmlns:oc-opt-types",
-                                                "http://openconfig.net/yang/transport-types");
-                                        type.setTextContent("oc-opt-types:" + value);
-                                    }
-                                } else {
-                                    LOG.debug("value or namespace is null !");
-                                }
-                            }
-                        } else {
-                            LOG.debug("tag <state> doesn't have type value !");
-                        }
-                    } else {
-                        LOG.debug("tag <component> doesn't have state value !");
-                    }
-                } catch (PatternSyntaxException | ArrayIndexOutOfBoundsException | NullPointerException e) {
-                    LOG.warn("failed to get type value!", e);
-                }
-            }
-        } else {
-            LOG.debug("No <components> tag present in xml doc");
-        }
-        return new NetconfMessage(doc);
-    }
-
-    private Element getChild(Element parent, String name) {
-        for (Node child = parent.getFirstChild(); child != null; child = child.getNextSibling()) {
-            if ((child instanceof Element) && name.equals(child.getNodeName())) {
-                return (Element) child;
-            }
-        }
-        return null;
-    }
-
-    public void onNotification(final NetconfServerSession session, final NetconfNotification notification) {
-        monitoringSessionListener.onSessionEvent(SessionEvent.notification(session));
-    }
-
-    private NetconfMessage processDocument(final NetconfMessage netconfMessage, final NetconfServerSession session)
-            throws DocumentedException {
-
-        final Document incomingDocument = netconfMessage.getDocument();
-        final Node rootNode = incomingDocument.getDocumentElement();
-
-        if (rootNode.getLocalName().equals(XmlNetconfConstants.RPC_KEY)) {
-            final Document responseDocument = XmlUtil.newDocument();
-            checkMessageId(rootNode);
-
-            Document rpcReply = operationRouter.onNetconfMessage(incomingDocument, session);
-
-            rpcReply = SubtreeFilter.applyRpcSubtreeFilter(incomingDocument, rpcReply);
-
-            session.onIncommingRpcSuccess();
-
-            responseDocument.appendChild(responseDocument.importNode(rpcReply.getDocumentElement(), true));
-            return new NetconfMessage(responseDocument);
-        } else {
-            // unknown command, send RFC 4741 p.70 unknown-element
-            /*
-             * Tag: unknown-element Error-type: rpc, protocol, application Severity: error
-             * Error-info: <bad-element> : name of the unexpected element Description: An
-             * unexpected element is present.
-             */
-            throw new DocumentedException("Unknown tag " + rootNode.getNodeName() + " in message:\n" + netconfMessage,
-                    DocumentedException.ErrorType.PROTOCOL, DocumentedException.ErrorTag.UNKNOWN_ELEMENT,
-                    DocumentedException.ErrorSeverity.ERROR, ImmutableMap.of("bad-element", rootNode.getNodeName()));
-        }
-    }
-
-    private static void checkMessageId(final Node rootNode) throws DocumentedException {
-
-        final NamedNodeMap attributes = rootNode.getAttributes();
-
-        if (attributes.getNamedItemNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0,
-                XmlNetconfConstants.MESSAGE_ID) != null) {
-            return;
-        }
-
-        if (attributes.getNamedItem(XmlNetconfConstants.MESSAGE_ID) != null) {
-            return;
-        }
-
-        throw new DocumentedException("Missing attribute " + rootNode.getNodeName(), DocumentedException.ErrorType.RPC,
-                DocumentedException.ErrorTag.MISSING_ATTRIBUTE, DocumentedException.ErrorSeverity.ERROR,
-                ImmutableMap.of("bad-attribute", XmlNetconfConstants.MESSAGE_ID, "bad-element",
-                        XmlNetconfConstants.RPC_KEY));
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiator.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiator.java
deleted file mode 100644 (file)
index e32d5c7..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import com.google.common.base.Optional;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import io.netty.channel.Channel;
-import io.netty.channel.local.LocalAddress;
-import io.netty.util.Timer;
-import io.netty.util.concurrent.Promise;
-import java.net.InetSocketAddress;
-import java.net.SocketAddress;
-import java.util.AbstractMap;
-import java.util.Map;
-import org.opendaylight.netconf.api.NetconfDocumentedException;
-import org.opendaylight.netconf.api.NetconfServerSessionPreferences;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
-import org.opendaylight.netconf.nettyutil.AbstractNetconfSessionNegotiator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class NetconfServerSessionNegotiator
-        extends AbstractNetconfSessionNegotiator<NetconfServerSessionPreferences, NetconfServerSession,
-                NetconfServerSessionListener> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfServerSessionNegotiator.class);
-
-    private static final String UNKNOWN = "unknown";
-
-    protected NetconfServerSessionNegotiator(
-            NetconfServerSessionPreferences sessionPreferences,
-            Promise<NetconfServerSession> promise, Channel channel,
-            Timer timer, NetconfServerSessionListener sessionListener,
-            long connectionTimeoutMillis) {
-        super(sessionPreferences, promise, channel, timer, sessionListener,
-                connectionTimeoutMillis);
-    }
-
-    @Override
-    protected void handleMessage(NetconfHelloMessage netconfMessage)
-            throws NetconfDocumentedException {
-        NetconfServerSession session = getSessionForHelloMessage(netconfMessage);
-        replaceHelloMessageInboundHandler(session);
-        // Negotiation successful after all non hello messages were processed
-        negotiationSuccessful(session);
-    }
-
-    @Override
-    @SuppressFBWarnings("BC_UNCONFIRMED_CAST_OF_RETURN_VALUE")
-    protected NetconfServerSession getSession(
-            NetconfServerSessionListener sessionListener, Channel channel,
-            NetconfHelloMessage message) {
-        Optional<NetconfHelloMessageAdditionalHeader> additionalHeader = message
-                .getAdditionalHeader();
-
-        NetconfHelloMessageAdditionalHeader parsedHeader;
-        if (additionalHeader.isPresent()) {
-            parsedHeader = additionalHeader.get();
-        } else {
-
-            parsedHeader = new NetconfHelloMessageAdditionalHeader(UNKNOWN,
-                    getHostName(channel.localAddress()).getValue(),
-                    getHostName(channel.localAddress()).getKey(), "tcp",
-                    "client");
-
-        }
-
-        LOG.debug("Additional header from hello parsed as {} from {}",
-                parsedHeader, additionalHeader);
-
-        return new NetconfServerSession(sessionListener, channel,
-                getSessionPreferences().getSessionId(), parsedHeader);
-    }
-
-    /**
-     * Get a name of the host.
-     *
-     * @param socketAddress type of socket address LocalAddress, or
-     *                      InetSocketAddress, for others returns unknown
-     * @return Two values - port and host of socket address
-     */
-    protected static Map.Entry<String, String> getHostName(
-            SocketAddress socketAddress) {
-
-        if (socketAddress instanceof InetSocketAddress) {
-
-            InetSocketAddress inetSocketAddress = (InetSocketAddress) socketAddress;
-
-            return new AbstractMap.SimpleImmutableEntry<>(
-                    Integer.toString(inetSocketAddress.getPort()),
-                    inetSocketAddress.getHostString());
-
-        } else if (socketAddress instanceof LocalAddress) {
-
-            return new AbstractMap.SimpleImmutableEntry<>(UNKNOWN,
-                    ((LocalAddress) socketAddress).id());
-
-        }
-        return new AbstractMap.SimpleImmutableEntry<>(UNKNOWN, UNKNOWN);
-
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactory.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactory.java
deleted file mode 100644 (file)
index 3dfd48b..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Sets;
-import io.netty.channel.Channel;
-import io.netty.util.Timer;
-import io.netty.util.concurrent.Promise;
-import java.net.SocketAddress;
-import java.util.Set;
-import org.opendaylight.netconf.api.NetconfServerSessionPreferences;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
-import org.opendaylight.netconf.impl.osgi.NetconfOperationRouter;
-import org.opendaylight.netconf.impl.osgi.NetconfOperationRouterImpl;
-import org.opendaylight.netconf.mapping.api.NetconfOperationService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.protocol.framework.SessionListenerFactory;
-import org.opendaylight.protocol.framework.SessionNegotiator;
-import org.opendaylight.protocol.framework.SessionNegotiatorFactory;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class NetconfServerSessionNegotiatorFactory implements SessionNegotiatorFactory<NetconfHelloMessage,
-        NetconfServerSession, NetconfServerSessionListener> {
-
-    public static final Set<String> DEFAULT_BASE_CAPABILITIES = ImmutableSet.of(
-            XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_0,
-            XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_1,
-            XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_CAPABILITY_EXI_1_0
-    );
-
-    private final Timer timer;
-
-    private final SessionIdProvider idProvider;
-    private final NetconfOperationServiceFactory aggregatedOpService;
-    private final long connectionTimeoutMillis;
-    private final NetconfMonitoringService monitoringService;
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfServerSessionNegotiatorFactory.class);
-    private final Set<String> baseCapabilities;
-
-    public NetconfServerSessionNegotiatorFactory(final Timer timer,
-                                                 final NetconfOperationServiceFactory netconfOperationProvider,
-                                                 final SessionIdProvider idProvider, final long connectionTimeoutMillis,
-                                                 final NetconfMonitoringService monitoringService,
-                                                 final Set<String> baseCapabilities) {
-        this.timer = timer;
-        this.aggregatedOpService = netconfOperationProvider;
-        this.idProvider = idProvider;
-        this.connectionTimeoutMillis = connectionTimeoutMillis;
-        this.monitoringService = monitoringService;
-        this.baseCapabilities = validateBaseCapabilities(baseCapabilities == null ? DEFAULT_BASE_CAPABILITIES :
-                baseCapabilities);
-    }
-
-
-    private static ImmutableSet<String> validateBaseCapabilities(final Set<String> baseCapabilities) {
-        // Check base capabilities to be supported by the server
-        final Sets.SetView<String> unknownBaseCaps = Sets.difference(baseCapabilities, DEFAULT_BASE_CAPABILITIES);
-        Preconditions.checkArgument(unknownBaseCaps.isEmpty(),
-                "Base capabilities that will be supported by netconf server have to be subset of %s, "
-                        + "unknown base capabilities: %s",
-                DEFAULT_BASE_CAPABILITIES, unknownBaseCaps);
-
-        final ImmutableSet.Builder<String> b = ImmutableSet.builder();
-        b.addAll(baseCapabilities);
-        // Base 1.0 capability is supported by default
-        b.add(XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_0);
-        return b.build();
-    }
-
-    /**
-     * Get session negotiator.
-     *
-     * @param defunctSessionListenerFactory will not be taken into account as session listener factory can
-     *                                      only be created after snapshot is opened, thus this method constructs
-     *                                      proper session listener factory.
-     * @param channel                       Underlying channel
-     * @param promise                       Promise to be notified
-     * @return session negotiator
-     */
-    @Override
-    public SessionNegotiator<NetconfServerSession> getSessionNegotiator(
-            final SessionListenerFactory<NetconfServerSessionListener> defunctSessionListenerFactory,
-            final Channel channel, final Promise<NetconfServerSession> promise) {
-        final long sessionId = idProvider.getNextSessionId();
-
-        NetconfServerSessionPreferences proposal =
-            new NetconfServerSessionPreferences(createHelloMessage(sessionId, monitoringService), sessionId);
-
-        return new NetconfServerSessionNegotiator(proposal, promise, channel, timer,
-                getListener(Long.toString(sessionId), channel.parent().localAddress()), connectionTimeoutMillis);
-    }
-
-    private NetconfServerSessionListener getListener(final String netconfSessionIdForReporting,
-                                                     final SocketAddress socketAddress) {
-        final NetconfOperationService service = getOperationServiceForAddress(netconfSessionIdForReporting,
-                socketAddress);
-        final NetconfOperationRouter operationRouter =
-                new NetconfOperationRouterImpl(service, monitoringService, netconfSessionIdForReporting);
-        return new NetconfServerSessionListener(operationRouter, monitoringService, service);
-
-    }
-
-    protected NetconfOperationService getOperationServiceForAddress(final String netconfSessionIdForReporting,
-                                                                    final SocketAddress socketAddress) {
-        return this.aggregatedOpService.createService(netconfSessionIdForReporting);
-    }
-
-    protected final NetconfOperationServiceFactory getOperationServiceFactory() {
-        return aggregatedOpService;
-    }
-
-    private NetconfHelloMessage createHelloMessage(
-            final long sessionId, final NetconfMonitoringService capabilityProvider) {
-        return NetconfHelloMessage.createServerHello(Sets.union(transformCapabilities(capabilityProvider
-                .getCapabilities()), baseCapabilities), sessionId);
-    }
-
-    public static Set<String> transformCapabilities(final Capabilities capabilities) {
-        return Sets.newHashSet(Collections2.transform(capabilities.getCapability(), Uri::getValue));
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactoryBuilder.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactoryBuilder.java
deleted file mode 100644 (file)
index a46ed9a..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import com.google.common.base.Preconditions;
-import io.netty.util.Timer;
-import java.util.Set;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-
-public class NetconfServerSessionNegotiatorFactoryBuilder {
-    private Timer timer;
-    private SessionIdProvider idProvider;
-    private NetconfOperationServiceFactory aggregatedOpService;
-    private long connectionTimeoutMillis;
-    private NetconfMonitoringService monitoringService;
-    private Set<String> baseCapabilities;
-
-    public NetconfServerSessionNegotiatorFactoryBuilder() {
-    }
-
-    public NetconfServerSessionNegotiatorFactoryBuilder setTimer(final Timer timer) {
-        this.timer = timer;
-        return this;
-    }
-
-    public NetconfServerSessionNegotiatorFactoryBuilder setIdProvider(final SessionIdProvider idProvider) {
-        this.idProvider = idProvider;
-        return this;
-    }
-
-    public NetconfServerSessionNegotiatorFactoryBuilder setAggregatedOpService(
-            final NetconfOperationServiceFactory aggregatedOpService) {
-        this.aggregatedOpService = aggregatedOpService;
-        return this;
-    }
-
-    public NetconfServerSessionNegotiatorFactoryBuilder setConnectionTimeoutMillis(final long connectionTimeoutMillis) {
-        this.connectionTimeoutMillis = connectionTimeoutMillis;
-        return this;
-    }
-
-    public NetconfServerSessionNegotiatorFactoryBuilder setMonitoringService(
-            final NetconfMonitoringService monitoringService) {
-        this.monitoringService = monitoringService;
-        return this;
-    }
-
-    public NetconfServerSessionNegotiatorFactoryBuilder setBaseCapabilities(final Set<String> baseCapabilities) {
-        this.baseCapabilities = baseCapabilities;
-        return this;
-    }
-
-
-    public NetconfServerSessionNegotiatorFactory build() {
-        validate();
-        return new NetconfServerSessionNegotiatorFactory(timer, aggregatedOpService, idProvider,
-                connectionTimeoutMillis, monitoringService, baseCapabilities);
-    }
-
-
-    private void validate() {
-        Preconditions.checkNotNull(timer, "timer not initialized");
-        Preconditions.checkNotNull(aggregatedOpService, "NetconfOperationServiceFactory not initialized");
-        Preconditions.checkNotNull(idProvider, "SessionIdProvider not initialized");
-        Preconditions.checkArgument(connectionTimeoutMillis > 0, "connection time out <=0");
-        Preconditions.checkNotNull(monitoringService, "NetconfMonitoringService not initialized");
-
-        baseCapabilities = (baseCapabilities == null) ? NetconfServerSessionNegotiatorFactory
-                .DEFAULT_BASE_CAPABILITIES : baseCapabilities;
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/SessionIdProvider.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/SessionIdProvider.java
deleted file mode 100644 (file)
index 3e2537d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import java.util.concurrent.atomic.AtomicLong;
-
-public final class SessionIdProvider {
-
-    private final AtomicLong sessionCounter = new AtomicLong(0);
-
-    public long getNextSessionId() {
-        return sessionCounter.incrementAndGet();
-    }
-
-    public long getCurrentSessionId() {
-        return sessionCounter.get();
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSession.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSession.java
deleted file mode 100644 (file)
index 194411f..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.mapping.operations;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import java.util.Collections;
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.api.xml.XmlElement;
-import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.NetconfServerSession;
-import org.opendaylight.netconf.util.mapping.AbstractSingletonNetconfOperation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public class DefaultCloseSession extends AbstractSingletonNetconfOperation implements DefaultNetconfOperation {
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultCloseSession.class);
-
-    public static final String CLOSE_SESSION = "close-session";
-
-    private final AutoCloseable sessionResources;
-    private NetconfServerSession session;
-
-    public DefaultCloseSession(final String netconfSessionIdForReporting, final AutoCloseable sessionResources) {
-        super(netconfSessionIdForReporting);
-        this.sessionResources = sessionResources;
-    }
-
-    @Override
-    protected String getOperationName() {
-        return CLOSE_SESSION;
-    }
-
-    /**
-     * Close netconf operation router associated to this session, which in turn
-     * closes NetconfOperationServiceSnapshot with all NetconfOperationService
-     * instances.
-     */
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    @Override
-    protected Element handleWithNoSubsequentOperations(final Document document, final XmlElement operationElement)
-            throws DocumentedException {
-        try {
-            sessionResources.close();
-            Preconditions.checkNotNull(session, "Session was not set").delayedClose();
-            LOG.info("Session {} closing", session.getSessionId());
-        } catch (final Exception e) {
-            throw new DocumentedException("Unable to properly close session "
-                    + getNetconfSessionIdForReporting(), e, DocumentedException.ErrorType.APPLICATION,
-                    DocumentedException.ErrorTag.OPERATION_FAILED,
-                    DocumentedException.ErrorSeverity.ERROR, Collections.singletonMap(
-                    DocumentedException.ErrorSeverity.ERROR.toString(), e.getMessage()));
-        }
-        return XmlUtil.createElement(document, XmlNetconfConstants.OK, Optional.absent());
-    }
-
-    @Override
-    public void setNetconfSession(final NetconfServerSession netconfServerSession) {
-        this.session = netconfServerSession;
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultNetconfOperation.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultNetconfOperation.java
deleted file mode 100644 (file)
index 56b2c11..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.mapping.operations;
-
-import org.opendaylight.netconf.impl.NetconfServerSession;
-
-public interface DefaultNetconfOperation {
-    void setNetconfSession(NetconfServerSession netconfServerSession);
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStartExi.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStartExi.java
deleted file mode 100644 (file)
index 3b4a560..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.mapping.operations;
-
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity;
-import org.opendaylight.netconf.api.DocumentedException.ErrorTag;
-import org.opendaylight.netconf.api.DocumentedException.ErrorType;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.xml.XmlElement;
-import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.NetconfServerSession;
-import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution;
-import org.opendaylight.netconf.util.mapping.AbstractSingletonNetconfOperation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public class DefaultStartExi extends AbstractSingletonNetconfOperation implements DefaultNetconfOperation {
-    public static final String START_EXI = "start-exi";
-
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultStartExi.class);
-    private NetconfServerSession netconfSession;
-
-    public DefaultStartExi(final String netconfSessionIdForReporting) {
-        super(netconfSessionIdForReporting);
-    }
-
-    @Override
-    public Document handle(final Document message,
-                           final NetconfOperationChainedExecution subsequentOperation) throws DocumentedException {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Received start-exi message {} ", XmlUtil.toString(message));
-        }
-
-        try {
-            netconfSession.startExiCommunication(new NetconfMessage(message));
-        } catch (final IllegalArgumentException e) {
-            throw new DocumentedException("Failed to parse EXI parameters", e, ErrorType.PROTOCOL,
-                    ErrorTag.OPERATION_FAILED, ErrorSeverity.ERROR);
-        }
-
-        return super.handle(message, subsequentOperation);
-    }
-
-    @Override
-    protected Element handleWithNoSubsequentOperations(final Document document,
-                                                       final XmlElement operationElement) {
-        final Element getSchemaResult = document.createElementNS(
-                XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, XmlNetconfConstants.OK);
-        LOG.trace("{} operation successful", START_EXI);
-        return getSchemaResult;
-    }
-
-    @Override
-    protected String getOperationName() {
-        return START_EXI;
-    }
-
-    @Override
-    protected String getOperationNamespace() {
-        return XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0;
-    }
-
-    @Override
-    public void setNetconfSession(final NetconfServerSession netconfServerSession) {
-        netconfSession = netconfServerSession;
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExi.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExi.java
deleted file mode 100644 (file)
index cd2d0f1..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.mapping.operations;
-
-import org.opendaylight.netconf.api.xml.XmlElement;
-import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.NetconfServerSession;
-import org.opendaylight.netconf.util.mapping.AbstractSingletonNetconfOperation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public class DefaultStopExi extends AbstractSingletonNetconfOperation implements DefaultNetconfOperation {
-
-    public static final String STOP_EXI = "stop-exi";
-    private NetconfServerSession netconfSession;
-
-    private static final Logger LOG = LoggerFactory
-            .getLogger(DefaultStopExi.class);
-
-    public DefaultStopExi(String netconfSessionIdForReporting) {
-        super(netconfSessionIdForReporting);
-    }
-
-    @Override
-    protected Element handleWithNoSubsequentOperations(Document document,
-                                                       XmlElement operationElement) {
-        LOG.debug("Received stop-exi message {} ", XmlUtil.toString(operationElement));
-
-        netconfSession.stopExiCommunication();
-
-        Element getSchemaResult = document.createElementNS(
-                XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, XmlNetconfConstants.OK);
-        LOG.trace("{} operation successful", STOP_EXI);
-        return getSchemaResult;
-    }
-
-    @Override
-    protected String getOperationName() {
-        return STOP_EXI;
-    }
-
-    @Override
-    protected String getOperationNamespace() {
-        return XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0;
-    }
-
-    @Override
-    public void setNetconfSession(NetconfServerSession netconfServerSession) {
-        this.netconfSession = netconfServerSession;
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactory.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactory.java
deleted file mode 100644 (file)
index cd3aa61..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.osgi;
-
-import com.google.common.collect.HashMultimap;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.ImmutableSet.Builder;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Multimap;
-import com.google.common.collect.Multimaps;
-import com.google.common.collect.Sets;
-import io.netty.util.internal.ConcurrentSet;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.monitoring.CapabilityListener;
-import org.opendaylight.netconf.mapping.api.NetconfOperation;
-import org.opendaylight.netconf.mapping.api.NetconfOperationService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.opendaylight.netconf.util.CloseableUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * NetconfOperationService aggregator. Makes a collection of operation services accessible as one.
- */
-public class AggregatedNetconfOperationServiceFactory
-        implements NetconfOperationServiceFactory, NetconfOperationServiceFactoryListener, AutoCloseable {
-
-    private static final Logger LOG = LoggerFactory.getLogger(AggregatedNetconfOperationServiceFactory.class);
-
-    private final Set<NetconfOperationServiceFactory> factories = new ConcurrentSet<>();
-    private final Multimap<NetconfOperationServiceFactory, AutoCloseable> registrations =
-            Multimaps.synchronizedMultimap(HashMultimap.create());
-    private final Set<CapabilityListener> listeners = new ConcurrentSet<>();
-
-    public AggregatedNetconfOperationServiceFactory() {
-    }
-
-    public AggregatedNetconfOperationServiceFactory(final List<NetconfOperationServiceFactory> mappers) {
-        mappers.forEach(this::onAddNetconfOperationServiceFactory);
-    }
-
-    @Override
-    public synchronized void onAddNetconfOperationServiceFactory(NetconfOperationServiceFactory service) {
-        factories.add(service);
-
-        for (final CapabilityListener listener : listeners) {
-            AutoCloseable reg = service.registerCapabilityListener(listener);
-            registrations.put(service, reg);
-        }
-    }
-
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    @Override
-    public synchronized void onRemoveNetconfOperationServiceFactory(NetconfOperationServiceFactory service) {
-        factories.remove(service);
-
-        for (final AutoCloseable autoCloseable : registrations.get(service)) {
-            try {
-                autoCloseable.close();
-            } catch (Exception e) {
-                LOG.warn("Unable to close listener registration", e);
-            }
-        }
-
-        registrations.removeAll(service);
-    }
-
-    @Override
-    public Set<Capability> getCapabilities() {
-        final HashSet<Capability> capabilities = Sets.newHashSet();
-        for (final NetconfOperationServiceFactory factory : factories) {
-            capabilities.addAll(factory.getCapabilities());
-        }
-        return capabilities;
-    }
-
-    @Override
-    public synchronized AutoCloseable registerCapabilityListener(final CapabilityListener listener) {
-        final Map<NetconfOperationServiceFactory, AutoCloseable> regs = Maps.newHashMap();
-
-        for (final NetconfOperationServiceFactory factory : factories) {
-            final AutoCloseable reg = factory.registerCapabilityListener(listener);
-            regs.put(factory, reg);
-        }
-        listeners.add(listener);
-
-        return () -> {
-            synchronized (AggregatedNetconfOperationServiceFactory.this) {
-                listeners.remove(listener);
-                CloseableUtil.closeAll(regs.values());
-                for (final Map.Entry<NetconfOperationServiceFactory, AutoCloseable> reg : regs.entrySet()) {
-                    registrations.remove(reg.getKey(), reg.getValue());
-                }
-            }
-        };
-    }
-
-    @Override
-    public synchronized NetconfOperationService createService(final String netconfSessionIdForReporting) {
-        return new AggregatedNetconfOperation(factories, netconfSessionIdForReporting);
-    }
-
-    @Override
-    public synchronized void close() throws Exception {
-        factories.clear();
-        for (AutoCloseable reg : registrations.values()) {
-            reg.close();
-        }
-        registrations.clear();
-        listeners.clear();
-    }
-
-    private static final class AggregatedNetconfOperation implements NetconfOperationService {
-
-        private final Set<NetconfOperationService> services;
-
-        AggregatedNetconfOperation(final Set<NetconfOperationServiceFactory> factories,
-                                   final String netconfSessionIdForReporting) {
-            final Builder<NetconfOperationService> b = ImmutableSet.builder();
-            for (final NetconfOperationServiceFactory factory : factories) {
-                b.add(factory.createService(netconfSessionIdForReporting));
-            }
-            this.services = b.build();
-        }
-
-        @Override
-        public Set<NetconfOperation> getNetconfOperations() {
-            final HashSet<NetconfOperation> operations = Sets.newHashSet();
-            for (final NetconfOperationService service : services) {
-                operations.addAll(service.getNetconfOperations());
-            }
-            return operations;
-        }
-
-        @SuppressWarnings("checkstyle:IllegalCatch")
-        @Override
-        public void close() {
-            try {
-                CloseableUtil.closeAll(services);
-            } catch (final Exception e) {
-                throw new IllegalStateException("Unable to properly close all aggregated services", e);
-            }
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringService.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringService.java
deleted file mode 100644 (file)
index f627f15..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import org.opendaylight.netconf.api.capability.BasicCapability;
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.monitoring.CapabilityListener;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.Yang;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.CapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.SchemasBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.SchemaBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.SchemaKey;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChangeBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.changed.by.parms.ChangedByBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.changed.by.parms.changed.by.server.or.user.ServerBuilder;
-
-class NetconfCapabilityMonitoringService implements CapabilityListener, AutoCloseable {
-
-    private static final Schema.Location NETCONF_LOCATION = new Schema.Location(Schema.Location.Enumeration.NETCONF);
-    private static final List<Schema.Location> NETCONF_LOCATIONS = ImmutableList.of(NETCONF_LOCATION);
-    private static final BasicCapability CANDIDATE_CAPABILITY =
-            new BasicCapability("urn:ietf:params:netconf:capability:candidate:1.0");
-    private static final Function<Capability, Uri> CAPABILITY_TO_URI = input -> new Uri(input.getCapabilityUri());
-
-    private final NetconfOperationServiceFactory netconfOperationProvider;
-    private final Map<Uri, Capability> capabilities = Maps.newHashMap();
-    private final Map<String, Map<String, String>> mappedModulesToRevisionToSchema = Maps.newHashMap();
-
-
-    private final Set<NetconfMonitoringService.CapabilitiesListener> listeners = Sets.newHashSet();
-    private volatile BaseNotificationPublisherRegistration notificationPublisher;
-
-    NetconfCapabilityMonitoringService(final NetconfOperationServiceFactory netconfOperationProvider) {
-        this.netconfOperationProvider = netconfOperationProvider;
-        netconfOperationProvider.registerCapabilityListener(this);
-    }
-
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    synchronized Schemas getSchemas() {
-        try {
-            return transformSchemas(netconfOperationProvider.getCapabilities());
-        } catch (final RuntimeException e) {
-            throw e;
-        } catch (final Exception e) {
-            throw new IllegalStateException("Exception while closing", e);
-        }
-    }
-
-    synchronized String getSchemaForModuleRevision(final String moduleName, final Optional<String> revision) {
-
-        Map<String, String> revisionMapRequest = mappedModulesToRevisionToSchema.get(moduleName);
-        Preconditions.checkState(revisionMapRequest != null,
-                "Capability for module %s not present, available modules : %s",
-                moduleName, Collections2.transform(capabilities.values(), CAPABILITY_TO_URI));
-
-        if (revision.isPresent()) {
-            String schema = revisionMapRequest.get(revision.get());
-
-            Preconditions.checkState(schema != null,
-                    "Capability for module %s:%s not present, available revisions for module: %s", moduleName,
-                    revision.get(), revisionMapRequest.keySet());
-
-            return schema;
-        }
-
-        Preconditions.checkState(revisionMapRequest.size() == 1,
-                "Expected 1 capability for module %s, available revisions : %s", moduleName,
-                revisionMapRequest.keySet());
-        //Only one revision is present, so return it
-        return revisionMapRequest.values().iterator().next();
-    }
-
-    private void updateCapabilityToSchemaMap(final Set<Capability> added, final Set<Capability> removed) {
-        for (final Capability cap : added) {
-            if (!isValidModuleCapability(cap)) {
-                continue;
-            }
-
-            final String currentModuleName = cap.getModuleName().get();
-            Map<String, String> revisionMap =
-                mappedModulesToRevisionToSchema.computeIfAbsent(currentModuleName, k -> Maps.newHashMap());
-
-            final String currentRevision = cap.getRevision().get();
-            revisionMap.put(currentRevision, cap.getCapabilitySchema().get());
-        }
-        for (final Capability cap : removed) {
-            if (!isValidModuleCapability(cap)) {
-                continue;
-            }
-            final Map<String, String> revisionMap = mappedModulesToRevisionToSchema.get(cap.getModuleName().get());
-            if (revisionMap != null) {
-                revisionMap.remove(cap.getRevision().get());
-                if (revisionMap.isEmpty()) {
-                    mappedModulesToRevisionToSchema.remove(cap.getModuleName().get());
-                }
-            }
-        }
-    }
-
-    private static boolean isValidModuleCapability(final Capability cap) {
-        return cap.getModuleName().isPresent()
-                && cap.getRevision().isPresent()
-                && cap.getCapabilitySchema().isPresent();
-    }
-
-
-    synchronized Capabilities getCapabilities() {
-        return new CapabilitiesBuilder().setCapability(Lists.newArrayList(capabilities.keySet())).build();
-    }
-
-    synchronized AutoCloseable registerListener(final NetconfMonitoringService.CapabilitiesListener listener) {
-        listeners.add(listener);
-        listener.onCapabilitiesChanged(getCapabilities());
-        listener.onSchemasChanged(getSchemas());
-        return () -> {
-            synchronized (NetconfCapabilityMonitoringService.this) {
-                listeners.remove(listener);
-            }
-        };
-    }
-
-    private static Schemas transformSchemas(final Set<Capability> caps) {
-        final List<Schema> schemas = new ArrayList<>(caps.size());
-        for (final Capability cap : caps) {
-            if (cap.getCapabilitySchema().isPresent()) {
-                final SchemaBuilder builder = new SchemaBuilder();
-
-                Preconditions.checkState(isValidModuleCapability(cap));
-
-                builder.setNamespace(new Uri(cap.getModuleNamespace().get()));
-
-                final String version = cap.getRevision().get();
-                builder.setVersion(version);
-
-                final String identifier = cap.getModuleName().get();
-                builder.setIdentifier(identifier);
-
-                builder.setFormat(Yang.class);
-
-                builder.setLocation(transformLocations(cap.getLocation()));
-
-                builder.withKey(new SchemaKey(Yang.class, identifier, version));
-
-                schemas.add(builder.build());
-            }
-        }
-
-        return new SchemasBuilder().setSchema(schemas).build();
-    }
-
-    private static List<Schema.Location> transformLocations(final Collection<String> locations) {
-        if (locations.isEmpty()) {
-            return NETCONF_LOCATIONS;
-        }
-
-        final Builder<Schema.Location> b = ImmutableList.builder();
-        b.add(NETCONF_LOCATION);
-
-        for (final String location : locations) {
-            b.add(new Schema.Location(new Uri(location)));
-        }
-
-        return b.build();
-    }
-
-    private static Set<Capability> setupCapabilities(final Set<Capability> caps) {
-        Set<Capability> capabilities = new HashSet<>(caps);
-        capabilities.add(CANDIDATE_CAPABILITY);
-        // TODO rollback on error not supported EditConfigXmlParser:100
-        // [RFC6241] 8.5.  Rollback-on-Error Capability
-        // capabilities.add(new BasicCapability("urn:ietf:params:netconf:capability:rollback-on-error:1.0"));
-        return capabilities;
-    }
-
-    @Override
-    public synchronized void close() {
-        listeners.clear();
-        capabilities.clear();
-    }
-
-    @Override
-    public synchronized void onCapabilitiesChanged(final Set<Capability> added, final Set<Capability> removed) {
-        onCapabilitiesAdded(added);
-        onCapabilitiesRemoved(removed);
-        updateCapabilityToSchemaMap(added, removed);
-        notifyCapabilityChanged(getCapabilities());
-
-        // publish notification to notification collector about changed capabilities
-        if (notificationPublisher != null) {
-            notificationPublisher.onCapabilityChanged(computeDiff(added, removed));
-        }
-    }
-
-    private void notifyCapabilityChanged(final Capabilities newCapabilities) {
-        for (NetconfMonitoringService.CapabilitiesListener listener : listeners) {
-            listener.onCapabilitiesChanged(newCapabilities);
-            listener.onSchemasChanged(getSchemas());
-        }
-    }
-
-
-    private static NetconfCapabilityChange computeDiff(final Set<Capability> added, final Set<Capability> removed) {
-        final NetconfCapabilityChangeBuilder netconfCapabilityChangeBuilder = new NetconfCapabilityChangeBuilder();
-        netconfCapabilityChangeBuilder
-                .setChangedBy(new ChangedByBuilder().setServerOrUser(
-                    new ServerBuilder().setServer(Boolean.TRUE).build()).build());
-        netconfCapabilityChangeBuilder.setDeletedCapability(Lists.newArrayList(Collections2
-                .transform(removed, CAPABILITY_TO_URI)));
-        netconfCapabilityChangeBuilder.setAddedCapability(Lists.newArrayList(Collections2
-                .transform(added, CAPABILITY_TO_URI)));
-        // TODO modified should be computed ... but why ?
-        netconfCapabilityChangeBuilder.setModifiedCapability(Collections.emptyList());
-        return netconfCapabilityChangeBuilder.build();
-    }
-
-
-    private void onCapabilitiesAdded(final Set<Capability> addedCaps) {
-        this.capabilities.putAll(Maps.uniqueIndex(setupCapabilities(addedCaps), CAPABILITY_TO_URI));
-    }
-
-    private void onCapabilitiesRemoved(final Set<Capability> removedCaps) {
-        for (final Capability addedCap : removedCaps) {
-            capabilities.remove(new Uri(addedCap.getCapabilityUri()));
-        }
-    }
-
-    void setNotificationPublisher(final BaseNotificationPublisherRegistration notificationPublisher) {
-        this.notificationPublisher = notificationPublisher;
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfImplActivator.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfImplActivator.java
deleted file mode 100644 (file)
index 8529da6..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import com.google.common.base.Preconditions;
-import io.netty.channel.local.LocalAddress;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.util.HashedWheelTimer;
-import java.util.Dictionary;
-import java.util.Hashtable;
-import java.util.concurrent.TimeUnit;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.impl.NetconfServerDispatcherImpl;
-import org.opendaylight.netconf.impl.NetconfServerDispatcherImpl.ServerChannelInitializer;
-import org.opendaylight.netconf.impl.NetconfServerSessionNegotiatorFactory;
-import org.opendaylight.netconf.impl.NetconfServerSessionNegotiatorFactoryBuilder;
-import org.opendaylight.netconf.impl.SessionIdProvider;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration;
-import org.opendaylight.netconf.notifications.NetconfNotificationCollector;
-import org.opendaylight.netconf.util.NetconfConfiguration;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.util.tracker.ServiceTracker;
-import org.osgi.util.tracker.ServiceTrackerCustomizer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class NetconfImplActivator implements BundleActivator {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfImplActivator.class);
-
-    private NetconfOperationServiceFactoryTracker factoriesTracker;
-    private NioEventLoopGroup eventLoopGroup;
-    private HashedWheelTimer timer;
-    private ServiceRegistration<NetconfMonitoringService> regMonitoring;
-
-    private BaseNotificationPublisherRegistration listenerReg;
-
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    @Override
-    public void start(final BundleContext context) {
-        try {
-            AggregatedNetconfOperationServiceFactory factoriesListener = new AggregatedNetconfOperationServiceFactory();
-            startOperationServiceFactoryTracker(context, factoriesListener);
-
-            SessionIdProvider idProvider = new SessionIdProvider();
-            timer = new HashedWheelTimer();
-
-            long connectionTimeoutMillis = NetconfConfiguration.DEFAULT_TIMEOUT_MILLIS;
-
-            final NetconfMonitoringServiceImpl monitoringService = startMonitoringService(context, factoriesListener);
-
-            NetconfServerSessionNegotiatorFactory serverNegotiatorFactory =
-                    new NetconfServerSessionNegotiatorFactoryBuilder()
-                            .setAggregatedOpService(factoriesListener)
-                            .setTimer(timer)
-                            .setIdProvider(idProvider)
-                            .setMonitoringService(monitoringService)
-                            .setConnectionTimeoutMillis(connectionTimeoutMillis)
-                            .build();
-
-            eventLoopGroup = new NioEventLoopGroup();
-
-            ServerChannelInitializer serverChannelInitializer = new ServerChannelInitializer(
-                    serverNegotiatorFactory);
-            NetconfServerDispatcherImpl dispatch = new NetconfServerDispatcherImpl(serverChannelInitializer,
-                    eventLoopGroup, eventLoopGroup);
-
-            LocalAddress address = NetconfConfiguration.NETCONF_LOCAL_ADDRESS;
-            LOG.trace("Starting local netconf server at {}", address);
-            dispatch.createLocalServer(address);
-
-            final ServiceTracker<NetconfNotificationCollector, NetconfNotificationCollector>
-                    notificationServiceTracker = new ServiceTracker<>(context, NetconfNotificationCollector.class,
-                    new ServiceTrackerCustomizer<NetconfNotificationCollector, NetconfNotificationCollector>() {
-                            @Override
-                            public NetconfNotificationCollector addingService(ServiceReference<
-                                    NetconfNotificationCollector> reference) {
-                                Preconditions.checkState(listenerReg == null,
-                                        "Notification collector service was already added");
-                                listenerReg = context.getService(reference).registerBaseNotificationPublisher();
-                                monitoringService.setNotificationPublisher(listenerReg);
-                                return null;
-                            }
-
-                            @Override
-                            public void modifiedService(ServiceReference<NetconfNotificationCollector> reference,
-                                            NetconfNotificationCollector service) {
-
-                                }
-
-                            @Override
-                            public void removedService(ServiceReference<NetconfNotificationCollector> reference,
-                                           NetconfNotificationCollector service) {
-                                listenerReg.close();
-                                listenerReg = null;
-                                monitoringService.setNotificationPublisher(listenerReg);
-                            }
-                        });
-            notificationServiceTracker.open();
-        } catch (Exception e) {
-            LOG.warn("Unable to start NetconfImplActivator", e);
-        }
-    }
-
-    private void startOperationServiceFactoryTracker(BundleContext context,
-                                                     NetconfOperationServiceFactoryListener factoriesListener) {
-        factoriesTracker = new NetconfOperationServiceFactoryTracker(context, factoriesListener);
-        factoriesTracker.open();
-    }
-
-    private NetconfMonitoringServiceImpl startMonitoringService(
-            BundleContext context,
-            AggregatedNetconfOperationServiceFactory factoriesListener) {
-        NetconfMonitoringServiceImpl netconfMonitoringServiceImpl = new NetconfMonitoringServiceImpl(factoriesListener);
-        Dictionary<String, ?> dic = new Hashtable<>();
-        regMonitoring = context.registerService(NetconfMonitoringService.class, netconfMonitoringServiceImpl, dic);
-
-        return netconfMonitoringServiceImpl;
-    }
-
-    @Override
-    public void stop(final BundleContext context) {
-        LOG.info("Shutting down netconf because YangStoreService service was removed");
-
-        eventLoopGroup.shutdownGracefully(0, 1, TimeUnit.SECONDS);
-        timer.stop();
-
-        regMonitoring.unregister();
-        factoriesTracker.close();
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfMonitoringServiceImpl.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfMonitoringServiceImpl.java
deleted file mode 100644 (file)
index ff0bc5c..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import com.google.common.base.Optional;
-import org.opendaylight.controller.config.threadpool.ScheduledThreadPool;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.monitoring.SessionListener;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Sessions;
-
-public class NetconfMonitoringServiceImpl implements NetconfMonitoringService, AutoCloseable {
-
-    private final NetconfCapabilityMonitoringService capabilityMonitoring;
-    private final NetconfSessionMonitoringService sessionMonitoring;
-
-    public NetconfMonitoringServiceImpl(NetconfOperationServiceFactory opProvider) {
-        this(opProvider, Optional.absent(), 0);
-    }
-
-    public NetconfMonitoringServiceImpl(NetconfOperationServiceFactory opProvider,
-                                        ScheduledThreadPool threadPool,
-                                        long updateInterval) {
-        this(opProvider, Optional.fromNullable(threadPool), updateInterval);
-    }
-
-    public NetconfMonitoringServiceImpl(NetconfOperationServiceFactory opProvider,
-                                        Optional<ScheduledThreadPool> threadPool,
-                                        long updateInterval) {
-        this.capabilityMonitoring = new NetconfCapabilityMonitoringService(opProvider);
-        this.sessionMonitoring = new NetconfSessionMonitoringService(threadPool, updateInterval);
-
-    }
-
-    @Override
-    public Sessions getSessions() {
-        return sessionMonitoring.getSessions();
-    }
-
-    @Override
-    public SessionListener getSessionListener() {
-        return sessionMonitoring;
-    }
-
-    @Override
-    public Schemas getSchemas() {
-        return capabilityMonitoring.getSchemas();
-    }
-
-    @Override
-    public String getSchemaForCapability(String moduleName, Optional<String> revision) {
-        return capabilityMonitoring.getSchemaForModuleRevision(moduleName, revision);
-    }
-
-    @Override
-    public Capabilities getCapabilities() {
-        return capabilityMonitoring.getCapabilities();
-    }
-
-    @Override
-    public AutoCloseable registerCapabilitiesListener(CapabilitiesListener listener) {
-        return capabilityMonitoring.registerListener(listener);
-    }
-
-    @Override
-    public AutoCloseable registerSessionsListener(SessionsListener listener) {
-        return sessionMonitoring.registerListener(listener);
-    }
-
-    public void setNotificationPublisher(BaseNotificationPublisherRegistration notificationPublisher) {
-        this.capabilityMonitoring.setNotificationPublisher(notificationPublisher);
-    }
-
-    @Override
-    public void close() {
-        capabilityMonitoring.close();
-        sessionMonitoring.close();
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouter.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouter.java
deleted file mode 100644 (file)
index 1e07ed2..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.osgi;
-
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.impl.NetconfServerSession;
-import org.w3c.dom.Document;
-
-public interface NetconfOperationRouter extends AutoCloseable {
-
-    Document onNetconfMessage(Document message, NetconfServerSession session)
-            throws DocumentedException;
-
-
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImpl.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImpl.java
deleted file mode 100644 (file)
index 449b0db..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Maps;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.NavigableMap;
-import java.util.Set;
-import java.util.TreeMap;
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.NetconfServerSession;
-import org.opendaylight.netconf.impl.mapping.operations.DefaultCloseSession;
-import org.opendaylight.netconf.impl.mapping.operations.DefaultNetconfOperation;
-import org.opendaylight.netconf.impl.mapping.operations.DefaultStartExi;
-import org.opendaylight.netconf.impl.mapping.operations.DefaultStopExi;
-import org.opendaylight.netconf.mapping.api.HandlingPriority;
-import org.opendaylight.netconf.mapping.api.NetconfOperation;
-import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution;
-import org.opendaylight.netconf.mapping.api.NetconfOperationService;
-import org.opendaylight.netconf.mapping.api.SessionAwareNetconfOperation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-
-public class NetconfOperationRouterImpl implements NetconfOperationRouter {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfOperationRouterImpl.class);
-    private final NetconfOperationService netconfOperationServiceSnapshot;
-    private final Collection<NetconfOperation> allNetconfOperations;
-
-    public NetconfOperationRouterImpl(final NetconfOperationService netconfOperationServiceSnapshot,
-                                      final NetconfMonitoringService netconfMonitoringService, final String sessionId) {
-        this.netconfOperationServiceSnapshot = Preconditions.checkNotNull(netconfOperationServiceSnapshot);
-
-        final Set<NetconfOperation> ops = new HashSet<>();
-        ops.add(new DefaultCloseSession(sessionId, this));
-        ops.add(new DefaultStartExi(sessionId));
-        ops.add(new DefaultStopExi(sessionId));
-
-        ops.addAll(netconfOperationServiceSnapshot.getNetconfOperations());
-
-        allNetconfOperations = ImmutableSet.copyOf(ops);
-    }
-
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    @Override
-    public Document onNetconfMessage(final Document message, final NetconfServerSession session) throws
-            DocumentedException {
-        Preconditions.checkNotNull(allNetconfOperations, "Operation router was not initialized properly");
-
-        final NetconfOperationExecution netconfOperationExecution;
-        try {
-            netconfOperationExecution = getNetconfOperationWithHighestPriority(message, session);
-        } catch (IllegalArgumentException | IllegalStateException e) {
-            final String messageAsString = XmlUtil.toString(message);
-            LOG.warn("Unable to handle rpc {} on session {}", messageAsString, session, e);
-
-            final DocumentedException.ErrorTag tag;
-            if (e instanceof IllegalArgumentException) {
-                tag = DocumentedException.ErrorTag.OPERATION_NOT_SUPPORTED;
-            } else {
-                tag = DocumentedException.ErrorTag.OPERATION_FAILED;
-            }
-
-            throw new DocumentedException(
-                    String.format("Unable to handle rpc %s on session %s", messageAsString, session),
-                    e, DocumentedException.ErrorType.APPLICATION,
-                    tag, DocumentedException.ErrorSeverity.ERROR,
-                    Collections.singletonMap(tag.toString(), e.getMessage()));
-        } catch (final RuntimeException e) {
-            throw handleUnexpectedEx("Unexpected exception during netconf operation sort", e);
-        }
-
-        try {
-            return executeOperationWithHighestPriority(message, netconfOperationExecution);
-        } catch (final RuntimeException e) {
-            throw handleUnexpectedEx("Unexpected exception during netconf operation execution", e);
-        }
-    }
-
-    @Override
-    public void close() {
-        netconfOperationServiceSnapshot.close();
-    }
-
-    private static DocumentedException handleUnexpectedEx(final String message, final Exception exception) {
-        LOG.error("{}", message, exception);
-        return new DocumentedException("Unexpected error",
-                DocumentedException.ErrorType.APPLICATION,
-                DocumentedException.ErrorTag.OPERATION_FAILED,
-                DocumentedException.ErrorSeverity.ERROR,
-                Collections.singletonMap(DocumentedException.ErrorSeverity.ERROR.toString(), exception.toString()));
-    }
-
-    private static Document executeOperationWithHighestPriority(final Document message,
-            final NetconfOperationExecution netconfOperationExecution) throws DocumentedException {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Forwarding netconf message {} to {}", XmlUtil.toString(message), netconfOperationExecution
-                    .netconfOperation);
-        }
-
-        return netconfOperationExecution.execute(message);
-    }
-
-    private NetconfOperationExecution getNetconfOperationWithHighestPriority(
-            final Document message, final NetconfServerSession session) throws DocumentedException {
-
-        final NavigableMap<HandlingPriority, NetconfOperation> sortedByPriority =
-                getSortedNetconfOperationsWithCanHandle(
-                message, session);
-
-        if (sortedByPriority.isEmpty()) {
-            throw new IllegalArgumentException(String.format("No %s available to handle message %s",
-                    NetconfOperation.class.getName(), XmlUtil.toString(message)));
-        }
-
-        return NetconfOperationExecution.createExecutionChain(sortedByPriority, sortedByPriority.lastKey());
-    }
-
-    private TreeMap<HandlingPriority, NetconfOperation> getSortedNetconfOperationsWithCanHandle(
-            final Document message, final NetconfServerSession session) throws DocumentedException {
-        final TreeMap<HandlingPriority, NetconfOperation> sortedPriority = Maps.newTreeMap();
-
-        for (final NetconfOperation netconfOperation : allNetconfOperations) {
-            final HandlingPriority handlingPriority = netconfOperation.canHandle(message);
-            if (netconfOperation instanceof DefaultNetconfOperation) {
-                ((DefaultNetconfOperation) netconfOperation).setNetconfSession(session);
-            }
-            if (netconfOperation instanceof SessionAwareNetconfOperation) {
-                ((SessionAwareNetconfOperation) netconfOperation).setSession(session);
-            }
-            if (!handlingPriority.equals(HandlingPriority.CANNOT_HANDLE)) {
-
-                Preconditions.checkState(!sortedPriority.containsKey(handlingPriority),
-                        "Multiple %s available to handle message %s with priority %s, %s and %s",
-                        NetconfOperation.class.getName(), message, handlingPriority, netconfOperation, sortedPriority
-                                .get(handlingPriority));
-                sortedPriority.put(handlingPriority, netconfOperation);
-            }
-        }
-        return sortedPriority;
-    }
-
-    private static final class NetconfOperationExecution implements NetconfOperationChainedExecution {
-        private final NetconfOperation netconfOperation;
-        private final NetconfOperationChainedExecution subsequentExecution;
-
-        private NetconfOperationExecution(final NetconfOperation netconfOperation,
-                                          final NetconfOperationChainedExecution subsequentExecution) {
-            this.netconfOperation = netconfOperation;
-            this.subsequentExecution = subsequentExecution;
-        }
-
-        @Override
-        public boolean isExecutionTermination() {
-            return false;
-        }
-
-        @Override
-        public Document execute(final Document message) throws DocumentedException {
-            return netconfOperation.handle(message, subsequentExecution);
-        }
-
-        public static NetconfOperationExecution createExecutionChain(
-                final NavigableMap<HandlingPriority, NetconfOperation> sortedByPriority,
-                final HandlingPriority handlingPriority) {
-            final NetconfOperation netconfOperation = sortedByPriority.get(handlingPriority);
-            final HandlingPriority subsequentHandlingPriority = sortedByPriority.lowerKey(handlingPriority);
-
-            NetconfOperationChainedExecution subsequentExecution = null;
-
-            if (subsequentHandlingPriority != null) {
-                subsequentExecution = createExecutionChain(sortedByPriority, subsequentHandlingPriority);
-            } else {
-                subsequentExecution = EXECUTION_TERMINATION_POINT;
-            }
-
-            return new NetconfOperationExecution(netconfOperation, subsequentExecution);
-        }
-    }
-
-    @Override
-    public String toString() {
-        return "NetconfOperationRouterImpl{" + "netconfOperationServiceSnapshot=" + netconfOperationServiceSnapshot
-                + '}';
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationServiceFactoryTracker.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationServiceFactoryTracker.java
deleted file mode 100644 (file)
index f1845b1..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import org.opendaylight.netconf.api.util.NetconfConstants;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.util.tracker.ServiceTracker;
-
-class NetconfOperationServiceFactoryTracker extends
-        ServiceTracker<NetconfOperationServiceFactory, NetconfOperationServiceFactory> {
-    private final NetconfOperationServiceFactoryListener factoriesListener;
-
-    NetconfOperationServiceFactoryTracker(final BundleContext context,
-                                          final NetconfOperationServiceFactoryListener factoriesListener) {
-        super(context, NetconfOperationServiceFactory.class, null);
-        this.factoriesListener = factoriesListener;
-    }
-
-    @Override
-    public NetconfOperationServiceFactory addingService(
-            final ServiceReference<NetconfOperationServiceFactory> reference) {
-        Object property = reference.getProperty(NetconfConstants.SERVICE_NAME);
-        if (property != null && isMarkedForConfig(property)) {
-            NetconfOperationServiceFactory netconfOperationServiceFactory = super.addingService(reference);
-            factoriesListener.onAddNetconfOperationServiceFactory(netconfOperationServiceFactory);
-            return netconfOperationServiceFactory;
-        }
-
-        return null;
-    }
-
-    @Override
-    public void removedService(final ServiceReference<NetconfOperationServiceFactory> reference,
-                               final NetconfOperationServiceFactory netconfOperationServiceFactory) {
-        if (netconfOperationServiceFactory != null) {
-            factoriesListener.onRemoveNetconfOperationServiceFactory(netconfOperationServiceFactory);
-        }
-    }
-
-    private static boolean isMarkedForConfig(final Object property) {
-        return NetconfConstants.CONFIG_SERVICE_MARKERS.contains(property);
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringService.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringService.java
deleted file mode 100644 (file)
index 639daa8..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Sets;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
-import org.opendaylight.controller.config.threadpool.ScheduledThreadPool;
-import org.opendaylight.netconf.api.monitoring.NetconfManagementSession;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.monitoring.SessionEvent;
-import org.opendaylight.netconf.api.monitoring.SessionListener;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Sessions;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.SessionsBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This class implements {@link SessionListener} to receive updates about Netconf sessions. Instance notifies its
- * listeners
- * about session start and end. It also publishes on regular interval list of sessions,
- * where events like rpc or notification happened.
- */
-class NetconfSessionMonitoringService implements SessionListener, AutoCloseable {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfSessionMonitoringService.class);
-
-    private final Set<NetconfManagementSession> sessions = Sets.newHashSet();
-    private final Set<NetconfManagementSession> changedSessions = Sets.newHashSet();
-    private final Set<NetconfMonitoringService.SessionsListener> listeners = Sets.newHashSet();
-    private final ScheduledExecutorService executor;
-    private final long updateInterval;
-    private boolean running;
-
-    /**
-     * Constructor for {@code NetconfSessionMonitoringService}.
-     *
-     * @param schedulingThreadPool thread pool for scheduling session stats updates. If not present, updates won't be
-     *                             scheduled.
-     * @param updateInterval       update interval. If is less than 0, updates won't be scheduled
-     */
-    NetconfSessionMonitoringService(Optional<ScheduledThreadPool> schedulingThreadPool, long updateInterval) {
-        this.updateInterval = updateInterval;
-        if (schedulingThreadPool.isPresent() && updateInterval > 0) {
-            this.executor = schedulingThreadPool.get().getExecutor();
-            LOG.info("/netconf-state/sessions will be updated every {} seconds.", updateInterval);
-        } else {
-            LOG.info("Scheduling thread pool is present = {}, "
-                    + "update interval {}: /netconf-state/sessions won't be updated.",
-                    schedulingThreadPool.isPresent(), updateInterval);
-            this.executor = null;
-        }
-    }
-
-    synchronized Sessions getSessions() {
-        final Collection<Session> managementSessions = Collections2.transform(sessions,
-                NetconfManagementSession::toManagementSession);
-        return new SessionsBuilder().setSession(ImmutableList.copyOf(managementSessions)).build();
-    }
-
-    @Override
-    public synchronized void onSessionUp(final NetconfManagementSession session) {
-        LOG.debug("Session {} up", session);
-        Preconditions.checkState(!sessions.contains(session), "Session %s was already added", session);
-        sessions.add(session);
-        notifySessionUp(session);
-    }
-
-    @Override
-    public synchronized void onSessionDown(final NetconfManagementSession session) {
-        LOG.debug("Session {} down", session);
-        Preconditions.checkState(sessions.contains(session), "Session %s not present", session);
-        sessions.remove(session);
-        changedSessions.remove(session);
-        notifySessionDown(session);
-    }
-
-    @Override
-    public synchronized void onSessionEvent(SessionEvent event) {
-        changedSessions.add(event.getSession());
-    }
-
-    synchronized AutoCloseable registerListener(final NetconfMonitoringService.SessionsListener listener) {
-        listeners.add(listener);
-        if (!running) {
-            startUpdateSessionStats();
-        }
-        return () -> listeners.remove(listener);
-    }
-
-    @Override
-    public synchronized void close() {
-        stopUpdateSessionStats();
-        listeners.clear();
-        sessions.clear();
-    }
-
-    private synchronized void updateSessionStats() {
-        if (changedSessions.isEmpty()) {
-            return;
-        }
-        final List<Session> changed = changedSessions.stream()
-                .map(NetconfManagementSession::toManagementSession)
-                .collect(Collectors.toList());
-        final ImmutableList<Session> sessionImmutableList = ImmutableList.copyOf(changed);
-        for (NetconfMonitoringService.SessionsListener listener : listeners) {
-            listener.onSessionsUpdated(sessionImmutableList);
-        }
-        changedSessions.clear();
-    }
-
-    private void notifySessionUp(NetconfManagementSession managementSession) {
-        Session session = managementSession.toManagementSession();
-        for (NetconfMonitoringService.SessionsListener listener : listeners) {
-            listener.onSessionStarted(session);
-        }
-    }
-
-    private void notifySessionDown(NetconfManagementSession managementSession) {
-        Session session = managementSession.toManagementSession();
-        for (NetconfMonitoringService.SessionsListener listener : listeners) {
-            listener.onSessionEnded(session);
-        }
-    }
-
-    private void startUpdateSessionStats() {
-        if (executor != null) {
-            executor.scheduleAtFixedRate(this::updateSessionStats, 1, updateInterval, TimeUnit.SECONDS);
-            running = true;
-        }
-    }
-
-    private void stopUpdateSessionStats() {
-        if (executor != null) {
-            executor.shutdownNow();
-            running = false;
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandler.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandler.java
deleted file mode 100644 (file)
index effccf3..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.util;
-
-import com.google.common.collect.Maps;
-import io.netty.channel.ChannelHandler;
-import io.netty.channel.ChannelHandlerContext;
-import java.util.Map;
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.util.messages.SendErrorExceptionUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class DeserializerExceptionHandler implements ChannelHandler {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DeserializerExceptionHandler.class);
-
-    @Override
-    public void handlerAdded(final ChannelHandlerContext ctx) {
-        // NOOP
-    }
-
-    @Override
-    public void handlerRemoved(final ChannelHandlerContext ctx) {
-        // NOOP
-    }
-
-    @Override
-    public void exceptionCaught(final ChannelHandlerContext ctx, final Throwable cause) {
-        LOG.warn("An exception occurred during message handling", cause);
-        handleDeserializerException(ctx, cause);
-    }
-
-    private static void handleDeserializerException(final ChannelHandlerContext ctx, final Throwable cause) {
-
-        final Map<String, String> info = Maps.newHashMap();
-        info.put("cause", cause.getMessage());
-        final DocumentedException ex = new DocumentedException(cause.getMessage(),
-                DocumentedException.ErrorType.RPC, DocumentedException.ErrorTag.MALFORMED_MESSAGE,
-                DocumentedException.ErrorSeverity.ERROR, info);
-
-        SendErrorExceptionUtil.sendErrorMessage(ctx.channel(), ex);
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/resources/getConfig_candidate.xml b/tests/honeynode/2.2.1/netconf-impl/src/main/resources/getConfig_candidate.xml
deleted file mode 100644 (file)
index 3ac18b5..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="commitNotification">
-    <get-config>
-        <source>
-            <candidate/>
-        </source>
-    </get-config>
-</rpc>
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/AdditionalHeaderParserTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/AdditionalHeaderParserTest.java
deleted file mode 100644 (file)
index 3edd91d..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
-
-public class AdditionalHeaderParserTest {
-
-    @Test
-    public void testParsing() throws Exception {
-        String message = "[netconf;10.12.0.102:48528;ssh;;;;;;]";
-        NetconfHelloMessageAdditionalHeader header = NetconfHelloMessageAdditionalHeader.fromString(message);
-        assertEquals("netconf", header.getUserName());
-        assertEquals("10.12.0.102", header.getAddress());
-        assertEquals("ssh", header.getTransport());
-    }
-
-    @Test
-    public void testParsing2() throws Exception {
-        String message = "[tomas;10.0.0.0/10000;tcp;1000;1000;;/home/tomas;;]";
-        NetconfHelloMessageAdditionalHeader header = NetconfHelloMessageAdditionalHeader.fromString(message);
-        assertEquals("tomas", header.getUserName());
-        assertEquals("10.0.0.0", header.getAddress());
-        assertEquals("tcp", header.getTransport());
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testParsingNoUsername() throws Exception {
-        String message = "[10.12.0.102:48528;ssh;;;;;;]";
-        NetconfHelloMessageAdditionalHeader.fromString(message);
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ConcurrentClientsTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ConcurrentClientsTest.java
deleted file mode 100644 (file)
index 4b8f859..0000000
+++ /dev/null
@@ -1,398 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-import com.google.common.io.ByteStreams;
-import io.netty.channel.ChannelFuture;
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.util.HashedWheelTimer;
-import io.netty.util.concurrent.GlobalEventExecutor;
-import java.io.DataOutputStream;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.atomic.AtomicLong;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
-import org.opendaylight.netconf.api.monitoring.CapabilityListener;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.monitoring.SessionEvent;
-import org.opendaylight.netconf.api.monitoring.SessionListener;
-import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.client.NetconfClientDispatcher;
-import org.opendaylight.netconf.client.NetconfClientDispatcherImpl;
-import org.opendaylight.netconf.client.SimpleNetconfClientSessionListener;
-import org.opendaylight.netconf.client.TestingNetconfClient;
-import org.opendaylight.netconf.client.conf.NetconfClientConfiguration;
-import org.opendaylight.netconf.client.conf.NetconfClientConfigurationBuilder;
-import org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.HandlingPriority;
-import org.opendaylight.netconf.mapping.api.NetconfOperation;
-import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution;
-import org.opendaylight.netconf.mapping.api.NetconfOperationService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.nettyutil.handler.exi.NetconfStartExiMessage;
-import org.opendaylight.netconf.util.messages.NetconfMessageUtil;
-import org.opendaylight.netconf.util.test.XmlFileLoader;
-import org.opendaylight.protocol.framework.NeverReconnectStrategy;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.CapabilitiesBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-
-@RunWith(Parameterized.class)
-public class ConcurrentClientsTest {
-    private static final Logger LOG = LoggerFactory.getLogger(ConcurrentClientsTest.class);
-
-    private static ExecutorService clientExecutor;
-
-    private static final int CONCURRENCY = 32;
-    private static final InetSocketAddress NETCONF_ADDRESS = new InetSocketAddress("127.0.0.1", 8303);
-
-    private final int nettyThreads;
-    private final Class<? extends Runnable> clientRunnable;
-    private final Set<String> serverCaps;
-
-    public ConcurrentClientsTest(int nettyThreads, Class<? extends Runnable> clientRunnable, Set<String> serverCaps) {
-        this.nettyThreads = nettyThreads;
-        this.clientRunnable = clientRunnable;
-        this.serverCaps = serverCaps;
-    }
-
-    @Parameterized.Parameters()
-    public static Collection<Object[]> data() {
-        return Arrays.asList(new Object[][]{{4, TestingNetconfClientRunnable.class,
-                NetconfServerSessionNegotiatorFactory.DEFAULT_BASE_CAPABILITIES},
-            {1, TestingNetconfClientRunnable.class, NetconfServerSessionNegotiatorFactory.DEFAULT_BASE_CAPABILITIES},
-            // empty set of capabilities = only base 1.0 netconf capability
-            {4, TestingNetconfClientRunnable.class, Collections.emptySet()},
-            {4, TestingNetconfClientRunnable.class, getOnlyExiServerCaps()},
-            {4, TestingNetconfClientRunnable.class, getOnlyChunkServerCaps()},
-            {4, BlockingClientRunnable.class, getOnlyExiServerCaps()},
-            {1, BlockingClientRunnable.class, getOnlyExiServerCaps()},
-        });
-    }
-
-    private EventLoopGroup nettyGroup;
-    private NetconfClientDispatcher netconfClientDispatcher;
-
-    HashedWheelTimer hashedWheelTimer;
-    private TestingNetconfOperation testingNetconfOperation;
-
-    public static NetconfMonitoringService createMockedMonitoringService() {
-        NetconfMonitoringService monitoring = mock(NetconfMonitoringService.class);
-        final SessionListener sessionListener = mock(SessionListener.class);
-        doNothing().when(sessionListener).onSessionUp(any(NetconfServerSession.class));
-        doNothing().when(sessionListener).onSessionDown(any(NetconfServerSession.class));
-        doNothing().when(sessionListener).onSessionEvent(any(SessionEvent.class));
-        doReturn((AutoCloseable) () -> {
-
-        }).when(monitoring).registerCapabilitiesListener(any(NetconfMonitoringService.CapabilitiesListener.class));
-        doReturn(sessionListener).when(monitoring).getSessionListener();
-        doReturn(new CapabilitiesBuilder().setCapability(Collections.emptyList()).build()).when(monitoring)
-                .getCapabilities();
-        return monitoring;
-    }
-
-    @BeforeClass
-    public static void setUpClientExecutor() {
-        clientExecutor = Executors.newFixedThreadPool(CONCURRENCY, new ThreadFactory() {
-            int index = 1;
-
-            @Override
-            public Thread newThread(final Runnable runnable) {
-                Thread thread = new Thread(runnable);
-                thread.setName("client-" + index++);
-                thread.setDaemon(true);
-                return thread;
-            }
-        });
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        hashedWheelTimer = new HashedWheelTimer();
-        nettyGroup = new NioEventLoopGroup(nettyThreads);
-        netconfClientDispatcher = new NetconfClientDispatcherImpl(nettyGroup, nettyGroup, hashedWheelTimer);
-
-        AggregatedNetconfOperationServiceFactory factoriesListener = new AggregatedNetconfOperationServiceFactory();
-
-        testingNetconfOperation = new TestingNetconfOperation();
-        factoriesListener.onAddNetconfOperationServiceFactory(
-                new TestingOperationServiceFactory(testingNetconfOperation));
-
-        SessionIdProvider idProvider = new SessionIdProvider();
-
-        NetconfServerSessionNegotiatorFactory serverNegotiatorFactory = new
-                NetconfServerSessionNegotiatorFactoryBuilder()
-                .setTimer(hashedWheelTimer)
-                .setAggregatedOpService(factoriesListener)
-                .setIdProvider(idProvider)
-                .setConnectionTimeoutMillis(5000)
-                .setMonitoringService(createMockedMonitoringService())
-                .setBaseCapabilities(serverCaps)
-                .build();
-
-        NetconfServerDispatcherImpl.ServerChannelInitializer serverChannelInitializer =
-                new NetconfServerDispatcherImpl.ServerChannelInitializer(serverNegotiatorFactory);
-        final NetconfServerDispatcherImpl dispatch =
-                new NetconfServerDispatcherImpl(serverChannelInitializer, nettyGroup, nettyGroup);
-
-        ChannelFuture server = dispatch.createServer(NETCONF_ADDRESS);
-        server.await();
-    }
-
-    @After
-    public void tearDown() {
-        hashedWheelTimer.stop();
-        try {
-            nettyGroup.shutdownGracefully().get();
-        } catch (InterruptedException | ExecutionException e) {
-            LOG.warn("Ignoring exception while cleaning up after test", e);
-        }
-    }
-
-    @AfterClass
-    public static void tearDownClientExecutor() {
-        clientExecutor.shutdownNow();
-    }
-
-    @Test(timeout = CONCURRENCY * 1000)
-    public void testConcurrentClients() throws Exception {
-
-        List<Future<?>> futures = Lists.newArrayListWithCapacity(CONCURRENCY);
-
-        for (int i = 0; i < CONCURRENCY; i++) {
-            futures.add(clientExecutor.submit(getInstanceOfClientRunnable()));
-        }
-
-        for (Future<?> future : futures) {
-            try {
-                future.get();
-            } catch (InterruptedException e) {
-                throw new IllegalStateException(e);
-            } catch (ExecutionException e) {
-                LOG.error("Thread for testing client failed", e);
-                throw e;
-            }
-        }
-
-        assertEquals(CONCURRENCY, testingNetconfOperation.getMessageCount());
-    }
-
-    public static Set<String> getOnlyExiServerCaps() {
-        return Sets.newHashSet(
-                XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_0,
-                XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_CAPABILITY_EXI_1_0
-        );
-    }
-
-    public static Set<String> getOnlyChunkServerCaps() {
-        return Sets.newHashSet(
-                XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_0,
-                XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_1
-        );
-    }
-
-    public Runnable getInstanceOfClientRunnable() throws Exception {
-        return clientRunnable.getConstructor(ConcurrentClientsTest.class).newInstance(this);
-    }
-
-    /**
-     * Responds to all operations except start-exi and counts all requests.
-     */
-    private static class TestingNetconfOperation implements NetconfOperation {
-
-        private final AtomicLong counter = new AtomicLong();
-
-        @Override
-        public HandlingPriority canHandle(Document message) {
-            return XmlUtil.toString(message).contains(NetconfStartExiMessage.START_EXI)
-                    ? HandlingPriority.CANNOT_HANDLE :
-                    HandlingPriority.HANDLE_WITH_MAX_PRIORITY;
-        }
-
-        @SuppressWarnings("checkstyle:IllegalCatch")
-        @Override
-        public Document handle(Document requestMessage, NetconfOperationChainedExecution subsequentOperation)
-                throws DocumentedException {
-            try {
-                LOG.info("Handling netconf message from test {}", XmlUtil.toString(requestMessage));
-                counter.getAndIncrement();
-                return XmlUtil.readXmlToDocument("<test/>");
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        }
-
-        public long getMessageCount() {
-            return counter.get();
-        }
-    }
-
-    /**
-     * Hardcoded operation service factory.
-     */
-    private static class TestingOperationServiceFactory implements NetconfOperationServiceFactory {
-        private final NetconfOperation[] operations;
-
-        TestingOperationServiceFactory(final NetconfOperation... operations) {
-            this.operations = operations;
-        }
-
-        @Override
-        public Set<Capability> getCapabilities() {
-            return Collections.emptySet();
-        }
-
-        @Override
-        public AutoCloseable registerCapabilityListener(final CapabilityListener listener) {
-            return () -> {
-            };
-        }
-
-        @Override
-        public NetconfOperationService createService(String netconfSessionIdForReporting) {
-            return new NetconfOperationService() {
-
-                @Override
-                public Set<NetconfOperation> getNetconfOperations() {
-                    return Sets.newHashSet(operations);
-                }
-
-                @Override
-                public void close() {
-                }
-            };
-        }
-    }
-
-    /**
-     * Pure socket based blocking client.
-     */
-    @SuppressWarnings("checkstyle:IllegalCatch")
-    public final class BlockingClientRunnable implements Runnable {
-
-        @Override
-        public void run() {
-            try {
-                run2();
-            } catch (Exception e) {
-                throw new IllegalStateException(Thread.currentThread().getName(), e);
-            }
-        }
-
-        private void run2() throws Exception {
-            InputStream clientHello = checkNotNull(XmlFileLoader
-                    .getResourceAsStream("netconfMessages/client_hello.xml"));
-            final InputStream getConfig =
-                    checkNotNull(XmlFileLoader.getResourceAsStream("netconfMessages/getConfig.xml"));
-
-            Socket clientSocket = new Socket(NETCONF_ADDRESS.getHostString(), NETCONF_ADDRESS.getPort());
-            DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
-            InputStreamReader inFromServer = new InputStreamReader(clientSocket.getInputStream());
-
-            StringBuffer sb = new StringBuffer();
-            while (sb.toString().endsWith("]]>]]>") == false) {
-                sb.append((char) inFromServer.read());
-            }
-            LOG.info(sb.toString());
-
-            outToServer.write(ByteStreams.toByteArray(clientHello));
-            outToServer.write("]]>]]>".getBytes());
-            outToServer.flush();
-            // Thread.sleep(100);
-            outToServer.write(ByteStreams.toByteArray(getConfig));
-            outToServer.write("]]>]]>".getBytes());
-            outToServer.flush();
-            Thread.sleep(100);
-            sb = new StringBuffer();
-            while (sb.toString().endsWith("]]>]]>") == false) {
-                sb.append((char) inFromServer.read());
-            }
-            LOG.info(sb.toString());
-            clientSocket.close();
-        }
-    }
-
-    /**
-     * TestingNetconfClient based runnable.
-     */
-    public final class TestingNetconfClientRunnable implements Runnable {
-
-        @SuppressWarnings("checkstyle:IllegalCatch")
-        @Override
-        public void run() {
-            try {
-                final TestingNetconfClient netconfClient =
-                        new TestingNetconfClient(Thread.currentThread().getName(), netconfClientDispatcher,
-                                getClientConfig());
-                long sessionId = netconfClient.getSessionId();
-                LOG.info("Client with session id {}: hello exchanged", sessionId);
-
-                final NetconfMessage getMessage = XmlFileLoader
-                        .xmlFileToNetconfMessage("netconfMessages/getConfig.xml");
-                NetconfMessage result = netconfClient.sendRequest(getMessage).get();
-                LOG.info("Client with session id {}: got result {}", sessionId, result);
-
-                Preconditions.checkState(NetconfMessageUtil.isErrorMessage(result) == false,
-                        "Received error response: " + XmlUtil.toString(result.getDocument()) + " to request: "
-                                + XmlUtil.toString(getMessage.getDocument()));
-
-                netconfClient.close();
-                LOG.info("Client with session id {}: ended", sessionId);
-            } catch (final Exception e) {
-                throw new IllegalStateException(Thread.currentThread().getName(), e);
-            }
-        }
-
-        private NetconfClientConfiguration getClientConfig() {
-            final NetconfClientConfigurationBuilder b = NetconfClientConfigurationBuilder.create();
-            b.withAddress(NETCONF_ADDRESS);
-            b.withAdditionalHeader(new NetconfHelloMessageAdditionalHeader("uname", "10.10.10.1", "830", "tcp",
-                    "client"));
-            b.withSessionListener(new SimpleNetconfClientSessionListener());
-            b.withReconnectStrategy(new NeverReconnectStrategy(GlobalEventExecutor.INSTANCE,
-                    NetconfClientConfigurationBuilder.DEFAULT_CONNECTION_TIMEOUT_MILLIS));
-            return b.build();
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ExiEncodeDecodeTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ExiEncodeDecodeTest.java
deleted file mode 100644 (file)
index 2fe0d51..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl;
-
-import static org.junit.Assert.assertNotNull;
-
-import org.junit.Test;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.util.test.XmlFileLoader;
-
-public class ExiEncodeDecodeTest {
-    @Test
-    public void encodeExi() throws Exception {
-
-        String startExiString = XmlFileLoader.xmlFileToString("netconfMessages/startExi.xml");
-        assertNotNull(startExiString);
-
-        NetconfMessage startExiMessage = XmlFileLoader.xmlFileToNetconfMessage(("netconfMessages/startExi.xml"));
-        assertNotNull(startExiMessage);
-
-        /*
-        ExiParameters exiParams = new ExiParameters();
-        exiParams.setParametersFromXmlElement(XmlElement.fromDomElement(startExiMessage.getDocument()
-        .getDocumentElement()));
-        assertNotNull(exiParams);
-
-        ByteBuf encodedBuf = Unpooled.buffer();
-        ByteBuf sourceBuf = Unpooled.copiedBuffer(startExiString.getBytes());
-        ExiUtil.encode(sourceBuf, encodedBuf, exiParams);
-
-        List<Object> newOut = new ArrayList<Object>();
-        ExiUtil.decode(encodedBuf, newOut, exiParams);
-
-        ByteBuf decodedBuf = (ByteBuf)newOut.get(0);
-        String decodedString = new String(decodedBuf.array(),"UTF-8");
-        assertNotNull(decodedString);
-        */
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/MessageParserTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/MessageParserTest.java
deleted file mode 100644 (file)
index 4ad6102..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import io.netty.buffer.ByteBuf;
-import io.netty.buffer.Unpooled;
-import io.netty.channel.embedded.EmbeddedChannel;
-import java.nio.ByteBuffer;
-import java.nio.charset.StandardCharsets;
-import java.util.Queue;
-
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.nettyutil.handler.ChunkedFramingMechanismEncoder;
-import org.opendaylight.netconf.nettyutil.handler.FramingMechanismHandlerFactory;
-import org.opendaylight.netconf.nettyutil.handler.NetconfChunkAggregator;
-import org.opendaylight.netconf.nettyutil.handler.NetconfEOMAggregator;
-import org.opendaylight.netconf.nettyutil.handler.NetconfMessageToXMLEncoder;
-import org.opendaylight.netconf.nettyutil.handler.NetconfXMLToMessageDecoder;
-import org.opendaylight.netconf.util.messages.FramingMechanism;
-import org.opendaylight.netconf.util.messages.NetconfMessageConstants;
-import org.opendaylight.netconf.util.test.XmlFileLoader;
-
-
-public class MessageParserTest {
-
-    private NetconfMessage msg;
-
-    @Before
-    public void setUp() throws Exception {
-        this.msg = XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/getConfig.xml");
-    }
-
-    @Ignore
-    @Test
-    public void testChunkedFramingMechanismOnPipeline() throws Exception {
-        EmbeddedChannel testChunkChannel = new EmbeddedChannel(
-                FramingMechanismHandlerFactory.createHandler(FramingMechanism.CHUNK),
-                new NetconfMessageToXMLEncoder(),
-
-                new NetconfChunkAggregator(),
-                new NetconfXMLToMessageDecoder());
-
-        testChunkChannel.writeOutbound(this.msg);
-        Queue<Object> messages = testChunkChannel.outboundMessages();
-        assertFalse(messages.isEmpty());
-
-        final NetconfMessageToXMLEncoder enc = new NetconfMessageToXMLEncoder();
-        final ByteBuf out = Unpooled.buffer();
-        enc.encode(null, msg, out);
-        int msgLength = out.readableBytes();
-
-        int chunkCount = msgLength / ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE;
-        if (msgLength % ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE != 0) {
-            chunkCount++;
-        }
-
-        byte[] endOfChunkBytes = NetconfMessageConstants.END_OF_CHUNK.getBytes(StandardCharsets.UTF_8);
-        for (int i = 1; i <= chunkCount; i++) {
-            ByteBuf recievedOutbound = (ByteBuf) messages.poll();
-            int exptHeaderLength = ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE;
-            if (i == chunkCount) {
-                exptHeaderLength = msgLength - ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE * (i - 1);
-                byte[] eom = new byte[endOfChunkBytes.length];
-                recievedOutbound.getBytes(recievedOutbound.readableBytes() - endOfChunkBytes.length, eom);
-                assertArrayEquals(endOfChunkBytes, eom);
-            }
-
-            byte[] header = new byte[String.valueOf(exptHeaderLength).length()
-                    + NetconfMessageConstants.MIN_HEADER_LENGTH - 1];
-            recievedOutbound.getBytes(0, header);
-            assertEquals(exptHeaderLength, getHeaderLength(header));
-
-            testChunkChannel.writeInbound(recievedOutbound);
-        }
-        assertTrue(messages.isEmpty());
-
-        NetconfMessage receivedMessage = testChunkChannel.readInbound();
-        assertNotNull(receivedMessage);
-        assertXMLEqual(this.msg.getDocument(), receivedMessage.getDocument());
-    }
-
-    @Ignore
-    @Test
-    public void testEOMFramingMechanismOnPipeline() throws Exception {
-        EmbeddedChannel testChunkChannel = new EmbeddedChannel(
-                FramingMechanismHandlerFactory.createHandler(FramingMechanism.EOM),
-                new NetconfMessageToXMLEncoder(), new NetconfEOMAggregator(), new NetconfXMLToMessageDecoder());
-
-        testChunkChannel.writeOutbound(this.msg);
-        ByteBuf recievedOutbound = testChunkChannel.readOutbound();
-
-        byte[] endOfMsgBytes = NetconfMessageConstants.END_OF_MESSAGE.getBytes(StandardCharsets.UTF_8);
-        byte[] eom = new byte[endOfMsgBytes.length];
-        recievedOutbound.getBytes(recievedOutbound.readableBytes() - endOfMsgBytes.length, eom);
-        assertArrayEquals(endOfMsgBytes, eom);
-
-        testChunkChannel.writeInbound(recievedOutbound);
-        NetconfMessage receivedMessage = testChunkChannel.readInbound();
-        assertNotNull(receivedMessage);
-        assertXMLEqual(this.msg.getDocument(), receivedMessage.getDocument());
-    }
-
-    private static long getHeaderLength(byte[] bytes) {
-        byte[] headerStart = new byte[]{(byte) 0x0a, (byte) 0x23};
-        return Long.parseLong(StandardCharsets.US_ASCII.decode(
-                ByteBuffer.wrap(bytes, headerStart.length, bytes.length - headerStart.length - 1)).toString());
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfDispatcherImplTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfDispatcherImplTest.java
deleted file mode 100644 (file)
index c24aaf8..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import io.netty.channel.ChannelFuture;
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.util.HashedWheelTimer;
-import java.net.InetSocketAddress;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory;
-
-public class NetconfDispatcherImplTest {
-
-    private EventLoopGroup nettyGroup;
-    private NetconfServerDispatcherImpl dispatch;
-    private HashedWheelTimer hashedWheelTimer;
-
-
-    @Before
-    public void setUp() throws Exception {
-        nettyGroup = new NioEventLoopGroup();
-
-        AggregatedNetconfOperationServiceFactory factoriesListener = new AggregatedNetconfOperationServiceFactory();
-
-        SessionIdProvider idProvider = new SessionIdProvider();
-        hashedWheelTimer = new HashedWheelTimer();
-
-        NetconfServerSessionNegotiatorFactory serverNegotiatorFactory =
-                new NetconfServerSessionNegotiatorFactoryBuilder()
-                        .setAggregatedOpService(factoriesListener)
-                        .setTimer(hashedWheelTimer)
-                        .setIdProvider(idProvider)
-                        .setMonitoringService(ConcurrentClientsTest.createMockedMonitoringService())
-                        .setConnectionTimeoutMillis(5000)
-                        .build();
-
-        NetconfServerDispatcherImpl.ServerChannelInitializer serverChannelInitializer =
-                new NetconfServerDispatcherImpl.ServerChannelInitializer(serverNegotiatorFactory);
-
-        dispatch = new NetconfServerDispatcherImpl(
-                serverChannelInitializer, nettyGroup, nettyGroup);
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        hashedWheelTimer.stop();
-        nettyGroup.shutdownGracefully();
-    }
-
-    @Test
-    public void test() throws Exception {
-        InetSocketAddress addr = new InetSocketAddress("127.0.0.1", 8333);
-        ChannelFuture server = dispatch.createServer(addr);
-        server.get();
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionListenerTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionListenerTest.java
deleted file mode 100644 (file)
index e7d5bb3..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.argThat;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.verify;
-
-import io.netty.channel.embedded.EmbeddedChannel;
-import org.custommonkey.xmlunit.Diff;
-import org.custommonkey.xmlunit.XMLUnit;
-import org.hamcrest.CustomMatcher;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.NetconfTerminationReason;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.monitoring.SessionEvent;
-import org.opendaylight.netconf.api.monitoring.SessionListener;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.osgi.NetconfOperationRouter;
-import org.opendaylight.netconf.notifications.NetconfNotification;
-import org.w3c.dom.Document;
-
-public class NetconfServerSessionListenerTest {
-
-    @Mock
-    private NetconfOperationRouter router;
-    @Mock
-    private NetconfMonitoringService monitoring;
-    @Mock
-    private AutoCloseable closeable;
-    @Mock
-    private SessionListener monitoringListener;
-    private NetconfServerSession session;
-    private EmbeddedChannel channel;
-    private NetconfServerSessionListener listener;
-
-    @BeforeClass
-    public static void classSetUp() throws Exception {
-        XMLUnit.setIgnoreWhitespace(true);
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        doReturn(monitoringListener).when(monitoring).getSessionListener();
-        doNothing().when(monitoringListener).onSessionUp(any());
-        doNothing().when(monitoringListener).onSessionDown(any());
-        doNothing().when(monitoringListener).onSessionEvent(any());
-        channel = new EmbeddedChannel();
-        session = new NetconfServerSession(null, channel, 0L, null);
-        listener = new NetconfServerSessionListener(router, monitoring, closeable);
-    }
-
-    @Test
-    public void testOnSessionUp() throws Exception {
-        listener.onSessionUp(session);
-        verify(monitoringListener).onSessionUp(session);
-    }
-
-    @Test
-    public void testOnSessionDown() throws Exception {
-        final Exception cause = new RuntimeException("cause");
-        listener.onSessionDown(session, cause);
-        verify(monitoringListener).onSessionDown(session);
-        verify(closeable).close();
-        verify(router).close();
-    }
-
-    @Test
-    public void testOnSessionTerminated() throws Exception {
-        listener.onSessionTerminated(session, new NetconfTerminationReason("reason"));
-        verify(monitoringListener).onSessionDown(session);
-        verify(closeable).close();
-        verify(router).close();
-    }
-
-    @Test
-    public void testOnMessage() throws Exception {
-        final Document reply = XmlUtil.readXmlToDocument("<rpc-reply message-id=\"101\" "
-                + "xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><example/></rpc-reply>");
-        doReturn(reply).when(router).onNetconfMessage(any(), any());
-        final NetconfMessage msg = new NetconfMessage(XmlUtil.readXmlToDocument("<rpc message-id=\"101\" "
-                + "xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><example/></rpc>"));
-        listener.onMessage(session, msg);
-        verify(monitoringListener).onSessionEvent(argThat(sessionEventIs(SessionEvent.Type.IN_RPC_SUCCESS)));
-        channel.runPendingTasks();
-        final NetconfMessage sentMsg = channel.readOutbound();
-        final Diff diff = XMLUnit.compareXML(reply, sentMsg.getDocument());
-        Assert.assertTrue(diff.toString(), diff.similar());
-    }
-
-    @Test
-    public void testOnMessageRuntimeFail() throws Exception {
-        doThrow(new RuntimeException("runtime fail")).when(router).onNetconfMessage(any(), any());
-        final Document reply =
-                XmlUtil.readXmlToDocument("<rpc message-id=\"101\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">"
-                        + "<example/></rpc>");
-        final NetconfMessage msg = new NetconfMessage(reply);
-        try {
-            listener.onMessage(session, msg);
-            Assert.fail("Expected exception " + IllegalStateException.class);
-        } catch (final IllegalStateException e) {
-            verify(monitoringListener).onSessionEvent(argThat(sessionEventIs(SessionEvent.Type.IN_RPC_FAIL)));
-        }
-    }
-
-    @SuppressWarnings("checkstyle:RegexpSinglelineJava")
-    @Test
-    public void testOnMessageDocumentedFail() throws Exception {
-        final Document reply =
-                XmlUtil.readXmlToDocument("<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">\n"
-                        + "<rpc-error>\n"
-                        + "<error-type>protocol</error-type>\n"
-                        + "<error-tag>unknown-element</error-tag>\n"
-                        + "<error-severity>error</error-severity>\n"
-                        + "<error-message>Unknown tag bad-rpc in message:\n"
-                        + "&lt;bad-rpc/&gt;\n"
-                        + "</error-message>\n"
-                        + "<error-info>\n"
-                        + "<bad-element>bad-rpc</bad-element>\n"
-                        + "</error-info>\n"
-                        + "</rpc-error>\n"
-                        + "</rpc-reply>");
-        final NetconfMessage msg = new NetconfMessage(XmlUtil.readXmlToDocument("<bad-rpc/>"));
-        listener.onMessage(session, msg);
-        verify(monitoringListener).onSessionEvent(argThat(sessionEventIs(SessionEvent.Type.IN_RPC_FAIL)));
-        verify(monitoringListener).onSessionEvent(argThat(sessionEventIs(SessionEvent.Type.OUT_RPC_ERROR)));
-        channel.runPendingTasks();
-        final NetconfMessage sentMsg = channel.readOutbound();
-        System.out.println(XmlUtil.toString(sentMsg.getDocument()));
-        System.out.println(XmlUtil.toString(reply));
-        final Diff diff = XMLUnit.compareXML(reply, sentMsg.getDocument());
-        Assert.assertTrue(diff.toString(), diff.similar());
-    }
-
-    @Test
-    public void testOnNotification() throws Exception {
-        listener.onNotification(session, new NetconfNotification(XmlUtil.readXmlToDocument("<notification/>")));
-        verify(monitoringListener).onSessionEvent(argThat(sessionEventIs(SessionEvent.Type.NOTIFICATION)));
-    }
-
-    private CustomMatcher<SessionEvent> sessionEventIs(final SessionEvent.Type type) {
-        return new CustomMatcher<SessionEvent>(type.name()) {
-            @Override
-            public boolean matches(final Object item) {
-                if (!(item instanceof SessionEvent)) {
-                    return false;
-                }
-                final SessionEvent e = (SessionEvent) item;
-                return e.getType().equals(type) && e.getSession().equals(session);
-            }
-        };
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorTest.java
deleted file mode 100644 (file)
index 36a5d25..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2014, 2015 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import io.netty.channel.local.LocalAddress;
-import java.net.InetSocketAddress;
-import org.apache.sshd.common.util.net.SshdSocketAddress;
-import org.junit.Test;
-
-public class NetconfServerSessionNegotiatorTest {
-
-    @Test
-    public void testGetInetSocketAddress() throws Exception {
-
-        InetSocketAddress socketAddress = new InetSocketAddress(10);
-
-        assertNotNull(NetconfServerSessionNegotiator.getHostName(socketAddress));
-
-        assertEquals(socketAddress.getHostName(),
-                NetconfServerSessionNegotiator.getHostName(socketAddress)
-                        .getValue());
-
-        socketAddress = new InetSocketAddress("TestPortInet", 20);
-
-        assertEquals(socketAddress.getHostName(),
-                NetconfServerSessionNegotiator.getHostName(socketAddress)
-                        .getValue());
-
-        assertEquals(String.valueOf(socketAddress.getPort()),
-                NetconfServerSessionNegotiator.getHostName(socketAddress)
-                        .getKey());
-
-        LocalAddress localAddress = new LocalAddress("TestPortLocal");
-
-        assertEquals(String.valueOf(localAddress.id()),
-                NetconfServerSessionNegotiator.getHostName(localAddress)
-                        .getValue());
-
-        SshdSocketAddress embeddedAddress = new SshdSocketAddress(
-                "TestSshdName", 10);
-
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionTest.java
deleted file mode 100644 (file)
index 6e3dc9e..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.verify;
-
-import io.netty.channel.ChannelHandler;
-import io.netty.channel.ChannelInboundHandlerAdapter;
-import io.netty.channel.ChannelOutboundHandlerAdapter;
-import io.netty.channel.embedded.EmbeddedChannel;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.nettyutil.AbstractChannelInitializer;
-import org.opendaylight.netconf.nettyutil.handler.NetconfEXICodec;
-import org.opendaylight.netconf.nettyutil.handler.NetconfEXIToMessageDecoder;
-import org.opendaylight.netconf.nettyutil.handler.NetconfMessageToEXIEncoder;
-import org.opendaylight.netconf.nettyutil.handler.NetconfMessageToXMLEncoder;
-import org.opendaylight.netconf.nettyutil.handler.NetconfXMLToMessageDecoder;
-import org.opendaylight.netconf.nettyutil.handler.exi.EXIParameters;
-import org.opendaylight.netconf.notifications.NetconfNotification;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210.NetconfTcp;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfSsh;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session;
-import org.w3c.dom.Document;
-
-public class NetconfServerSessionTest {
-
-    private static final String HOST = "127.0.0.1";
-    private static final String PORT = "17830";
-    private static final String SSH_TRANSPORT = "ssh";
-    private static final String TCP_TRANSPORT = "tcp";
-    private static final String SESSION_ID = "1";
-    private static final String USER = "admin";
-    private NetconfServerSession session;
-    private EmbeddedChannel channel;
-    private NetconfMessage msg;
-    @Mock
-    private NetconfServerSessionListener listener;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        final NetconfHelloMessageAdditionalHeader header =
-                new NetconfHelloMessageAdditionalHeader(USER, HOST, PORT, SSH_TRANSPORT, SESSION_ID);
-        channel = new EmbeddedChannel();
-        session = new NetconfServerSession(listener, channel, 1L, header);
-        doNothing().when(listener).onSessionUp(any());
-        msg = new NetconfMessage(XmlUtil.readXmlToDocument("<rpc-reply></rpc-reply>"));
-    }
-
-    @Test
-    public void testSessionUp() throws Exception {
-        session.sessionUp();
-        verify(listener).onSessionUp(session);
-    }
-
-    @Test
-    public void testDelayedClose() throws Exception {
-        doNothing().when(listener).onSessionTerminated(eq(session), any());
-        session.delayedClose();
-        session.sendMessage(msg);
-        channel.runPendingTasks();
-        final Object o = channel.readOutbound();
-        Assert.assertEquals(msg, o);
-        verify(listener).onSessionTerminated(eq(session), any());
-    }
-
-    @Test
-    public void testSendMessage() throws Exception {
-        session.sendMessage(msg);
-        channel.runPendingTasks();
-        final Object o = channel.readOutbound();
-        Assert.assertEquals(msg, o);
-    }
-
-    @Test
-    public void testSendNotification() throws Exception {
-        doNothing().when(listener).onNotification(any(), any());
-        final Document msgDoc = XmlUtil.readXmlToDocument("<notification></notification>");
-        final NetconfNotification notif = new NetconfNotification(msgDoc);
-        session.sendMessage(notif);
-        channel.runPendingTasks();
-        final Object o = channel.readOutbound();
-        Assert.assertEquals(notif, o);
-        verify(listener).onNotification(session, notif);
-    }
-
-    @Test
-    public void testOnIncommingRpcSuccess() throws Exception {
-        session.sessionUp();
-        final Session managementSession = this.session.toManagementSession();
-        this.session.onIncommingRpcSuccess();
-        final Session afterRpcSuccess = this.session.toManagementSession();
-        Assert.assertEquals(managementSession.getInRpcs().getValue() + 1,
-                afterRpcSuccess.getInRpcs().getValue().longValue());
-    }
-
-    @Test
-    public void testOnIncommingRpcFail() throws Exception {
-        session.sessionUp();
-        final Session managementSession = this.session.toManagementSession();
-        this.session.onIncommingRpcFail();
-        final Session afterRpcSuccess = this.session.toManagementSession();
-        Assert.assertEquals(managementSession.getInBadRpcs().getValue() + 1,
-                afterRpcSuccess.getInBadRpcs().getValue().longValue());
-    }
-
-    @Test
-    public void testOnOutgoingRpcError() throws Exception {
-        session.sessionUp();
-        final Session managementSession = this.session.toManagementSession();
-        this.session.onOutgoingRpcError();
-        final Session afterRpcSuccess = this.session.toManagementSession();
-        Assert.assertEquals(managementSession.getOutRpcErrors().getValue() + 1,
-                afterRpcSuccess.getOutRpcErrors().getValue().longValue());
-    }
-
-    @Test
-    public void testToManagementSession() throws Exception {
-        final NetconfHelloMessageAdditionalHeader header =
-                new NetconfHelloMessageAdditionalHeader(USER, HOST, PORT, TCP_TRANSPORT, SESSION_ID);
-        final EmbeddedChannel ch = new EmbeddedChannel();
-        final NetconfServerSession tcpSession = new NetconfServerSession(listener, ch, 1L, header);
-        tcpSession.sessionUp();
-        final Session managementSession = tcpSession.toManagementSession();
-        Assert.assertEquals(HOST, managementSession.getSourceHost().getIpAddress().getIpv4Address().getValue());
-        Assert.assertEquals(managementSession.getUsername(), USER);
-        Assert.assertEquals(managementSession.getSessionId().toString(), SESSION_ID);
-        Assert.assertEquals(managementSession.getTransport(), NetconfTcp.class);
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testToManagementSessionUnknownTransport() throws Exception {
-        final NetconfHelloMessageAdditionalHeader header =
-                new NetconfHelloMessageAdditionalHeader(USER, HOST, PORT, "http", SESSION_ID);
-        final EmbeddedChannel ch = new EmbeddedChannel();
-        final NetconfServerSession tcpSession = new NetconfServerSession(listener, ch, 1L, header);
-        tcpSession.sessionUp();
-        tcpSession.toManagementSession();
-        tcpSession.close();
-    }
-
-    @Test
-    public void testToManagementSessionIpv6() throws Exception {
-        final NetconfHelloMessageAdditionalHeader header =
-                new NetconfHelloMessageAdditionalHeader(USER, "::1", PORT, SSH_TRANSPORT, SESSION_ID);
-        final EmbeddedChannel ch = new EmbeddedChannel();
-        final NetconfServerSession tcpSession = new NetconfServerSession(listener, ch, 1L, header);
-        tcpSession.sessionUp();
-        final Session managementSession = tcpSession.toManagementSession();
-        Assert.assertEquals("::1", managementSession.getSourceHost().getIpAddress().getIpv6Address().getValue());
-        Assert.assertEquals(managementSession.getUsername(), USER);
-        Assert.assertEquals(managementSession.getSessionId().toString(), SESSION_ID);
-        Assert.assertEquals(managementSession.getTransport(), NetconfSsh.class);
-    }
-
-    @Test
-    public void testThisInstance() throws Exception {
-        Assert.assertEquals(session, session.thisInstance());
-    }
-
-    @Test
-    public void testAddExiHandlers() throws Exception {
-        channel.pipeline().addLast(AbstractChannelInitializer.NETCONF_MESSAGE_DECODER,
-                new NetconfXMLToMessageDecoder());
-        channel.pipeline().addLast(AbstractChannelInitializer.NETCONF_MESSAGE_ENCODER,
-                new NetconfMessageToXMLEncoder());
-        final NetconfEXICodec codec = NetconfEXICodec.forParameters(EXIParameters.empty());
-        session.addExiHandlers(NetconfEXIToMessageDecoder.create(codec), NetconfMessageToEXIEncoder.create(codec));
-    }
-
-    @Test
-    public void testStopExiCommunication() throws Exception {
-        channel.pipeline().addLast(AbstractChannelInitializer.NETCONF_MESSAGE_DECODER,
-                new ChannelInboundHandlerAdapter());
-        channel.pipeline().addLast(AbstractChannelInitializer.NETCONF_MESSAGE_ENCODER,
-                new ChannelOutboundHandlerAdapter());
-        session.stopExiCommunication();
-        //handler is replaced only after next send message call
-        final ChannelHandler exiEncoder = channel.pipeline().get(AbstractChannelInitializer.NETCONF_MESSAGE_ENCODER);
-        Assert.assertTrue(ChannelOutboundHandlerAdapter.class.equals(exiEncoder.getClass()));
-        session.sendMessage(msg);
-        channel.runPendingTasks();
-        final ChannelHandler decoder = channel.pipeline().get(AbstractChannelInitializer.NETCONF_MESSAGE_DECODER);
-        Assert.assertTrue(NetconfXMLToMessageDecoder.class.equals(decoder.getClass()));
-        final ChannelHandler encoder = channel.pipeline().get(AbstractChannelInitializer.NETCONF_MESSAGE_ENCODER);
-        Assert.assertTrue(NetconfMessageToXMLEncoder.class.equals(encoder.getClass()));
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSessionTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSessionTest.java
deleted file mode 100644 (file)
index 1293329..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.mapping.operations;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyObject;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelFuture;
-import io.netty.channel.ChannelPromise;
-import io.netty.channel.EventLoop;
-import io.netty.util.concurrent.GenericFutureListener;
-import org.junit.Test;
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.api.NetconfDocumentedException;
-import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.NetconfTerminationReason;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
-import org.opendaylight.netconf.api.xml.XmlElement;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.NetconfServerSession;
-import org.opendaylight.netconf.impl.NetconfServerSessionListener;
-import org.w3c.dom.Document;
-
-public class DefaultCloseSessionTest {
-
-    private static void mockEventLoop(final Channel channel) {
-        final EventLoop eventLoop = mock(EventLoop.class);
-        doReturn(eventLoop).when(channel).eventLoop();
-        doAnswer(invocation -> {
-            invocation.getArgumentAt(0, Runnable.class).run();
-            return null;
-        }).when(eventLoop).execute(any(Runnable.class));
-        doReturn(true).when(eventLoop).inEventLoop();
-    }
-
-    @Test
-    public void testDefaultCloseSession() throws Exception {
-        AutoCloseable res = mock(AutoCloseable.class);
-        doNothing().when(res).close();
-        DefaultCloseSession close = new DefaultCloseSession("", res);
-        final Document doc = XmlUtil.newDocument();
-        final XmlElement elem = XmlElement.fromDomElement(XmlUtil.readXmlToElement("<elem/>"));
-        final Channel channel = mock(Channel.class);
-        doReturn("channel").when(channel).toString();
-        mockEventLoop(channel);
-        final ChannelFuture channelFuture = mock(ChannelFuture.class);
-        doReturn(channelFuture).when(channel).close();
-        doReturn(channelFuture).when(channelFuture).addListener(any(GenericFutureListener.class));
-
-        final ChannelPromise sendFuture = mock(ChannelPromise.class);
-        doAnswer(invocation -> {
-            invocation.getArgumentAt(0, GenericFutureListener.class).operationComplete(sendFuture);
-            return null;
-        }).when(sendFuture).addListener(any(GenericFutureListener.class));
-        doReturn(sendFuture).when(channel).newPromise();
-        doReturn(sendFuture).when(channel).writeAndFlush(anyObject(), anyObject());
-        doReturn(true).when(sendFuture).isSuccess();
-        final NetconfServerSessionListener listener = mock(NetconfServerSessionListener.class);
-        doNothing().when(listener).onSessionTerminated(any(NetconfServerSession.class),
-                any(NetconfTerminationReason.class));
-        final NetconfServerSession session =
-                new NetconfServerSession(listener, channel, 1L,
-                        NetconfHelloMessageAdditionalHeader.fromString("[netconf;10.12.0.102:48528;ssh;;;;;;]"));
-        close.setNetconfSession(session);
-        close.handleWithNoSubsequentOperations(doc, elem);
-        // Fake close response to trigger delayed close
-        session.sendMessage(new NetconfMessage(XmlUtil.readXmlToDocument("<rpc-reply message-id=\"101\"\n"
-                + "xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">\n"
-                + "<ok/>\n"
-                + "</rpc-reply>")));
-        verify(channel).close();
-        verify(listener).onSessionTerminated(any(NetconfServerSession.class), any(NetconfTerminationReason.class));
-    }
-
-    @Test(expected = DocumentedException.class)
-    public void testDefaultCloseSession2() throws Exception {
-        AutoCloseable res = mock(AutoCloseable.class);
-        doThrow(NetconfDocumentedException.class).when(res).close();
-        DefaultCloseSession session = new DefaultCloseSession("", res);
-        XmlElement elem = XmlElement.fromDomElement(XmlUtil.readXmlToElement("<elem/>"));
-        session.handleWithNoSubsequentOperations(XmlUtil.newDocument(), elem);
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExiTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExiTest.java
deleted file mode 100644 (file)
index 8459874..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.mapping.operations;
-
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelHandler;
-import io.netty.channel.ChannelPipeline;
-import org.junit.Test;
-import org.opendaylight.netconf.api.xml.XmlElement;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.impl.NetconfServerSession;
-import org.w3c.dom.Document;
-
-public class DefaultStopExiTest {
-    @Test
-    public void testHandleWithNoSubsequentOperations() throws Exception {
-        final DefaultStopExi exi = new DefaultStopExi("");
-        final Document doc = XmlUtil.newDocument();
-        Channel channel = mock(Channel.class);
-        doReturn("mockChannel").when(channel).toString();
-        ChannelPipeline pipeline = mock(ChannelPipeline.class);
-        doReturn(pipeline).when(channel).pipeline();
-        ChannelHandler channelHandler = mock(ChannelHandler.class);
-        doReturn(channelHandler).when(pipeline).replace(anyString(), anyString(), any(ChannelHandler.class));
-
-        NetconfServerSession serverSession = new NetconfServerSession(null, channel, 2L, null);
-        exi.setNetconfSession(serverSession);
-
-        assertNotNull(exi.handleWithNoSubsequentOperations(doc,
-                XmlElement.fromDomElement(XmlUtil.readXmlToElement("<elem/>"))));
-        verify(pipeline, times(1)).replace(anyString(), anyString(), any(ChannelHandler.class));
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactoryTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactoryTest.java
deleted file mode 100644 (file)
index d3b0fcd..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import com.google.common.collect.Sets;
-import java.util.HashSet;
-import java.util.Set;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.netconf.api.capability.BasicCapability;
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.monitoring.CapabilityListener;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-
-
-public class AggregatedNetconfOperationServiceFactoryTest {
-
-    private final Set<Capability> factory1Caps = new HashSet<>();
-    private final Set<Capability> factory2Caps = new HashSet<>();
-
-    @Mock
-    private CapabilityListener listener1;
-    @Mock
-    private CapabilityListener listener2;
-    @Mock
-    private CapabilityListener listener3;
-    @Mock
-    private NetconfOperationServiceFactory factory1;
-    @Mock
-    private NetconfOperationServiceFactory factory2;
-    @Mock
-    private AutoCloseable autoCloseable1;
-    @Mock
-    private AutoCloseable autoCloseable2;
-    @Mock
-    private AutoCloseable autoCloseable3;
-
-    private AggregatedNetconfOperationServiceFactory aggregatedFactory;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        factory1Caps.add(new BasicCapability("AAA"));
-        factory1Caps.add(new BasicCapability("BBB"));
-
-        factory2Caps.add(new BasicCapability("CCC"));
-        factory2Caps.add(new BasicCapability("DDD"));
-
-        aggregatedFactory = new AggregatedNetconfOperationServiceFactory();
-
-        aggregatedFactory.registerCapabilityListener(listener1);
-        aggregatedFactory.registerCapabilityListener(listener2);
-
-        doReturn(autoCloseable1).when(factory1).registerCapabilityListener(listener1);
-        doReturn(autoCloseable2).when(factory1).registerCapabilityListener(listener2);
-        doReturn(factory1Caps).when(factory1).getCapabilities();
-
-        doReturn(autoCloseable1).when(factory2).registerCapabilityListener(listener1);
-        doReturn(autoCloseable2).when(factory2).registerCapabilityListener(listener2);
-        doReturn(factory2Caps).when(factory2).getCapabilities();
-
-        doNothing().when(autoCloseable1).close();
-        doNothing().when(autoCloseable2).close();
-
-        doReturn(autoCloseable3).when(factory1).registerCapabilityListener(listener3);
-        doReturn(autoCloseable3).when(factory2).registerCapabilityListener(listener3);
-    }
-
-    @Test
-    public void testOnAddAndOnRemove() throws Exception {
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory1);
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory2);
-
-        verify(factory1).registerCapabilityListener(listener1);
-        verify(factory2).registerCapabilityListener(listener1);
-        verify(factory1).registerCapabilityListener(listener2);
-        verify(factory2).registerCapabilityListener(listener2);
-
-        aggregatedFactory.onRemoveNetconfOperationServiceFactory(factory1);
-        aggregatedFactory.onRemoveNetconfOperationServiceFactory(factory2);
-
-        verify(autoCloseable1, times(2)).close();
-        verify(autoCloseable2, times(2)).close();
-    }
-
-    @Test
-    public void testGetCapabilities() throws Exception {
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory1);
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory2);
-        final Set<Capability> actual = aggregatedFactory.getCapabilities();
-        Set<Capability> expected = Sets.union(factory1Caps, factory2Caps);
-        Assert.assertEquals(expected, actual);
-    }
-
-    @Test
-    public void testRegisterCapabilityListener() throws Exception {
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory1);
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory2);
-        aggregatedFactory.registerCapabilityListener(listener3);
-
-        verify(factory1).registerCapabilityListener(listener3);
-        verify(factory2).registerCapabilityListener(listener3);
-    }
-
-    @Test
-    public void testClose() throws Exception {
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory1);
-        aggregatedFactory.onAddNetconfOperationServiceFactory(factory2);
-        aggregatedFactory.close();
-        verify(autoCloseable1, times(2)).close();
-        verify(autoCloseable2, times(2)).close();
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringServiceTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringServiceTest.java
deleted file mode 100644 (file)
index 73ef36e..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import com.google.common.base.Optional;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.netconf.api.capability.BasicCapability;
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.capability.YangModuleCapability;
-import org.opendaylight.netconf.api.monitoring.NetconfManagementSession;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.HostBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.CapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.SessionBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange;
-import org.opendaylight.yangtools.yang.common.Revision;
-import org.opendaylight.yangtools.yang.model.api.Module;
-
-public class NetconfCapabilityMonitoringServiceTest {
-
-    private static final String TEST_MODULE_CONTENT = "content";
-    private static final String TEST_MODULE_CONTENT2 = "content2";
-    private static final String TEST_MODULE_REV = "1970-01-01";
-    private static final String TEST_MODULE_REV2 = "1970-01-02";
-    private static final Uri TEST_MODULE_NAMESPACE = new Uri("testModuleNamespace");
-    private static final String TEST_MODULE_NAME = "testModule";
-    private static final Revision  TEST_MODULE_DATE = Revision.of(TEST_MODULE_REV);
-    private static final Revision TEST_MODULE_DATE2 = Revision.of(TEST_MODULE_REV2);
-
-    private YangModuleCapability moduleCapability1;
-    private YangModuleCapability moduleCapability2;
-    private static final Session SESSION = new SessionBuilder()
-            .setSessionId(1L)
-            .setSourceHost(HostBuilder.getDefaultInstance("0.0.0.0"))
-            .setUsername("admin")
-            .build();
-    private int capabilitiesSize;
-
-    private final Set<Capability> capabilities = new HashSet<>();
-
-    @Mock
-    private Module moduleMock;
-    @Mock
-    private Module moduleMock2;
-    @Mock
-    private NetconfOperationServiceFactory operationServiceFactoryMock;
-    @Mock
-    private NetconfManagementSession sessionMock;
-    @Mock
-    private NetconfMonitoringService.CapabilitiesListener listener;
-    @Mock
-    private BaseNotificationPublisherRegistration notificationPublisher;
-
-    private NetconfCapabilityMonitoringService monitoringService;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-
-        doReturn(new URI(TEST_MODULE_NAMESPACE.getValue())).when(moduleMock).getNamespace();
-        doReturn(TEST_MODULE_NAME).when(moduleMock).getName();
-        doReturn(java.util.Optional.of(TEST_MODULE_DATE)).when(moduleMock).getRevision();
-        moduleCapability1 = new YangModuleCapability(moduleMock, TEST_MODULE_CONTENT);
-
-        capabilities.add(moduleCapability1);
-
-        doReturn(new URI(TEST_MODULE_NAMESPACE.getValue())).when(moduleMock2).getNamespace();
-        doReturn(TEST_MODULE_NAME).when(moduleMock2).getName();
-        doReturn(java.util.Optional.of(TEST_MODULE_DATE2)).when(moduleMock2).getRevision();
-        moduleCapability2 = new YangModuleCapability(moduleMock2, TEST_MODULE_CONTENT2);
-
-        capabilities.add(new BasicCapability("urn:ietf:params:netconf:base:1.0"));
-        capabilities.add(new BasicCapability("urn:ietf:params:netconf:base:1.1"));
-        capabilities.add(new BasicCapability("urn:ietf:params:xml:ns:yang:ietf-inet-types?module=ietf-inet-types&amp;"
-                + "revision=2010-09-24"));
-
-        doReturn(capabilities).when(operationServiceFactoryMock).getCapabilities();
-        doReturn(null).when(operationServiceFactoryMock)
-                .registerCapabilityListener(any(NetconfCapabilityMonitoringService.class));
-
-        doReturn(SESSION).when(sessionMock).toManagementSession();
-        doNothing().when(listener).onCapabilitiesChanged(any());
-        doNothing().when(listener).onSchemasChanged(any());
-
-        doNothing().when(notificationPublisher).onCapabilityChanged(any());
-        doNothing().when(notificationPublisher).onSessionStarted(any());
-        doNothing().when(notificationPublisher).onSessionEnded(any());
-
-        monitoringService = new NetconfCapabilityMonitoringService(operationServiceFactoryMock);
-        monitoringService.onCapabilitiesChanged(capabilities, Collections.emptySet());
-        monitoringService.setNotificationPublisher(notificationPublisher);
-        monitoringService.registerListener(listener);
-        capabilitiesSize = monitoringService.getCapabilities().getCapability().size();
-    }
-
-    @Test
-    public void testListeners() throws Exception {
-        HashSet<Capability> added = new HashSet<>();
-        added.add(new BasicCapability("toAdd"));
-        monitoringService.onCapabilitiesChanged(added, Collections.emptySet());
-        //onCapabilitiesChanged and onSchemasChanged are invoked also after listener registration
-        verify(listener, times(2)).onCapabilitiesChanged(any());
-        verify(listener, times(2)).onSchemasChanged(any());
-    }
-
-    @Test
-    public void testGetSchemas() throws Exception {
-        Schemas schemas = monitoringService.getSchemas();
-        Schema schema = schemas.getSchema().get(0);
-        Assert.assertEquals(TEST_MODULE_NAMESPACE, schema.getNamespace());
-        Assert.assertEquals(TEST_MODULE_NAME, schema.getIdentifier());
-        Assert.assertEquals(TEST_MODULE_REV, schema.getVersion());
-    }
-
-    @Test
-    public void testGetSchemaForCapability() throws Exception {
-        //test multiple revisions of the same capability
-        monitoringService.onCapabilitiesChanged(Collections.singleton(moduleCapability2), Collections.emptySet());
-        final String schema =
-                monitoringService.getSchemaForModuleRevision(TEST_MODULE_NAME, Optional.of(TEST_MODULE_REV));
-        Assert.assertEquals(TEST_MODULE_CONTENT, schema);
-        final String schema2 =
-                monitoringService.getSchemaForModuleRevision(TEST_MODULE_NAME, Optional.of(TEST_MODULE_REV2));
-        Assert.assertEquals(TEST_MODULE_CONTENT2, schema2);
-        //remove one revision
-        monitoringService.onCapabilitiesChanged(Collections.emptySet(), Collections.singleton(moduleCapability1));
-        //only one revision present
-        final String schema3 = monitoringService.getSchemaForModuleRevision(TEST_MODULE_NAME, Optional.absent());
-        Assert.assertEquals(TEST_MODULE_CONTENT2, schema3);
-    }
-
-    @Test
-    public void testGetCapabilities() throws Exception {
-        Capabilities actual = monitoringService.getCapabilities();
-        List<Uri> exp = new ArrayList<>();
-        for (Capability capability : capabilities) {
-            exp.add(new Uri(capability.getCapabilityUri()));
-        }
-        //candidate is added by monitoring service automatically
-        exp.add(0, new Uri("urn:ietf:params:netconf:capability:candidate:1.0"));
-        Capabilities expected = new CapabilitiesBuilder().setCapability(exp).build();
-        Assert.assertEquals(new HashSet<>(expected.getCapability()), new HashSet<>(actual.getCapability()));
-    }
-
-    @Test
-    public void testClose() throws Exception {
-        Assert.assertFalse(monitoringService.getCapabilities().getCapability().isEmpty());
-        monitoringService.close();
-        Assert.assertTrue(monitoringService.getCapabilities().getCapability().isEmpty());
-    }
-
-    @Test
-    public void testOnCapabilitiesChanged() throws Exception {
-        final String capUri = "test";
-        final Uri uri = new Uri(capUri);
-        final HashSet<Capability> testCaps = new HashSet<>();
-        testCaps.add(new BasicCapability(capUri));
-        final ArgumentCaptor<NetconfCapabilityChange> capabilityChangeCaptor =
-                ArgumentCaptor.forClass(NetconfCapabilityChange.class);
-        final ArgumentCaptor<Capabilities> monitoringListenerCaptor = ArgumentCaptor.forClass(Capabilities.class);
-        //add capability
-        monitoringService.onCapabilitiesChanged(testCaps, Collections.emptySet());
-        //remove capability
-        monitoringService.onCapabilitiesChanged(Collections.emptySet(), testCaps);
-
-        verify(listener, times(3)).onCapabilitiesChanged(monitoringListenerCaptor.capture());
-        verify(notificationPublisher, times(2)).onCapabilityChanged(capabilityChangeCaptor.capture());
-
-        //verify listener calls
-        final List<Capabilities> listenerValues = monitoringListenerCaptor.getAllValues();
-        final List<Uri> afterRegisterState = listenerValues.get(0).getCapability();
-        final List<Uri> afterAddState = listenerValues.get(1).getCapability();
-        final List<Uri> afterRemoveState = listenerValues.get(2).getCapability();
-
-        Assert.assertEquals(capabilitiesSize, afterRegisterState.size());
-        Assert.assertEquals(capabilitiesSize + 1, afterAddState.size());
-        Assert.assertEquals(capabilitiesSize, afterRemoveState.size());
-        Assert.assertFalse(afterRegisterState.contains(uri));
-        Assert.assertTrue(afterAddState.contains(uri));
-        Assert.assertFalse(afterRemoveState.contains(uri));
-
-        //verify notification publication
-        final List<NetconfCapabilityChange> publisherValues = capabilityChangeCaptor.getAllValues();
-        final NetconfCapabilityChange afterAdd = publisherValues.get(0);
-        final NetconfCapabilityChange afterRemove = publisherValues.get(1);
-
-        Assert.assertEquals(Collections.singleton(uri), new HashSet<>(afterAdd.getAddedCapability()));
-        Assert.assertEquals(Collections.emptySet(), new HashSet<>(afterAdd.getDeletedCapability()));
-        Assert.assertEquals(Collections.singleton(uri), new HashSet<>(afterRemove.getDeletedCapability()));
-        Assert.assertEquals(Collections.emptySet(), new HashSet<>(afterRemove.getAddedCapability()));
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfImplActivatorTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfImplActivatorTest.java
deleted file mode 100644 (file)
index 5f8c6d2..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.osgi;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.anyString;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.verify;
-
-import java.util.Arrays;
-import java.util.Dictionary;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Filter;
-import org.osgi.framework.ServiceListener;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-
-public class NetconfImplActivatorTest {
-
-    @Mock
-    private BundleContext bundle;
-    @Mock
-    private Filter filter;
-    @Mock
-    private ServiceReference<?> reference;
-    @Mock
-    private ServiceRegistration<?> registration;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        doReturn(filter).when(bundle).createFilter(anyString());
-        doNothing().when(bundle).addServiceListener(any(ServiceListener.class), anyString());
-
-        ServiceReference<?>[] refs = {};
-        doReturn(refs).when(bundle).getServiceReferences(anyString(), anyString());
-        doReturn(Arrays.asList(refs)).when(bundle).getServiceReferences(any(Class.class), anyString());
-        doReturn("").when(bundle).getProperty(anyString());
-        doReturn(registration).when(bundle).registerService(any(Class.class),
-                any(AggregatedNetconfOperationServiceFactory.class), any(Dictionary.class));
-        doNothing().when(registration).unregister();
-        doNothing().when(bundle).removeServiceListener(any(ServiceListener.class));
-    }
-
-    @Test
-    public void testStart() throws Exception {
-        NetconfImplActivator activator = new NetconfImplActivator();
-        activator.start(bundle);
-        verify(bundle).registerService(any(Class.class), any(AggregatedNetconfOperationServiceFactory.class),
-                any(Dictionary.class));
-        activator.stop(bundle);
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImplTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImplTest.java
deleted file mode 100644 (file)
index 8b1afec..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.verify;
-
-import java.io.IOException;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.api.xml.XmlUtil;
-import org.opendaylight.netconf.mapping.api.HandlingPriority;
-import org.opendaylight.netconf.mapping.api.NetconfOperation;
-import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution;
-import org.opendaylight.netconf.mapping.api.NetconfOperationService;
-import org.w3c.dom.Document;
-import org.xml.sax.SAXException;
-
-public class NetconfOperationRouterImplTest {
-
-    private static final String TEST_RPC = "<rpc message-id=\"101\" "
-            + "xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><test/></rpc>\n";
-    private static final String MAX_PRIORITY_REPLY = "<high/>";
-    private static final String DEFAULT_PRIORITY_REPLY = "<default/>";
-
-    private static Document TEST_RPC_DOC;
-
-    @Mock
-    private NetconfOperationService operationService;
-    @Mock
-    private NetconfOperationService operationService2;
-    @Mock
-    private NetconfOperation maxPrioMock;
-    @Mock
-    private NetconfOperation defaultPrioMock;
-
-    private NetconfOperationRouterImpl operationRouter;
-    private NetconfOperationRouterImpl emptyOperationRouter;
-
-    @BeforeClass
-    public static void suiteSetUp() throws IOException, SAXException {
-        TEST_RPC_DOC = XmlUtil.readXmlToDocument(TEST_RPC);
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-
-        doReturn(HandlingPriority.HANDLE_WITH_MAX_PRIORITY).when(maxPrioMock).canHandle(any(Document.class));
-        doReturn(XmlUtil.readXmlToDocument(MAX_PRIORITY_REPLY)).when(maxPrioMock).handle(any(Document.class),
-                any(NetconfOperationChainedExecution.class));
-
-        doReturn(HandlingPriority.HANDLE_WITH_DEFAULT_PRIORITY).when(defaultPrioMock).canHandle(any(Document.class));
-        doReturn(XmlUtil.readXmlToDocument(DEFAULT_PRIORITY_REPLY)).when(defaultPrioMock).handle(any(Document.class),
-                any(NetconfOperationChainedExecution.class));
-
-        final Set<NetconfOperation> operations = new HashSet<>();
-        operations.add(maxPrioMock);
-        operations.add(defaultPrioMock);
-        doReturn(operations).when(operationService).getNetconfOperations();
-        doNothing().when(operationService).close();
-
-        operationRouter = new NetconfOperationRouterImpl(operationService, null, "session-1");
-        doReturn(Collections.EMPTY_SET).when(operationService2).getNetconfOperations();
-        emptyOperationRouter = new NetconfOperationRouterImpl(operationService2, null, "session-1");
-    }
-
-    @Test
-    public void testOnNetconfMessage() throws Exception {
-        final ArgumentCaptor<NetconfOperationChainedExecution> highPriorityChainEx =
-                ArgumentCaptor.forClass(NetconfOperationChainedExecution.class);
-        final ArgumentCaptor<NetconfOperationChainedExecution> defaultPriorityChainEx =
-                ArgumentCaptor.forClass(NetconfOperationChainedExecution.class);
-
-        final Document document = operationRouter.onNetconfMessage(TEST_RPC_DOC, null);
-
-        //max priority message is first in chain
-        verify(maxPrioMock).handle(any(Document.class), highPriorityChainEx.capture());
-        final NetconfOperationChainedExecution chainedExecution = highPriorityChainEx.getValue();
-        Assert.assertFalse(chainedExecution.isExecutionTermination());
-
-        //execute next in chain
-        final Document execute = chainedExecution.execute(XmlUtil.newDocument());
-        Assert.assertEquals(DEFAULT_PRIORITY_REPLY, XmlUtil.toString(execute).trim());
-
-        //default priority message is second and last
-        verify(defaultPrioMock).handle(any(Document.class), defaultPriorityChainEx.capture());
-        Assert.assertTrue(defaultPriorityChainEx.getValue().isExecutionTermination());
-
-        Assert.assertEquals(MAX_PRIORITY_REPLY, XmlUtil.toString(document).trim());
-    }
-
-    @Test
-    public void testOnNetconfMessageFail() throws Exception {
-        try {
-            emptyOperationRouter.onNetconfMessage(TEST_RPC_DOC, null);
-            Assert.fail("Exception expected");
-        } catch (final DocumentedException e) {
-            Assert.assertEquals(e.getErrorTag(), DocumentedException.ErrorTag.OPERATION_NOT_SUPPORTED);
-        }
-    }
-
-    @Test
-    public void testClose() throws Exception {
-        operationRouter.close();
-        verify(operationService).close();
-    }
-
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationServiceFactoryTrackerTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationServiceFactoryTrackerTest.java
deleted file mode 100644 (file)
index ce20e1c..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.osgi;
-
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.anyString;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.netconf.api.util.NetconfConstants;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Filter;
-import org.osgi.framework.ServiceReference;
-
-public class NetconfOperationServiceFactoryTrackerTest {
-
-    @Mock
-    private Filter filter;
-    @Mock
-    private BundleContext context;
-    @Mock
-    private NetconfOperationServiceFactoryListener listener;
-    @Mock
-    private NetconfOperationServiceFactory factory;
-    @Mock
-    private ServiceReference<NetconfOperationServiceFactory> reference;
-
-    private NetconfOperationServiceFactoryTracker tracker;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        doNothing().when(listener).onRemoveNetconfOperationServiceFactory(any(NetconfOperationServiceFactory.class));
-        doReturn(filter).when(context).createFilter(anyString());
-        doReturn("").when(reference).toString();
-        doReturn(NetconfConstants.CONFIG_NETCONF_CONNECTOR).when(reference).getProperty(NetconfConstants.SERVICE_NAME);
-        doReturn(factory).when(context).getService(any(ServiceReference.class));
-        doReturn("").when(factory).toString();
-        doNothing().when(listener).onAddNetconfOperationServiceFactory(any(NetconfOperationServiceFactory.class));
-        tracker = new NetconfOperationServiceFactoryTracker(context, listener);
-    }
-
-    @Test
-    public void testNetconfOperationServiceFactoryTracker() throws Exception {
-        tracker.removedService(null, factory);
-        verify(listener, times(1)).onRemoveNetconfOperationServiceFactory(any(NetconfOperationServiceFactory.class));
-    }
-
-    @Test
-    public void testAddingService() throws Exception {
-        assertNotNull(tracker.addingService(reference));
-        verify(listener, times(1)).onAddNetconfOperationServiceFactory(any(NetconfOperationServiceFactory.class));
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringServiceTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringServiceTest.java
deleted file mode 100644 (file)
index ae8ee0e..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.impl.osgi;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.timeout;
-import static org.mockito.Mockito.verify;
-
-import com.google.common.base.Optional;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.controller.config.threadpool.ScheduledThreadPool;
-import org.opendaylight.netconf.api.capability.BasicCapability;
-import org.opendaylight.netconf.api.capability.Capability;
-import org.opendaylight.netconf.api.monitoring.NetconfManagementSession;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.api.monitoring.SessionEvent;
-import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.HostBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.SessionBuilder;
-
-public class NetconfSessionMonitoringServiceTest {
-
-    private static final Session SESSION_1 = new SessionBuilder()
-            .setSessionId(1L)
-            .setSourceHost(HostBuilder.getDefaultInstance("0.0.0.0"))
-            .setUsername("admin")
-            .build();
-    private static final Session SESSION_2 = new SessionBuilder()
-            .setSessionId(2L)
-            .setSourceHost(HostBuilder.getDefaultInstance("0.0.0.0"))
-            .setUsername("admin")
-            .build();
-
-    @Mock
-    private NetconfManagementSession sessionMock1;
-    @Mock
-    private NetconfManagementSession sessionMock2;
-    @Mock
-    private NetconfMonitoringService.SessionsListener listener;
-    @Mock
-    private BaseNotificationPublisherRegistration notificationPublisher;
-
-    private NetconfSessionMonitoringService monitoringService;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-
-        doReturn(SESSION_1).when(sessionMock1).toManagementSession();
-        doReturn(SESSION_2).when(sessionMock2).toManagementSession();
-        doNothing().when(listener).onSessionStarted(any());
-        doNothing().when(listener).onSessionEnded(any());
-
-        doNothing().when(notificationPublisher).onCapabilityChanged(any());
-        doNothing().when(notificationPublisher).onSessionStarted(any());
-        doNothing().when(notificationPublisher).onSessionEnded(any());
-
-        monitoringService = new NetconfSessionMonitoringService(Optional.absent(), 0);
-        monitoringService.registerListener(listener);
-    }
-
-    @Test
-    public void testListeners() throws Exception {
-        monitoringService.onSessionUp(sessionMock1);
-        HashSet<Capability> added = new HashSet<>();
-        added.add(new BasicCapability("toAdd"));
-        monitoringService.onSessionDown(sessionMock1);
-        verify(listener).onSessionStarted(any());
-        verify(listener).onSessionEnded(any());
-    }
-
-
-    @Test
-    public void testClose() throws Exception {
-        monitoringService.onSessionUp(sessionMock1);
-        Assert.assertFalse(monitoringService.getSessions().getSession().isEmpty());
-        monitoringService.close();
-        Assert.assertTrue(monitoringService.getSessions().getSession().isEmpty());
-    }
-
-
-    @Test
-    public void testOnSessionUpAndDown() throws Exception {
-        monitoringService.onSessionUp(sessionMock1);
-        ArgumentCaptor<Session> sessionUpCaptor = ArgumentCaptor.forClass(Session.class);
-        verify(listener).onSessionStarted(sessionUpCaptor.capture());
-        final Session sesionUp = sessionUpCaptor.getValue();
-        Assert.assertEquals(SESSION_1.getSessionId(), sesionUp.getSessionId());
-        Assert.assertEquals(SESSION_1.getSourceHost(), sesionUp.getSourceHost());
-        Assert.assertEquals(SESSION_1.getUsername(), sesionUp.getUsername());
-
-        monitoringService.onSessionDown(sessionMock1);
-        ArgumentCaptor<Session> sessionDownCaptor = ArgumentCaptor.forClass(Session.class);
-        verify(listener).onSessionEnded(sessionDownCaptor.capture());
-        final Session sessionDown = sessionDownCaptor.getValue();
-        Assert.assertEquals(SESSION_1.getSessionId(), sessionDown.getSessionId());
-        Assert.assertEquals(SESSION_1.getSourceHost(), sessionDown.getSourceHost());
-        Assert.assertEquals(SESSION_1.getUsername(), sessionDown.getUsername());
-    }
-
-    @Test
-    @SuppressWarnings("unchecked")
-    public void testListenerUpdateSession() throws Exception {
-        ScheduledThreadPool threadPool = mock(ScheduledThreadPool.class);
-        ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
-        doReturn(executor).when(threadPool).getExecutor();
-        monitoringService = new NetconfSessionMonitoringService(Optional.of(threadPool), 1);
-        monitoringService.registerListener(listener);
-        monitoringService.onSessionUp(sessionMock1);
-        monitoringService.onSessionUp(sessionMock2);
-        monitoringService.onSessionEvent(SessionEvent.inRpcSuccess(sessionMock1));
-        ArgumentCaptor<Collection> captor =
-                ArgumentCaptor.forClass(Collection.class);
-        verify(listener, timeout(2000)).onSessionsUpdated(captor.capture());
-        final Collection<Session> value = captor.getValue();
-        Assert.assertTrue(value.contains(SESSION_1));
-        Assert.assertFalse(value.contains(SESSION_2));
-        monitoringService.close();
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandlerTest.java b/tests/honeynode/2.2.1/netconf-impl/src/test/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandlerTest.java
deleted file mode 100644 (file)
index ec98700..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.netconf.impl.util;
-
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.anyObject;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelFuture;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.util.concurrent.GenericFutureListener;
-import org.junit.Before;
-import org.junit.Test;
-
-public class DeserializerExceptionHandlerTest {
-
-    private DeserializerExceptionHandler handler;
-    private ChannelFuture channelFuture;
-    private ChannelHandlerContext context;
-    private Channel channel;
-
-    @Before
-    public void setUp() throws Exception {
-        handler = new DeserializerExceptionHandler();
-        context = mock(ChannelHandlerContext.class);
-        channel = mock(Channel.class);
-        doReturn(channel).when(context).channel();
-        channelFuture = mock(ChannelFuture.class);
-        doReturn(channelFuture).when(channelFuture).addListener(any(GenericFutureListener.class));
-        doReturn(channelFuture).when(channel).writeAndFlush(anyObject());
-    }
-
-    @Test
-    public void testExceptionCaught() throws Exception {
-        handler.exceptionCaught(context, new Exception());
-        verify(context, times(1)).channel();
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/resources/getConfig_reply_unfiltered.xml b/tests/honeynode/2.2.1/netconf-impl/src/test/resources/getConfig_reply_unfiltered.xml
deleted file mode 100644 (file)
index 3c2765a..0000000
+++ /dev/null
@@ -1,439 +0,0 @@
-<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="m-2">
-  <data>
-    <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider:impl">
-          prefix:toaster-provider-impl
-        </type>
-        <name>toaster-provider-impl</name>
-        <notification-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-notification-service
-          </type>
-          <name>binding-notification-broker</name>
-        </notification-service>
-        <rpc-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-rpc-registry
-          </type>
-          <name>binding-rpc-broker</name>
-        </rpc-registry>
-        <data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-data-broker
-          </type>
-          <name>binding-data-broker</name>
-        </data-broker>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-          prefix:sal-netconf-connector
-        </type>
-        <name>controller-config</name>
-        <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">1830</port>
-        <connection-timeout-millis xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-          20000
-        </connection-timeout-millis>
-        <between-attempts-timeout-millis
-                xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">2000
-        </between-attempts-timeout-millis>
-        <sleep-factor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">1.5</sleep-factor>
-        <password xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</password>
-        <dom-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">
-            prefix:dom-broker-osgi-registry
-          </type>
-          <name>dom-broker</name>
-        </dom-registry>
-        <client-dispatcher xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf">
-            prefix:netconf-client-dispatcher
-          </type>
-          <name>global-netconf-dispatcher</name>
-        </client-dispatcher>
-        <username xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</username>
-        <address xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">127.0.0.1</address>
-        <processing-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadpool</type>
-          <name>global-netconf-processing-executor</name>
-        </processing-executor>
-        <tcp-only xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">false</tcp-only>
-        <binding-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-broker-osgi-registry
-          </type>
-          <name>binding-osgi-broker</name>
-        </binding-registry>
-        <max-connection-attempts xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">0
-        </max-connection-attempts>
-        <event-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-event-executor</type>
-          <name>global-event-executor</name>
-        </event-executor>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher">
-          prefix:netconf-client-dispatcher
-        </type>
-        <name>global-netconf-dispatcher</name>
-        <worker-thread-group xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-threadgroup</type>
-          <name>global-worker-group</name>
-        </worker-thread-group>
-        <timer xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-timer</type>
-          <name>global-timer</name>
-        </timer>
-        <boss-thread-group xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-threadgroup</type>
-          <name>global-boss-group</name>
-        </boss-thread-group>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:logback:config">prefix:logback</type>
-        <name>singleton</name>
-        <console-appenders xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <threshold-filter>ERROR</threshold-filter>
-          <name>STDOUT</name>
-          <encoder-pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level %logger{36} - %msg%n</encoder-pattern>
-        </console-appenders>
-        <file-appenders xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <append>true</append>
-          <file-name>logs/audit.log</file-name>
-          <name>audit-file</name>
-          <encoder-pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} %msg %n</encoder-pattern>
-        </file-appenders>
-        <loggers xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <level>WARN</level>
-          <logger-name>org.opendaylight.controller.logging.bridge</logger-name>
-        </loggers>
-        <loggers xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <level>INFO</level>
-          <logger-name>audit</logger-name>
-          <appenders>audit-file</appenders>
-        </loggers>
-        <loggers xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <level>ERROR</level>
-          <logger-name>ROOT</logger-name>
-          <appenders>STDOUT</appenders>
-          <appenders>opendaylight.log</appenders>
-        </loggers>
-        <loggers xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <level>INFO</level>
-          <logger-name>org.opendaylight</logger-name>
-        </loggers>
-        <loggers xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <level>INFO</level>
-          <logger-name>org.opendaylight.yangtools.yang.parser.util.ModuleDependencySort</logger-name>
-          <appenders>opendaylight.log</appenders>
-        </loggers>
-        <loggers xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <level>TRACE</level>
-          <logger-name>org.opendaylight.controller.netconf</logger-name>
-        </loggers>
-        <loggers xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <level>WARN</level>
-          <logger-name>io.netty</logger-name>
-        </loggers>
-        <rolling-appenders xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
-          <append>true</append>
-          <max-file-size>10MB</max-file-size>
-          <file-name>logs/opendaylight.log</file-name>
-          <name>opendaylight.log</name>
-          <file-name-pattern>logs/opendaylight.%d.log.zip</file-name-pattern>
-          <encoder-pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level %logger{35} - %msg%n</encoder-pattern>
-          <clean-history-on-start>false</clean-history-on-start>
-          <max-history>1</max-history>
-          <rolling-policy-type>TimeBasedRollingPolicy</rolling-policy-type>
-        </rolling-appenders>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:shutdown:impl">prefix:shutdown</type>
-        <name>shutdown</name>
-        <secret xmlns="urn:opendaylight:params:xml:ns:yang:controller:shutdown:impl"/>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty:timer">
-          prefix:netty-hashed-wheel-timer
-        </type>
-        <name>global-timer</name>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup">
-          prefix:netty-threadgroup-fixed
-        </type>
-        <name>global-boss-group</name>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup">
-          prefix:netty-threadgroup-fixed
-        </type>
-        <name>global-worker-group</name>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">
-          prefix:schema-service-singleton
-        </type>
-        <name>yang-schema-service</name>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:dom-broker-impl
-        </type>
-        <name>inmemory-dom-broker</name>
-        <async-data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-async-data-broker
-          </type>
-          <name>inmemory-data-broker</name>
-        </async-data-broker>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">
-          prefix:dom-inmemory-data-broker
-        </type>
-        <name>inmemory-data-broker</name>
-        <schema-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:schema-service</type>
-          <name>yang-schema-service</name>
-        </schema-service>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible">
-          prefix:threadpool-flexible
-        </type>
-        <name>global-netconf-processing-executor</name>
-        <threadFactory xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadfactory</type>
-          <name>global-netconf-processing-executor-threadfactory</name>
-        </threadFactory>
-        <minThreadCount xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible">1
-        </minThreadCount>
-        <max-thread-count xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible">4
-        </max-thread-count>
-        <keepAliveMillis xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible">600000
-        </keepAliveMillis>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor">
-          prefix:netty-global-event-executor
-        </type>
-        <name>singleton</name>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          prefix:binding-broker-impl
-        </type>
-        <name>binding-broker-impl</name>
-        <notification-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-notification-service
-          </type>
-          <name>binding-notification-broker</name>
-        </notification-service>
-        <data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-data-broker
-          </type>
-          <name>binding-data-broker</name>
-        </data-broker>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          prefix:runtime-generated-mapping
-        </type>
-        <name>runtime-mapping-singleton</name>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          prefix:binding-notification-broker
-        </type>
-        <name>binding-notification-broker</name>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          prefix:binding-data-compatible-broker
-        </type>
-        <name>inmemory-binding-data-broker</name>
-        <dom-async-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">
-            prefix:dom-broker-osgi-registry
-          </type>
-          <name>dom-broker</name>
-        </dom-async-broker>
-        <binding-mapping-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-            prefix:binding-dom-mapping-service
-          </type>
-          <name>runtime-mapping-singleton</name>
-        </binding-mapping-service>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">
-          prefix:threadfactory-naming
-        </type>
-        <name>global-netconf-processing-executor-threadfactory</name>
-        <name-prefix xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">
-          remote-connector-processing-executor
-        </name-prefix>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:kitchen-service:impl">
-          prefix:kitchen-service-impl
-        </type>
-        <name>kitchen-service-impl</name>
-        <notification-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:kitchen-service:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-notification-service
-          </type>
-          <name>binding-notification-broker</name>
-        </notification-service>
-        <rpc-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:kitchen-service:impl">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-            prefix:binding-rpc-registry
-          </type>
-          <name>binding-rpc-broker</name>
-        </rpc-registry>
-      </module>
-      <module>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote:rpc">
-          prefix:remote-zeromq-rpc-server
-        </type>
-        <name>remoter</name>
-        <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote:rpc">5666</port>
-        <dom-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote:rpc">
-          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">
-            prefix:dom-broker-osgi-registry
-          </type>
-          <name>dom-broker</name>
-        </dom-broker>
-      </module>
-    </modules>
-    <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:schema-service</type>
-        <instance>
-          <name>yang-schema-service</name>
-          <provider>/modules/module[type='schema-service-singleton'][name='yang-schema-service']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry
-        </type>
-        <instance>
-          <name>dom-broker</name>
-          <provider>/modules/module[type='dom-broker-impl'][name='inmemory-dom-broker']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-async-data-broker
-        </type>
-        <instance>
-          <name>inmemory-data-broker</name>
-          <provider>/modules/module[type='dom-inmemory-data-broker'][name='inmemory-data-broker']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadpool</type>
-        <instance>
-          <name>global-netconf-processing-executor</name>
-          <provider>/modules/module[type='threadpool-flexible'][name='global-netconf-processing-executor']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadfactory</type>
-        <instance>
-          <name>global-netconf-processing-executor-threadfactory</name>
-          <provider>
-            /modules/module[type='threadfactory-naming'][name='global-netconf-processing-executor-threadfactory']
-          </provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-          prefix:binding-dom-mapping-service
-        </type>
-        <instance>
-          <name>runtime-mapping-singleton</name>
-          <provider>/modules/module[type='runtime-generated-mapping'][name='runtime-mapping-singleton']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-timer</type>
-        <instance>
-          <name>global-timer</name>
-          <provider>/modules/module[type='netty-hashed-wheel-timer'][name='global-timer']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-threadgroup</type>
-        <instance>
-          <name>global-boss-group</name>
-          <provider>/modules/module[type='netty-threadgroup-fixed'][name='global-boss-group']</provider>
-        </instance>
-        <instance>
-          <name>global-worker-group</name>
-          <provider>/modules/module[type='netty-threadgroup-fixed'][name='global-worker-group']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-event-executor</type>
-        <instance>
-          <name>global-event-executor</name>
-          <provider>/modules/module[type='netty-global-event-executor'][name='singleton']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-rpc-registry
-        </type>
-        <instance>
-          <name>binding-rpc-broker</name>
-          <provider>/modules/module[type='binding-broker-impl'][name='binding-broker-impl']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-          prefix:binding-notification-service
-        </type>
-        <instance>
-          <name>binding-notification-broker</name>
-          <provider>/modules/module[type='binding-notification-broker'][name='binding-notification-broker']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-          prefix:binding-broker-osgi-registry
-        </type>
-        <instance>
-          <name>binding-osgi-broker</name>
-          <provider>/modules/module[type='binding-broker-impl'][name='binding-broker-impl']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-data-broker
-        </type>
-        <instance>
-          <name>binding-data-broker</name>
-          <provider>/modules/module[type='binding-data-compatible-broker'][name='inmemory-binding-data-broker']
-          </provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:kitchen-service:impl">
-          prefix:kitchen-service
-        </type>
-        <instance>
-          <name>kitchen-service</name>
-          <provider>/modules/module[type='kitchen-service-impl'][name='kitchen-service-impl']</provider>
-        </instance>
-      </service>
-      <service>
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf">
-          prefix:netconf-client-dispatcher
-        </type>
-        <instance>
-          <name>global-netconf-dispatcher</name>
-          <provider>/modules/module[type='netconf-client-dispatcher'][name='global-netconf-dispatcher']</provider>
-        </instance>
-      </service>
-    </services>
-  </data>
-</rpc-reply>
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/test/resources/logback-test.xml b/tests/honeynode/2.2.1/netconf-impl/src/test/resources/logback-test.xml
deleted file mode 100644 (file)
index 955fda7..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<configuration scan="true">
-
-  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-    <encoder>
-      <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level %logger{36} - %msg%n</pattern>
-    </encoder>
-  </appender>
-
-  <root level="error">
-    <appender-ref ref="STDOUT" />
-  </root>
-  <logger name="org.opendaylight.controller.netconf" level="INFO"/>
-</configuration>
diff --git a/tests/honeynode/2.2.1/netconf/asciidoc/Readme.adoc b/tests/honeynode/2.2.1/netconf/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index 525b0b4..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-= netconf
-
-Provides binding support to start NETCONF SSH/TCP
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/netconf/pom.xml b/tests/honeynode/2.2.1/netconf/pom.xml
deleted file mode 100644 (file)
index 534c832..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Copyright (c) 2017 Cisco and/or its affiliates.
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at:
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>impl-parent</artifactId>
-        <groupId>io.fd.honeycomb.common</groupId>
-        <version>1.19.04</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>io.fd.honeycomb.transportpce</groupId>
-    <artifactId>netconf</artifactId>
-    <name>${project.artifactId}</name>
-    <properties>
-        <yang.modules.whitelist>
-            ${project.basedir}/src/main/resources/honeycomb-minimal-resources/config/netconf-whitelist.xml
-        </yang.modules.whitelist>
-         <honeycomb.version>1.19.04</honeycomb.version>
-        <java.version>11</java.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <maven.javadoc.skip>true</maven.javadoc.skip>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-    </properties>
-    <dependencies>
-        <!-- DI-->
-        <dependency>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>net.jmob</groupId>
-            <artifactId>guice.conf</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.inject.extensions</groupId>
-            <artifactId>guice-multibindings</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>binding-init</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.transportpce</groupId>
-            <artifactId>minimal-distribution-core</artifactId>
-            <version>1.19.04</version>
-        </dependency>
-        <!-- Northbound -->
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound</groupId>
-            <artifactId>common</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- ODL-Netconf -->
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>netconf-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>mdsal-netconf-ssh</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>mdsal-netconf-notification</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>mdsal-netconf-monitoring</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>mdsal-netconf-connector</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>ietf-netconf-monitoring</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>ietf-netconf-monitoring-extension</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>data-impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>honeycomb-impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>notification-impl</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-    </dependencies>
- <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.8.1</version>
-                    <configuration>
-                        <source>${java.version}</source>
-                        <target>${java.version}</target>
-                    </configuration>
-                </plugin>
-
-                <!--This plugin's configuration is used to store Eclipse m2e settings
-                    only. It has no influence on the Maven build itself. -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmaven</groupId>
-                                        <artifactId>groovy-maven-plugin</artifactId>
-                                        <versionRange>[2.0,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-checkstyle-plugin</artifactId>
-                                        <versionRange>[3.0.0,)</versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-dependency-plugin</artifactId>
-                                        <versionRange>[2.10,)</versionRange>
-                                        <goals>
-                                            <goal>copy-dependencies</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmavenplus</groupId>
-                                        <artifactId>gmavenplus-plugin</artifactId>
-                                        <versionRange>[1.6.2,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
diff --git a/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/HoneycombNotification2NetconfProvider.java b/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/HoneycombNotification2NetconfProvider.java
deleted file mode 100644 (file)
index 30f8404..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-import io.fd.honeycomb.notification.NotificationCollector;
-import io.fd.honeycomb.notification.impl.NotificationProducerRegistry;
-import io.fd.honeycomb.notification.impl.TranslationUtil;
-import java.util.List;
-import java.util.stream.Collectors;
-import javax.annotation.Nonnull;
-import org.opendaylight.mdsal.dom.api.DOMNotification;
-import org.opendaylight.mdsal.dom.api.DOMNotificationListener;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter;
-import org.opendaylight.netconf.notifications.NetconfNotificationCollector;
-import org.opendaylight.netconf.notifications.NotificationPublisherRegistration;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.notification._1._0.rev080714.StreamNameType;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.StreamBuilder;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class HoneycombNotification2NetconfProvider
-        extends ProviderTrait<HoneycombNotification2NetconfProvider.HoneycombNotification2Netconf> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(HoneycombNotification2NetconfProvider.class);
-
-    @Inject
-    private DOMNotificationRouter notificationRouter;
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    private NetconfConfiguration cfgAttributes;
-    @Inject
-    private NotificationCollector hcNotificationCollector;
-    @Inject
-    private NetconfNotificationCollector netconfNotificationCollector;
-
-    @Override
-    protected HoneycombNotification2Netconf create() {
-        final StreamNameType streamType = new StreamNameType(cfgAttributes.netconfNotificationStreamName.get());
-
-        // Register as HONEYCOMB_NETCONF notification publisher under configured name
-        final NotificationPublisherRegistration netconfNotifReg = netconfNotificationCollector
-                .registerNotificationPublisher(new StreamBuilder().setName(streamType).setReplaySupport(false)
-                        .setDescription(cfgAttributes.netconfNotificationStreamName.get()).build());
-
-        // Notification Translator, get notification from HC producers and put into HONEYCOMB_NETCONF notification collector
-        final DOMNotificationListener domNotificationListener =
-                new TranslatingNotificationListener(netconfNotifReg, streamType, schemaService);
-
-        // NotificationManager is used to provide list of available notifications (which are all of the notifications registered)
-        // TODO HONEYCOMB-165 make available notifications configurable here so that any number of notification streams for netconf
-        // can be configured on top of a single notification manager
-        LOG.debug("Current notifications to be exposed over HONEYCOMB_NETCONF: {}",
-                hcNotificationCollector.getNotificationTypes());
-        List<SchemaPath> currentNotificationSchemaPaths = hcNotificationCollector.getNotificationTypes().stream()
-                .map(notifType -> SchemaPath.create(true, NotificationProducerRegistry.getQName(notifType)))
-                .collect(Collectors.toList());
-
-        // Register as listener to HC'OPERATIONAL DOM notification service
-        // TODO HONEYCOMB-166 This should only be triggered when HONEYCOMB_NETCONF notifications are activated
-        // Because this way we actually start all notification producers
-        // final Collection<QName> notificationQNames =
-        ListenerRegistration<DOMNotificationListener> domNotifListenerReg = notificationRouter
-                .registerNotificationListener(domNotificationListener, currentNotificationSchemaPaths);
-
-        LOG.info("Exposing HONEYCOMB_NETCONF notification stream: {}", streamType.getValue());
-        return new HoneycombNotification2Netconf(domNotifListenerReg, netconfNotifReg);
-    }
-
-    public static final class HoneycombNotification2Netconf {
-        private final ListenerRegistration<DOMNotificationListener> domNotifListenerReg;
-        private final NotificationPublisherRegistration netconfNotifReg;
-
-        public HoneycombNotification2Netconf(final ListenerRegistration<DOMNotificationListener> domNotifListenerReg,
-                                             final NotificationPublisherRegistration netconfNotifReg) {
-            this.domNotifListenerReg = domNotifListenerReg;
-            this.netconfNotifReg = netconfNotifReg;
-        }
-
-        public ListenerRegistration<DOMNotificationListener> getDomNotifListenerReg() {
-            return domNotifListenerReg;
-        }
-
-        public NotificationPublisherRegistration getNetconfNotifReg() {
-            return netconfNotifReg;
-        }
-    }
-
-    private static final class TranslatingNotificationListener implements DOMNotificationListener {
-
-        private static final Logger LOG = LoggerFactory.getLogger(TranslatingNotificationListener.class);
-
-        private final NotificationPublisherRegistration netconfNotifReg;
-        private final StreamNameType streamType;
-        private final DOMSchemaService schemaService;
-
-        TranslatingNotificationListener(final NotificationPublisherRegistration netconfNotifReg,
-                                               final StreamNameType streamType, final DOMSchemaService schemaService) {
-            this.netconfNotifReg = netconfNotifReg;
-            this.streamType = streamType;
-            this.schemaService = schemaService;
-        }
-
-        @Override
-        public void onNotification(@Nonnull final DOMNotification notif) {
-            LOG.debug("Propagating notification: {} into HONEYCOMB_NETCONF", notif.getType());
-            netconfNotifReg.onNotification(streamType, TranslationUtil.notificationToXml(notif, schemaService.getGlobalContext()));
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfBindingBrokerProvider.java b/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfBindingBrokerProvider.java
deleted file mode 100644 (file)
index 5b9dd9e..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.impl.FakeBindingAwareBroker;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-
-public final class NetconfBindingBrokerProvider extends ProviderTrait<BindingAwareBroker> {
-
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF)
-    private DataBroker dataBroker;
-
-    @Override
-    protected FakeBindingAwareBroker create() {
-        return new FakeBindingAwareBroker(dataBroker);
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfConfigurationModule.java b/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfConfigurationModule.java
deleted file mode 100644 (file)
index aba254b..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.AbstractModule;
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-public class NetconfConfigurationModule extends AbstractModule {
-    @Override
-    protected void configure() {
-        install(ConfigurationModule.create());
-        requireBinding(NetconfConfiguration.class);
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMdsalMapperProvider.java b/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMdsalMapperProvider.java
deleted file mode 100644 (file)
index 3aff26a..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.api.DOMRpcService;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.opendaylight.netconf.mdsal.connector.MdsalNetconfOperationServiceFactory;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.binding.init.ProviderTrait;
-
-public final class NetconfMdsalMapperProvider extends ProviderTrait<NetconfOperationServiceFactory> {
-
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    private NetconfOperationServiceFactoryListener aggregator;
-    @Inject
-    // @Named(HONEYCOMB_CONFIG)
-    // Modified in order to connect TPCE to device config datastore
-    @Named("device-databroker")
-    private DOMDataBroker domBroker;
-    @Inject
-    private NetconfOperationServiceFactoryListener netconfOperationServiceFactoryListener;
-    @Inject
-    private DOMRpcService rpcService;
-
-    @Override
-    protected MdsalNetconfOperationServiceFactory create() {
-        return new MdsalNetconfOperationServiceFactory(schemaService, netconfOperationServiceFactoryListener, domBroker,
-                rpcService);
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfModule.java b/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfModule.java
deleted file mode 100644 (file)
index 503731b..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Singleton;
-import com.google.inject.binder.AnnotatedElementBuilder;
-import com.google.inject.name.Names;
-import io.fd.honeycomb.infra.distro.data.BindingDataBrokerProvider;
-import io.fd.honeycomb.infra.distro.data.DataStoreProvider;
-import io.fd.honeycomb.infra.distro.data.HoneycombNotificationManagerProvider;
-import io.fd.honeycomb.infra.distro.data.InmemoryDOMDataBrokerProvider;
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-import io.fd.honeycomb.northbound.NorthboundPrivateModule;
-import io.fd.honeycomb.notification.NotificationCollector;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.util.HashedWheelTimer;
-import io.netty.util.Timer;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
-import org.opendaylight.netconf.api.NetconfServerDispatcher;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.opendaylight.netconf.mdsal.notification.impl.NetconfNotificationManager;
-import org.opendaylight.netconf.notifications.NetconfNotificationCollector;
-import org.opendaylight.netconf.notifications.NetconfNotificationListener;
-import org.opendaylight.netconf.notifications.NetconfNotificationRegistry;
-import org.opendaylight.netconf.ssh.NetconfNorthboundSshServer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class NetconfModule extends NorthboundPrivateModule<NetconfConfiguration> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfModule.class);
-
-    public static final String HONEYCOMB_NETCONF = "honeycomb-netconf";
-    public static final String HONEYCOMB_NETCONF_MAPPER_AGGR = "netconf-mapper-aggregator";
-    public static final String HONEYCOMB_NETCONF_MAPPER_NOTIF = "netconf-mapper-notification";
-    public static final String HONEYCOMB_NETCONF_MAPPER_CORE = "netconf-mapper-honeycomb";
-    public static final String HONEYCOMB_NETCONF_MAPPER_OPER = "netconf-mapper-monitoring";
-
-    public NetconfModule() {
-        super(new NetconfConfigurationModule(), NetconfConfiguration.class);
-    }
-
-    @Override
-    protected void configure() {
-        if (!getConfiguration().isNetconfEnabled()) {
-            LOG.debug("Netconf disabled, skipping initialization");
-            return;
-        }
-        install(getConfigurationModule());
-        LOG.info("Starting NETCONF Northbound");
-        // Create inmemory data store for HONEYCOMB_NETCONF config metadata
-        bind(InMemoryDOMDataStore.class).annotatedWith(Names.named(InmemoryDOMDataBrokerProvider.CONFIG))
-                .toProvider(
-                        new DataStoreProvider(InmemoryDOMDataBrokerProvider.CONFIG, org.opendaylight.mdsal.common.api.LogicalDatastoreType.CONFIGURATION))
-                .in(Singleton.class);
-
-        // Create inmemory data store for HONEYCOMB_NETCONF operational metadata
-        bind(InMemoryDOMDataStore.class).annotatedWith(Names.named(InmemoryDOMDataBrokerProvider.OPERATIONAL))
-                .toProvider(new DataStoreProvider(InmemoryDOMDataBrokerProvider.OPERATIONAL, org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL
-                ))
-                .in(Singleton.class);
-        // Wrap datastores as DOMDataBroker
-        bind(DOMDataBroker.class).toProvider(InmemoryDOMDataBrokerProvider.class).in(Singleton.class);
-
-        // Wrap DOMDataBroker as BA data broker
-        bind(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_NETCONF)).toProvider(BindingDataBrokerProvider.class)
-                .in(Singleton.class);
-        expose(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_NETCONF));
-
-        // Wrap BA data broker as BindingAwareBroker (requied by HONEYCOMB_NETCONF)
-        bind(BindingAwareBroker.class).annotatedWith(Names.named(HONEYCOMB_NETCONF))
-                .toProvider(NetconfBindingBrokerProvider.class).in(Singleton.class);
-
-        // Create netconf operation service factory aggregator to aggregate different services
-        AggregatedNetconfOperationServiceFactory factory = new AggregatedNetconfOperationServiceFactory();
-        bind(NetconfOperationServiceFactory.class).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_AGGR))
-                .toInstance(factory);
-        bind(NetconfOperationServiceFactoryListener.class).toInstance(factory);
-
-        // Create netconf notification manager
-        NetconfNotificationManager manager = new NetconfNotificationManager();
-        bind(NetconfNotificationCollector.class).toInstance(manager);
-        bind(NetconfNotificationRegistry.class).toInstance(manager);
-        bind(NetconfNotificationListener.class).toInstance(manager);
-
-        // Netconf notification service factory
-        bind(NetconfOperationServiceFactory.class).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_NOTIF))
-                .toProvider(NetconfNotificationMapperProvider.class).asEagerSingleton();
-        expose(NetconfOperationServiceFactory.class).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_NOTIF));
-
-        // Netconf core part - mapping between Honeycomb and Netconf
-        bind(NetconfOperationServiceFactory.class).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_CORE))
-                .toProvider(NetconfMdsalMapperProvider.class).asEagerSingleton();
-        expose(NetconfOperationServiceFactory.class).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_CORE));
-
-        // Netconf monitoring service factory
-        bind(NetconfMonitoringService.class).toProvider(NetconfMonitoringServiceProvider.class).in(Singleton.class);
-        bind(NetconfOperationServiceFactory.class).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_OPER))
-                .toProvider(NetconfMonitoringMapperProvider.class).asEagerSingleton();
-        expose(NetconfOperationServiceFactory.class).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_OPER));
-
-        // Create HC notification manager + HC2Netconf translator
-        bind(NotificationCollector.class).toProvider(HoneycombNotificationManagerProvider.class).in(Singleton.class);
-        bind(HoneycombNotification2NetconfProvider.HoneycombNotification2Netconf.class)
-                .toProvider(HoneycombNotification2NetconfProvider.class).asEagerSingleton();
-        expose(HoneycombNotification2NetconfProvider.HoneycombNotification2Netconf.class);
-
-        configureServer();
-    }
-
-    /**
-     * Provide HONEYCOMB_NETCONF TCP and SSH servers.
-     */
-    private AnnotatedElementBuilder configureServer() {
-        bind(NioEventLoopGroup.class).toProvider(NettyThreadGroupProvider.class).in(Singleton.class);
-        bind(Timer.class).toInstance(new HashedWheelTimer());
-        bind(NetconfServerDispatcher.class).toProvider(NetconfServerDispatcherProvider.class).in(Singleton.class);
-        bind(NetconfTcpServerProvider.NetconfTcpServer.class).toProvider(NetconfTcpServerProvider.class)
-                .asEagerSingleton();
-        expose(NetconfTcpServerProvider.NetconfTcpServer.class);
-        bind(NetconfNorthboundSshServer.class).toProvider(NetconfSshServerProvider.class).asEagerSingleton();
-        return expose(NetconfNorthboundSshServer.class);
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringMapperProvider.java b/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringMapperProvider.java
deleted file mode 100644 (file)
index 3cea742..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.controller.config.yang.netconf.mdsal.monitoring.MdsalMonitoringMapperFactory;
-import org.opendaylight.controller.config.yang.netconf.mdsal.monitoring.MonitoringToMdsalWriter;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class NetconfMonitoringMapperProvider extends ProviderTrait<NetconfOperationServiceFactory> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfMonitoringMapperProvider.class);
-
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF)
-    private DataBroker dataBroker;
-    @Inject
-    private NetconfOperationServiceFactoryListener aggregator;
-    @Inject
-    private NetconfMonitoringService monitoringService;
-
-    @Override
-    protected NetconfOperationServiceFactory create() {
-        LOG.trace("Initializing MonitoringToMdsalWriter");
-        final MonitoringToMdsalWriter writer = new MonitoringToMdsalWriter(monitoringService, dataBroker);
-        writer.start();
-
-        LOG.trace("Providing MdsalMonitoringMapperFactory");
-        return new MdsalMonitoringMapperFactory(aggregator, monitoringService, writer);
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringReaderFactoryProvider.java b/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringReaderFactoryProvider.java
deleted file mode 100644 (file)
index 3ea7839..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
-import io.fd.honeycomb.translate.util.read.BindingBrokerReader;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfState;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfStateBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-
-public final class NetconfMonitoringReaderFactoryProvider extends ProviderTrait<ReaderFactory> {
-
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF)
-    private DataBroker netconfDataBroker;
-
-    @Override
-    protected NetconfMonitoringReaderFactory create() {
-        return new NetconfMonitoringReaderFactory(netconfDataBroker);
-    }
-
-    /**
-     * {@link io.fd.honeycomb.translate.read.ReaderFactory} initiating reader into NETCONF's dedicated data store.
-     * Making NETCONF operational data available over NETCONF/RESTCONF
-     */
-    private static final class NetconfMonitoringReaderFactory implements ReaderFactory {
-
-        private final DataBroker netconfMonitoringBindingBrokerDependency;
-
-        NetconfMonitoringReaderFactory(final DataBroker netconfMonitoringBindingBrokerDependency) {
-            this.netconfMonitoringBindingBrokerDependency = netconfMonitoringBindingBrokerDependency;
-        }
-
-        @Override
-        public void init(final ModifiableReaderRegistryBuilder registry) {
-            registry.add(new BindingBrokerReader<>(InstanceIdentifier.create(NetconfState.class),
-                    netconfMonitoringBindingBrokerDependency, OPERATIONAL, NetconfStateBuilder.class));
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringServiceProvider.java b/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMonitoringServiceProvider.java
deleted file mode 100644 (file)
index 1a99dd1..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.impl.osgi.NetconfMonitoringServiceImpl;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-
-
-public class NetconfMonitoringServiceProvider extends ProviderTrait<NetconfMonitoringService> {
-
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF_MAPPER_AGGR)
-    private NetconfOperationServiceFactory aggregator;
-
-    @Override
-    protected NetconfMonitoringServiceImpl create() {
-        return new NetconfMonitoringServiceImpl(aggregator);
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationMapperProvider.java b/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationMapperProvider.java
deleted file mode 100644 (file)
index 9289936..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.ShutdownHandler;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.opendaylight.netconf.mdsal.notification.impl.CapabilityChangeNotificationProducer;
-import org.opendaylight.netconf.mdsal.notification.impl.NetconfNotificationOperationServiceFactory;
-import org.opendaylight.netconf.mdsal.notification.impl.NotificationToMdsalWriter;
-import org.opendaylight.netconf.notifications.NetconfNotificationCollector;
-import org.opendaylight.netconf.notifications.NetconfNotificationRegistry;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfState;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-public class NetconfNotificationMapperProvider extends ProviderTrait<NetconfOperationServiceFactory> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfNotificationMapperProvider.class);
-
-    public static final InstanceIdentifier<Capabilities> capabilitiesIdentifier =
-            InstanceIdentifier.create(NetconfState.class).child(Capabilities.class).builder().build();
-    @Inject
-    private NetconfNotificationCollector notificationCollector;
-    @Inject
-    private NetconfNotificationRegistry notificationRegistry;
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF)
-    private BindingAwareBroker bindingAwareBroker;
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF)
-    private DataBroker dataBroker;
-    @Inject
-    private NetconfOperationServiceFactoryListener aggregator;
-    @Inject
-    private ShutdownHandler shutdownHandler;
-
-    @Override
-    protected NetconfNotificationOperationServiceFactory create() {
-        LOG.trace("Initializing NotificationToMdsalWriter");
-        final NotificationToMdsalWriter writer = new NotificationToMdsalWriter(notificationCollector, dataBroker);
-        writer.start();
-
-        LOG.trace("Initializing CapabilityChangeNotificationProducer");
-        final CapabilityChangeNotificationProducer capabilityChangeNotificationProducer =
-            new CapabilityChangeNotificationProducer(notificationCollector, dataBroker);
-
-        LOG.trace("Providing NetconfNotificationOperationServiceFactory");
-        final NetconfNotificationOperationServiceFactory netconfNotificationOperationServiceFactory =
-            new NetconfNotificationOperationServiceFactory(notificationRegistry, aggregator);
-
-        shutdownHandler.register("netconf-notification-service-factory", netconfNotificationOperationServiceFactory);
-        shutdownHandler.register("capability-change-notification-producer",
-            capabilityChangeNotificationProducer::close);
-        shutdownHandler.register("notification-to-mdsal-writer", writer);
-        return netconfNotificationOperationServiceFactory;
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationsReaderFactoryProvider.java b/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationsReaderFactoryProvider.java
deleted file mode 100644 (file)
index 70aa99b..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
-import io.fd.honeycomb.translate.util.read.BindingBrokerReader;
-import javax.annotation.Nonnull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.Netconf;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.NetconfBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-public final class NetconfNotificationsReaderFactoryProvider extends ProviderTrait<ReaderFactory> {
-
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF)
-    private DataBroker netconfDataBroker;
-
-    @Override
-    protected ReaderFactory create() {
-        return new NotificationReaderFactory(netconfDataBroker);
-    }
-
-    private static final class NotificationReaderFactory implements ReaderFactory {
-        private final DataBroker netconfDataBroker;
-
-        NotificationReaderFactory(final DataBroker netconfDataBroker) {
-            this.netconfDataBroker = netconfDataBroker;
-        }
-
-        @Override
-        public void init(@Nonnull final ModifiableReaderRegistryBuilder registry) {
-            registry.add(
-                    new BindingBrokerReader<>(InstanceIdentifier.create(Netconf.class), netconfDataBroker, OPERATIONAL,
-                            NetconfBuilder.class));
-        }
-
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfReadersModule.java b/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfReadersModule.java
deleted file mode 100644 (file)
index 377ce6e..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Singleton;
-import com.google.inject.multibindings.Multibinder;
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-import io.fd.honeycomb.northbound.NorthboundAbstractModule;
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class NetconfReadersModule extends NorthboundAbstractModule<NetconfConfiguration> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfReadersModule.class);
-
-    public NetconfReadersModule() {
-        super(new NetconfConfigurationModule(), NetconfConfiguration.class);
-    }
-
-    @Override
-    protected void configure() {
-        if (!getConfiguration().isNetconfEnabled()) {
-            LOG.debug("NETCONF Northbound disabled, skipping readers initialization");
-            return;
-        }
-        LOG.info("Initializing NETCONF Northbound readers");
-        // This should be part of NetconfModule, but that one is Private and Multibinders + private BASE_MODULES
-        // do not work together, that's why there's a dedicated module here
-        // https://github.com/google/guice/issues/906
-        final Multibinder<ReaderFactory> binder = Multibinder.newSetBinder(binder(), ReaderFactory.class);
-        binder.addBinding().toProvider(NetconfMonitoringReaderFactoryProvider.class).in(Singleton.class);
-        binder.addBinding().toProvider(NetconfNotificationsReaderFactoryProvider.class).in(Singleton.class);
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfServerDispatcherProvider.java b/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfServerDispatcherProvider.java
deleted file mode 100644 (file)
index 422b81c..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.util.Timer;
-import java.util.concurrent.TimeUnit;
-import org.opendaylight.netconf.api.NetconfServerDispatcher;
-import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.impl.NetconfServerDispatcherImpl;
-import org.opendaylight.netconf.impl.ServerChannelInitializer;
-import org.opendaylight.netconf.impl.SessionIdProvider;
-import org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-
-public final class NetconfServerDispatcherProvider extends ProviderTrait<NetconfServerDispatcher> {
-    private static final long CONNECTION_TIMEOUT_MILLIS = TimeUnit.SECONDS.toMillis(20);
-
-    @Inject
-    @Named(NetconfModule.HONEYCOMB_NETCONF_MAPPER_AGGR)
-    private NetconfOperationServiceFactory aggregator;
-    @Inject
-    private NetconfMonitoringService monitoringService;
-    @Inject
-    private Timer timer;
-    @Inject
-    private NioEventLoopGroup nettyThreadgroup;
-
-    @Override
-    protected NetconfServerDispatcherImpl create() {
-        AggregatedNetconfOperationServiceFactory netconfOperationProvider =
-                new AggregatedNetconfOperationServiceFactory();
-        netconfOperationProvider.onAddNetconfOperationServiceFactory(aggregator);
-
-        NetconfServerSessionNegotiatorFactory serverNegotiatorFactory =
-                new NetconfServerSessionNegotiatorFactory(timer, netconfOperationProvider, new SessionIdProvider(),
-                        CONNECTION_TIMEOUT_MILLIS, monitoringService);
-        ServerChannelInitializer serverChannelInitializer = new ServerChannelInitializer(serverNegotiatorFactory);
-
-        return new NetconfServerDispatcherImpl(serverChannelInitializer, nettyThreadgroup, nettyThreadgroup);
-    }
-
-    private static final class NetconfServerSessionNegotiatorFactory extends
-            org.opendaylight.netconf.impl.NetconfServerSessionNegotiatorFactory {
-
-        NetconfServerSessionNegotiatorFactory(final Timer timer,
-                                                     final AggregatedNetconfOperationServiceFactory netconfOperationProvider,
-                                                     final SessionIdProvider sessionIdProvider,
-                                                     final long connectionTimeoutMillis,
-                                                     final NetconfMonitoringService monitoringService) {
-            super(timer, netconfOperationProvider, sessionIdProvider, connectionTimeoutMillis, monitoringService,
-                    org.opendaylight.netconf.impl.NetconfServerSessionNegotiatorFactory.DEFAULT_BASE_CAPABILITIES);
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfSshServerProvider.java b/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfSshServerProvider.java
deleted file mode 100644 (file)
index dd4cbd3..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.ShutdownHandler;
-import io.fd.honeycomb.northbound.CredentialsConfiguration;
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.util.concurrent.GlobalEventExecutor;
-import org.opendaylight.netconf.api.NetconfServerDispatcher;
-import org.opendaylight.netconf.auth.AuthProvider;
-import org.opendaylight.netconf.ssh.NetconfNorthboundSshServer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class NetconfSshServerProvider extends ProviderTrait<NetconfNorthboundSshServer> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfSshServerProvider.class);
-
-    @Inject
-    private NetconfServerDispatcher dispatcher;
-    @Inject
-    private NetconfConfiguration cfgAttributes;
-    @Inject
-    private NioEventLoopGroup nettyThreadgroup;
-    @Inject
-    private CredentialsConfiguration credentialsCfg;
-    @Inject
-    private ShutdownHandler shutdownHandler;
-
-    @Override
-    protected NetconfNorthboundSshServer create() {
-        if (!cfgAttributes.isNetconfSshEnabled()) {
-            LOG.info("NETCONF SSH disabled, skipping initialization");
-            return null;
-        }
-        LOG.info("Starting NETCONF SSH");
-
-        final NetconfNorthboundSshServer netconfServer = new NetconfNorthboundSshServer(dispatcher, nettyThreadgroup,
-            GlobalEventExecutor.INSTANCE, cfgAttributes.netconfSshBindingAddress.get(),
-            cfgAttributes.netconfSshBindingPort.get().toString(), new SimplelAuthProvider(credentialsCfg));
-        shutdownHandler.register("netconf-northbound-ssh-server", netconfServer::close);
-        return netconfServer;
-    }
-
-    private static final class SimplelAuthProvider implements AuthProvider {
-
-        private final CredentialsConfiguration cfgAttributes;
-
-        SimplelAuthProvider(final CredentialsConfiguration cfgAttributes) {
-            this.cfgAttributes = cfgAttributes;
-        }
-
-        @Override
-        public boolean authenticated(final String uname, final String passwd) {
-            return cfgAttributes.username.equals(uname) && cfgAttributes.password.equals(passwd);
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfTcpServerProvider.java b/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfTcpServerProvider.java
deleted file mode 100644 (file)
index be270c5..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.common.net.InetAddresses;
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.ShutdownHandler;
-import io.fd.honeycomb.infra.distro.InitializationException;
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-import io.netty.channel.ChannelFuture;
-import io.netty.util.concurrent.GenericFutureListener;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import org.opendaylight.netconf.api.NetconfServerDispatcher;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class NetconfTcpServerProvider extends ProviderTrait<NetconfTcpServerProvider.NetconfTcpServer> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetconfTcpServerProvider.class);
-
-    @Inject
-    private NetconfServerDispatcher dispatcher;
-    @Inject
-    private NetconfConfiguration cfgAttributes;
-    @Inject
-    private ShutdownHandler shutdownHandler;
-
-    @Override
-    protected NetconfTcpServer create() {
-        if (!cfgAttributes.isNetconfTcpEnabled()) {
-            LOG.debug("NETCONF TCP disabled, skipping initalization");
-            return null;
-        }
-        LOG.info("Starting NETCONF TCP");
-        final InetAddress name = InetAddresses.forString(cfgAttributes.netconfTcpBindingAddress.get());
-        final InetSocketAddress unresolved = new InetSocketAddress(name, cfgAttributes.netconfTcpBindingPort.get());
-
-        ChannelFuture tcpServerFuture = dispatcher.createServer(unresolved);
-        tcpServerFuture.addListener(new TcpLoggingListener(unresolved));
-        final NetconfTcpServer tcpServer = new NetconfTcpServer(tcpServerFuture);
-        shutdownHandler.register("netconf-northbound-tcp-server", tcpServer);
-        return tcpServer;
-    }
-
-    public static final class NetconfTcpServer implements AutoCloseable {
-        private ChannelFuture channelFuture;
-
-        NetconfTcpServer(final ChannelFuture channelFuture) {
-            this.channelFuture = channelFuture;
-        }
-
-        @Override
-        public void close() throws Exception {
-            LOG.info("Stopping Netconf TCP server");
-            channelFuture.channel().close();
-            LOG.info("Netconf TCP server stopped successfully");
-        }
-    }
-
-    private static final class TcpLoggingListener implements GenericFutureListener<ChannelFuture> {
-        private final InetSocketAddress unresolved;
-
-        TcpLoggingListener(final InetSocketAddress unresolved) {
-            this.unresolved = unresolved;
-        }
-
-        @Override
-        public void operationComplete(ChannelFuture future) throws Exception {
-            if (future.isDone() && future.isSuccess()) {
-                LOG.info("Netconf TCP endpoint started successfully at {}", unresolved);
-            } else {
-                LOG.warn("Unable to start TCP netconf server at {}", unresolved, future.cause());
-                throw new InitializationException("Unable to start TCP netconf server", future.cause());
-            }
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NettyThreadGroupProvider.java b/tests/honeynode/2.2.1/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NettyThreadGroupProvider.java
deleted file mode 100644 (file)
index b36a31d..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.netconf;
-
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.northbound.NetconfConfiguration;
-import io.netty.channel.nio.NioEventLoopGroup;
-
-public final class NettyThreadGroupProvider extends ProviderTrait<NioEventLoopGroup> {
-
-    @Inject
-    private NetconfConfiguration cfgAttributes;
-
-    @Override
-    protected NioEventLoopGroup create() {
-        return new NioEventLoopGroup(cfgAttributes.netconfNettyThreads,
-                new ThreadFactoryBuilder().setNameFormat("netconf-netty-%d").build());
-    }
-}
diff --git a/tests/honeynode/2.2.1/netconf/src/main/resources/honeycomb-minimal-resources/config/netconf-whitelist.xml b/tests/honeynode/2.2.1/netconf/src/main/resources/honeycomb-minimal-resources/config/netconf-whitelist.xml
deleted file mode 100644 (file)
index 32e5ed0..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<yangModuleWhitelist>
-    <modules>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715</package>
-            <description>
-                This module contains a collection of generally useful derived
-                YANG data types for Internet addresses and related things.
-
-                Dependency for network-topology,ietf-netconf-notifications,network-topology
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621</package>
-            <description>
-                This module contains monitoring information about the YANG
-                modules and submodules that are used within a YANG-based
-                server.
-
-                Required for mounting of netconf devices(Operational read does not work without it)
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601</package>
-            <description>
-                NETCONF Protocol Data Types and Protocol Operations.
-
-                Dependency of ietf-netconf-notifications
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206
-            </package>
-            <description>
-                This module defines a YANG data model for use with the
-                NETCONF protocol that allows the NETCONF client to
-                receive common NETCONF base event notifications.
-
-                Directly used for netconf notification binding
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021</package>
-            <description>
-                Required for mounting of netconf devices(Operational read does not work without it)
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.notification._1._0.rev080714</package>
-            <description>
-                Conversion of the 'ncEvent' XSD in the
-                NETCONF Notifications RFC.
-
-                Directly used for netconf notification binding
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714</package>
-            <description>
-                Conversion of the 'manageEvent' XSD in the NETCONF
-                Notifications RFC.
-
-                Directly used for netconf notification binding
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004
-            </package>
-            <description>
-                NETCONF Monitoring Module.
-                All elements in this module are read-only.
-
-                Required for mounting of netconf devices(Operational read does not work without it)
-            </description>
-        </module>
-        <module>
-            <package>
-                org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210
-            </package>
-            <description>
-                Required for mounting of netconf devices(Operational read does not work without it)
-            </description>
-        </module>
-    </modules>
-</yangModuleWhitelist>
diff --git a/tests/honeynode/2.2.1/netconf/src/main/resources/honeycomb-minimal-resources/config/netconf.json b/tests/honeynode/2.2.1/netconf/src/main/resources/honeycomb-minimal-resources/config/netconf.json
deleted file mode 100644 (file)
index 459e902..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "netconf-netty-threads": 2,
-  "netconf-tcp-enabled": "true",
-  "netconf-tcp-binding-address": "127.0.0.1",
-  "netconf-tcp-binding-port": 7777,
-  "netconf-ssh-enabled": "true",
-  "netconf-ssh-binding-address": "0.0.0.0",
-  "netconf-ssh-binding-port": 2831,
-  "netconf-notification-stream-name": "honeycomb"
-}
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/pom.xml b/tests/honeynode/2.2.1/pom.xml
deleted file mode 100644 (file)
index 3c68a71..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (c) 2015 Cisco and/or its affiliates.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at:
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-  <groupId>io.fd.honeycomb.transportpce</groupId>
-  <artifactId>honeynode-plugin-aggregator</artifactId>
-  <version>1.19.04</version>
-  <name>honeynode-plugin-aggregator</name>
-  <packaging>pom</packaging>
-  <modelVersion>4.0.0</modelVersion>
-
-
- <modules>
-    <module>netconf-impl</module>
-    <module>netconf</module>
-    <module>restconf</module>
-    <module>minimal-distribution-core</module>
-    <module>minimal-distribution</module>
-    <module>honeynode-common</module>
-    <module>honeynode-plugin-api</module>
-    <module>honeynode-plugin-impl</module>
-    <module>honeynode-distribution</module>
-    
-  </modules>
-
-  <!-- DO NOT install or deploy the repo root pom as it's only needed to initiate a build -->
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-deploy-plugin</artifactId>
-        <configuration>
-          <skip>true</skip>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-install-plugin</artifactId>
-        <configuration>
-          <skip>true</skip>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
diff --git a/tests/honeynode/2.2.1/restconf/asciidoc/Readme.adoc b/tests/honeynode/2.2.1/restconf/asciidoc/Readme.adoc
deleted file mode 100644 (file)
index 957949a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-= restconf
-
-Provides modules and configuration for RESTCONF northbound interface.
-
-* To start RESTCONF HTTP use
- ** "restconf-http-enabled": "true"
-* To start RESTCONF HTTPS use
- ** "restconf-https-enabled": "true"
-* To disable RESTCONF start use
- ** "restconf-http-enabled": "false"
- ** "restconf-https-enabled": "false"
-* To disable RESTCONF fully
- ** comment/remove io.fd.honeycomb.northbound.restconf.RestconfModule
-from distribution module configuration
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/restconf/pom.xml b/tests/honeynode/2.2.1/restconf/pom.xml
deleted file mode 100644 (file)
index a9392a1..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ~ Copyright (c) 2017 Cisco and/or its affiliates. ~ ~ Licensed under
-    the Apache License, Version 2.0 (the "License"); ~ you may not use this file
-    except in compliance with the License. ~ You may obtain a copy of the License
-    at: ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by
-    applicable law or agreed to in writing, software ~ distributed under the
-    License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS
-    OF ANY KIND, either express or implied. ~ See the License for the specific
-    language governing permissions and ~ limitations under the License. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>impl-parent</artifactId>
-        <groupId>io.fd.honeycomb.common</groupId>
-        <version>1.19.04</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>io.fd.honeycomb.transportpce</groupId>
-    <artifactId>restconf</artifactId>
-    <name>${project.artifactId}</name>
-    <properties>
-        <jersey.version>1.19.4</jersey.version>
-        <glassfish-jersey.version>2.25.1</glassfish-jersey.version>
-        <servlet.version>3.1.0</servlet.version>
-        <jetty.version>9.3.21.v20170918</jetty.version>
-        <yang.modules.whitelist>
-            ${project.basedir}/src/main/resources/honeycomb-minimal-resources/config/restconf-whitelist.xml
-        </yang.modules.whitelist>
-        <honeycomb.version>1.19.04</honeycomb.version>
-        <java.version>11</java.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <maven.javadoc.skip>true</maven.javadoc.skip>
-        <guice.version>4.2.2</guice.version>
-        <guice.config.version>1.4.1</guice.config.version>
-    </properties>
-    <dependencies>
-        <!-- DI -->
-        <dependency>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>net.jmob</groupId>
-            <artifactId>guice.conf</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb</groupId>
-            <artifactId>binding-init</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.fd.honeycomb.transportpce</groupId>
-            <artifactId>minimal-distribution-core</artifactId>
-            <version>1.19.04</version>
-        </dependency>
-        <!-- Northbound common -->
-        <dependency>
-            <groupId>io.fd.honeycomb.northbound</groupId>
-            <artifactId>common</artifactId>
-            <version>${honeycomb.version}</version>
-        </dependency>
-        <!-- ODL-Restconf -->
-        <dependency>
-            <groupId>org.opendaylight.netconf</groupId>
-            <artifactId>restconf-nb-bierman02</artifactId>
-        </dependency>
-        <!-- Jersey + Jetty for RESTCONF -->
-        <dependency>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-server</artifactId>
-            <version>${jetty.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>javax.servlet-api</artifactId>
-            <version>${servlet.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-webapp</artifactId>
-            <version>${jetty.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-servlets</artifactId>
-            <version>${jetty.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish.jersey.core</groupId>
-            <artifactId>jersey-server</artifactId>
-            <version>${glassfish-jersey.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish.jersey.containers</groupId>
-            <artifactId>jersey-container-servlet-core</artifactId>
-            <version>${glassfish-jersey.version}</version>
-        </dependency>
-        <!-- javax.annotation -->
-        <dependency>
-            <groupId>com.google.code.findbugs</groupId>
-            <artifactId>jsr305</artifactId>
-        </dependency>
-    </dependencies>
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.8.1</version>
-                    <configuration>
-                        <source>${java.version}</source>
-                        <target>${java.version}</target>
-                    </configuration>
-                </plugin>                <!--This plugin's configuration is used to store Eclipse m2e settings
-                    only. It has no influence on the Maven build itself. -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmaven</groupId>
-                                        <artifactId>groovy-maven-plugin</artifactId>
-                                        <versionRange>[2.0,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-checkstyle-plugin</artifactId>
-                                        <versionRange>[3.0.0,)</versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-dependency-plugin</artifactId>
-                                        <versionRange>[2.10,)</versionRange>
-                                        <goals>
-                                            <goal>copy-dependencies</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.gmavenplus</groupId>
-                                        <artifactId>gmavenplus-plugin</artifactId>
-                                        <versionRange>[1.6.2,)</versionRange>
-                                        <goals>
-                                            <goal>execute</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <execute />
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
\ No newline at end of file
diff --git a/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/BrokerFacadeProvider.java b/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/BrokerFacadeProvider.java
deleted file mode 100644 (file)
index 1f825b3..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2018 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.mdsal.dom.api.DOMRpcService;
-import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter;
-import org.opendaylight.netconf.sal.restconf.impl.BrokerFacade;
-import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
-
-
-
-final class BrokerFacadeProvider extends ProviderTrait<BrokerFacade> {
-
-    @Inject
-    // @Named(ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG)
-    // Modified in order to connect TPCE to device config datastore
-    @Named("device-databroker")
-    private DOMDataBroker domDataBroker;
-    @Inject
-    private DOMRpcService rpcService;
-    @Inject
-    private DOMNotificationRouter notificationService;
-    @Inject
-    private ControllerContext controllerContext;
-
-    @Override
-    protected BrokerFacade create() {
-        return BrokerFacade.newInstance(rpcService, domDataBroker, notificationService, controllerContext);
-    }
-}
diff --git a/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/ControllerContextProvider.java b/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/ControllerContextProvider.java
deleted file mode 100644 (file)
index 3daef1e..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2018 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.mdsal.dom.api.DOMMountPointService;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
-
-final class ControllerContextProvider extends ProviderTrait<ControllerContext> {
-
-    @Inject
-    private DOMSchemaService schemaService;
-    @Inject
-    private DOMMountPointService mountPointService;
-
-    @Override
-    protected ControllerContext create() {
-        ControllerContext controllerCtx =
-                ControllerContext.newInstance(schemaService, mountPointService, schemaService);
-        return controllerCtx;
-    }
-}
diff --git a/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/HttpConnectorProvider.java b/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/HttpConnectorProvider.java
deleted file mode 100644 (file)
index 04a767c..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-final class HttpConnectorProvider extends ProviderTrait<ServerConnector> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(HttpConnectorProvider.class);
-
-    @Inject
-    private RestconfConfiguration cfg;
-    @Inject
-    private Server server;
-
-    @Override
-    protected ServerConnector create() {
-        if (!cfg.isRestconfHttpEnabled()) {
-            LOG.debug("RESTCONF HTTP disabled, skipping initialization");
-            return null;
-        }
-
-        LOG.info("Starting RESTCONF HTTP");
-        ServerConnector httpConnector = new ServerConnector(server, cfg.acceptorsSize.get(), cfg.selectorsSize.get());
-        httpConnector.setHost(cfg.restconfBindingAddress.get());
-        httpConnector.setPort(cfg.restconfPort.get());
-        server.addConnector(httpConnector);
-        return httpConnector;
-    }
-}
diff --git a/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/HttpsConnectorProvider.java b/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/HttpsConnectorProvider.java
deleted file mode 100644 (file)
index 662482a..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-
-import java.net.URL;
-
-import org.eclipse.jetty.http.HttpVersion;
-import org.eclipse.jetty.server.HttpConnectionFactory;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
-import org.eclipse.jetty.server.SslConnectionFactory;
-import org.eclipse.jetty.util.ssl.SslContextFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-final class HttpsConnectorProvider extends ProviderTrait<ServerConnector> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(HttpsConnectorProvider.class);
-
-    @Inject
-    private RestconfConfiguration cfg;
-    @Inject
-    private Server server;
-
-    @Override
-    protected ServerConnector create() {
-        if (!cfg.isRestconfHttpsEnabled()) {
-            LOG.debug("RESTCONF HTTPS disabled, skipping initialization");
-            return null;
-        }
-        LOG.info("Starting RESTCONF HTTPS");
-        // SSL Context Factory
-        // Based on:
-        // https://github.com/eclipse/jetty.project/blob/jetty-9.3.x/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java
-        // https://wiki.eclipse.org/Jetty/Howto/Configure_SSL#Loading_Keys_and_Certificates_via_PKCS12
-        // Keystore created with:
-        // openssl genrsa -des3 -out honeycomb.key
-        // openssl req -new -x509 -key honeycomb.key -out honeycomb.crt
-        // openssl pkcs12 -inkey honeycomb.key -in honeycomb.crt -export -out honeycomb.pkcs12
-        // keytool -importkeystore -srckeystore honeycomb.pkcs12 -srcstoretype PKCS12 -destkeystore honeycomb-keystore
-        SslContextFactory sslContextFactory = new SslContextFactory();
-        //CHECKSTYLE:OFF
-        URL keystoreURL = getClass().getResource(cfg.restconfKeystore.get());
-        sslContextFactory.setKeyStorePath(keystoreURL.getPath());
-        sslContextFactory.setKeyStorePassword(cfg.keystorePassword.get());
-        sslContextFactory.setKeyManagerPassword(cfg.keystoreManagerPassword.get());
-        URL truststoreURL = getClass().getResource(cfg.restconfTruststore.get());
-        //CHECKSTYLE:ON
-        sslContextFactory.setTrustStorePath(truststoreURL.getPath());
-        sslContextFactory.setTrustStorePassword(cfg.truststorePassword.get());
-        // TODO HONEYCOMB-167 make this more configurable
-        sslContextFactory.setExcludeCipherSuites("SSL_RSA_WITH_DES_CBC_SHA", "SSL_DHE_RSA_WITH_DES_CBC_SHA",
-                "SSL_DHE_DSS_WITH_DES_CBC_SHA", "SSL_RSA_EXPORT_WITH_RC4_40_MD5",
-                "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
-                "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA", "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA");
-
-        // SSL Connector
-        ServerConnector sslConnector =
-                new ServerConnector(server, cfg.httpsAcceptorsSize.get(), cfg.httpsSelectorsSize.get(),
-                        // The ssl connection factory delegates the real processing to http connection factory
-                        new SslConnectionFactory(sslContextFactory, HttpVersion.HTTP_1_1.asString()),
-                        // That's why http connection factory is also required here
-                        // Order is IMPORTANT here
-                        new HttpConnectionFactory()
-                );
-        sslConnector.setHost(cfg.restconfHttpsBindingAddress.get());
-        sslConnector.setPort(cfg.restconfHttpsPort.get());
-        server.addConnector(sslConnector);
-        return sslConnector;
-    }
-}
diff --git a/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/JettyServerProvider.java b/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/JettyServerProvider.java
deleted file mode 100644 (file)
index 8a3ee62..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.northbound.CredentialsConfiguration;
-import java.net.URL;
-import java.util.Collections;
-import org.eclipse.jetty.security.ConstraintMapping;
-import org.eclipse.jetty.security.ConstraintSecurityHandler;
-import org.eclipse.jetty.security.HashLoginService;
-import org.eclipse.jetty.security.authentication.BasicAuthenticator;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.handler.gzip.GzipHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-import org.eclipse.jetty.util.security.Constraint;
-import org.eclipse.jetty.util.security.Password;
-import org.eclipse.jetty.util.thread.QueuedThreadPool;
-import org.eclipse.jetty.webapp.WebAppContext;
-import org.glassfish.jersey.server.ResourceConfig;
-import org.glassfish.jersey.servlet.ServletContainer;
-import org.opendaylight.netconf.sal.rest.impl.JsonNormalizedNodeBodyReader;
-import org.opendaylight.netconf.sal.rest.impl.NormalizedNodeJsonBodyWriter;
-import org.opendaylight.netconf.sal.rest.impl.NormalizedNodeXmlBodyWriter;
-import org.opendaylight.netconf.sal.rest.impl.RestconfApplication;
-import org.opendaylight.netconf.sal.rest.impl.RestconfDocumentedExceptionMapper;
-import org.opendaylight.netconf.sal.rest.impl.XmlNormalizedNodeBodyReader;
-import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
-import org.opendaylight.netconf.sal.restconf.impl.RestconfImpl;
-
-final class JettyServerProvider extends ProviderTrait<Server> {
-
-    private static final String REALM = "HCRealm";
-    // Mime types to be compressed when requested
-    private static final String[] GZIP_MIME_TYPES = {"application/xml",
-        "xml",
-        "application/yang.data+xml",
-        "application/json",
-        "application/yang.data+json"};
-    public static final String RESTCONF_APP_NAME = "JAXRSRestconf";
-
-    @Inject
-    private RestconfConfiguration cfg;
-
-    @Inject
-    private CredentialsConfiguration credentialsCfg;
-
-    @Inject
-    private RestconfApplication restconfApplication;
-
-    @Inject
-    private RestconfImpl restconf;
-
-    @Inject
-    private ControllerContext controllerContext;
-
-    @Override
-    protected Server create() {
-        Server server = new Server(new QueuedThreadPool(cfg.restPoolMaxSize.get(), cfg.restPoolMinSize.get()));
-
-        // Load Realm for basic auth
-        HashLoginService service = new HashLoginService(REALM);
-        // Reusing the name as role
-        service.putUser(credentialsCfg.username, new Password(credentialsCfg.password),
-                new String[]{credentialsCfg.username});
-        server.addBean(service);
-
-        final URL resource = getClass().getResource("/");
-        WebAppContext webapp = new WebAppContext(resource.getPath(), cfg.restconfRootPath.get());
-
-        // Create Restconf application implementation for server
-        ResourceConfig resourceConfig = new ResourceConfig();
-        resourceConfig.setApplicationName(RESTCONF_APP_NAME);
-        resourceConfig = resourceConfig.registerInstances(restconf, new NormalizedNodeJsonBodyWriter(),
-                new NormalizedNodeXmlBodyWriter(), new XmlNormalizedNodeBodyReader(controllerContext),
-                new JsonNormalizedNodeBodyReader(controllerContext),
-                new RestconfDocumentedExceptionMapper(controllerContext));
-        // register Restconf Application classes
-        resourceConfig.registerClasses(restconfApplication.getClasses());
-
-        // Create Servlet container which holds configured application
-        ServletContainer servlet = new ServletContainer(resourceConfig);
-        ServletHolder servletHolder = new ServletHolder(RESTCONF_APP_NAME, servlet);
-        // init on startup
-        servletHolder.setInitOrder(1);
-        // set service handler
-        server.setHandler(getGzip(service, webapp));
-
-        //add servlet with "/*" mapping
-        webapp.addServlet(servletHolder, "/*");
-        return server;
-    }
-
-    private GzipHandler getGzip(final HashLoginService service, final WebAppContext webapp) {
-        final GzipHandler gzipHandler = new GzipHandler();
-        gzipHandler.setIncludedMimeTypes(GZIP_MIME_TYPES);
-        gzipHandler.setHandler(getBaseAuth(service, webapp));
-        return gzipHandler;
-    }
-
-    private ConstraintSecurityHandler getBaseAuth(HashLoginService service, WebAppContext webapp) {
-        Constraint constraint = new Constraint();
-        constraint.setName("auth");
-        constraint.setAuthenticate(true);
-        constraint.setRoles(new String[]{credentialsCfg.username});
-
-        ConstraintMapping mapping = new ConstraintMapping();
-        mapping.setPathSpec("/*");
-        mapping.setConstraint(constraint);
-
-        ConstraintSecurityHandler security = new ConstraintSecurityHandler();
-        security.setConstraintMappings(Collections.singletonList(mapping));
-        security.setAuthenticator(new BasicAuthenticator());
-        security.setLoginService(service);
-
-        security.setHandler(webapp);
-        return security;
-    }
-}
diff --git a/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/JettyServerStarter.java b/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/JettyServerStarter.java
deleted file mode 100644 (file)
index 692131c..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import static io.fd.honeycomb.northbound.restconf.RestconfModule.RESTCONF_HTTP;
-import static io.fd.honeycomb.northbound.restconf.RestconfModule.RESTCONF_HTTPS;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-
-import io.fd.honeycomb.data.init.ShutdownHandler;
-import javax.annotation.Nullable;
-
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
-import org.opendaylight.netconf.sal.rest.api.RestConnector;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-class JettyServerStarter extends ProviderTrait<JettyServerStarter.RestconfJettyServer> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(JettyServerStarter.class);
-
-    @Inject
-    private Server server;
-
-    // injecting all connectors to make sure that server is started after they are added
-    @Inject
-    private RestConnector connector;
-
-    // if HTTP is disabled, null will be injected
-    @Nullable
-    @Inject(optional = true)
-    @Named(RESTCONF_HTTP)
-    private ServerConnector httpConnectorInit;
-
-    // if HTTPS is disabled, null will be injected
-    @Nullable
-    @Inject(optional = true)
-    @Named(RESTCONF_HTTPS)
-    private ServerConnector httpsConnectorInit;
-
-    @Inject
-    private ShutdownHandler shutdownHandler;
-
-    @Override
-    protected RestconfJettyServer create() {
-        final RestconfJettyServer jettyServer = new RestconfJettyServer(server);
-        shutdownHandler.register(RestconfJettyServer.class.getCanonicalName(), jettyServer);
-        jettyServer.start();
-        return jettyServer;
-    }
-
-    final class RestconfJettyServer implements AutoCloseable {
-        private final Server server;
-
-        private RestconfJettyServer(final Server server) {
-            this.server = server;
-        }
-
-        private void start() {
-            try {
-                LOG.info("Starting RESTCONF Jetty server");
-                server.start();
-                LOG.info("RESTCONF Jetty server successfully started");
-            } catch (Exception e) {
-                LOG.error("Unable to start RESTCONF Jetty server", e);
-                throw new IllegalStateException("Unable to start RESTCONF Jetty server", e);
-            }
-        }
-
-        @Override
-        public void close() throws Exception {
-            LOG.info("Stopping RESTCONF Jetty server");
-            server.stop();
-            server.destroy();
-            LOG.info("RESTCONF Jetty server successfully stopped");
-        }
-    }
-}
diff --git a/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfApplicationProvider.java b/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfApplicationProvider.java
deleted file mode 100644 (file)
index 0f55b49..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2018 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.netconf.sal.rest.impl.RestconfApplication;
-import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
-import org.opendaylight.netconf.sal.restconf.impl.StatisticsRestconfServiceWrapper;
-
-public class RestconfApplicationProvider extends ProviderTrait<RestconfApplication> {
-
-    @Inject
-    private ControllerContext controllerContext;
-    @Inject
-    private StatisticsRestconfServiceWrapper statisticsRestconfServiceWrapper;
-
-    @Override
-    protected RestconfApplication create() {
-        return new RestconfApplication(controllerContext, statisticsRestconfServiceWrapper);
-    }
-}
diff --git a/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfConfiguration.java b/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfConfiguration.java
deleted file mode 100644 (file)
index 270f1ba..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import java.util.Optional;
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-//TODO - HONEYCOMB-377 - do not include module to active modules if disabled
-@BindConfig(value = "restconf", syntax = Syntax.JSON)
-public class RestconfConfiguration {
-
-    @InjectConfig("restconf-http-enabled")
-    public String restconfHttp;
-    @InjectConfig("restconf-binding-address")
-    public Optional<String> restconfBindingAddress;
-    @InjectConfig("restconf-port")
-    public Optional<Integer> restconfPort;
-    @InjectConfig("restconf-https-enabled")
-    public String restconfHttps;
-    @InjectConfig("restconf-https-binding-address")
-    public Optional<String> restconfHttpsBindingAddress;
-    @InjectConfig("restconf-https-port")
-    public Optional<Integer> restconfHttpsPort;
-    /**
-     * Restconf keystore file name. It will be loaded from the classpath so must be present in one of the folders
-     * packaged with the distribution e.g. cert/
-     */
-    @InjectConfig("restconf-keystore")
-    public Optional<String> restconfKeystore = Optional.of("/honeycomb-keystore");
-    @InjectConfig("restconf-keystore-password")
-    public Optional<String> keystorePassword;
-    @InjectConfig("restconf-keystore-manager-password")
-    public Optional<String> keystoreManagerPassword;
-    /**
-     * Restconf truststore file name. It will be loaded from the classpath so must be present in one of the folders
-     * packaged with the distribution e.g. cert/
-     */
-    @InjectConfig("restconf-truststore")
-    public Optional<String> restconfTruststore;
-    @InjectConfig("restconf-truststore-password")
-    public Optional<String> truststorePassword;
-    @InjectConfig("restconf-websocket-address")
-    public Optional<String> restconfWebsocketAddress;
-    @InjectConfig("restconf-websocket-port")
-    public Optional<Integer> restconfWebsocketPort;
-    @InjectConfig("restconf-root-path")
-    public Optional<String> restconfRootPath = Optional.of("/restconf");
-    @InjectConfig("restconf-pool-max-size")
-    public Optional<Integer> restPoolMaxSize = Optional.of(10);
-    @InjectConfig("restconf-pool-min-size")
-    public Optional<Integer> restPoolMinSize = Optional.of(1);
-    @InjectConfig("restconf-acceptors-size")
-    public Optional<Integer> acceptorsSize = Optional.of(1);
-    @InjectConfig("restconf-selectors-size")
-    public Optional<Integer> selectorsSize = Optional.of(1);
-    @InjectConfig("restconf-https-acceptors-size")
-    public Optional<Integer> httpsAcceptorsSize = Optional.of(1);
-    @InjectConfig("restconf-https-selectors-size")
-    public Optional<Integer> httpsSelectorsSize = Optional.of(1);
-
-    public boolean isRestconfHttpEnabled() {
-        return Boolean.valueOf(restconfHttp);
-    }
-
-    public boolean isRestconfHttpsEnabled() {
-        return Boolean.valueOf(restconfHttps);
-    }
-
-    public boolean isRestconfEnabled() {
-        return isRestconfHttpEnabled() || isRestconfHttpsEnabled();
-    }
-
-    @Override
-  //CHECKSTYLE:OFF
-    public String toString() {
-        return "RestconfConfiguration{" +
-            "restconfHttp='" + restconfHttp + '\'' +
-            ", restconfBindingAddress=" + restconfBindingAddress +
-            ", restconfPort=" + restconfPort +
-            ", restconfHttps='" + restconfHttps + '\'' +
-            ", restconfHttpsBindingAddress=" + restconfHttpsBindingAddress +
-            ", restconfHttpsPort=" + restconfHttpsPort +
-            ", restconfKeystore=" + restconfKeystore +
-            ", keystorePassword=" + keystorePassword +
-            ", keystoreManagerPassword=" + keystoreManagerPassword +
-            ", restconfTruststore=" + restconfTruststore +
-            ", truststorePassword=" + truststorePassword +
-            ", restconfWebsocketAddress=" + restconfWebsocketAddress +
-            ", restconfWebsocketPort=" + restconfWebsocketPort +
-            ", restconfRootPath=" + restconfRootPath +
-            ", restPoolMaxSize=" + restPoolMaxSize +
-            ", restPoolMinSize=" + restPoolMinSize +
-            ", acceptorsSize=" + acceptorsSize +
-            ", selectorsSize=" + selectorsSize +
-            ", httpsAcceptorsSize=" + httpsAcceptorsSize +
-            ", httpsSelectorsSize=" + httpsSelectorsSize +
-            '}';
-    }
-}
diff --git a/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfConfigurationModule.java b/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfConfigurationModule.java
deleted file mode 100644 (file)
index 1e18a37..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.AbstractModule;
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-public class RestconfConfigurationModule extends AbstractModule {
-
-    @Override
-    protected void configure() {
-        install(ConfigurationModule.create());
-        requestInjection(RestconfConfiguration.class);
-    }
-}
diff --git a/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfModule.java b/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfModule.java
deleted file mode 100644 (file)
index d2841ba..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Singleton;
-import com.google.inject.name.Names;
-import io.fd.honeycomb.northbound.NorthboundAbstractModule;
-import io.fd.honeycomb.northbound.restconf.JettyServerStarter.RestconfJettyServer;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
-import org.opendaylight.netconf.sal.rest.api.RestConnector;
-import org.opendaylight.netconf.sal.rest.impl.RestconfApplication;
-import org.opendaylight.netconf.sal.restconf.impl.BrokerFacade;
-import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
-import org.opendaylight.netconf.sal.restconf.impl.RestconfImpl;
-import org.opendaylight.netconf.sal.restconf.impl.StatisticsRestconfServiceWrapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class RestconfModule extends NorthboundAbstractModule<RestconfConfiguration> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(RestconfModule.class);
-
-    public static final String HONEYCOMB_RESTCONF = "honeycomb-restconf";
-    public static final String RESTCONF_HTTP = "restconf-http";
-    public static final String RESTCONF_HTTPS = "restconf-https";
-
-    public RestconfModule() {
-        super(new RestconfConfigurationModule(), RestconfConfiguration.class);
-    }
-
-    @Override
-    protected void configure() {
-        if (!getConfiguration().isRestconfEnabled()) {
-            LOG.info("Restconf is disabled, skipping configuration");
-            return;
-        }
-
-        LOG.info("Starting RESTCONF Northbound");
-        install(new RestconfConfigurationModule());
-        bind(ControllerContext.class).toProvider(ControllerContextProvider.class).in(Singleton.class);
-        bind(BrokerFacade.class).toProvider(BrokerFacadeProvider.class).in(Singleton.class);
-        bind(RestconfImpl.class).toProvider(RestconfServiceProvider.class).in(Singleton.class);
-        bind(StatisticsRestconfServiceWrapper.class)
-                .toProvider(StatisticsRestconfServiceWrapperProvider.class).in(Singleton.class);
-        bind(RestconfApplication.class).toProvider(RestconfApplicationProvider.class).in(Singleton.class);
-        bind(Server.class).toProvider(JettyServerProvider.class).in(Singleton.class);
-        bind(ServerConnector.class).annotatedWith(Names.named(RESTCONF_HTTP))
-                .toProvider(HttpConnectorProvider.class)
-                .in(Singleton.class);
-        bind(ServerConnector.class).annotatedWith(Names.named(RESTCONF_HTTPS))
-                .toProvider(HttpsConnectorProvider.class)
-                .in(Singleton.class);
-        bind(RestConnector.class).toProvider(RestconfProvider.class).in(Singleton.class);
-        bind(RestconfJettyServer.class).toProvider(JettyServerStarter.class).asEagerSingleton();
-    }
-}
diff --git a/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfProvider.java b/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfProvider.java
deleted file mode 100644 (file)
index 85caf66..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2016, 2017 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import io.fd.honeycomb.data.init.ShutdownHandler;
-import org.opendaylight.netconf.sal.rest.api.RestConnector;
-import org.opendaylight.netconf.sal.restconf.impl.RestconfProviderImpl;
-import org.opendaylight.netconf.sal.restconf.impl.StatisticsRestconfServiceWrapper;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-
-final class RestconfProvider extends ProviderTrait<RestConnector> {
-
-    @Inject
-    private RestconfConfiguration cfg;
-    @Inject
-    private ShutdownHandler shutdownHandler;
-    @Inject
-    private StatisticsRestconfServiceWrapper statsServiceWrapper;
-
-    @Override
-    protected RestconfProviderImpl create() {
-        final RestconfProviderImpl instance = new RestconfProviderImpl(statsServiceWrapper,
-                IpAddressBuilder.getDefaultInstance(cfg.restconfWebsocketAddress.get()),
-                new PortNumber(cfg.restconfWebsocketPort.get()));
-        // Required to properly initialize restconf (broker, schema ctx, etc.).
-        // Without that restconf would fail with 503 (service not available).
-        instance.start();
-
-        shutdownHandler.register(instance.getClass().getCanonicalName(), instance);
-        return instance;
-    }
-}
diff --git a/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfServiceProvider.java b/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfServiceProvider.java
deleted file mode 100644 (file)
index 20dcc28..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2018 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.netconf.sal.restconf.impl.BrokerFacade;
-import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
-import org.opendaylight.netconf.sal.restconf.impl.RestconfImpl;
-
-public class RestconfServiceProvider extends ProviderTrait<RestconfImpl> {
-
-    @Inject
-    private ControllerContext controllerContext;
-    @Inject
-    private BrokerFacade brokerFacade;
-
-    @Override
-    protected RestconfImpl create() {
-        return RestconfImpl.newInstance(brokerFacade, controllerContext);
-    }
-}
diff --git a/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/StatisticsRestconfServiceWrapperProvider.java b/tests/honeynode/2.2.1/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/StatisticsRestconfServiceWrapperProvider.java
deleted file mode 100644 (file)
index f3a4c3b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2018 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-package io.fd.honeycomb.northbound.restconf;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.netconf.sal.restconf.impl.RestconfImpl;
-import org.opendaylight.netconf.sal.restconf.impl.StatisticsRestconfServiceWrapper;
-
-public class StatisticsRestconfServiceWrapperProvider extends ProviderTrait<StatisticsRestconfServiceWrapper> {
-
-    @Inject
-    RestconfImpl restconfService;
-
-    @Override
-    protected StatisticsRestconfServiceWrapper create() {
-        return StatisticsRestconfServiceWrapper.newInstance(restconfService);
-    }
-}
diff --git a/tests/honeynode/2.2.1/restconf/src/main/resources/honeycomb-minimal-resources/config/restconf-whitelist.xml b/tests/honeynode/2.2.1/restconf/src/main/resources/honeycomb-minimal-resources/config/restconf-whitelist.xml
deleted file mode 100644 (file)
index 5274cf4..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<yangModuleWhitelist>
-    <modules>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715</package>
-            <description>
-                This module contains a collection of generally useful derived
-                YANG data types for Internet addresses and related things.
-
-                Dependency for ietf-restconf-monitoring
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715</package>
-            <description>
-                This module contains a collection of generally useful derived
-                YANG data types.
-
-                Dependency for ietf-restconf-monitoring
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.restconf.monitoring.rev170126
-            </package>
-            <description>
-                This module contains monitoring information for the
-                RESTCONF protocol.
-
-                Required for mounting of netconf devices
-            </description>
-        </module>
-        <module>
-            <package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621</package>
-            <description>
-                This module contains monitoring information about the YANG
-                modules and submodules that are used within a YANG-based
-                server.
-
-                Required for mounting of netconf devices
-            </description>
-        </module>
-    </modules>
-</yangModuleWhitelist>
diff --git a/tests/honeynode/2.2.1/restconf/src/main/resources/honeycomb-minimal-resources/config/restconf.json b/tests/honeynode/2.2.1/restconf/src/main/resources/honeycomb-minimal-resources/config/restconf.json
deleted file mode 100644 (file)
index 3999522..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-  "restconf-http-enabled": "true",
-  "restconf-root-path": "/restconf",
-  "restconf-binding-address": "0.0.0.0",
-  "restconf-port": 8183,
-  "restconf-https-enabled": "true",
-  "restconf-https-binding-address": "0.0.0.0",
-  "restconf-https-port": 8445,
-  "restconf-keystore": "/honeycomb-keystore",
-  "restconf-keystore-password": "OBF:1v9s1unr1unn1vv51zlk1t331vg91x1b1vgl1t331zly1vu51uob1uo71v8u",
-  "restconf-keystore-manager-password": "OBF:1v9s1unr1unn1vv51zlk1t331vg91x1b1vgl1t331zly1vu51uob1uo71v8u",
-  "restconf-truststore": "/honeycomb-keystore",
-  "restconf-truststore-password": "OBF:1v9s1unr1unn1vv51zlk1t331vg91x1b1vgl1t331zly1vu51uob1uo71v8u",
-  "restconf-websocket-address": "0.0.0.0",
-  "restconf-websocket-port": 7779,
-  "restconf-pool-max-size": 10,
-  "restconf-pool-min-size": 1,
-  "restconf-acceptors-size": 1,
-  "restconf-selectors-size": 1,
-  "restconf-https-acceptors-size": 1,
-  "restconf-https-selectors-size": 1
-}
diff --git a/tests/honeynode/fd_io_honeycomb_settings.xml b/tests/honeynode/fd_io_honeycomb_settings.xml
deleted file mode 100644 (file)
index 7e9c54c..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=2 tabstop=2: -->
-<!-- retrived from FD.io wiki https://wiki.fd.io/view/Honeycomb/Releases/1609/Setting_Up_Your_Dev_Environment#Setup_settings.xml -->
-<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
-
-  <profiles>
-    <profile>
-      <id>fd.io-release</id>
-      <repositories>
-        <repository>
-          <id>fd.io-mirror</id>
-          <name>fd.io-mirror</name>
-          <url>https://nexus.fd.io/content/groups/public/</url>
-          <releases>
-            <enabled>true</enabled>
-            <updatePolicy>never</updatePolicy>
-          </releases>
-          <snapshots>
-            <enabled>false</enabled>
-          </snapshots>
-        </repository>
-      </repositories>
-      <pluginRepositories>
-        <pluginRepository>
-          <id>fd.io-mirror</id>
-          <name>fd.io-mirror</name>
-          <url>https://nexus.fd.io/content/repositories/public/</url>
-          <releases>
-            <enabled>true</enabled>
-            <updatePolicy>never</updatePolicy>
-          </releases>
-          <snapshots>
-            <enabled>false</enabled>
-          </snapshots>
-        </pluginRepository>
-      </pluginRepositories>
-    </profile>
-
-    <profile>
-      <id>fd.io-snapshots</id>
-      <repositories>
-        <repository>
-          <id>fd.io-snapshot</id>
-          <name>fd.io-snapshot</name>
-          <url>https://nexus.fd.io/content/repositories/fd.io.snapshot/</url>
-          <releases>
-            <enabled>false</enabled>
-          </releases>
-          <snapshots>
-            <enabled>true</enabled>
-          </snapshots>
-        </repository>
-      </repositories>
-      <pluginRepositories>
-        <pluginRepository>
-          <id>fd.io-snapshot</id>
-          <name>fd.io-snapshot</name>
-          <url>https://nexus.fd.io/content/repositories/fd.io.snapshot/</url>
-          <releases>
-            <enabled>false</enabled>
-          </releases>
-          <snapshots>
-            <enabled>true</enabled>
-          </snapshots>
-        </pluginRepository>
-      </pluginRepositories>
-    </profile>
-    <profile>
-      <id>opendaylight-snapshots</id>
-      <repositories>
-        <repository>
-          <id>opendaylight-snapshot</id>
-          <name>opendaylight-snapshot</name>
-          <url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
-          <releases>
-            <enabled>false</enabled>
-          </releases>
-          <snapshots>
-            <enabled>true</enabled>
-          </snapshots>
-        </repository>
-      </repositories>
-      <pluginRepositories>
-        <pluginRepository>
-          <id>opendaylight-shapshot</id>
-          <name>opendaylight-snapshot</name>
-          <url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
-          <releases>
-            <enabled>false</enabled>
-          </releases>
-          <snapshots>
-            <enabled>true</enabled>
-          </snapshots>
-        </pluginRepository>
-      </pluginRepositories>
-    </profile>
-  </profiles>
-
-  <activeProfiles>
-    <activeProfile>fd.io-release</activeProfile>
-    <activeProfile>fd.io-snapshots</activeProfile>
-    <activeProfile>opendaylight-snapshots</activeProfile>
-  </activeProfiles>
-
-</settings>
diff --git a/tests/install_honeynode.sh b/tests/install_honeynode.sh
new file mode 100755 (executable)
index 0000000..d703915
--- /dev/null
@@ -0,0 +1,36 @@
+#/bin/sh
+
+#set -x
+
+#check if curl exists
+if ! [ -x "$(command -v curl)" ];then
+    echo "curl is not installed." >&2
+    exit 1
+fi
+#check if unzip exists
+if ! [ -x "$(command -v unzip)" ];then
+    echo "unzip is not installed." >&2
+    exit 1
+fi
+
+#clean honeynode directories
+
+if [ -d "$(dirname $0)/honeynode/1.2.1/honeynode-simulator" ];then
+    echo "Removing $(dirname $0)/honeynode/1.2.1/honeynode-simulator directory"
+    rm -rf $(dirname $0)/honeynode/1.2.1/honeynode-simulator
+fi
+if [ -d "$(dirname $0)/honeynode/2.2.1/honeynode-simulator" ];then
+    echo "Removing $(dirname $0)/honeynode/2.2.1/honeynode-simulator directory"
+    rm -rf $(dirname $0)/honeynode/2.2.1/honeynode-simulator
+fi
+#download honeynode for 1.2.1 devices and install it
+#complete source code can be found at https://gitlab.com/Orange-OpenSource/lfn/odl/honeynode-simulator.git
+echo "Installing honeynode for 1.2.1 devices to $(dirname $0)/honeynode/1.2.1/honeynode-simulator directory "
+curl --location --request GET "https://gitlab.com/api/v4/projects/17518226/jobs/artifacts/honeynode-plugin-aggregator-1.0.0/download?job=mvn-build" -o $(dirname $0)/honeynode/1.2.1/artifact.zip
+unzip $(dirname $0)/honeynode/1.2.1/artifact.zip -d $(dirname $0)/honeynode/1.2.1
+rm -f $(dirname $0)/honeynode/1.2.1/artifact.zip
+#download honeynode for 2.2.1 devices and install it
+echo "Installing honeynode for 2.2.1 devices to $(dirname $0)/honeynode/2.2.1/honeynode-simulator directory "
+curl --location --request GET "https://gitlab.com/api/v4/projects/17518226/jobs/artifacts/honeynode-plugin-aggregator-2.0.0/download?job=mvn-build" -o $(dirname $0)/honeynode/2.2.1/artifact.zip
+unzip $(dirname $0)/honeynode/2.2.1/artifact.zip -d $(dirname $0)/honeynode/2.2.1
+rm -f $(dirname $0)/honeynode/2.2.1/artifact.zip
index 7a38ff42508425bdb74165a9a0b5b13440195de3..2b565a53f0d9375afe1d31fb27c55e55a428e3b9 100644 (file)
@@ -3,8 +3,7 @@ import subprocess
 
 honeynode_executable = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
-    "..", "..", "honeynode", "1.2.1", "honeynode-distribution", "target", "honeynode-distribution-1.19.04-hc",
-    "honeynode-distribution-1.19.04", "honeycomb-tpce")
+    "..", "..", "honeynode", "1.2.1", "honeynode-simulator", "honeycomb-tpce")
 samples_directory = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
     "..", "..", "sample_configs", "openroadm", "1.2.1")
index 9633c3fa1030b88b5837751f1f3dea65cf839f92..7afbdc1819c8777afbdc560976571471415c70b3 100644 (file)
@@ -3,8 +3,7 @@ import subprocess
 
 honeynode_executable = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
-    "..", "..", "honeynode", "2.2.1", "honeynode-distribution", "target", "honeynode-distribution-1.19.04-hc",
-    "honeynode-distribution-1.19.04", "honeycomb-tpce")
+    "..", "..", "honeynode", "2.2.1", "honeynode-simulator", "honeycomb-tpce")
 samples_directory = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
     "..", "..", "sample_configs", "openroadm", "2.2.1")
diff --git a/tox.ini b/tox.ini
index 1f1db682d6145cda540ec705ac178f50b7daa105..f3c0c051793da881349e3d327519d37f8f2a7d5b 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -19,8 +19,8 @@ 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,topology221,otntopology,olm221,end2end221,gnpy}: - sh -c "if [ ! `which mvn` ]; then ./installMavenCentOS.sh  ; fi"
-#build 1.2.1 sims
-  {py3,portmapping,topoPortMapping,rspn,topology,olm,end2end}: - sh -c "./buildHoneynode.sh"
+#install honeynode simulators
+  {py3,portmapping,topoPortMapping,rspn,topology,pce,olm,end2end,portmapping221,rspn221,otnrenderer,topology221,otntopology,olm221,end2end221,gnpy}: - sh -c "./install_honeynode.sh"
 #patch OLM constant to speed up tests, unnecessary for PCE
   {py3,portmapping,topoPortMapping,rspn,topology,olm,end2end,portmapping221,rspn221,otnrenderer,topology221,otn-topology,olm221,end2end221}: - 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
@@ -38,8 +38,6 @@ commands =
   {py3,pce}: nosetests --with-xunit transportpce_tests/1.2.1/test_pce.py
   {py3,olm}: nosetests --with-xunit transportpce_tests/1.2.1/test_olm.py
   {end2end}: nosetests --with-xunit transportpce_tests/1.2.1/test_end2end.py
-#build 2.2.1 sims
-  {py3,portmapping221,rspn221,otnrenderer,topology221,otntopology,olm221,end2end221}: - sh -c "./buildHoneynode.sh 2.2.1"
 #run 2.2.1 functional tests
   {py3,portmapping221}: nosetests --with-xunit transportpce_tests/2.2.1/test_portmapping.py
   {py3,topology221}: nosetests --with-xunit transportpce_tests/2.2.1/test_topology.py