libyang v3
This is a huge commit which changes a lot of things in the system,
including the boot process and configuration handling. There are also
massive updates all over the stack which have accumulated in the
upstream projects. In no particular order:
- The configuration schema has changed in an incompatible way. That's
due to an update of some drafts related to the ietf-netconf-server
YANG model and its dependencies; as a result, the way how SSH keys and
SSH listening configuration is managed in YANG data is incompatible
with the previous approach, and that means that we *cannot* import the
previous config into sysrepo which already has new YANG modules.
"Solve" that by simply dropping the entire YANG config (!) because we
decided that it's sometimes better to start from scratch. Yay.
- Config migrations now work at the JSON level, not through sysrepo.
There is currently no real "migration" apart from the initial one (the
one that brings the config schema from the implicit/empty "v0" to
"v9"). The TL;DR version is that future migrations will work on an
JSON input, producing some new JSON output, and only after the
migration is done, we push stuff into sysrepo. Also, the migrations
will (likely) not be performed in a sequence, on a cumulative basis,
but it is now a one-shot process with no intermediate steps. This
should hopefully simplify the launching/wrapping code. From the
developer's standpoint, any migration should focus on bringing the
system to the "final state" (v_new), not to v_old + 1.
These migrations will use `jq` heavily. So far, we only have some
"simple" code which merges objects (and arrays!) recursively, courtesy
of Peter Koppstein (https://stackoverflow.com/a/53666584/2245623).
- Some Buildroot options which should have been hardcoded (e.g.,
persisting of OpenSSH server keys) are now unconditional. Once the
czechlight-cfg-fs package is selected, these cannot be disabled.
- We no longer nuke the entire sysrepo SW stack upon a failure. If,
e.g., cla-sysrepo fails, this does not bring the NETCONF server down
anymore, for example. (We might restore the PartOf=... if this proves
to be a problem.)
- There's a bunch of YANG rules which try to make sure that the NETCONF
server is reasonably configured. Previously, we would simply
reprovision the server config at the next boot, now we have nice error
messages at the YANG level already.
- The RESTCONF server has been vastly improved, and some changes all
over that SW stack were made. Also, cleaned up the packaging a bit
(especially those parts which would be a PITA to split into extra
commits due to conflicts everywhere -- sorry).
- Use `jq` patterns for JSON filtering (to make sure that we can provide
an exclusion filter for the crypto material). Also, since we drop
anything but v9 configs now, let's drop the existing migration tests
(there's nothing to test, really).
Change-Id: Id1bb5b9ee66c6deb7a886289e4d768ce3ff7c9b2
Depends-on: https://gerrit.cesnet.cz/plugins/gitiles/github/buildroot/buildroot/+/refs/heads/cesnet/2024-09-06
Depends-on: https://gerrit.cesnet.cz/c/CzechLight/gammarus/+/7570
diff --git a/configs/czechlight_beaglebone_defconfig b/configs/czechlight_beaglebone_defconfig
index 8b859d3..65592df 100644
--- a/configs/czechlight_beaglebone_defconfig
+++ b/configs/czechlight_beaglebone_defconfig
@@ -87,8 +87,6 @@
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MTOOLS=y
CZECHLIGHT_CFG_FS_SIZE="256M"
-CZECHLIGHT_CFG_FS_PERSIST_SYSREPO=y
-CZECHLIGHT_CFG_FS_PERSIST_KEYS=y
CZECHLIGHT_RAUC_ROOTFS=y
CZECHLIGHT_RAUC_COMPATIBLE="beaglebone-black"
CZECHLIGHT_RAUC_SLOT_A_ROOTFS_DEV="/dev/mmcblk1p2"
diff --git a/configs/czechlight_clearfog_defconfig b/configs/czechlight_clearfog_defconfig
index 7b031e0..acfb770 100644
--- a/configs/czechlight_clearfog_defconfig
+++ b/configs/czechlight_clearfog_defconfig
@@ -113,9 +113,6 @@
BR2_PACKAGE_HOST_UBOOT_TOOLS_KWBOOT=y
BR2_PACKAGE_CLA_SYSREPO=y
CZECHLIGHT_CFG_FS_SIZE="256M"
-CZECHLIGHT_CFG_FS_PERSIST_SYSREPO=y
-CZECHLIGHT_CFG_FS_PERSIST_KEYS=y
-CZECHLIGHT_CFG_FS_PERSIST_NETWORK=y
BR2_PACKAGE_CZECHLIGHT_CLEARFOG_LEDS=y
CZECHLIGHT_RAUC_ROOTFS=y
CZECHLIGHT_RAUC_COMPATIBLE="czechlight-clearfog"
@@ -125,6 +122,5 @@
CZECHLIGHT_RAUC_SLOT_B_CFG_DEV="/dev/mmcblk0p4"
BR2_PACKAGE_GAMMARUS=y
BR2_PACKAGE_VELIA=y
-BR2_PACKAGE_RESET_SYSREPO=y
BR2_PACKAGE_ROUSETTE=y
BR2_PACKAGE_SYSREPO_IETF_ALARMS=y
diff --git a/doc/architecture.md b/doc/architecture.md
index 4d90a2f..4f1b94e 100644
--- a/doc/architecture.md
+++ b/doc/architecture.md
@@ -26,19 +26,20 @@
### YANG
-The system always boots with an empty sysrepo database -- no YANG modules, and no configuration is installed.
-The required modules (and configuration) is added in several steps:
+The system always boots with an empty state -- the sysrepo database is completely empty, with no YANG modules, and no data.
+Transforming that into a working system involves installation of several YANG modules.
+Some of those modules are device-specific, and some modules might require non-empty default configuration as the *initial data*.
+Also, the on-disk configuration that is preserved from the last reboot might need updates in order to apply to the current revisions of YANG modules.
+That's why the data preparation/upgrading works purely at the JSON level, with no associated YANG-based tools.
-- the YANG modules for `netopeer2-server` are added via `netopeer2-install-yang.service` (via our Buildroot patches),
-- CzechLight-specific YANG modules are added via [`czechlight-install-yang.service`](../package/czechlight-cfg-fs/czechlight-install-yang.service),
-- system configuration is restored from the persistent location in `/cfg` via [`cfg-restore-sysrepo.service`](../package/czechlight-cfg-fs/cfg-restore-sysrepo.service),
-- migrations to system configuration are applied via [`czechlight-migrate.service`](../package/czechlight-cfg-fs/czechlight-migrate.service),
-- configuration of the Netopeer server gets re-checked via `netopeer2-setup.service` (once again in our Buildroot patches); this is needed especially during the first boot with no previous configuration to restore,
+If there is no previous snapshot, or if it comes from an unsupported version (pre-v9), it is discarded and considered to be an empty JSON object.
+Then, a series of transformations ("migrations") is applied to the JSON, bumping the "data version" for each of these migrations.
+Once done, the resulting JSON is loaded into sysrepo as the initial data.
+
+- the JSON data are migrated by [`cfg-migrate.service`](../package/czechlight-cfg-fs/cfg-migrate.service),
+- YANG modules are installed and the data are loaded via [`cfg-yang.service`](../package/czechlight-cfg-fs/cfg-yang.service),
- finally, any daemons that use sysrepo are started.
-We are also [using a `tmpfs` mount at `/run/sysrepo`](../package/reset-sysrepo/run-sysrepo.mount) that [gets wiped out whenever a sysrepo service fails](../package/reset-sysrepo/reset-sysrepo.mk).
-This is currently (Q1 2021) needed because of the risk of corrption of the in-memory sysrepo SHM data.
-
### Factory data
MAC addresses and some identification data and in future also calibration data.
diff --git a/package/Config.in b/package/Config.in
index a494e28..597373d 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -6,6 +6,5 @@
source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/gammarus/Config.in"
source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/velia/Config.in"
source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/grub2-tools/Config.in"
-source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/reset-sysrepo/Config.in"
source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/rousette/Config.in"
source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/sysrepo-ietf-alarms/Config.in"
diff --git a/package/cla-sysrepo/Config.in b/package/cla-sysrepo/Config.in
index bc9a8a3..651e1fc 100644
--- a/package/cla-sysrepo/Config.in
+++ b/package/cla-sysrepo/Config.in
@@ -9,5 +9,6 @@
select BR2_PACKAGE_BOOST
select BR2_PACKAGE_LIBEV
select BR2_PACKAGE_CZECHLIGHT_CFG_FS
+ select BR2_PACKAGE_DATE
help
Control CzechLight devices over YANG with sysrepo
diff --git a/package/cla-sysrepo/cla-appliance.service.in b/package/cla-sysrepo/cla-appliance.service.in
index 15bd3ae..c8971f0 100644
--- a/package/cla-sysrepo/cla-appliance.service.in
+++ b/package/cla-sysrepo/cla-appliance.service.in
@@ -1,9 +1,8 @@
[Unit]
Description=CzechLight __MODEL__ driver
-After=syslog.target network.target cfg-restore-sysrepo.service czechlight-migrate.service
+After=syslog.target network.target cfg-yang.service
Before=rauc-mark-good.service velia-hardware-g1.service velia-hardware-g2.service
-PartOf=netopeer2.service
-Requires=cfg-restore-sysrepo.service czechlight-migrate.service
+Requires=cfg-yang.service
StartLimitIntervalSec=0
ConditionKernelCommandLine=|czechlight=__MODEL__
ConditionKernelCommandLine=|czechlight=__MODEL__-g2
diff --git a/package/cla-sysrepo/cla-sysrepo.mk b/package/cla-sysrepo/cla-sysrepo.mk
index 27d403e..677c67b 100644
--- a/package/cla-sysrepo/cla-sysrepo.mk
+++ b/package/cla-sysrepo/cla-sysrepo.mk
@@ -2,7 +2,7 @@
CLA_SYSREPO_SITE = ssh://kundrat@cesnet.cz@gerrit.cesnet.cz:29418/CzechLight/cla-sysrepo
CLA_SYSREPO_SITE_METHOD = git
CLA_SYSREPO_INSTALL_STAGING = NO
-CLA_SYSREPO_DEPENDENCIES = sysrepo-cpp docopt-cpp spdlog systemd libgpiod boost libev
+CLA_SYSREPO_DEPENDENCIES = sysrepo-cpp docopt-cpp spdlog systemd libgpiod boost libev date
CLA_SYSREPO_CONF_OPTS = -DTHREADS_PTHREAD_ARG:STRING=-pthread
CLA_SYSREPO_LICENSE_FILES = LICENSE.md
diff --git a/package/czechlight-cfg-fs/50-czechlight.preset b/package/czechlight-cfg-fs/50-czechlight.preset
index 6b8c73e..2df38e0 100644
--- a/package/czechlight-cfg-fs/50-czechlight.preset
+++ b/package/czechlight-cfg-fs/50-czechlight.preset
@@ -1 +1,5 @@
enable systemd-journal-upload.service
+
+# this is managed by cfg-yang.service
+disable netopeer2-install-yang.service
+disable netopeer2-setup.service
diff --git a/package/czechlight-cfg-fs/CURRENT_CONFIG_VERSION b/package/czechlight-cfg-fs/CURRENT_CONFIG_VERSION
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/package/czechlight-cfg-fs/CURRENT_CONFIG_VERSION
@@ -0,0 +1 @@
+9
diff --git a/package/czechlight-cfg-fs/Config.in b/package/czechlight-cfg-fs/Config.in
index 40e6409..0f7add3 100644
--- a/package/czechlight-cfg-fs/Config.in
+++ b/package/czechlight-cfg-fs/Config.in
@@ -2,6 +2,8 @@
bool "Prepare persistent /cfg partition and /etc overlay. Install required YANG models."
depends on BR2_INIT_SYSTEMD
depends on BR2_PACKAGE_NETOPEER2
+ select BR2_PACKAGE_HOST_JQ
+ select BR2_PACKAGE_JQ
help
This is required for RAUC to work properly. It creates a blank FS
image, configures systemd to mount it, and ensures that its contents
@@ -20,34 +22,4 @@
accommodate all configuration, but small enough to fit within the
corresponding partition.
-if BR2_PACKAGE_SYSREPO
-
-config CZECHLIGHT_CFG_FS_PERSIST_SYSREPO
- bool "Persist sysrepo configuration into /cfg"
- default Y
- help
- Save sysrepo's YANG files into /cfg upon changes
-
-endif # BR2_PACKAGE_SYSREPO
-
-if BR2_PACKAGE_NETOPEER2
-
-config CZECHLIGHT_CFG_FS_PERSIST_KEYS
- bool "Persist host keys for OpenSSH and Netopeer2"
- default Y
- help
- Save OpenSSH's key material and netopeer2's SSH keys into /cfg
-
-endif # BR2_PACKAGE_NETOPEER2
-
-if BR2_PACKAGE_SYSTEMD
-
-config CZECHLIGHT_CFG_FS_PERSIST_NETWORK
- bool "Persist network configuration for eth1"
- default Y
- help
- Save network configuration file for eth1 into /cfg
-
-endif # BR2_PACKAGE_SYSTEMD
-
endif # BR2_PACKAGE_CZECHLIGHT_CFG_FS
diff --git a/package/czechlight-cfg-fs/cfg-filter-key.sh b/package/czechlight-cfg-fs/cfg-filter-key.sh
new file mode 100755
index 0000000..860ad7b
--- /dev/null
+++ b/package/czechlight-cfg-fs/cfg-filter-key.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+# This is a standalone script because it's dealing with cleartexts of crypto keys.
+# The outer wrapper might run with `set -x` to log each command; this separation ensures
+# that we won't leak cleartext keys into the log file.
+
+set -e
+
+PRIVKEY=$(openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -outform PEM 2>/dev/null | grep -v -- "-----" | tr -d "\n")
+sed -e "s|CLEARTEXT_PRIVATE_KEY|\"${PRIVKEY}\"|"
diff --git a/package/czechlight-cfg-fs/cfg-migrate.service b/package/czechlight-cfg-fs/cfg-migrate.service
new file mode 100644
index 0000000..83b7834
--- /dev/null
+++ b/package/czechlight-cfg-fs/cfg-migrate.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Prepare initial sysrepo configuration
+After=cfg.mount
+Requires=cfg.mount
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/bin/bash /usr/libexec/czechlight-cfg-fs/cfg-migrate.sh
+Group=sysrepo
+PrivateTmp=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/package/czechlight-cfg-fs/cfg-migrate.sh b/package/czechlight-cfg-fs/cfg-migrate.sh
new file mode 100755
index 0000000..9547fdb
--- /dev/null
+++ b/package/czechlight-cfg-fs/cfg-migrate.sh
@@ -0,0 +1,111 @@
+#!/usr/bin/env bash
+
+set -ex
+
+SCRIPT_ROOT=$(dirname $(realpath -s $0))
+CFG_SYSREPO_DIR="${CFG_SYSREPO_DIR:-/cfg/sysrepo}"
+CFG_VERSION_FILE=${CFG_SYSREPO_DIR}/version
+CFG_STARTUP_FILE=${CFG_SYSREPO_DIR}/startup.json
+CFG_STATIC_DATA="${CFG_STATIC_DATA:-/usr/share/yang/static-data/czechlight-cfg-fs}"
+VELIA_STATIC_DATA="${VELIA_STATIC_DATA:-/usr/share/yang/static-data/velia}"
+CLA_STATIC_DATA="${CLA_STATIC_DATA:-/usr/share/yang/static-data/cla-sysrepo}"
+PROC_CMDLINE="${PROC_CMDLINE:-/proc/cmdline}"
+CURRENT_VERSION_FILE="${CURRENT_VERSION_FILE:-/usr/libexec/czechlight-cfg-fs/CURRENT_CONFIG_VERSION}"
+
+if [[ -r "${CFG_VERSION_FILE}" && -f "${CFG_STARTUP_FILE}" ]]; then
+ OLD_VERSION="$(cat ${CFG_VERSION_FILE})"
+else
+ OLD_VERSION=0
+fi
+
+if [[ ! "$OLD_VERSION" =~ ^[0-9]+$ ]]; then
+ echo "Invalid version '${OLD_VERSION}'"
+ exit 1
+fi
+
+NEW_VERSION=$(cat ${CURRENT_VERSION_FILE})
+if (( ${OLD_VERSION} == ${NEW_VERSION} )); then
+ exit
+elif (( ${OLD_VERSION} > ${NEW_VERSION} )); then
+ echo "Attempted to downgrade from ${OLD_VERSION} to ${NEW_VERSION}, that's not supported"
+ exit 1
+fi
+
+rm -rf ${CFG_SYSREPO_DIR}/old/${OLD_VERSION}
+if [[ -f "${CFG_STARTUP_FILE}" ]]; then
+ mkdir -p ${CFG_SYSREPO_DIR}/old/${OLD_VERSION}
+ cp ${CFG_STARTUP_FILE} /etc/os-release ${CFG_SYSREPO_DIR}/old/${OLD_VERSION}/
+fi
+
+# determine which hardware model/variety we're on from /proc/cmdline,
+# e.g., there's a "czechlight=sdn-roadm-line-g2" flag passed from the bootloader
+for ARG in $(cat "$PROC_CMDLINE"); do
+ case "${ARG}" in
+ czechlight=*)
+ CZECHLIGHT="${ARG##czechlight=}"
+ ;;
+ esac
+done
+
+# busybox' mktemp doesn't know --suffix
+DATA_FILE=${DATA_FILE:-$(mktemp -t sr-new-XXXXXX)}
+
+if (( ${OLD_VERSION} < 9 )); then
+ V9_MERGE=(
+ # NACM rules for anonymous access via RESTCONF and for DWDM permissions
+ "${CFG_STATIC_DATA}/nacm.json"
+ # do not treat failures in journal upload as system failures
+ "${CFG_STATIC_DATA}/alarms-shelve-journal-upload.json"
+ # changing one's own passwords/keys
+ "${VELIA_STATIC_DATA}/czechlight-authentication.json"
+ )
+
+ # NETCONF server configuration
+ NETOPEER2_CONFIG=$(mktemp -t sr-nc-XXXXXX)
+ ${SCRIPT_ROOT}/cfg-filter-key.sh < ${CFG_STATIC_DATA}/netopeer2.json.in > ${NETOPEER2_CONFIG}
+ V9_MERGE+=($NETOPEER2_CONFIG)
+
+ # network configuration as well as optical-specific default config
+ case "${CZECHLIGHT}" in
+ sdn-roadm-line*)
+ V9_MERGE+=(
+ "${CLA_STATIC_DATA}/sdn-roadm-line.json"
+ "${CFG_STATIC_DATA}/ietf-interfaces-roadm-line.json"
+ )
+ ;;
+ sdn-roadm-add-drop*)
+ ;& # fallthrough
+ sdn-roadm-hires-add-drop*)
+ V9_MERGE+=(
+ "${CLA_STATIC_DATA}/sdn-roadm-add-drop.json"
+ "${CFG_STATIC_DATA}/ietf-interfaces-roadm-add-drop.json"
+ )
+ ;;
+ sdn-roadm-coherent-a-d*)
+ V9_MERGE+=(
+ "${CLA_STATIC_DATA}/sdn-roadm-coherent-a-d.json"
+ "${CFG_STATIC_DATA}/ietf-interfaces-roadm-add-drop.json"
+ )
+ ;;
+ sdn-inline*)
+ V9_MERGE+=(
+ "${CLA_STATIC_DATA}/sdn-inline.json"
+ "${CFG_STATIC_DATA}/ietf-interfaces-inline-amp.json"
+ )
+ ;;
+ calibration-box)
+ V9_MERGE+=(
+ "${CLA_STATIC_DATA}/calibration-box.json"
+ # no network data on this box
+ )
+ ;;
+ esac
+
+ # libyang v3 mass "migration" means dropping everything, so there's no ${DATA_FILE} as an input
+ jq -f ${SCRIPT_ROOT}/meld.jq ${V9_MERGE[@]} > ${DATA_FILE}
+else
+ cp ${CFG_STARTUP_FILE} ${DATA_FILE}
+fi
+
+cp ${DATA_FILE} ${CFG_STARTUP_FILE}
+echo "${NEW_VERSION}" > ${CFG_VERSION_FILE}
diff --git a/package/czechlight-cfg-fs/cfg-restore-sysrepo.service b/package/czechlight-cfg-fs/cfg-restore-sysrepo.service
deleted file mode 100644
index d289933..0000000
--- a/package/czechlight-cfg-fs/cfg-restore-sysrepo.service
+++ /dev/null
@@ -1,17 +0,0 @@
-[Unit]
-Description=Restore sysrepo startup datastore from /cfg
-After=netopeer2-install-yang.service czechlight-install-yang.service cfg.mount
-Requires=netopeer2-install-yang.service czechlight-install-yang.service cfg.mount
-Before=netopeer2-setup.service netopeer2.service sysrepo-persistent-cfg.service
-ConditionPathExists=/cfg/sysrepo/startup.json
-
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-ExecStart=/bin/sysrepocfg -d startup -f json --import=/cfg/sysrepo/startup.json
-ExecStart=/bin/sysrepocfg -C startup
-Group=sysrepo
-StandardOutput=journal+console
-
-[Install]
-WantedBy=multi-user.target
diff --git a/package/czechlight-cfg-fs/cfg-yang.service b/package/czechlight-cfg-fs/cfg-yang.service
new file mode 100644
index 0000000..becef34
--- /dev/null
+++ b/package/czechlight-cfg-fs/cfg-yang.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Install YANG modules and persistent data
+After=cfg-migrate.service run-sysrepo.mount
+Requires=cfg-migrate.service
+Before=netopeer2.service
+BindsTo=run-sysrepo.mount
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/bin/bash /usr/libexec/czechlight-cfg-fs/cfg-yang.sh
+Group=sysrepo
+PrivateTmp=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/package/czechlight-cfg-fs/cfg-yang.sh b/package/czechlight-cfg-fs/cfg-yang.sh
new file mode 100755
index 0000000..f437d59
--- /dev/null
+++ b/package/czechlight-cfg-fs/cfg-yang.sh
@@ -0,0 +1,139 @@
+#!/usr/bin/env bash
+
+set -ex
+
+LN2_MODULE_DIR="${LN2_MODULE_DIR:-/usr/share/yang/modules/libnetconf2}"
+NP2_MODULE_DIR="${NP2_MODULE_DIR:-/usr/share/yang/modules/netopeer2}"
+NETOPEER2_SETUP_DIR="${NETOPEER2_SETUP_DIR:-/usr/libexec/netopeer2}"
+CLA_YANG="${CLA_YANG:-/usr/share/yang/modules/cla-sysrepo}"
+VELIA_YANG="${VELIA_YANG:-/usr/share/yang/modules/velia}"
+ALARMS_YANG="${ALARMS_YANG:-/usr/share/yang/modules/sysrepo-ietf-alarms}"
+ROUSETTE_YANG="${ROUSETTE_YANG:-/usr/share/yang/modules/rousette}"
+CFG_FS_YANG="${CFG_FS_YANG:-/usr/share/yang/modules/czechlight-cfg-fs}"
+PROC_CMDLINE="${PROC_CMDLINE:-/proc/cmdline}"
+CFG_SYSREPO_DIR="${CFG_SYSREPO_DIR:-/cfg/sysrepo}"
+
+source ${NETOPEER2_SETUP_DIR}/yang.sh
+
+ROUSETTE_MODULES=(
+ "--install ${ROUSETTE_YANG}/ietf-restconf@2017-01-26.yang"
+ "--install ${ROUSETTE_YANG}/ietf-restconf-monitoring@2017-01-26.yang"
+ "--install ${ROUSETTE_YANG}/ietf-yang-patch@2017-02-22.yang"
+)
+ALARM_MODULES=(
+ "--install ${ALARMS_YANG}/ietf-alarms@2019-09-11.yang"
+ "--enable-feature alarm-shelving"
+ "--enable-feature alarm-summary"
+ "--install ${ALARMS_YANG}/sysrepo-ietf-alarms@2022-02-17.yang"
+)
+VELIA_MODULES=(
+ "--install ${VELIA_YANG}/ietf-system@2014-08-06.yang"
+ "--install ${VELIA_YANG}/czechlight-lldp@2020-11-04.yang"
+ "--install ${VELIA_YANG}/czechlight-system@2022-07-08.yang"
+ "--install ${VELIA_YANG}/iana-if-type@2017-01-19.yang"
+ # sysrepoctl doesn't like duplicates, and the ietf-interfaces and
+ # ietf-ip modules are now dependencies of ietf-netconf-server
+ # "--install ${VELIA_YANG}/ietf-interfaces@2018-02-20.yang"
+ # "--install ${VELIA_YANG}/ietf-ip@2018-02-22.yang"
+ "--install ${VELIA_YANG}/ietf-routing@2018-03-13.yang"
+ "--install ${VELIA_YANG}/ietf-ipv4-unicast-routing@2018-03-13.yang"
+ "--install ${VELIA_YANG}/ietf-ipv6-unicast-routing@2018-03-13.yang"
+ "--install ${VELIA_YANG}/czechlight-network@2021-02-22.yang"
+ "--install ${VELIA_YANG}/ietf-access-control-list@2019-03-04.yang"
+ "--enable-feature match-on-eth"
+ "--enable-feature eth"
+ "--enable-feature match-on-ipv4"
+ "--enable-feature ipv4"
+ "--enable-feature match-on-ipv6"
+ "--enable-feature ipv6"
+ "--enable-feature mixed-eth-ipv4-ipv6"
+ "--install ${VELIA_YANG}/czechlight-firewall@2021-01-25.yang"
+ "--install ${VELIA_YANG}/velia-alarms@2022-07-12.yang"
+)
+CFG_FS_MODULES=(
+ "--install ${CFG_FS_YANG}/czechlight-netconf-server@2024-09-04.yang"
+)
+CLA_MODULES=(
+ "--install ${CLA_YANG}/iana-hardware@2018-03-13.yang"
+ "--install ${CLA_YANG}/ietf-hardware@2018-03-13.yang"
+ "--enable-feature hardware-sensor"
+ "--enable-feature hardware-state"
+)
+
+# determine which hardware model/variety we're on from /proc/cmdline,
+# e.g., there's a "czechlight=sdn-roadm-line-g2" flag passed from the bootloader
+for ARG in $(cat "$PROC_CMDLINE"); do
+ case "${ARG}" in
+ czechlight=*)
+ CZECHLIGHT="${ARG##czechlight=}"
+ ;;
+ esac
+done
+
+case "${CZECHLIGHT}" in
+ "")
+ # no device model set -> do nothing
+ ;;
+ sdn-roadm-line*)
+ CLA_MODULES+=(
+ "--install ${CLA_YANG}/czechlight-roadm-device@2021-03-05.yang"
+ "--enable-feature hw-line-9"
+ )
+ ;;
+ sdn-roadm-add-drop*)
+ CLA_MODULES+=(
+ "--install ${CLA_YANG}/czechlight-roadm-device@2021-03-05.yang"
+ "--enable-feature hw-add-drop-20"
+ )
+ ;;
+ sdn-roadm-hires-add-drop*)
+ CLA_MODULES+=(
+ "--install ${CLA_YANG}/czechlight-roadm-device@2021-03-05.yang"
+ "--enable-feature hw-add-drop-20"
+ "--enable-feature pre-wss-ocm"
+ )
+ ;;
+ sdn-roadm-coherent-a-d*)
+ CLA_MODULES+=(
+ "--install ${CLA_YANG}/czechlight-coherent-add-drop@2021-03-05.yang"
+ )
+ ;;
+ sdn-inline*)
+ CLA_MODULES+=(
+ "--install ${CLA_YANG}/czechlight-inline-amp@2021-03-05.yang"
+ )
+ ;;
+ calibration-box)
+ CLA_MODULES+=(
+ "--install ${CLA_YANG}/czechlight-calibration-device@2019-06-25.yang"
+ )
+ ;;
+ sdn-bidi-cplus1572-g2)
+ CLA_MODULES+=(
+ "--install ${CLA_YANG}/czechlight-bidi-amp@2022-03-22.yang"
+ "--enable-feature dualband-c-plus-1572"
+ )
+ ;;
+ sdn-bidi-cplus1572-ocm-g2)
+ CLA_MODULES+=(
+ "--install ${CLA_YANG}/czechlight-bidi-amp@2022-03-22.yang"
+ "--enable-feature dualband-c-plus-1572"
+ "--enable-feature c-band-ocm"
+ )
+ ;;
+ *)
+ echo "Error: unsupported CzechLight device model ${CZECHLIGHT}"
+ exit 1
+ ;;
+esac
+
+sysrepoctl \
+ -v2 \
+ --search-dirs ${NP2_MODULE_DIR}:${CLA_YANG}:${VELIA_YANG}:${ALARMS_YANG}:${ROUSETTE_YANG} \
+ ${NETOPEER2_YANG_SETUP[@]} \
+ ${ROUSETTE_MODULES[@]} \
+ ${ALARM_MODULES[@]} \
+ ${VELIA_MODULES[@]} \
+ ${CFG_FS_MODULES[@]} \
+ ${CLA_MODULES[@]} \
+ --init-data ${CFG_SYSREPO_DIR}/startup.json
diff --git a/package/czechlight-cfg-fs/czechlight-cfg-fs.mk b/package/czechlight-cfg-fs/czechlight-cfg-fs.mk
index 8ac58dd..6590873 100644
--- a/package/czechlight-cfg-fs/czechlight-cfg-fs.mk
+++ b/package/czechlight-cfg-fs/czechlight-cfg-fs.mk
@@ -25,20 +25,11 @@
endef
CZECHLIGHT_CFG_FS_SYSTEMD_FOR_MULTIUSER = \
- czechlight-install-yang.service \
- czechlight-migrate.service
-
-$(ifeq ($(CZECHLIGHT_CFG_FS_PERSIST_SYSREPO),y))
- CZECHLIGHT_CFG_FS_SYSTEMD_FOR_MULTIUSER += \
- sysrepo-persistent-cfg.service \
- cfg-restore-sysrepo.service
-$(endif)
-$(ifeq ($(CZECHLIGHT_CFG_FS_PERSIST_KEYS),y))
- CZECHLIGHT_CFG_FS_SYSTEMD_FOR_MULTIUSER += openssh-persistent-keys.service
-$(endif)
-$(ifeq ($(CZECHLIGHT_CFG_FS_PERSIST_NETWORK),y))
- CZECHLIGHT_CFG_FS_SYSTEMD_FOR_MULTIUSER += cfg-restore-systemd-networkd.service
-$(endif)
+ cfg-yang.service \
+ cfg-migrate.service \
+ sysrepo-persistent-cfg.service \
+ openssh-persistent-keys.service \
+ cfg-restore-systemd-networkd.service
define CZECHLIGHT_CFG_FS_INSTALL_TARGET_CMDS
mkdir -p $(TARGET_DIR)/cfg
@@ -50,12 +41,20 @@
$(@D)/czechlight-random-seed
$(INSTALL) -D -m 0755 -t $(TARGET_DIR)/usr/libexec/czechlight-cfg-fs \
- $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/czechlight-install-yang.sh \
- $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/czechlight-migrate.sh \
- $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/czechlight-migration-list.sh
+ $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/cfg-yang.sh \
+ $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/cfg-migrate.sh \
+ $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/cfg-filter-key.sh
- $(INSTALL) -D -m 0644 -t $(TARGET_DIR)/usr/libexec/czechlight-cfg-fs/migrations \
- $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/migrations/*
+ $(INSTALL) -D -m 0644 -t $(TARGET_DIR)/usr/libexec/czechlight-cfg-fs \
+ $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/meld.jq \
+ $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/CURRENT_CONFIG_VERSION
+
+ $(INSTALL) -D -m 0644 -t $(TARGET_DIR)/usr/share/yang/static-data/czechlight-cfg-fs \
+ $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/static-data/*.json \
+ $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/static-data/*.json.in
+
+ $(INSTALL) -D -m 0644 -t $(TARGET_DIR)/usr/share/yang/modules/czechlight-cfg-fs \
+ $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/yang/*.yang
for UNIT in $(CZECHLIGHT_CFG_FS_SYSTEMD_FOR_MULTIUSER); do \
@@ -66,6 +65,32 @@
$(INSTALL) -D -m 644 -t $(TARGET_DIR)/usr/lib/systemd/system-preset \
$(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/50-czechlight.preset
+ $(INSTALL) -D -m 0644 --target-directory $(TARGET_DIR)/usr/lib/systemd/system/ \
+ $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/run-sysrepo.mount
+ $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/lib/systemd/system/run-sysrepo.mount.d/
+ for UNIT in \
+ cla-sdn-inline.service \
+ cla-sdn-roadm-add-drop.service \
+ cla-sdn-roadm-coherent-a-d.service \
+ cla-sdn-roadm-hires-drop.service \
+ cla-sdn-roadm-line.service \
+ cla-sdn-bidi-cplus1572.service \
+ cla-sdn-bidi-cplus1572-ocm.service \
+ netopeer2.service \
+ sysrepo-ietf-alarms.service \
+ sysrepo-persistent-cfg.service \
+ sysrepo-plugind.service \
+ velia-firewall.service \
+ velia-health.service \
+ velia-system.service \
+ velia-hardware-g1.service \
+ velia-hardware-g2.service \
+ rousette.service \
+ ; do \
+ $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/lib/systemd/system/$${UNIT}.d/ ; \
+ echo -e "[Unit]\nBindsTo=run-sysrepo.mount\nAfter=run-sysrepo.mount" \
+ > $(TARGET_DIR)/usr/lib/systemd/system/$${UNIT}.d/reset-sysrepo.conf ; \
+ done
endef
# Configure OpenSSH to look for *user* keys in the /cfg
@@ -74,9 +99,27 @@
endef
OPENSSH_POST_INSTALL_TARGET_HOOKS += CZECHLIGHT_CFG_FS_OPENSSH_AUTH_PATH_PATCH
-NETOPEER2_CONF_OPTS += \
- -DNP2SRV_SSH_AUTHORIZED_KEYS_PATTERN="/cfg/ssh-user-auth/%s" \
- -DNP2SRV_SSH_AUTHORIZED_KEYS_ARG_IS_USERNAME=ON
+NETOPEER2_CONF_OPTS += -DSSH_AUTHORIZED_KEYS_FORMAT="/cfg/ssh-user-auth/%u"
+
+VELIA_CONF_OPTS += \
+ -DVELIA_BACKUP_ETC_SHADOW=/cfg/etc/shadow \
+ -DVELIA_BACKUP_ETC_HOSTNAME=/cfg/etc/hostname \
+ -DVELIA_AUTHORIZED_KEYS_FORMAT="/cfg/ssh-user-auth/{USER}"
+
+# Do not use buildroot's stock installation scripts
+define CZECHLIGHT_CFG_FS_OVERRIDE_NETOPEER_UNITS
+ $(SED) 's|netopeer2-setup.service|cfg-yang.service|g' $(TARGET_DIR)/usr/lib/systemd/system/netopeer2.service
+endef
+NETOPEER2_POST_INSTALL_TARGET_HOOKS += CZECHLIGHT_CFG_FS_OVERRIDE_NETOPEER_UNITS
+
+# Do not clutter /dev/shm, use a proper prefix for sysrepo
+define RESET_SYSREPO_PATCH_DEV_SHM
+ sed -i \
+ 's|^#define SR_SHM_DIR .*|#define SR_SHM_DIR "/run/sysrepo"|' \
+ $(@D)/src/config.h.in
+endef
+SYSREPO_PRE_PATCH_HOOKS += RESET_SYSREPO_PATCH_DEV_SHM
+SYSREPO_POST_RSYNC_HOOKS += RESET_SYSREPO_PATCH_DEV_SHM
.PHONY: czechlight-cfg-fs-test-migrations
czechlight-cfg-fs-test-migrations: PKG=czechlight-cfg-fs
@@ -87,7 +130,13 @@
VELIA_SRCDIR=$(VELIA_SRCDIR) \
SYSREPO_IETF_ALARMS_SRCDIR=$(SYSREPO_IETF_ALARMS_SRCDIR) \
ROUSETTE_SRCDIR=$(ROUSETTE_SRCDIR) \
+ LIBNETCONF2_SRCDIR=$(LIBNETCONF2_SRCDIR) \
NETOPEER2_SRCDIR=$(NETOPEER2_SRCDIR) \
- pytest -vv $(BR2_EXTERNAL_CZECHLIGHT_PATH)/tests/czechlight-cfg-fs/migrations.py
+ PYTHONDONTWRITEBYTECODE=1 \
+ pytest \
+ -vv \
+ --basetemp $(BUILD_DIR)/czechlight-cfg-fs/pytest \
+ -o tmp_path_retention_count=1 \
+ $(BR2_EXTERNAL_CZECHLIGHT_PATH)/tests/czechlight-cfg-fs/migrations.py
$(eval $(generic-package))
diff --git a/package/czechlight-cfg-fs/czechlight-install-yang.service b/package/czechlight-cfg-fs/czechlight-install-yang.service
deleted file mode 100644
index 80e89fc..0000000
--- a/package/czechlight-cfg-fs/czechlight-install-yang.service
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Install CzechLight YANG models
-After=netopeer2-install-yang.service cfg.mount
-Requires=netopeer2-install-yang.service cfg.mount
-Before=netopeer2.service cfg-restore-sysrepo.service czechlight-migrate.service
-
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-ExecStart=/bin/bash /usr/libexec/czechlight-cfg-fs/czechlight-install-yang.sh
-Group=sysrepo
-
-[Install]
-WantedBy=multi-user.target
diff --git a/package/czechlight-cfg-fs/czechlight-install-yang.sh b/package/czechlight-cfg-fs/czechlight-install-yang.sh
deleted file mode 100755
index df1a828..0000000
--- a/package/czechlight-cfg-fs/czechlight-install-yang.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-CLA_YANG="${CLA_YANG:-/usr/share/cla-sysrepo/yang}"
-VELIA_YANG="${VELIA_YANG:-/usr/share/velia/yang}"
-ALARMS_YANG="${ALARMS_YANG:-/usr/share/sysrepo-ietf-alarms/yang}"
-ROUSETTE_YANG="${ROUSETTE_YANG:-/usr/share/rousette/yang}"
-PROC_CMDLINE="${PROC_CMDLINE:-/proc/cmdline}"
-
-for ARG in $(cat "$PROC_CMDLINE"); do
- case "${ARG}" in
- czechlight=*)
- CZECHLIGHT="${ARG:11}"
- ;;
- esac
-done
-
-case "${CZECHLIGHT}" in
- sdn-roadm-line*)
- DEVICE_YANG="--install ${CLA_YANG}/czechlight-roadm-device@2021-03-05.yang --enable-feature hw-line-9"
- ;;
- sdn-roadm-add-drop*)
- DEVICE_YANG="--install ${CLA_YANG}/czechlight-roadm-device@2021-03-05.yang --enable-feature hw-add-drop-20"
- ;;
- sdn-roadm-hires-add-drop*)
- DEVICE_YANG="--install ${CLA_YANG}/czechlight-roadm-device@2021-03-05.yang --enable-feature hw-add-drop-20 --enable-feature pre-wss-ocm"
- ;;
- sdn-roadm-coherent-a-d*)
- DEVICE_YANG="--install ${CLA_YANG}/czechlight-coherent-add-drop@2021-03-05.yang"
- ;;
- sdn-inline*)
- DEVICE_YANG="--install ${CLA_YANG}/czechlight-inline-amp@2021-03-05.yang"
- ;;
- calibration-box)
- DEVICE_YANG="--install ${CLA_YANG}/czechlight-calibration-device@2019-06-25.yang"
- ;;
- sdn-bidi-cplus1572-g2)
- DEVICE_YANG="--install ${CLA_YANG}/czechlight-bidi-amp@2022-03-22.yang --enable-feature dualband-c-plus-1572"
- ;;
- sdn-bidi-cplus1572-ocm-g2)
- DEVICE_YANG="--install ${CLA_YANG}/czechlight-bidi-amp@2022-03-22.yang --enable-feature dualband-c-plus-1572 --enable-feature c-band-ocm"
- ;;
-esac
-
-sysrepoctl \
- --search-dirs ${CLA_YANG}:${VELIA_YANG}:${ALARMS_YANG}:${ROUSETTE_YANG} \
- --install ${CLA_YANG}/iana-hardware@2018-03-13.yang \
- --install ${CLA_YANG}/ietf-hardware@2018-03-13.yang \
- --enable-feature hardware-sensor \
- --enable-feature hardware-state \
- --install ${ALARMS_YANG}/ietf-alarms@2019-09-11.yang \
- --enable-feature alarm-shelving \
- --enable-feature alarm-summary \
- --install ${ALARMS_YANG}/sysrepo-ietf-alarms@2022-02-17.yang \
- --install ${VELIA_YANG}/ietf-system@2014-08-06.yang \
- --install ${VELIA_YANG}/czechlight-lldp@2020-11-04.yang \
- --install ${VELIA_YANG}/czechlight-system@2022-07-08.yang \
- --install ${VELIA_YANG}/iana-if-type@2017-01-19.yang \
- --install ${VELIA_YANG}/ietf-interfaces@2018-02-20.yang \
- --install ${VELIA_YANG}/ietf-ip@2018-02-22.yang \
- --install ${VELIA_YANG}/ietf-routing@2018-03-13.yang \
- --install ${VELIA_YANG}/ietf-ipv4-unicast-routing@2018-03-13.yang \
- --install ${VELIA_YANG}/ietf-ipv6-unicast-routing@2018-03-13.yang \
- --install ${VELIA_YANG}/czechlight-network@2021-02-22.yang \
- --install ${VELIA_YANG}/ietf-access-control-list@2019-03-04.yang \
- --enable-feature match-on-eth \
- --enable-feature eth \
- --enable-feature match-on-ipv4 \
- --enable-feature ipv4 \
- --enable-feature match-on-ipv6 \
- --enable-feature ipv6 \
- --enable-feature mixed-eth-ipv4-ipv6 \
- --install ${VELIA_YANG}/czechlight-firewall@2021-01-25.yang \
- --install ${VELIA_YANG}/velia-alarms@2022-07-12.yang \
- --install ${ROUSETTE_YANG}/ietf-restconf@2017-01-26.yang \
- ${DEVICE_YANG}
diff --git a/package/czechlight-cfg-fs/czechlight-migrate.service b/package/czechlight-cfg-fs/czechlight-migrate.service
deleted file mode 100644
index 7e58d4d..0000000
--- a/package/czechlight-cfg-fs/czechlight-migrate.service
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Migrate CzechLight YANG models startup data
-After=netopeer2-install-yang.service czechlight-install-yang.service cfg-restore-sysrepo.service cfg.mount
-Requires=netopeer2-install-yang.service czechlight-install-yang.service cfg-restore-sysrepo.service cfg.mount
-Before=netopeer2-setup.service netopeer2.service sysrepo-persistent-cfg.service
-
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-ExecStart=/bin/bash /usr/libexec/czechlight-cfg-fs/czechlight-migrate.sh
-Group=sysrepo
-
-[Install]
-WantedBy=multi-user.target
diff --git a/package/czechlight-cfg-fs/czechlight-migrate.sh b/package/czechlight-cfg-fs/czechlight-migrate.sh
deleted file mode 100755
index 2046010..0000000
--- a/package/czechlight-cfg-fs/czechlight-migrate.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-SCRIPT_ROOT=$(dirname $(realpath -s $0))
-MIGRATIONS=$SCRIPT_ROOT/czechlight-migration-list.sh
-export MIGRATIONS_DIRECTORY=${SCRIPT_ROOT}/migrations
-CFG_VERSION_FILE="${CFG_VERSION_FILE:-/cfg/sysrepo/version}"
-CFG_STARTUP_FILE="${CFG_STARTUP_FILE:-/cfg/sysrepo/startup.json}"
-PROC_CMDLINE="${PROC_CMDLINE:-/proc/cmdline}"
-
-export CLA_YANG="${CLA_YANG:-/usr/share/cla-sysrepo/yang}"
-export VELIA_YANG="${VELIA_YANG:-/usr/share/velia/yang}"
-export ALARMS_YANG="${ALARMS_YANG:-/usr/share/sysrepo-ietf-alarms/yang}"
-
-# load migrations and perform a sanity check (filename's numerical prefix corresponds to the order in the MIGRATIONS array)
-source $MIGRATIONS
-for i in $(seq ${#MIGRATION_FILES[@]}); do
- FILENAME=${MIGRATION_FILES[$(($i - 1))]}
-
- if ! [[ "$FILENAME" =~ ^[0-9]{4}_.*.sh$ ]]; then
- echo "Migration file '$FILENAME' has unexpected name"
- exit 1
- fi
-
- FILE_REV=$(echo "$FILENAME" | grep -Eo "^[0-9]{4}")
- if [[ $((FILE_REV + 0)) != $i ]]; then
- echo "Migration filename '$FILENAME' hints revision $(($FILE_REV + 0)) but it is at position $i of the migration array"
- exit 1
- fi
-done
-
-for ARG in $(cat "$PROC_CMDLINE"); do
- case "${ARG}" in
- czechlight=*)
- export CZECHLIGHT="${ARG:11}"
- ;;
- esac
-done
-
-case "${CZECHLIGHT}" in
- sdn-roadm-line*)
- export YANG_ROADM=1
- ;;
- sdn-roadm-add-drop*)
- export YANG_ROADM=1
- ;;
- sdn-roadm-hires-add-drop*)
- export YANG_ROADM=1
- ;;
- sdn-roadm-coherent-a-d*)
- export YANG_COHERENT=1
- ;;
- sdn-inline*)
- export YANG_INLINE=1
- ;;
- calibration-box)
- export YANG_CALIBRATION=1
- ;;
-esac
-
-
-# we might end up on the system
-# * that was created before the migrations were introduced; such system does not have ${CFG_VERSION_FILE}
-# * that was just created and freshly initialized with firmware; it has ${CFG_VERSION_FILE} but startup.json does not exist
-if [[ -r "$CFG_VERSION_FILE" && -f "$CFG_STARTUP_FILE" ]]; then
- CURRENT_VERSION="$(cat ${CFG_VERSION_FILE})"
-else
- CURRENT_VERSION=0
-fi
-
-if [[ ! "$CURRENT_VERSION" =~ ^[0-9]+$ ]]; then
- echo "Invalid version '$CURRENT_VERSION'"
- exit 1
-fi
-
-while [[ $CURRENT_VERSION -lt ${#MIGRATION_FILES[@]} ]]; do
- /bin/bash ${SCRIPT_ROOT}/migrations/${MIGRATION_FILES[$CURRENT_VERSION]}
- CURRENT_VERSION=$(($CURRENT_VERSION + 1))
-done
-
-# store current version and save startup.json
-mkdir -p $(dirname ${CFG_STARTUP_FILE}) $(dirname ${CFG_VERSION_FILE})
-sysrepocfg -d startup -f json -X > "$CFG_STARTUP_FILE"
-echo "$CURRENT_VERSION" > "$CFG_VERSION_FILE"
-
-# If not do not copy here from startup -> running, running might be stale.
-sysrepocfg -C startup
diff --git a/package/czechlight-cfg-fs/czechlight-migration-list.sh b/package/czechlight-cfg-fs/czechlight-migration-list.sh
deleted file mode 100644
index fcaf04f..0000000
--- a/package/czechlight-cfg-fs/czechlight-migration-list.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-MIGRATION_FILES=(
- '0001_initial-data.sh'
- '0002_default_startup_configuration_for_ietf-interfaces.sh'
- '0003_shelve_alarms.sh'
- '0004_nacm.sh'
- '0005_nacm_anonymous_user.sh'
- '0006_nacm_authentication_rpcs.sh'
- '0007_nacm_anonymous_user_monitoring.sh'
- '0008_bidi_amp_nacm.sh'
-)
diff --git a/package/czechlight-cfg-fs/meld.jq b/package/czechlight-cfg-fs/meld.jq
new file mode 100644
index 0000000..be30657
--- /dev/null
+++ b/package/czechlight-cfg-fs/meld.jq
@@ -0,0 +1,14 @@
+# https://stackoverflow.com/a/53666584/2245623
+# Recursively meld a and b, concatenating arrays and favoring b when there is a conflict
+def meld(a; b):
+ a as $a | b as $b
+ | if ($a|type) == "object" and ($b|type) == "object"
+ then reduce ([$a,$b]|add|keys_unsorted[]) as $k ({};
+ .[$k] = meld( $a[$k]; $b[$k]) )
+ elif ($a|type) == "array" and ($b|type) == "array"
+ then $a+$b
+ elif $b == null then $a
+ else $b
+ end;
+
+reduce inputs as $i (.; meld(.; $i))
diff --git a/package/czechlight-cfg-fs/migrations/0001_initial-data.sh b/package/czechlight-cfg-fs/migrations/0001_initial-data.sh
deleted file mode 100644
index 8b81ccb..0000000
--- a/package/czechlight-cfg-fs/migrations/0001_initial-data.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-
-# Load initial data
-# -----------------
-# These data are imported into the sysrepo's startup datastore only once. This happens either when the box is restored to
-# its factory settings (the box is new and boots for the first time or someone deletes the startup.json backup in /cfg)
-# or when the box is upgraded from the state before the migrations were introduced (versions released before July 2022).
-#
-# It's OK for user to remove these settings from sysrepo startup DS.
-# However, the data will NEVER get restored by us (unless somebody deletes /cfg/startup.json, see above).
-
-case "${CZECHLIGHT}" in
- sdn-roadm-line*)
- sysrepocfg --datastore=startup --format=json --module=czechlight-roadm-device --import="${CLA_YANG}/sdn-roadm-line.json"
- ;;
- sdn-roadm-add-drop*)
- ;& # fallthrough
- sdn-roadm-hires-add-drop*)
- sysrepocfg --datastore=startup --format=json --module=czechlight-roadm-device --import="${CLA_YANG}/sdn-roadm-add-drop.json"
- ;;
- sdn-roadm-coherent-a-d*)
- sysrepocfg --datastore=startup --format=json --module=czechlight-coherent-add-drop --import="${CLA_YANG}/sdn-roadm-coherent-a-d.json"
- ;;
- sdn-inline*)
- sysrepocfg --datastore=startup --format=json --module=czechlight-inline-amp --import="${CLA_YANG}/sdn-inline.json"
- ;;
- calibration-box)
- sysrepocfg --datastore=startup --format=json --module=czechlight-calibration-device --import="${CLA_YANG}/calibration-box.json"
- ;;
-esac
diff --git a/package/czechlight-cfg-fs/migrations/0002_default_startup_configuration_for_ietf-interfaces.sh b/package/czechlight-cfg-fs/migrations/0002_default_startup_configuration_for_ietf-interfaces.sh
deleted file mode 100644
index 341bb8c..0000000
--- a/package/czechlight-cfg-fs/migrations/0002_default_startup_configuration_for_ietf-interfaces.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-# setup default configuration for ietf-interfaces in startup DS
-# This overwrites current networking setup
-
-set -x
-set -e
-
-case "${CZECHLIGHT}" in
- sdn-roadm-add-drop*)
- ;&
- sdn-roadm-hires-add-drop*)
- ;&
- sdn-roadm-coherent-a-d*)
- sysrepocfg --datastore=startup --format=json --module=ietf-interfaces --import="${MIGRATIONS_DIRECTORY}/0002_ietf-interfaces_default-startup-config_add-drop.json"
- ;;
- sdn-inline*)
- sysrepocfg --datastore=startup --format=json --module=ietf-interfaces --import="${MIGRATIONS_DIRECTORY}/0002_ietf-interfaces_default-startup-config_sdn-inline.json"
- ;;
- sdn-roadm-line*)
- sysrepocfg --datastore=startup --format=json --module=ietf-interfaces --import="${MIGRATIONS_DIRECTORY}/0002_ietf-interfaces_default-startup-config.json"
- ;;
-esac
diff --git a/package/czechlight-cfg-fs/migrations/0003_shelve_alarms.sh b/package/czechlight-cfg-fs/migrations/0003_shelve_alarms.sh
deleted file mode 100644
index c679ebb..0000000
--- a/package/czechlight-cfg-fs/migrations/0003_shelve_alarms.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-# Ignore failures from systemd-journal-upload.service
-# ---------------------------------------------------
-# After migration to ietf-alarms based health state reporting we should
-# keep the current settings, i.e., ignore alarms coming from this particular
-# systemd-journal-upload.service
-#
-sysrepocfg --datastore=startup --format=json --module=ietf-alarms --import="${MIGRATIONS_DIRECTORY}/0003_ietf-alarms_shelve-journal-upload.json"
diff --git a/package/czechlight-cfg-fs/migrations/0004_nacm.json b/package/czechlight-cfg-fs/migrations/0004_nacm.json
deleted file mode 100644
index 59d413b..0000000
--- a/package/czechlight-cfg-fs/migrations/0004_nacm.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Allow DWDM control to the optics group",
- "group": ["optics"],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- }
- ]
- }
-}
diff --git a/package/czechlight-cfg-fs/migrations/0004_nacm.sh b/package/czechlight-cfg-fs/migrations/0004_nacm.sh
deleted file mode 100644
index 3d7a899..0000000
--- a/package/czechlight-cfg-fs/migrations/0004_nacm.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-# Import CzechLight-specific NACM rules for DWDM modules
-# ------------------------------------------------------
-# Before this we restored these NACM rules from our "factory-default" on every boot, overwriting whatever was in the ietf-netconf-acm module.
-# Since config v4, the users are free to modify NACM rules as they wish.
-
-sysrepocfg -d startup -m ietf-netconf-acm -f json --import="${MIGRATIONS_DIRECTORY}/0004_nacm.json"
diff --git a/package/czechlight-cfg-fs/migrations/0005_nacm_anonymous_user.json b/package/czechlight-cfg-fs/migrations/0005_nacm_anonymous_user.json
deleted file mode 100644
index b370ba7..0000000
--- a/package/czechlight-cfg-fs/migrations/0005_nacm_anonymous_user.json
+++ /dev/null
@@ -1,114 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "@": {
- "yang:insert": "first"
- },
- "name": "Permit yangnobody user/group to read only some modules",
- "group": [
- "yangnobody"
- ],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-yang-library",
- "module-name": "ietf-yang-library",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: contact",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/contact",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: hostname",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/hostname",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: location",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/location",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: clock",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/clock",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: system-state",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system-state",
- "access-operations": "read"
- },
- {
- "name": "czechlight-lldp",
- "module-name": "czechlight-lldp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:firmware",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:firmware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:leds",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:leds",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "wildcard-deny",
- "module-name": "*",
- "action": "deny",
- "access-operations": "*"
- }
- ]
- }
- ]
- }
-}
diff --git a/package/czechlight-cfg-fs/migrations/0005_nacm_anonymous_user.sh b/package/czechlight-cfg-fs/migrations/0005_nacm_anonymous_user.sh
deleted file mode 100644
index 0e45c05..0000000
--- a/package/czechlight-cfg-fs/migrations/0005_nacm_anonymous_user.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-
-# Introduce rules for NACM anonymous access user
-# ----------------------------------------------
-# Adds rules for the anonymous user access to the front of the ietf-netconf-acm:nacm/rule-list.
-
-sysrepocfg --datastore=startup --format=json --module=ietf-netconf-acm --edit="${MIGRATIONS_DIRECTORY}/0005_nacm_anonymous_user.json"
diff --git a/package/czechlight-cfg-fs/migrations/0006_nacm_authentication_rpcs.sh b/package/czechlight-cfg-fs/migrations/0006_nacm_authentication_rpcs.sh
deleted file mode 100644
index 869aa53..0000000
--- a/package/czechlight-cfg-fs/migrations/0006_nacm_authentication_rpcs.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-# Enable users change their own pubkeys and password
-# --------------------------------------------------
-# All users should be able to change their own pubkeys or password.
-# We have actions/RPCs for that under /czechlight-system:authentication/users: change-password, add-authorized-key, and authorized-keys/remove
-
-sysrepocfg --datastore=startup --format=json --module=ietf-netconf-acm --edit="${VELIA_YANG}/czechlight-authentication.json"
diff --git a/package/czechlight-cfg-fs/migrations/0007_nacm_anonymous_user_monitoring.json b/package/czechlight-cfg-fs/migrations/0007_nacm_anonymous_user_monitoring.json
deleted file mode 100644
index 7d507ca..0000000
--- a/package/czechlight-cfg-fs/migrations/0007_nacm_anonymous_user_monitoring.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Permit yangnobody user/group to read only some modules",
- "group": [
- "yangnobody"
- ],
- "rule": [
- {
- "@": {
- "yang:insert": "before",
- "yang:key": "[name='wildcard-deny']"
- },
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
- }
- ]
- }
- ]
- }
-}
diff --git a/package/czechlight-cfg-fs/migrations/0007_nacm_anonymous_user_monitoring.sh b/package/czechlight-cfg-fs/migrations/0007_nacm_anonymous_user_monitoring.sh
deleted file mode 100644
index 99606f9..0000000
--- a/package/czechlight-cfg-fs/migrations/0007_nacm_anonymous_user_monitoring.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-# Allow NACM anonymous access user to access ietf-restconf-monitoring module
-# --------------------------------------------------------------------------
-# Adds rules for the anonymous user access before wildcard deny rule. This runs
-# after "0004_nacm" and "0005_nacm_anonymous_user", so if the rule-list itself
-# does not exist, we assume that it's a deliberate configuration, and nothing
-# gets created. If the rule-list exists, but the deny-all rule does not exist,
-# then ietf-restconf-monitoring is simply added as the very last rule.
-
-if RULE=$(sysrepocfg -d startup -G "/ietf-netconf-acm:nacm/rule-list[name='Permit yangnobody user/group to read only some modules']/name") && [ -n "$RULE" ]; then
- if RULE=$(sysrepocfg -d startup -G "/ietf-netconf-acm:nacm/rule-list[name='Permit yangnobody user/group to read only some modules']/rule[name='wildcard-deny']/name") && [ -n "$RULE" ]; then
- sysrepocfg --datastore=startup --format=json --module=ietf-netconf-acm --edit="${MIGRATIONS_DIRECTORY}/0007_nacm_anonymous_user_monitoring.json"
- else
- sysrepocfg --datastore=startup --format=json --module=ietf-netconf-acm --edit="${MIGRATIONS_DIRECTORY}/0007_nacm_anonymous_user_monitoring_append.json"
- fi
-fi
diff --git a/package/czechlight-cfg-fs/migrations/0007_nacm_anonymous_user_monitoring_append.json b/package/czechlight-cfg-fs/migrations/0007_nacm_anonymous_user_monitoring_append.json
deleted file mode 100644
index 2daa6b0..0000000
--- a/package/czechlight-cfg-fs/migrations/0007_nacm_anonymous_user_monitoring_append.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Permit yangnobody user/group to read only some modules",
- "group": [
- "yangnobody"
- ],
- "rule": [
- {
- "@": {
- "yang:insert": "last"
- },
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
- }
- ]
- }
- ]
- }
-}
diff --git a/package/czechlight-cfg-fs/migrations/0008_bidi_amp_nacm.sh b/package/czechlight-cfg-fs/migrations/0008_bidi_amp_nacm.sh
deleted file mode 100644
index b136ea4..0000000
--- a/package/czechlight-cfg-fs/migrations/0008_bidi_amp_nacm.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-set -ex
-
-# Configure access to the czechlight-bidi-amp module
-# --------------------------------------------------
-#
-# The rules are added right after those for the inline amplifier. Since this script only runs after "0004_nacm"
-# and "0005_nacm_anonymous_user", we can assume that if the outer rule-list is not present at all, that must be
-# a deliberate configuration. In that case, we probably should not add any rules. Similarly, if there's no rule
-# for the "czechlight-inline-amp", let's take a guess and assume that the operator does not want to allow access
-# to amplifiers -- again, it can only happen due to an explicit configuration.
-#
-# The first rule is for authenticated users, default group "dwdm".
-if RULE=$(sysrepocfg -d startup -G "/ietf-netconf-acm:nacm/rule-list[name='Allow DWDM control to the optics group']/rule[name='czechlight-inline-amp']/name") \
- && [ "$RULE" == "czechlight-inline-amp" ]; then
- sysrepocfg --datastore=startup --format=json --module=ietf-netconf-acm --edit="${MIGRATIONS_DIRECTORY}/0008_bidi_amp_nacm_optics.json"
-fi
-
-# The second rule allows anonymous read-only access via RESTCONF.
-if RULE=$(sysrepocfg -d startup -G "/ietf-netconf-acm:nacm/rule-list[name='Permit yangnobody user/group to read only some modules']/rule[name='czechlight-inline-amp']/name") \
- && [ "$RULE" == "czechlight-inline-amp" ]; then
- sysrepocfg --datastore=startup --format=json --module=ietf-netconf-acm --edit="${MIGRATIONS_DIRECTORY}/0008_bidi_amp_nacm_anonymous_user.json"
-fi
diff --git a/package/czechlight-cfg-fs/migrations/0008_bidi_amp_nacm_anonymous_user.json b/package/czechlight-cfg-fs/migrations/0008_bidi_amp_nacm_anonymous_user.json
deleted file mode 100644
index d72d359..0000000
--- a/package/czechlight-cfg-fs/migrations/0008_bidi_amp_nacm_anonymous_user.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Permit yangnobody user/group to read only some modules",
- "group": [
- "yangnobody"
- ],
- "rule": [
- {
- "@": {
- "yang:insert": "after",
- "yang:key": "[name='czechlight-inline-amp']"
- },
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit",
- "access-operations": "read"
- }
- ]
- }
- ]
- }
-}
diff --git a/package/czechlight-cfg-fs/migrations/0008_bidi_amp_nacm_optics.json b/package/czechlight-cfg-fs/migrations/0008_bidi_amp_nacm_optics.json
deleted file mode 100644
index 9be0846..0000000
--- a/package/czechlight-cfg-fs/migrations/0008_bidi_amp_nacm_optics.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Allow DWDM control to the optics group",
- "group": [
- "optics"
- ],
- "rule": [
- {
- "@": {
- "yang:insert": "after",
- "yang:key": "[name='czechlight-inline-amp']"
- },
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit"
- }
- ]
- }
- ]
- }
-}
diff --git a/package/reset-sysrepo/run-sysrepo.mount b/package/czechlight-cfg-fs/run-sysrepo.mount
similarity index 62%
rename from package/reset-sysrepo/run-sysrepo.mount
rename to package/czechlight-cfg-fs/run-sysrepo.mount
index 61c9eca..d0a9b9c 100644
--- a/package/reset-sysrepo/run-sysrepo.mount
+++ b/package/czechlight-cfg-fs/run-sysrepo.mount
@@ -1,6 +1,5 @@
[Unit]
Description=Prepare a fake /dev/shm for sysrepo
-Before=netopeer2-install-yang.service czechlight-install-yang.service netopeer2-setup.service
[Mount]
What=tmpfs
diff --git a/package/czechlight-cfg-fs/migrations/0003_ietf-alarms_shelve-journal-upload.json b/package/czechlight-cfg-fs/static-data/alarms-shelve-journal-upload.json
similarity index 100%
rename from package/czechlight-cfg-fs/migrations/0003_ietf-alarms_shelve-journal-upload.json
rename to package/czechlight-cfg-fs/static-data/alarms-shelve-journal-upload.json
diff --git a/package/czechlight-cfg-fs/migrations/0002_ietf-interfaces_default-startup-config_sdn-inline.json b/package/czechlight-cfg-fs/static-data/ietf-interfaces-inline-amp.json
similarity index 100%
rename from package/czechlight-cfg-fs/migrations/0002_ietf-interfaces_default-startup-config_sdn-inline.json
rename to package/czechlight-cfg-fs/static-data/ietf-interfaces-inline-amp.json
diff --git a/package/czechlight-cfg-fs/migrations/0002_ietf-interfaces_default-startup-config_add-drop.json b/package/czechlight-cfg-fs/static-data/ietf-interfaces-roadm-add-drop.json
similarity index 100%
rename from package/czechlight-cfg-fs/migrations/0002_ietf-interfaces_default-startup-config_add-drop.json
rename to package/czechlight-cfg-fs/static-data/ietf-interfaces-roadm-add-drop.json
diff --git a/package/czechlight-cfg-fs/migrations/0002_ietf-interfaces_default-startup-config.json b/package/czechlight-cfg-fs/static-data/ietf-interfaces-roadm-line.json
similarity index 100%
rename from package/czechlight-cfg-fs/migrations/0002_ietf-interfaces_default-startup-config.json
rename to package/czechlight-cfg-fs/static-data/ietf-interfaces-roadm-line.json
diff --git a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_default_nacm/expected.json b/package/czechlight-cfg-fs/static-data/nacm.json
similarity index 91%
rename from tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_default_nacm/expected.json
rename to package/czechlight-cfg-fs/static-data/nacm.json
index 976b8c8..689a5cd 100644
--- a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_default_nacm/expected.json
+++ b/package/czechlight-cfg-fs/static-data/nacm.json
@@ -8,44 +8,14 @@
],
"rule": [
{
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
"name": "ietf-yang-library",
"module-name": "ietf-yang-library",
"action": "permit",
"access-operations": "read"
},
{
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
+ "name": "ietf-restconf-monitoring",
+ "module-name": "ietf-restconf-monitoring",
"action": "permit",
"access-operations": "read"
},
@@ -85,6 +55,18 @@
"access-operations": "read"
},
{
+ "name": "ietf-hardware",
+ "module-name": "ietf-hardware",
+ "action": "permit",
+ "access-operations": "read"
+ },
+ {
+ "name": "ietf-interfaces",
+ "module-name": "ietf-interfaces",
+ "action": "permit",
+ "access-operations": "read"
+ },
+ {
"name": "czechlight-lldp",
"module-name": "czechlight-lldp",
"action": "permit",
@@ -105,8 +87,32 @@
"access-operations": "read"
},
{
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
+ "name": "czechlight-roadm-device",
+ "module-name": "czechlight-roadm-device",
+ "action": "permit",
+ "access-operations": "read"
+ },
+ {
+ "name": "czechlight-inline-amp",
+ "module-name": "czechlight-inline-amp",
+ "action": "permit",
+ "access-operations": "read"
+ },
+ {
+ "name": "czechlight-bidi-amp",
+ "module-name": "czechlight-bidi-amp",
+ "action": "permit",
+ "access-operations": "read"
+ },
+ {
+ "name": "czechlight-coherent-add-drop",
+ "module-name": "czechlight-coherent-add-drop",
+ "action": "permit",
+ "access-operations": "read"
+ },
+ {
+ "name": "czechlight-calibration-device",
+ "module-name": "czechlight-calibration-device",
"action": "permit",
"access-operations": "read"
},
@@ -120,7 +126,9 @@
},
{
"name": "Allow DWDM control to the optics group",
- "group": ["optics"],
+ "group": [
+ "optics"
+ ],
"rule": [
{
"name": "czechlight-roadm-device",
@@ -148,21 +156,6 @@
"action": "permit"
}
]
- },
- {
- "name": "Authentication details of current user",
- "group": [
- "*"
- ],
- "rule": [
- {
- "name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
- "module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
- }
- ]
}
]
}
diff --git a/package/czechlight-cfg-fs/static-data/netopeer2.json.in b/package/czechlight-cfg-fs/static-data/netopeer2.json.in
new file mode 100644
index 0000000..59cf52d
--- /dev/null
+++ b/package/czechlight-cfg-fs/static-data/netopeer2.json.in
@@ -0,0 +1,42 @@
+{
+ "ietf-keystore:keystore": {
+ "asymmetric-keys": {
+ "asymmetric-key": [
+ {
+ "name": "genkey",
+ "public-key-format": "ietf-crypto-types:ssh-public-key-format",
+ "private-key-format": "ietf-crypto-types:rsa-private-key-format",
+ "cleartext-private-key": CLEARTEXT_PRIVATE_KEY
+ }
+ ]
+ }
+ },
+ "ietf-netconf-server:netconf-server": {
+ "listen": {
+ "endpoints": {
+ "endpoint": [
+ {
+ "name": "default-ssh",
+ "ssh": {
+ "tcp-server-parameters": {
+ "local-address": "::"
+ },
+ "ssh-server-parameters": {
+ "server-identity": {
+ "host-key": [
+ {
+ "name": "default-key",
+ "public-key": {
+ "central-keystore-reference": "genkey"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/package/czechlight-cfg-fs/sysrepo-persistent-cfg.service b/package/czechlight-cfg-fs/sysrepo-persistent-cfg.service
index b8f5788..4c9418f 100644
--- a/package/czechlight-cfg-fs/sysrepo-persistent-cfg.service
+++ b/package/czechlight-cfg-fs/sysrepo-persistent-cfg.service
@@ -1,7 +1,7 @@
[Unit]
Description=Persisting persistent sysrepo datastores to /cfg
-After=netopeer2.service cfg.mount czechlight-migrate.service
-Requires=netopeer2.service cfg.mount czechlight-migrate.service
+After=cfg-yang.service
+Requires=cfg-yang.service
[Service]
Type=simple
diff --git a/package/czechlight-cfg-fs/yang/czechlight-netconf-server@2024-09-04.yang b/package/czechlight-cfg-fs/yang/czechlight-netconf-server@2024-09-04.yang
new file mode 100644
index 0000000..bdb8dce
--- /dev/null
+++ b/package/czechlight-cfg-fs/yang/czechlight-netconf-server@2024-09-04.yang
@@ -0,0 +1,34 @@
+module czechlight-netconf-server {
+ yang-version 1.1;
+ namespace "http://czechlight.cesnet.cz/yang/czechlight-netconf-server";
+ prefix "czechlight-netconf-server";
+
+ import ietf-netconf-server {
+ prefix ncs;
+ revision-date '2023-12-28';
+ }
+
+ organization "CESNET";
+ contact "photonic@cesnet.cz";
+ description "Failsafes for NETCONF server configuration";
+
+ revision 2024-09-04 {
+ description "Initial release";
+ }
+
+ deviation /ncs:netconf-server {
+ deviate add {
+ must "count(listen) = 1" {
+ error-message "The NETCONF server must be activated for listening at some endpoint";
+ }
+ }
+ }
+
+ deviation /ncs:netconf-server/ncs:listen/ncs:endpoints {
+ deviate add {
+ must "count(endpoint/ssh) >= 1" {
+ error-message "The NETCONF server must enable at least one SSH endpoint";
+ }
+ }
+ }
+}
diff --git a/package/reset-sysrepo/Config.in b/package/reset-sysrepo/Config.in
deleted file mode 100644
index 726c932..0000000
--- a/package/reset-sysrepo/Config.in
+++ /dev/null
@@ -1,6 +0,0 @@
-config BR2_PACKAGE_RESET_SYSREPO
- bool "Override and re-init sysrepo's /dev/shm"
- help
- If enabled, configure sysrepo to use /run/sysrepo instead of
- /dev/shm, and reinitialize that filesystem with a fresh tmpfs upon
- restart of any sysrepo-using service.
diff --git a/package/reset-sysrepo/reset-sysrepo.mk b/package/reset-sysrepo/reset-sysrepo.mk
deleted file mode 100644
index 1b5b4b9..0000000
--- a/package/reset-sysrepo/reset-sysrepo.mk
+++ /dev/null
@@ -1,45 +0,0 @@
-RESET_SYSREPO_INSTALL_TARGET = YES
-
-define RESET_SYSREPO_PATCH_DEV_SHM
- sed -i \
- 's|^#define SR_SHM_DIR .*|#define SR_SHM_DIR "/run/sysrepo"|' \
- $(@D)/src/config.h.in
-endef
-
-SYSREPO_PRE_PATCH_HOOKS += RESET_SYSREPO_PATCH_DEV_SHM
-SYSREPO_POST_RSYNC_HOOKS += RESET_SYSREPO_PATCH_DEV_SHM
-
-define RESET_SYSREPO_INSTALL_TARGET_CMDS
- $(INSTALL) -D -m 0644 \
- --target-directory $(TARGET_DIR)/usr/lib/systemd/system/ \
- $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/reset-sysrepo/run-sysrepo.mount
- $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/lib/systemd/system/run-sysrepo.mount.d/
- for UNIT in \
- cla-sdn-inline.service \
- cla-sdn-roadm-add-drop.service \
- cla-sdn-roadm-coherent-a-d.service \
- cla-sdn-roadm-hires-drop.service \
- cla-sdn-roadm-line.service \
- cla-sdn-bidi-cplus1572.service \
- cla-sdn-bidi-cplus1572-ocm.service \
- netopeer2.service \
- sysrepo-ietf-alarms.service \
- sysrepo-persistent-cfg.service \
- sysrepo-plugind.service \
- velia-firewall.service \
- velia-health.service \
- velia-system.service \
- velia-hardware-g1.service \
- velia-hardware-g2.service \
- rousette.service \
- ; do \
- echo "Adding systemd drop-ins $${UNIT} <-> /run/sysrepo"; \
- $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/lib/systemd/system/$${UNIT}.d/ ; \
- echo -e "[Unit]\nBindsTo=run-sysrepo.mount\nAfter=run-sysrepo.mount\nPartOf=run-sysrepo.mount" \
- > $(TARGET_DIR)/usr/lib/systemd/system/$${UNIT}.d/reset-sysrepo.conf ; \
- echo -e "[Unit]\nPartOf=$${UNIT}" \
- > $(TARGET_DIR)/usr/lib/systemd/system/run-sysrepo.mount.d/$${UNIT}.conf ; \
- done
-endef
-
-$(eval $(generic-package))
diff --git a/package/rousette/Config.in b/package/rousette/Config.in
index 5e51e7f..089331f 100644
--- a/package/rousette/Config.in
+++ b/package/rousette/Config.in
@@ -8,6 +8,8 @@
select BR2_PACKAGE_SPDLOG
select BR2_PACKAGE_SYSTEMD
select BR2_PACKAGE_SYSREPO_CPP
+ select BR2_PACKAGE_DATE
+ select BR2_PACKAGE_LINUX_PAM
help
RESTCONF-ish server on top of sysrepo
diff --git a/package/rousette/pam.conf b/package/rousette/pam.conf
new file mode 100644
index 0000000..400702e
--- /dev/null
+++ b/package/rousette/pam.conf
@@ -0,0 +1,7 @@
+#%PAM-1.0
+auth required /lib/security/pam_unix.so shadow nodelay
+account required /lib/security/pam_nologin.so
+account required /lib/security/pam_unix.so
+password required /lib/security/pam_unix.so shadow nullok use_authtok
+session required /lib/security/pam_unix.so
+session required /lib/security/pam_limits.so
diff --git a/package/rousette/rousette.mk b/package/rousette/rousette.mk
index 7b35246..08ac311 100644
--- a/package/rousette/rousette.mk
+++ b/package/rousette/rousette.mk
@@ -2,7 +2,7 @@
ROUSETTE_SITE = https://gerrit.cesnet.cz/CzechLight/rousette
ROUSETTE_SITE_METHOD = git
ROUSETTE_INSTALL_STAGING = NO
-ROUSETTE_DEPENDENCIES = boost docopt-cpp nghttp2-asio spdlog systemd sysrepo-cpp
+ROUSETTE_DEPENDENCIES = boost docopt-cpp nghttp2-asio spdlog systemd sysrepo-cpp date linux-pam
ROUSETTE_LICENSE = Apache-2.0
ROUSETTE_LICENSE_FILES = LICENSE.md
@@ -15,6 +15,11 @@
$(TARGET_DIR)/usr/lib/systemd/system/
endef
+define ROUSETTE_INSTALL_PAM_CONF
+ $(INSTALL) -D -m 644 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/rousette/pam.conf $(TARGET_DIR)/etc/pam.d/rousette
+endef
+ROUSETTE_POST_INSTALL_TARGET_HOOKS += ROUSETTE_INSTALL_PAM_CONF
+
define ROUSETTE_USERS
yangnobody 333666 yangnobody 333666 * - - - Unauthenticated operations via RESTCONF
endef
diff --git a/package/rousette/rousette.service b/package/rousette/rousette.service
index b643175..b3cd1e5 100644
--- a/package/rousette/rousette.service
+++ b/package/rousette/rousette.service
@@ -1,8 +1,7 @@
[Unit]
Description=RESTCONFish server
-After=syslog.target network.target cfg-restore-sysrepo.service czechlight-migrate.service
-PartOf=netopeer2.service
-Requires=cfg-restore-sysrepo.service czechlight-migrate.service
+After=syslog.target network.target cfg-yang.service
+Requires=cfg-yang.service
[Service]
Type=simple
diff --git a/package/sysrepo-ietf-alarms/sysrepo-ietf-alarms.service b/package/sysrepo-ietf-alarms/sysrepo-ietf-alarms.service
index 27e2359..d9c2ae2 100644
--- a/package/sysrepo-ietf-alarms/sysrepo-ietf-alarms.service
+++ b/package/sysrepo-ietf-alarms/sysrepo-ietf-alarms.service
@@ -1,9 +1,8 @@
[Unit]
Description=IETF-alarms management via sysrepo
-After=syslog.target network.target cfg-restore-sysrepo.service czechlight-migrate.service
+After=syslog.target network.target cfg-yang.service
Before=rauc-mark-good.service
-PartOf=netopeer2.service
-Requires=cfg-restore-sysrepo.service czechlight-migrate.service
+Requires=cfg-yang.service
ConditionKernelCommandLine=czechlight
[Service]
diff --git a/package/velia/Config.in b/package/velia/Config.in
index cfec923..7979fc0 100644
--- a/package/velia/Config.in
+++ b/package/velia/Config.in
@@ -10,6 +10,7 @@
select BR2_PACKAGE_SYSREPO_CPP
select BR2_PACKAGE_JSON_FOR_MODERN_CPP
select BR2_PACKAGE_CZECHLIGHT_CFG_FS
+ select BR2_PACKAGE_DATE
help
Health tracking for embedded devices running Linux
diff --git a/package/velia/velia-firewall.service b/package/velia/velia-firewall.service
index 3fc8839..ac7ac58 100644
--- a/package/velia/velia-firewall.service
+++ b/package/velia/velia-firewall.service
@@ -1,9 +1,8 @@
[Unit]
Description=Firewall management via sysrepo
-After=syslog.target network.target cfg-restore-sysrepo.service czechlight-migrate.service
+After=syslog.target network.target cfg-yang.service
Before=rauc-mark-good.service
-PartOf=netopeer2.service
-Requires=cfg-restore-sysrepo.service czechlight-migrate.service
+Requires=cfg-yang.service
ConditionKernelCommandLine=czechlight
[Service]
diff --git a/package/velia/velia-hardware-g1.service b/package/velia/velia-hardware-g1.service
index 0efa671..428c2eb 100644
--- a/package/velia/velia-hardware-g1.service
+++ b/package/velia/velia-hardware-g1.service
@@ -1,9 +1,8 @@
[Unit]
Description=Tracking hardware metrics
-After=syslog.target network.target cfg-restore-sysrepo.service czechlight-migrate.service
+After=syslog.target network.target cfg-yang.service
Before=rauc-mark-good.service
-PartOf=netopeer2.service
-Requires=cfg-restore-sysrepo.service czechlight-migrate.service
+Requires=cfg-yang.service
ConditionKernelCommandLine=|czechlight=sdn-inline
ConditionKernelCommandLine=|czechlight=sdn-roadm-add-drop
ConditionKernelCommandLine=|czechlight=sdn-roadm-coherent-a-d
diff --git a/package/velia/velia-hardware-g2.service b/package/velia/velia-hardware-g2.service
index 4880f1d..432eb31 100644
--- a/package/velia/velia-hardware-g2.service
+++ b/package/velia/velia-hardware-g2.service
@@ -1,9 +1,8 @@
[Unit]
Description=Tracking hardware metrics
-After=syslog.target network.target cfg-restore-sysrepo.service czechlight-migrate.service
+After=syslog.target network.target cfg-yang.service
Before=rauc-mark-good.service
-PartOf=netopeer2.service
-Requires=cfg-restore-sysrepo.service czechlight-migrate.service
+Requires=cfg-yang.service
ConditionKernelCommandLine=|czechlight=sdn-inline-g2
ConditionKernelCommandLine=|czechlight=sdn-roadm-add-drop-g2
ConditionKernelCommandLine=|czechlight=sdn-roadm-coherent-a-d-g2
diff --git a/package/velia/velia-health.service b/package/velia/velia-health.service
index f2cd48e..0af055a 100644
--- a/package/velia/velia-health.service
+++ b/package/velia/velia-health.service
@@ -1,7 +1,7 @@
[Unit]
Description=Health tracking of the whole system
-Requires=multi-user.target cfg-restore-sysrepo.service czechlight-migrate.service sysrepo-ietf-alarms.service
-After=multi-user.target cfg-restore-sysrepo.service czechlight-migrate.service sysrepo-ietf-alarms.service
+Requires=multi-user.target cfg-yang.service sysrepo-ietf-alarms.service
+After=multi-user.target cfg-yang.service sysrepo-ietf-alarms.service
ConditionKernelCommandLine=czechlight
[Service]
diff --git a/package/velia/velia.mk b/package/velia/velia.mk
index b99d38e..202f5df 100644
--- a/package/velia/velia.mk
+++ b/package/velia/velia.mk
@@ -2,15 +2,12 @@
VELIA_SITE = https://gerrit.cesnet.cz/CzechLight/velia
VELIA_SITE_METHOD = git
VELIA_INSTALL_STAGING = NO
-VELIA_DEPENDENCIES = docopt-cpp spdlog boost sdbus-cpp systemd sysrepo-cpp libnl json-for-modern-cpp
+VELIA_DEPENDENCIES = docopt-cpp spdlog boost sdbus-cpp systemd sysrepo-cpp libnl json-for-modern-cpp date
VELIA_LICENSE = Apache-2.0
VELIA_LICENSE_FILES = LICENSE.md
VELIA_CONF_OPTS = \
-DTHREADS_PTHREAD_ARG:STRING=-pthread \
- -DVELIA_BACKUP_ETC_SHADOW=/cfg/etc/shadow \
- -DVELIA_BACKUP_ETC_HOSTNAME=/cfg/etc/hostname \
- -DVELIA_AUTHORIZED_KEYS_FORMAT="/cfg/ssh-user-auth/{USER}" \
-DNFT_EXECUTABLE=/usr/sbin/nft \
-DSSH_KEYGEN_EXECUTABLE=/usr/bin/ssh-keygen \
-DCHPASSWD_EXECUTABLE=/usr/sbin/chpasswd \
diff --git a/submodules/buildroot b/submodules/buildroot
index d9ca1ed..fe5e2da 160000
--- a/submodules/buildroot
+++ b/submodules/buildroot
@@ -1 +1 @@
-Subproject commit d9ca1edbb6cfcc95d0ca3e9a6738a19fd6bc6238
+Subproject commit fe5e2dae91b7a436e4812c8531458687e7153d50
diff --git a/submodules/cla-sysrepo b/submodules/cla-sysrepo
index d40d571..8e2ace1 160000
--- a/submodules/cla-sysrepo
+++ b/submodules/cla-sysrepo
@@ -1 +1 @@
-Subproject commit d40d571b3ebbc6b330b4f928d681da50708b0e38
+Subproject commit 8e2ace13798ec2954073c276d71694d3da17d95b
diff --git a/submodules/dependencies b/submodules/dependencies
index 5965684..787e084 160000
--- a/submodules/dependencies
+++ b/submodules/dependencies
@@ -1 +1 @@
-Subproject commit 5965684b221e6a234ea3c538634f90aefa1af084
+Subproject commit 787e0848c725e979b13b5b536b8b08736350fd98
diff --git a/submodules/gammarus b/submodules/gammarus
index 7e51ec9..4dc1aac 160000
--- a/submodules/gammarus
+++ b/submodules/gammarus
@@ -1 +1 @@
-Subproject commit 7e51ec9ac586a7d93addd6b5aecea2f40ce17238
+Subproject commit 4dc1aacfcf6e9da72f6a449ddc9b4c5139baf5e0
diff --git a/submodules/netconf-cli b/submodules/netconf-cli
index c4a865e..0c6d5dc 160000
--- a/submodules/netconf-cli
+++ b/submodules/netconf-cli
@@ -1 +1 @@
-Subproject commit c4a865e3f415e19e4f9871349d6fee74e576d0eb
+Subproject commit 0c6d5dcdd4666ae9dcb8bbb049df6be41482790e
diff --git a/submodules/rousette b/submodules/rousette
index 226a241..cf7a1d6 160000
--- a/submodules/rousette
+++ b/submodules/rousette
@@ -1 +1 @@
-Subproject commit 226a2410376e5befd0bf6dc180618a108b11b256
+Subproject commit cf7a1d6eafc29ea708f18833ceb2f297dc2b7f74
diff --git a/submodules/sysrepo-ietf-alarms b/submodules/sysrepo-ietf-alarms
index 071aba7..d467829 160000
--- a/submodules/sysrepo-ietf-alarms
+++ b/submodules/sysrepo-ietf-alarms
@@ -1 +1 @@
-Subproject commit 071aba7b33cf4c5724d2cf638af73fe0e5706bdd
+Subproject commit d467829bca98d044a57bbf2ab620f7adf4b731a9
diff --git a/submodules/velia b/submodules/velia
index 9bd6127..bee8186 160000
--- a/submodules/velia
+++ b/submodules/velia
@@ -1 +1 @@
-Subproject commit 9bd612744ff4139c87ec830be5709e15a4f3996c
+Subproject commit bee81865f637c9fc8d9ad0dc3873e6b4c52735bf
diff --git a/tests/czechlight-cfg-fs/data/empty_sdn-roadm-bidi-cplus1572/cmdline b/tests/czechlight-cfg-fs/data/empty_sdn-roadm-bidi-cplus1572/cmdline
new file mode 100644
index 0000000..1f26af7
--- /dev/null
+++ b/tests/czechlight-cfg-fs/data/empty_sdn-roadm-bidi-cplus1572/cmdline
@@ -0,0 +1 @@
+czechlight=sdn-bidi-cplus1572-g2
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-inline_empty/expected.json b/tests/czechlight-cfg-fs/data/empty_sdn-roadm-bidi-cplus1572/expected.json
similarity index 82%
rename from tests/czechlight-cfg-fs/data/v0_sdn-inline_empty/expected.json
rename to tests/czechlight-cfg-fs/data/empty_sdn-roadm-bidi-cplus1572/expected.json
index 8502d62..f241f39 100644
--- a/tests/czechlight-cfg-fs/data/v0_sdn-inline_empty/expected.json
+++ b/tests/czechlight-cfg-fs/data/empty_sdn-roadm-bidi-cplus1572/expected.json
@@ -1,62 +1,4 @@
{
- "ietf-alarms:alarms": {
- "control": {
- "alarm-shelving": {
- "shelf": [
- {
- "name": "systemd journal upload",
- "resource": [
- "systemd-journal-upload.service"
- ],
- "alarm-type": [
- {
- "alarm-type-id": "velia-alarms:systemd-unit-failure",
- "alarm-type-qualifier-match": ""
- }
- ],
- "description": "Ignore systemd-journal-upload.service failures"
- }
- ]
- }
- }
- },
- "ietf-interfaces:interfaces": {
- "interface": [
- {
- "ietf-ip:ipv4": {
- "czechlight-network:dhcp-client": true
- },
- "ietf-ip:ipv6": {
- "autoconf": {
- "create-global-addresses": true
- },
- "enabled": true
- },
- "name": "br0",
- "type": "iana-if-type:bridge"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "eth1",
- "type": "iana-if-type:ethernetCsmacd"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "eth0",
- "type": "iana-if-type:ethernetCsmacd"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "oscE",
- "type": "iana-if-type:ethernetCsmacd"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "oscW",
- "type": "iana-if-type:ethernetCsmacd"
- }
- ]
- },
"ietf-netconf-acm:nacm": {
"rule-list": [
{
@@ -66,44 +8,14 @@
],
"rule": [
{
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
"name": "ietf-yang-library",
"module-name": "ietf-yang-library",
"action": "permit",
"access-operations": "read"
},
{
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
+ "name": "ietf-restconf-monitoring",
+ "module-name": "ietf-restconf-monitoring",
"action": "permit",
"access-operations": "read"
},
@@ -143,6 +55,18 @@
"access-operations": "read"
},
{
+ "name": "ietf-hardware",
+ "module-name": "ietf-hardware",
+ "action": "permit",
+ "access-operations": "read"
+ },
+ {
+ "name": "ietf-interfaces",
+ "module-name": "ietf-interfaces",
+ "action": "permit",
+ "access-operations": "read"
+ },
+ {
"name": "czechlight-lldp",
"module-name": "czechlight-lldp",
"action": "permit",
@@ -163,8 +87,32 @@
"access-operations": "read"
},
{
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
+ "name": "czechlight-roadm-device",
+ "module-name": "czechlight-roadm-device",
+ "action": "permit",
+ "access-operations": "read"
+ },
+ {
+ "name": "czechlight-inline-amp",
+ "module-name": "czechlight-inline-amp",
+ "action": "permit",
+ "access-operations": "read"
+ },
+ {
+ "name": "czechlight-bidi-amp",
+ "module-name": "czechlight-bidi-amp",
+ "action": "permit",
+ "access-operations": "read"
+ },
+ {
+ "name": "czechlight-coherent-add-drop",
+ "module-name": "czechlight-coherent-add-drop",
+ "action": "permit",
+ "access-operations": "read"
+ },
+ {
+ "name": "czechlight-calibration-device",
+ "module-name": "czechlight-calibration-device",
"action": "permit",
"access-operations": "read"
},
@@ -225,5 +173,65 @@
]
}
]
+ },
+ "ietf-alarms:alarms": {
+ "control": {
+ "alarm-shelving": {
+ "shelf": [
+ {
+ "name": "systemd journal upload",
+ "description": "Ignore systemd-journal-upload.service failures",
+ "resource": [
+ "systemd-journal-upload.service"
+ ],
+ "alarm-type": [
+ {
+ "alarm-type-id": "velia-alarms:systemd-unit-failure",
+ "alarm-type-qualifier-match": ""
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "ietf-keystore:keystore": {
+ "asymmetric-keys": {
+ "asymmetric-key": [
+ {
+ "name": "genkey",
+ "public-key-format": "ietf-crypto-types:ssh-public-key-format",
+ "private-key-format": "ietf-crypto-types:rsa-private-key-format"
+ }
+ ]
+ }
+ },
+ "ietf-netconf-server:netconf-server": {
+ "listen": {
+ "endpoints": {
+ "endpoint": [
+ {
+ "name": "default-ssh",
+ "ssh": {
+ "tcp-server-parameters": {
+ "local-address": "::"
+ },
+ "ssh-server-parameters": {
+ "server-identity": {
+ "host-key": [
+ {
+ "name": "default-key",
+ "public-key": {
+ "central-keystore-reference": "genkey"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
}
}
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-inline_empty/cmdline b/tests/czechlight-cfg-fs/data/v0_sdn-inline_empty/cmdline
deleted file mode 100644
index 7231fc3..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-inline_empty/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-inline-g2
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-inline_empty/startup.json b/tests/czechlight-cfg-fs/data/v0_sdn-inline_empty/startup.json
deleted file mode 100644
index 2c63c08..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-inline_empty/startup.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-inline_empty/version b/tests/czechlight-cfg-fs/data/v0_sdn-inline_empty/version
deleted file mode 100644
index 573541a..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-inline_empty/version
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-inline_somedata/cmdline b/tests/czechlight-cfg-fs/data/v0_sdn-inline_somedata/cmdline
deleted file mode 100644
index 17d977e..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-inline_somedata/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-inline
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-inline_somedata/expected.json b/tests/czechlight-cfg-fs/data/v0_sdn-inline_somedata/expected.json
deleted file mode 100644
index 04278c6..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-inline_somedata/expected.json
+++ /dev/null
@@ -1,281 +0,0 @@
-{
- "ietf-alarms:alarms": {
- "control": {
- "alarm-shelving": {
- "shelf": [
- {
- "name": "systemd journal upload",
- "resource": [
- "systemd-journal-upload.service"
- ],
- "alarm-type": [
- {
- "alarm-type-id": "velia-alarms:systemd-unit-failure",
- "alarm-type-qualifier-match": ""
- }
- ],
- "description": "Ignore systemd-journal-upload.service failures"
- }
- ]
- }
- }
- },
- "ietf-interfaces:interfaces": {
- "interface": [
- {
- "name": "br0",
- "type": "iana-if-type:bridge",
- "ietf-ip:ipv4": {
- "czechlight-network:dhcp-client": true
- },
- "ietf-ip:ipv6": {
- "enabled": true,
- "autoconf": {
- "create-global-addresses": true
- }
- }
- },
- {
- "name": "eth1",
- "type": "iana-if-type:ethernetCsmacd",
- "czechlight-network:bridge": "br0"
- },
- {
- "name": "eth0",
- "type": "iana-if-type:ethernetCsmacd",
- "czechlight-network:bridge": "br0"
- },
- {
- "name": "oscE",
- "type": "iana-if-type:ethernetCsmacd",
- "czechlight-network:bridge": "br0"
- },
- {
- "name": "oscW",
- "type": "iana-if-type:ethernetCsmacd",
- "czechlight-network:bridge": "br0"
- }
- ]
- },
- "ietf-keystore:keystore": {
- "asymmetric-keys": {
- "asymmetric-key": [
- {
- "name": "genkey",
- "algorithm": "rsa2048",
- "public-key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs/tnburJOGHcvSOKw7SdOfEvZD28WatHUfuWRCWZoElXtX1sNkBFXvRbKahOR8sZ221iRdlZ89bBVtTeX8N2wgPApy+Xi/9X1Icee2cU7QC7UfnNnWMW1C6WEZQS8zt+6IAQsOLk1AWyFeAN1EZQfjM/2UfxOW/kxXBu+MeVvdjouZYs73mW4OyV6VptMkAk4JDk5ieEp65p/rQOF0pIvpnu56nl9cybQ1s3DAQ76ZJP5qf8VdKS2WcBlS7UwXAMvXPM5TiIebnXtrF8jTd3S3ApOyZv00jxn/s5l6L1VA0p5HyB9W4DfNztINRyE56BEBvPeJePNWwNg+sVClLdmQIDAQAB",
- "private-key": "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCz+2du6sk4Ydy9I4rDtJ058S9kPbxZq0dR+5ZEJZmgSVe1fWw2QEVe9FspqE5HyxnbbWJF2Vnz1sFW1N5fw3bCA8CnL5eL/1fUhx57ZxTtALtR+c2dYxbULpYRlBLzO37ogBCw4uTUBbIV4A3URlB+Mz/ZR/E5b+TFcG74x5W92Oi5lizveZbg7JXpWm0yQCTgkOTmJ4Snrmn+tA4XSki+me7nqeX1zJtDWzcMBDvpkk/mp/xV0pLZZwGVLtTBcAy9c8zlOIh5ude2sXyNN3dLcCk7Jm/TSPGf+zmXovVUDSnkfIH1bgN83O0g1HITnoEQG894l481bA2D6xUKUt2ZAgMBAAECggEBAJlzS2ih/RV5On54AyOAplx0afeJO0EoaxJW8nL/q8+hOIqgeNZ4Taz7oY4O1U8Ytt8Cj7sF6U+gVg72RvJW8LXSBTuFtCvEdNnaqf6EkK7Q5OSrmscJaLlXTtOF7/I5U6ZfKdvmVzr98Cv+b0wA9zfh8hoK4HwcDmzXw4WQhPbqvp47HPrmq/cCfAVR0cD/T6ZlS1zWU/6xXz9vIA9GmXiO+xrVD5TS5i4DVgZL+uY4a/IJkP/FmQL8lu9mMcR3EZ2SRQD3FZysF7OoWfT7/L03qCj/32RegwA8FPQsyYOAos0m1J5Cp+fUGF9HnqNohBoRcDuh0DYY0pc9PQq/MAECgYEA3oPpuLQLM+AA1LBwlLeK0UaxQ3hQtaLmSwOtMVPrCqe9NavzJPzhaYeUT6+QPeDhl+/zwuPV2NqjG6kdnX66BCDTp6zy8BFs3yzTazOp6hhi2RlzWGeCAhcjmbR4+YMOQx5RW4MocRycu5dTMnOJU3aDZJQd5AoxtXhkW7VsCIECgYEAzxD1SU2ApRlNT2FZ5ZaKg2zEqh/Q+iLB3ORra8n1EyxIl/smS33+L1Qd0z/tnlLu6Hr+nYAtnhTgssFTPXq2X0+CURQA85mlQ+W8pstsckXHl+5ZYeqRaE+A5irimFJVNS8iU751HlvxrsgpmnkkqoS7pgIZeYFIj93boN25iRkCgYBzxKvoBfxCHAwynC2moiueICp/0Owk5EDuzFXicSe7XnQJpZGWL99TGU/neY8RMpwMgbIQNpt+/JmZ/Y3D8Df1h+K2vTuT/WzoXBkPEE0Z12AuVZh2aTvxvHowMP4zyqSz9OUdOIrk9p7w1pVZjVToUKOhw5Idn9Qm9yE3uZcggQKBgFNVKNIKXdaT2zgyHqK2NiJ0OKWazliMemayisTDb1z6+nAnxB6now9bE/G7jZ6lE77+GNA8EJ/JGTD3es+IPjMXZYPJwCRJVmh/4a9iuM84Y/4yD0jHxSMss9xtr+nLYL1Zrb/0K2A/coF7zrp7PJVfe8FwoN30eMZlbAlOkmepAoGBAIHPHBIgfSaUJziqqrlqygbZkMhN69k8C5chQJCEl8JfTlr+aX7Gz2+pWpuQoE/JVAZO8w5p608TIavZuy5bANJ0RnDg6EVWuvzpMw92G9OPV30dCy+WmEHaoEkvtl7kIpHdxN0MCFVM7eY14qcxB4p1eRWgJZFBQLa3GuGK5GVX"
- }
- ]
- }
- },
- "ietf-netconf-server:netconf-server": {
- "listen": {
- "endpoint": [
- {
- "name": "default-ssh",
- "ssh": {
- "tcp-server-parameters": {
- "local-address": "::",
- "keepalives": {
- "idle-time": 1,
- "max-probes": 10,
- "probe-interval": 5
- }
- },
- "ssh-server-parameters": {
- "server-identity": {
- "host-key": [
- {
- "name": "default-key",
- "public-key": {
- "keystore-reference": "genkey"
- }
- }
- ]
- },
- "client-authentication": {
- "supported-authentication-methods": {
- "publickey": [null],
- "passsword": [null],
- "other": [
- "interactive"
- ]
- }
- }
- }
- }
- }
- ]
- }
- },
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Permit yangnobody user/group to read only some modules",
- "group": [
- "yangnobody"
- ],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-yang-library",
- "module-name": "ietf-yang-library",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: contact",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/contact",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: hostname",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/hostname",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: location",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/location",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: clock",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/clock",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: system-state",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system-state",
- "access-operations": "read"
- },
- {
- "name": "czechlight-lldp",
- "module-name": "czechlight-lldp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:firmware",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:firmware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:leds",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:leds",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "wildcard-deny",
- "module-name": "*",
- "action": "deny",
- "access-operations": "*"
- }
- ]
- },
- {
- "name": "Allow DWDM control to the optics group",
- "group": [
- "optics"
- ],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- },
- {
- "name": "Authentication details of current user",
- "group": [
- "*"
- ],
- "rule": [
- {
- "name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
- "module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
- }
- ]
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-inline_somedata/startup.json b/tests/czechlight-cfg-fs/data/v0_sdn-inline_somedata/startup.json
deleted file mode 100644
index 52a1f53..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-inline_somedata/startup.json
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "ietf-interfaces:interfaces": {
- "interface": [
- {
- "name": "br0",
- "type": "iana-if-type:bridge",
- "ietf-ip:ipv4": {
- "czechlight-network:dhcp-client": true
- },
- "ietf-ip:ipv6": {
- "enabled": true,
- "autoconf": {
- "create-global-addresses": true
- }
- }
- },
- {
- "name": "eth1",
- "type": "iana-if-type:ethernetCsmacd",
- "czechlight-network:bridge": "br0"
- },
- {
- "name": "eth0",
- "type": "iana-if-type:ethernetCsmacd",
- "czechlight-network:bridge": "br0"
- }
- ]
- },
- "ietf-keystore:keystore": {
- "asymmetric-keys": {
- "asymmetric-key": [
- {
- "name": "genkey",
- "algorithm": "rsa2048",
- "public-key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs/tnburJOGHcvSOKw7SdOfEvZD28WatHUfuWRCWZoElXtX1sNkBFXvRbKahOR8sZ221iRdlZ89bBVtTeX8N2wgPApy+Xi/9X1Icee2cU7QC7UfnNnWMW1C6WEZQS8zt+6IAQsOLk1AWyFeAN1EZQfjM/2UfxOW/kxXBu+MeVvdjouZYs73mW4OyV6VptMkAk4JDk5ieEp65p/rQOF0pIvpnu56nl9cybQ1s3DAQ76ZJP5qf8VdKS2WcBlS7UwXAMvXPM5TiIebnXtrF8jTd3S3ApOyZv00jxn/s5l6L1VA0p5HyB9W4DfNztINRyE56BEBvPeJePNWwNg+sVClLdmQIDAQAB",
- "private-key": "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCz+2du6sk4Ydy9I4rDtJ058S9kPbxZq0dR+5ZEJZmgSVe1fWw2QEVe9FspqE5HyxnbbWJF2Vnz1sFW1N5fw3bCA8CnL5eL/1fUhx57ZxTtALtR+c2dYxbULpYRlBLzO37ogBCw4uTUBbIV4A3URlB+Mz/ZR/E5b+TFcG74x5W92Oi5lizveZbg7JXpWm0yQCTgkOTmJ4Snrmn+tA4XSki+me7nqeX1zJtDWzcMBDvpkk/mp/xV0pLZZwGVLtTBcAy9c8zlOIh5ude2sXyNN3dLcCk7Jm/TSPGf+zmXovVUDSnkfIH1bgN83O0g1HITnoEQG894l481bA2D6xUKUt2ZAgMBAAECggEBAJlzS2ih/RV5On54AyOAplx0afeJO0EoaxJW8nL/q8+hOIqgeNZ4Taz7oY4O1U8Ytt8Cj7sF6U+gVg72RvJW8LXSBTuFtCvEdNnaqf6EkK7Q5OSrmscJaLlXTtOF7/I5U6ZfKdvmVzr98Cv+b0wA9zfh8hoK4HwcDmzXw4WQhPbqvp47HPrmq/cCfAVR0cD/T6ZlS1zWU/6xXz9vIA9GmXiO+xrVD5TS5i4DVgZL+uY4a/IJkP/FmQL8lu9mMcR3EZ2SRQD3FZysF7OoWfT7/L03qCj/32RegwA8FPQsyYOAos0m1J5Cp+fUGF9HnqNohBoRcDuh0DYY0pc9PQq/MAECgYEA3oPpuLQLM+AA1LBwlLeK0UaxQ3hQtaLmSwOtMVPrCqe9NavzJPzhaYeUT6+QPeDhl+/zwuPV2NqjG6kdnX66BCDTp6zy8BFs3yzTazOp6hhi2RlzWGeCAhcjmbR4+YMOQx5RW4MocRycu5dTMnOJU3aDZJQd5AoxtXhkW7VsCIECgYEAzxD1SU2ApRlNT2FZ5ZaKg2zEqh/Q+iLB3ORra8n1EyxIl/smS33+L1Qd0z/tnlLu6Hr+nYAtnhTgssFTPXq2X0+CURQA85mlQ+W8pstsckXHl+5ZYeqRaE+A5irimFJVNS8iU751HlvxrsgpmnkkqoS7pgIZeYFIj93boN25iRkCgYBzxKvoBfxCHAwynC2moiueICp/0Owk5EDuzFXicSe7XnQJpZGWL99TGU/neY8RMpwMgbIQNpt+/JmZ/Y3D8Df1h+K2vTuT/WzoXBkPEE0Z12AuVZh2aTvxvHowMP4zyqSz9OUdOIrk9p7w1pVZjVToUKOhw5Idn9Qm9yE3uZcggQKBgFNVKNIKXdaT2zgyHqK2NiJ0OKWazliMemayisTDb1z6+nAnxB6now9bE/G7jZ6lE77+GNA8EJ/JGTD3es+IPjMXZYPJwCRJVmh/4a9iuM84Y/4yD0jHxSMss9xtr+nLYL1Zrb/0K2A/coF7zrp7PJVfe8FwoN30eMZlbAlOkmepAoGBAIHPHBIgfSaUJziqqrlqygbZkMhN69k8C5chQJCEl8JfTlr+aX7Gz2+pWpuQoE/JVAZO8w5p608TIavZuy5bANJ0RnDg6EVWuvzpMw92G9OPV30dCy+WmEHaoEkvtl7kIpHdxN0MCFVM7eY14qcxB4p1eRWgJZFBQLa3GuGK5GVX"
- }
- ]
- }
- },
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Allow DWDM control to the optics group",
- "group": [
- "optics"
- ],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- }
- ]
- },
- "ietf-netconf-server:netconf-server": {
- "listen": {
- "endpoint": [
- {
- "name": "default-ssh",
- "ssh": {
- "tcp-server-parameters": {
- "local-address": "::",
- "keepalives": {
- "idle-time": 1,
- "max-probes": 10,
- "probe-interval": 5
- }
- },
- "ssh-server-parameters": {
- "server-identity": {
- "host-key": [
- {
- "name": "default-key",
- "public-key": {
- "keystore-reference": "genkey"
- }
- }
- ]
- },
- "client-authentication": {
- "supported-authentication-methods": {
- "publickey": [null],
- "passsword": [null],
- "other": [
- "interactive"
- ]
- }
- }
- }
- }
- }
- ]
- }
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-inline_somedata/version b/tests/czechlight-cfg-fs/data/v0_sdn-inline_somedata/version
deleted file mode 100644
index 573541a..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-inline_somedata/version
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-add-drop_empty/cmdline b/tests/czechlight-cfg-fs/data/v0_sdn-roadm-add-drop_empty/cmdline
deleted file mode 100644
index e4bd016..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-add-drop_empty/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-add-drop
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-add-drop_empty/expected.json b/tests/czechlight-cfg-fs/data/v0_sdn-roadm-add-drop_empty/expected.json
deleted file mode 100644
index f3e0043..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-add-drop_empty/expected.json
+++ /dev/null
@@ -1,954 +0,0 @@
-{
- "ietf-alarms:alarms": {
- "control": {
- "alarm-shelving": {
- "shelf": [
- {
- "name": "systemd journal upload",
- "resource": [
- "systemd-journal-upload.service"
- ],
- "alarm-type": [
- {
- "alarm-type-id": "velia-alarms:systemd-unit-failure",
- "alarm-type-qualifier-match": ""
- }
- ],
- "description": "Ignore systemd-journal-upload.service failures"
- }
- ]
- }
- }
- },
- "ietf-interfaces:interfaces": {
- "interface": [
- {
- "ietf-ip:ipv4": {
- "czechlight-network:dhcp-client": true
- },
- "ietf-ip:ipv6": {
- "autoconf": {
- "create-global-addresses": true
- },
- "enabled": true
- },
- "name": "br0",
- "type": "iana-if-type:bridge"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "eth1",
- "type": "iana-if-type:ethernetCsmacd"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "eth0",
- "type": "iana-if-type:ethernetCsmacd"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "eth2",
- "type": "iana-if-type:ethernetCsmacd"
- }
- ]
- },
- "czechlight-roadm-device:channel-plan": {
- "channel": [
- {
- "name": "C-band",
- "lower-frequency": "191325000",
- "upper-frequency": "196125000"
- },
- {
- "name": "13.5",
- "lower-frequency": "191325000",
- "upper-frequency": "191375000"
- },
- {
- "name": "14.0",
- "lower-frequency": "191375000",
- "upper-frequency": "191425000"
- },
- {
- "name": "14.5",
- "lower-frequency": "191425000",
- "upper-frequency": "191475000"
- },
- {
- "name": "15.0",
- "lower-frequency": "191475000",
- "upper-frequency": "191525000"
- },
- {
- "name": "15.5",
- "lower-frequency": "191525000",
- "upper-frequency": "191575000"
- },
- {
- "name": "16.0",
- "lower-frequency": "191575000",
- "upper-frequency": "191625000"
- },
- {
- "name": "16.5",
- "lower-frequency": "191625000",
- "upper-frequency": "191675000"
- },
- {
- "name": "17.0",
- "lower-frequency": "191675000",
- "upper-frequency": "191725000"
- },
- {
- "name": "17.5",
- "lower-frequency": "191725000",
- "upper-frequency": "191775000"
- },
- {
- "name": "18.0",
- "lower-frequency": "191775000",
- "upper-frequency": "191825000"
- },
- {
- "name": "18.5",
- "lower-frequency": "191825000",
- "upper-frequency": "191875000"
- },
- {
- "name": "19.0",
- "lower-frequency": "191875000",
- "upper-frequency": "191925000"
- },
- {
- "name": "19.5",
- "lower-frequency": "191925000",
- "upper-frequency": "191975000"
- },
- {
- "name": "20.0",
- "lower-frequency": "191975000",
- "upper-frequency": "192025000"
- },
- {
- "name": "20.5",
- "lower-frequency": "192025000",
- "upper-frequency": "192075000"
- },
- {
- "name": "21.0",
- "lower-frequency": "192075000",
- "upper-frequency": "192125000"
- },
- {
- "name": "21.5",
- "lower-frequency": "192125000",
- "upper-frequency": "192175000"
- },
- {
- "name": "22.0",
- "lower-frequency": "192175000",
- "upper-frequency": "192225000"
- },
- {
- "name": "22.5",
- "lower-frequency": "192225000",
- "upper-frequency": "192275000"
- },
- {
- "name": "23.0",
- "lower-frequency": "192275000",
- "upper-frequency": "192325000"
- },
- {
- "name": "23.5",
- "lower-frequency": "192325000",
- "upper-frequency": "192375000"
- },
- {
- "name": "24.0",
- "lower-frequency": "192375000",
- "upper-frequency": "192425000"
- },
- {
- "name": "24.5",
- "lower-frequency": "192425000",
- "upper-frequency": "192475000"
- },
- {
- "name": "25.0",
- "lower-frequency": "192475000",
- "upper-frequency": "192525000"
- },
- {
- "name": "25.5",
- "lower-frequency": "192525000",
- "upper-frequency": "192575000"
- },
- {
- "name": "26.0",
- "lower-frequency": "192575000",
- "upper-frequency": "192625000"
- },
- {
- "name": "26.5",
- "lower-frequency": "192625000",
- "upper-frequency": "192675000"
- },
- {
- "name": "27.0",
- "lower-frequency": "192675000",
- "upper-frequency": "192725000"
- },
- {
- "name": "27.5",
- "lower-frequency": "192725000",
- "upper-frequency": "192775000"
- },
- {
- "name": "28.0",
- "lower-frequency": "192775000",
- "upper-frequency": "192825000"
- },
- {
- "name": "28.5",
- "lower-frequency": "192825000",
- "upper-frequency": "192875000"
- },
- {
- "name": "29.0",
- "lower-frequency": "192875000",
- "upper-frequency": "192925000"
- },
- {
- "name": "29.5",
- "lower-frequency": "192925000",
- "upper-frequency": "192975000"
- },
- {
- "name": "30.0",
- "lower-frequency": "192975000",
- "upper-frequency": "193025000"
- },
- {
- "name": "30.5",
- "lower-frequency": "193025000",
- "upper-frequency": "193075000"
- },
- {
- "name": "31.0",
- "lower-frequency": "193075000",
- "upper-frequency": "193125000"
- },
- {
- "name": "31.5",
- "lower-frequency": "193125000",
- "upper-frequency": "193175000"
- },
- {
- "name": "32.0",
- "lower-frequency": "193175000",
- "upper-frequency": "193225000"
- },
- {
- "name": "32.5",
- "lower-frequency": "193225000",
- "upper-frequency": "193275000"
- },
- {
- "name": "33.0",
- "lower-frequency": "193275000",
- "upper-frequency": "193325000"
- },
- {
- "name": "33.5",
- "lower-frequency": "193325000",
- "upper-frequency": "193375000"
- },
- {
- "name": "34.0",
- "lower-frequency": "193375000",
- "upper-frequency": "193425000"
- },
- {
- "name": "34.5",
- "lower-frequency": "193425000",
- "upper-frequency": "193475000"
- },
- {
- "name": "35.0",
- "lower-frequency": "193475000",
- "upper-frequency": "193525000"
- },
- {
- "name": "35.5",
- "lower-frequency": "193525000",
- "upper-frequency": "193575000"
- },
- {
- "name": "36.0",
- "lower-frequency": "193575000",
- "upper-frequency": "193625000"
- },
- {
- "name": "36.5",
- "lower-frequency": "193625000",
- "upper-frequency": "193675000"
- },
- {
- "name": "37.0",
- "lower-frequency": "193675000",
- "upper-frequency": "193725000"
- },
- {
- "name": "37.5",
- "lower-frequency": "193725000",
- "upper-frequency": "193775000"
- },
- {
- "name": "38.0",
- "lower-frequency": "193775000",
- "upper-frequency": "193825000"
- },
- {
- "name": "38.5",
- "lower-frequency": "193825000",
- "upper-frequency": "193875000"
- },
- {
- "name": "39.0",
- "lower-frequency": "193875000",
- "upper-frequency": "193925000"
- },
- {
- "name": "39.5",
- "lower-frequency": "193925000",
- "upper-frequency": "193975000"
- },
- {
- "name": "40.0",
- "lower-frequency": "193975000",
- "upper-frequency": "194025000"
- },
- {
- "name": "40.5",
- "lower-frequency": "194025000",
- "upper-frequency": "194075000"
- },
- {
- "name": "41.0",
- "lower-frequency": "194075000",
- "upper-frequency": "194125000"
- },
- {
- "name": "41.5",
- "lower-frequency": "194125000",
- "upper-frequency": "194175000"
- },
- {
- "name": "42.0",
- "lower-frequency": "194175000",
- "upper-frequency": "194225000"
- },
- {
- "name": "42.5",
- "lower-frequency": "194225000",
- "upper-frequency": "194275000"
- },
- {
- "name": "43.0",
- "lower-frequency": "194275000",
- "upper-frequency": "194325000"
- },
- {
- "name": "43.5",
- "lower-frequency": "194325000",
- "upper-frequency": "194375000"
- },
- {
- "name": "44.0",
- "lower-frequency": "194375000",
- "upper-frequency": "194425000"
- },
- {
- "name": "44.5",
- "lower-frequency": "194425000",
- "upper-frequency": "194475000"
- },
- {
- "name": "45.0",
- "lower-frequency": "194475000",
- "upper-frequency": "194525000"
- },
- {
- "name": "45.5",
- "lower-frequency": "194525000",
- "upper-frequency": "194575000"
- },
- {
- "name": "46.0",
- "lower-frequency": "194575000",
- "upper-frequency": "194625000"
- },
- {
- "name": "46.5",
- "lower-frequency": "194625000",
- "upper-frequency": "194675000"
- },
- {
- "name": "47.0",
- "lower-frequency": "194675000",
- "upper-frequency": "194725000"
- },
- {
- "name": "47.5",
- "lower-frequency": "194725000",
- "upper-frequency": "194775000"
- },
- {
- "name": "48.0",
- "lower-frequency": "194775000",
- "upper-frequency": "194825000"
- },
- {
- "name": "48.5",
- "lower-frequency": "194825000",
- "upper-frequency": "194875000"
- },
- {
- "name": "49.0",
- "lower-frequency": "194875000",
- "upper-frequency": "194925000"
- },
- {
- "name": "49.5",
- "lower-frequency": "194925000",
- "upper-frequency": "194975000"
- },
- {
- "name": "50.0",
- "lower-frequency": "194975000",
- "upper-frequency": "195025000"
- },
- {
- "name": "50.5",
- "lower-frequency": "195025000",
- "upper-frequency": "195075000"
- },
- {
- "name": "51.0",
- "lower-frequency": "195075000",
- "upper-frequency": "195125000"
- },
- {
- "name": "51.5",
- "lower-frequency": "195125000",
- "upper-frequency": "195175000"
- },
- {
- "name": "52.0",
- "lower-frequency": "195175000",
- "upper-frequency": "195225000"
- },
- {
- "name": "52.5",
- "lower-frequency": "195225000",
- "upper-frequency": "195275000"
- },
- {
- "name": "53.0",
- "lower-frequency": "195275000",
- "upper-frequency": "195325000"
- },
- {
- "name": "53.5",
- "lower-frequency": "195325000",
- "upper-frequency": "195375000"
- },
- {
- "name": "54.0",
- "lower-frequency": "195375000",
- "upper-frequency": "195425000"
- },
- {
- "name": "54.5",
- "lower-frequency": "195425000",
- "upper-frequency": "195475000"
- },
- {
- "name": "55.0",
- "lower-frequency": "195475000",
- "upper-frequency": "195525000"
- },
- {
- "name": "55.5",
- "lower-frequency": "195525000",
- "upper-frequency": "195575000"
- },
- {
- "name": "56.0",
- "lower-frequency": "195575000",
- "upper-frequency": "195625000"
- },
- {
- "name": "56.5",
- "lower-frequency": "195625000",
- "upper-frequency": "195675000"
- },
- {
- "name": "57.0",
- "lower-frequency": "195675000",
- "upper-frequency": "195725000"
- },
- {
- "name": "57.5",
- "lower-frequency": "195725000",
- "upper-frequency": "195775000"
- },
- {
- "name": "58.0",
- "lower-frequency": "195775000",
- "upper-frequency": "195825000"
- },
- {
- "name": "58.5",
- "lower-frequency": "195825000",
- "upper-frequency": "195875000"
- },
- {
- "name": "59.0",
- "lower-frequency": "195875000",
- "upper-frequency": "195925000"
- },
- {
- "name": "59.5",
- "lower-frequency": "195925000",
- "upper-frequency": "195975000"
- },
- {
- "name": "60.0",
- "lower-frequency": "195975000",
- "upper-frequency": "196025000"
- },
- {
- "name": "60.5",
- "lower-frequency": "196025000",
- "upper-frequency": "196075000"
- },
- {
- "name": "61.0",
- "lower-frequency": "196075000",
- "upper-frequency": "196125000"
- },
- {
- "name": "14 (100GHz)",
- "lower-frequency": "191350000",
- "upper-frequency": "191450000"
- },
- {
- "name": "15 (100GHz)",
- "lower-frequency": "191450000",
- "upper-frequency": "191550000"
- },
- {
- "name": "16 (100GHz)",
- "lower-frequency": "191550000",
- "upper-frequency": "191650000"
- },
- {
- "name": "17 (100GHz)",
- "lower-frequency": "191650000",
- "upper-frequency": "191750000"
- },
- {
- "name": "18 (100GHz)",
- "lower-frequency": "191750000",
- "upper-frequency": "191850000"
- },
- {
- "name": "19 (100GHz)",
- "lower-frequency": "191850000",
- "upper-frequency": "191950000"
- },
- {
- "name": "20 (100GHz)",
- "lower-frequency": "191950000",
- "upper-frequency": "192050000"
- },
- {
- "name": "21 (100GHz)",
- "lower-frequency": "192050000",
- "upper-frequency": "192150000"
- },
- {
- "name": "22 (100GHz)",
- "lower-frequency": "192150000",
- "upper-frequency": "192250000"
- },
- {
- "name": "23 (100GHz)",
- "lower-frequency": "192250000",
- "upper-frequency": "192350000"
- },
- {
- "name": "24 (100GHz)",
- "lower-frequency": "192350000",
- "upper-frequency": "192450000"
- },
- {
- "name": "25 (100GHz)",
- "lower-frequency": "192450000",
- "upper-frequency": "192550000"
- },
- {
- "name": "26 (100GHz)",
- "lower-frequency": "192550000",
- "upper-frequency": "192650000"
- },
- {
- "name": "27 (100GHz)",
- "lower-frequency": "192650000",
- "upper-frequency": "192750000"
- },
- {
- "name": "28 (100GHz)",
- "lower-frequency": "192750000",
- "upper-frequency": "192850000"
- },
- {
- "name": "29 (100GHz)",
- "lower-frequency": "192850000",
- "upper-frequency": "192950000"
- },
- {
- "name": "30 (100GHz)",
- "lower-frequency": "192950000",
- "upper-frequency": "193050000"
- },
- {
- "name": "31 (100GHz)",
- "lower-frequency": "193050000",
- "upper-frequency": "193150000"
- },
- {
- "name": "32 (100GHz)",
- "lower-frequency": "193150000",
- "upper-frequency": "193250000"
- },
- {
- "name": "33 (100GHz)",
- "lower-frequency": "193250000",
- "upper-frequency": "193350000"
- },
- {
- "name": "34 (100GHz)",
- "lower-frequency": "193350000",
- "upper-frequency": "193450000"
- },
- {
- "name": "35 (100GHz)",
- "lower-frequency": "193450000",
- "upper-frequency": "193550000"
- },
- {
- "name": "36 (100GHz)",
- "lower-frequency": "193550000",
- "upper-frequency": "193650000"
- },
- {
- "name": "37 (100GHz)",
- "lower-frequency": "193650000",
- "upper-frequency": "193750000"
- },
- {
- "name": "38 (100GHz)",
- "lower-frequency": "193750000",
- "upper-frequency": "193850000"
- },
- {
- "name": "39 (100GHz)",
- "lower-frequency": "193850000",
- "upper-frequency": "193950000"
- },
- {
- "name": "40 (100GHz)",
- "lower-frequency": "193950000",
- "upper-frequency": "194050000"
- },
- {
- "name": "41 (100GHz)",
- "lower-frequency": "194050000",
- "upper-frequency": "194150000"
- },
- {
- "name": "42 (100GHz)",
- "lower-frequency": "194150000",
- "upper-frequency": "194250000"
- },
- {
- "name": "43 (100GHz)",
- "lower-frequency": "194250000",
- "upper-frequency": "194350000"
- },
- {
- "name": "44 (100GHz)",
- "lower-frequency": "194350000",
- "upper-frequency": "194450000"
- },
- {
- "name": "45 (100GHz)",
- "lower-frequency": "194450000",
- "upper-frequency": "194550000"
- },
- {
- "name": "46 (100GHz)",
- "lower-frequency": "194550000",
- "upper-frequency": "194650000"
- },
- {
- "name": "47 (100GHz)",
- "lower-frequency": "194650000",
- "upper-frequency": "194750000"
- },
- {
- "name": "48 (100GHz)",
- "lower-frequency": "194750000",
- "upper-frequency": "194850000"
- },
- {
- "name": "49 (100GHz)",
- "lower-frequency": "194850000",
- "upper-frequency": "194950000"
- },
- {
- "name": "50 (100GHz)",
- "lower-frequency": "194950000",
- "upper-frequency": "195050000"
- },
- {
- "name": "51 (100GHz)",
- "lower-frequency": "195050000",
- "upper-frequency": "195150000"
- },
- {
- "name": "52 (100GHz)",
- "lower-frequency": "195150000",
- "upper-frequency": "195250000"
- },
- {
- "name": "53 (100GHz)",
- "lower-frequency": "195250000",
- "upper-frequency": "195350000"
- },
- {
- "name": "54 (100GHz)",
- "lower-frequency": "195350000",
- "upper-frequency": "195450000"
- },
- {
- "name": "55 (100GHz)",
- "lower-frequency": "195450000",
- "upper-frequency": "195550000"
- },
- {
- "name": "56 (100GHz)",
- "lower-frequency": "195550000",
- "upper-frequency": "195650000"
- },
- {
- "name": "57 (100GHz)",
- "lower-frequency": "195650000",
- "upper-frequency": "195750000"
- },
- {
- "name": "58 (100GHz)",
- "lower-frequency": "195750000",
- "upper-frequency": "195850000"
- },
- {
- "name": "59 (100GHz)",
- "lower-frequency": "195850000",
- "upper-frequency": "195950000"
- },
- {
- "name": "60 (100GHz)",
- "lower-frequency": "195950000",
- "upper-frequency": "196050000"
- }
- ]
- },
- "czechlight-roadm-device:media-channels": [
- {
- "channel": "C-band",
- "description": "Whole-band overview"
- }
- ],
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Permit yangnobody user/group to read only some modules",
- "group": [
- "yangnobody"
- ],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-yang-library",
- "module-name": "ietf-yang-library",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: contact",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/contact",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: hostname",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/hostname",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: location",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/location",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: clock",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/clock",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: system-state",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system-state",
- "access-operations": "read"
- },
- {
- "name": "czechlight-lldp",
- "module-name": "czechlight-lldp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:firmware",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:firmware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:leds",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:leds",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "wildcard-deny",
- "module-name": "*",
- "action": "deny",
- "access-operations": "*"
- }
- ]
- },
- {
- "name": "Allow DWDM control to the optics group",
- "group": [
- "optics"
- ],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- },
- {
- "name": "Authentication details of current user",
- "group": [
- "*"
- ],
- "rule": [
- {
- "name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
- "module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
- }
- ]
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-add-drop_empty/startup.json b/tests/czechlight-cfg-fs/data/v0_sdn-roadm-add-drop_empty/startup.json
deleted file mode 100644
index 2c63c08..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-add-drop_empty/startup.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-add-drop_empty/version b/tests/czechlight-cfg-fs/data/v0_sdn-roadm-add-drop_empty/version
deleted file mode 100644
index 573541a..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-add-drop_empty/version
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/cmdline b/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/startup.json b/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/startup.json
deleted file mode 100644
index 2c63c08..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/startup.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/version b/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/version
deleted file mode 100644
index 573541a..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/version
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_with_altered_initial_data/cmdline b/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_with_altered_initial_data/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_with_altered_initial_data/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_with_altered_initial_data/expected.json b/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_with_altered_initial_data/expected.json
deleted file mode 100644
index d603c13..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_with_altered_initial_data/expected.json
+++ /dev/null
@@ -1,954 +0,0 @@
-{
- "ietf-alarms:alarms": {
- "control": {
- "alarm-shelving": {
- "shelf": [
- {
- "name": "systemd journal upload",
- "resource": [
- "systemd-journal-upload.service"
- ],
- "alarm-type": [
- {
- "alarm-type-id": "velia-alarms:systemd-unit-failure",
- "alarm-type-qualifier-match": ""
- }
- ],
- "description": "Ignore systemd-journal-upload.service failures"
- }
- ]
- }
- }
- },
- "ietf-interfaces:interfaces": {
- "interface": [
- {
- "ietf-ip:ipv4": {
- "czechlight-network:dhcp-client": true
- },
- "ietf-ip:ipv6": {
- "autoconf": {
- "create-global-addresses": true
- },
- "enabled": true
- },
- "name": "br0",
- "type": "iana-if-type:bridge"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "eth1",
- "type": "iana-if-type:ethernetCsmacd"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "eth0",
- "type": "iana-if-type:ethernetCsmacd"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "osc",
- "type": "iana-if-type:ethernetCsmacd"
- }
- ]
- },
- "czechlight-roadm-device:channel-plan": {
- "channel": [
- {
- "name": "C-band",
- "lower-frequency": "191325000",
- "upper-frequency": "196125000"
- },
- {
- "name": "13.5",
- "lower-frequency": "191325000",
- "upper-frequency": "191375000"
- },
- {
- "name": "14.0",
- "lower-frequency": "191375000",
- "upper-frequency": "191425000"
- },
- {
- "name": "14.5",
- "lower-frequency": "191425000",
- "upper-frequency": "191475000"
- },
- {
- "name": "15.0",
- "lower-frequency": "191475000",
- "upper-frequency": "191525000"
- },
- {
- "name": "15.5",
- "lower-frequency": "191525000",
- "upper-frequency": "191575000"
- },
- {
- "name": "16.0",
- "lower-frequency": "191575000",
- "upper-frequency": "191625000"
- },
- {
- "name": "16.5",
- "lower-frequency": "191625000",
- "upper-frequency": "191675000"
- },
- {
- "name": "17.0",
- "lower-frequency": "191675000",
- "upper-frequency": "191725000"
- },
- {
- "name": "17.5",
- "lower-frequency": "191725000",
- "upper-frequency": "191775000"
- },
- {
- "name": "18.0",
- "lower-frequency": "191775000",
- "upper-frequency": "191825000"
- },
- {
- "name": "18.5",
- "lower-frequency": "191825000",
- "upper-frequency": "191875000"
- },
- {
- "name": "19.0",
- "lower-frequency": "191875000",
- "upper-frequency": "191925000"
- },
- {
- "name": "19.5",
- "lower-frequency": "191925000",
- "upper-frequency": "191975000"
- },
- {
- "name": "20.0",
- "lower-frequency": "191975000",
- "upper-frequency": "192025000"
- },
- {
- "name": "20.5",
- "lower-frequency": "192025000",
- "upper-frequency": "192075000"
- },
- {
- "name": "21.0",
- "lower-frequency": "192075000",
- "upper-frequency": "192125000"
- },
- {
- "name": "21.5",
- "lower-frequency": "192125000",
- "upper-frequency": "192175000"
- },
- {
- "name": "22.0",
- "lower-frequency": "192175000",
- "upper-frequency": "192225000"
- },
- {
- "name": "22.5",
- "lower-frequency": "192225000",
- "upper-frequency": "192275000"
- },
- {
- "name": "23.0",
- "lower-frequency": "192275000",
- "upper-frequency": "192325000"
- },
- {
- "name": "23.5",
- "lower-frequency": "192325000",
- "upper-frequency": "192375000"
- },
- {
- "name": "24.0",
- "lower-frequency": "192375000",
- "upper-frequency": "192425000"
- },
- {
- "name": "24.5",
- "lower-frequency": "192425000",
- "upper-frequency": "192475000"
- },
- {
- "name": "25.0",
- "lower-frequency": "192475000",
- "upper-frequency": "192525000"
- },
- {
- "name": "25.5",
- "lower-frequency": "192525000",
- "upper-frequency": "192575000"
- },
- {
- "name": "26.0",
- "lower-frequency": "192575000",
- "upper-frequency": "192625000"
- },
- {
- "name": "26.5",
- "lower-frequency": "192625000",
- "upper-frequency": "192675000"
- },
- {
- "name": "27.0",
- "lower-frequency": "192675000",
- "upper-frequency": "192725000"
- },
- {
- "name": "27.5",
- "lower-frequency": "192725000",
- "upper-frequency": "192775000"
- },
- {
- "name": "28.0",
- "lower-frequency": "192775000",
- "upper-frequency": "192825000"
- },
- {
- "name": "28.5",
- "lower-frequency": "192825000",
- "upper-frequency": "192875000"
- },
- {
- "name": "29.0",
- "lower-frequency": "192875000",
- "upper-frequency": "192925000"
- },
- {
- "name": "29.5",
- "lower-frequency": "192925000",
- "upper-frequency": "192975000"
- },
- {
- "name": "30.0",
- "lower-frequency": "192975000",
- "upper-frequency": "193025000"
- },
- {
- "name": "30.5",
- "lower-frequency": "193025000",
- "upper-frequency": "193075000"
- },
- {
- "name": "31.0",
- "lower-frequency": "193075000",
- "upper-frequency": "193125000"
- },
- {
- "name": "31.5",
- "lower-frequency": "193125000",
- "upper-frequency": "193175000"
- },
- {
- "name": "32.0",
- "lower-frequency": "193175000",
- "upper-frequency": "193225000"
- },
- {
- "name": "32.5",
- "lower-frequency": "193225000",
- "upper-frequency": "193275000"
- },
- {
- "name": "33.0",
- "lower-frequency": "193275000",
- "upper-frequency": "193325000"
- },
- {
- "name": "33.5",
- "lower-frequency": "193325000",
- "upper-frequency": "193375000"
- },
- {
- "name": "34.0",
- "lower-frequency": "193375000",
- "upper-frequency": "193425000"
- },
- {
- "name": "34.5",
- "lower-frequency": "193425000",
- "upper-frequency": "193475000"
- },
- {
- "name": "35.0",
- "lower-frequency": "193475000",
- "upper-frequency": "193525000"
- },
- {
- "name": "35.5",
- "lower-frequency": "193525000",
- "upper-frequency": "193575000"
- },
- {
- "name": "36.0",
- "lower-frequency": "193575000",
- "upper-frequency": "193625000"
- },
- {
- "name": "36.5",
- "lower-frequency": "193625000",
- "upper-frequency": "193675000"
- },
- {
- "name": "37.0",
- "lower-frequency": "193675000",
- "upper-frequency": "193725000"
- },
- {
- "name": "37.5",
- "lower-frequency": "193725000",
- "upper-frequency": "193775000"
- },
- {
- "name": "38.0",
- "lower-frequency": "193775000",
- "upper-frequency": "193825000"
- },
- {
- "name": "38.5",
- "lower-frequency": "193825000",
- "upper-frequency": "193875000"
- },
- {
- "name": "39.0",
- "lower-frequency": "193875000",
- "upper-frequency": "193925000"
- },
- {
- "name": "39.5",
- "lower-frequency": "193925000",
- "upper-frequency": "193975000"
- },
- {
- "name": "40.0",
- "lower-frequency": "193975000",
- "upper-frequency": "194025000"
- },
- {
- "name": "40.5",
- "lower-frequency": "194025000",
- "upper-frequency": "194075000"
- },
- {
- "name": "41.0",
- "lower-frequency": "194075000",
- "upper-frequency": "194125000"
- },
- {
- "name": "41.5",
- "lower-frequency": "194125000",
- "upper-frequency": "194175000"
- },
- {
- "name": "42.0",
- "lower-frequency": "194175000",
- "upper-frequency": "194225000"
- },
- {
- "name": "42.5",
- "lower-frequency": "194225000",
- "upper-frequency": "194275000"
- },
- {
- "name": "43.0",
- "lower-frequency": "194275000",
- "upper-frequency": "194325000"
- },
- {
- "name": "43.5",
- "lower-frequency": "194325000",
- "upper-frequency": "194375000"
- },
- {
- "name": "44.0",
- "lower-frequency": "194375000",
- "upper-frequency": "194425000"
- },
- {
- "name": "44.5",
- "lower-frequency": "194425000",
- "upper-frequency": "194475000"
- },
- {
- "name": "45.0",
- "lower-frequency": "194475000",
- "upper-frequency": "194525000"
- },
- {
- "name": "45.5",
- "lower-frequency": "194525000",
- "upper-frequency": "194575000"
- },
- {
- "name": "46.0",
- "lower-frequency": "194575000",
- "upper-frequency": "194625000"
- },
- {
- "name": "46.5",
- "lower-frequency": "194625000",
- "upper-frequency": "194675000"
- },
- {
- "name": "47.0",
- "lower-frequency": "194675000",
- "upper-frequency": "194725000"
- },
- {
- "name": "47.5",
- "lower-frequency": "194725000",
- "upper-frequency": "194775000"
- },
- {
- "name": "48.0",
- "lower-frequency": "194775000",
- "upper-frequency": "194825000"
- },
- {
- "name": "48.5",
- "lower-frequency": "194825000",
- "upper-frequency": "194875000"
- },
- {
- "name": "49.0",
- "lower-frequency": "194875000",
- "upper-frequency": "194925000"
- },
- {
- "name": "49.5",
- "lower-frequency": "194925000",
- "upper-frequency": "194975000"
- },
- {
- "name": "50.0",
- "lower-frequency": "194975000",
- "upper-frequency": "195025000"
- },
- {
- "name": "50.5",
- "lower-frequency": "195025000",
- "upper-frequency": "195075000"
- },
- {
- "name": "51.0",
- "lower-frequency": "195075000",
- "upper-frequency": "195125000"
- },
- {
- "name": "51.5",
- "lower-frequency": "195125000",
- "upper-frequency": "195175000"
- },
- {
- "name": "52.0",
- "lower-frequency": "195175000",
- "upper-frequency": "195225000"
- },
- {
- "name": "52.5",
- "lower-frequency": "195225000",
- "upper-frequency": "195275000"
- },
- {
- "name": "53.0",
- "lower-frequency": "195275000",
- "upper-frequency": "195325000"
- },
- {
- "name": "53.5",
- "lower-frequency": "195325000",
- "upper-frequency": "195375000"
- },
- {
- "name": "54.0",
- "lower-frequency": "195375000",
- "upper-frequency": "195425000"
- },
- {
- "name": "54.5",
- "lower-frequency": "195425000",
- "upper-frequency": "195475000"
- },
- {
- "name": "55.0",
- "lower-frequency": "195475000",
- "upper-frequency": "195525000"
- },
- {
- "name": "55.5",
- "lower-frequency": "195525000",
- "upper-frequency": "195575000"
- },
- {
- "name": "56.0",
- "lower-frequency": "195575000",
- "upper-frequency": "195625000"
- },
- {
- "name": "56.5",
- "lower-frequency": "195625000",
- "upper-frequency": "195675000"
- },
- {
- "name": "57.0",
- "lower-frequency": "195675000",
- "upper-frequency": "195725000"
- },
- {
- "name": "57.5",
- "lower-frequency": "195725000",
- "upper-frequency": "195775000"
- },
- {
- "name": "58.0",
- "lower-frequency": "195775000",
- "upper-frequency": "195825000"
- },
- {
- "name": "58.5",
- "lower-frequency": "195825000",
- "upper-frequency": "195875000"
- },
- {
- "name": "59.0",
- "lower-frequency": "195875000",
- "upper-frequency": "195925000"
- },
- {
- "name": "59.5",
- "lower-frequency": "195925000",
- "upper-frequency": "195975000"
- },
- {
- "name": "60.0",
- "lower-frequency": "195975000",
- "upper-frequency": "196025000"
- },
- {
- "name": "60.5",
- "lower-frequency": "196025000",
- "upper-frequency": "196075000"
- },
- {
- "name": "61.0",
- "lower-frequency": "196075000",
- "upper-frequency": "196125000"
- },
- {
- "name": "14 (100GHz)",
- "lower-frequency": "191350000",
- "upper-frequency": "191450000"
- },
- {
- "name": "15 (100GHz)",
- "lower-frequency": "191450000",
- "upper-frequency": "191550000"
- },
- {
- "name": "16 (100GHz)",
- "lower-frequency": "191550000",
- "upper-frequency": "191650000"
- },
- {
- "name": "17 (100GHz)",
- "lower-frequency": "191650000",
- "upper-frequency": "191750000"
- },
- {
- "name": "18 (100GHz)",
- "lower-frequency": "191750000",
- "upper-frequency": "191850000"
- },
- {
- "name": "19 (100GHz)",
- "lower-frequency": "191850000",
- "upper-frequency": "191950000"
- },
- {
- "name": "20 (100GHz)",
- "lower-frequency": "191950000",
- "upper-frequency": "192050000"
- },
- {
- "name": "21 (100GHz)",
- "lower-frequency": "192050000",
- "upper-frequency": "192150000"
- },
- {
- "name": "22 (100GHz)",
- "lower-frequency": "192150000",
- "upper-frequency": "192250000"
- },
- {
- "name": "23 (100GHz)",
- "lower-frequency": "192250000",
- "upper-frequency": "192350000"
- },
- {
- "name": "24 (100GHz)",
- "lower-frequency": "192350000",
- "upper-frequency": "192450000"
- },
- {
- "name": "25 (100GHz)",
- "lower-frequency": "192450000",
- "upper-frequency": "192550000"
- },
- {
- "name": "26 (100GHz)",
- "lower-frequency": "192550000",
- "upper-frequency": "192650000"
- },
- {
- "name": "27 (100GHz)",
- "lower-frequency": "192650000",
- "upper-frequency": "192750000"
- },
- {
- "name": "28 (100GHz)",
- "lower-frequency": "192750000",
- "upper-frequency": "192850000"
- },
- {
- "name": "29 (100GHz)",
- "lower-frequency": "192850000",
- "upper-frequency": "192950000"
- },
- {
- "name": "30 (100GHz)",
- "lower-frequency": "192950000",
- "upper-frequency": "193050000"
- },
- {
- "name": "31 (100GHz)",
- "lower-frequency": "193050000",
- "upper-frequency": "193150000"
- },
- {
- "name": "32 (100GHz)",
- "lower-frequency": "193150000",
- "upper-frequency": "193250000"
- },
- {
- "name": "33 (100GHz)",
- "lower-frequency": "193250000",
- "upper-frequency": "193350000"
- },
- {
- "name": "34 (100GHz)",
- "lower-frequency": "193350000",
- "upper-frequency": "193450000"
- },
- {
- "name": "35 (100GHz)",
- "lower-frequency": "193450000",
- "upper-frequency": "193550000"
- },
- {
- "name": "36 (100GHz)",
- "lower-frequency": "193550000",
- "upper-frequency": "193650000"
- },
- {
- "name": "37 (100GHz)",
- "lower-frequency": "193650000",
- "upper-frequency": "193750000"
- },
- {
- "name": "38 (100GHz)",
- "lower-frequency": "193750000",
- "upper-frequency": "193850000"
- },
- {
- "name": "39 (100GHz)",
- "lower-frequency": "193850000",
- "upper-frequency": "193950000"
- },
- {
- "name": "40 (100GHz)",
- "lower-frequency": "193950000",
- "upper-frequency": "194050000"
- },
- {
- "name": "41 (100GHz)",
- "lower-frequency": "194050000",
- "upper-frequency": "194150000"
- },
- {
- "name": "42 (100GHz)",
- "lower-frequency": "194150000",
- "upper-frequency": "194250000"
- },
- {
- "name": "43 (100GHz)",
- "lower-frequency": "194250000",
- "upper-frequency": "194350000"
- },
- {
- "name": "44 (100GHz)",
- "lower-frequency": "194350000",
- "upper-frequency": "194450000"
- },
- {
- "name": "45 (100GHz)",
- "lower-frequency": "194450000",
- "upper-frequency": "194550000"
- },
- {
- "name": "46 (100GHz)",
- "lower-frequency": "194550000",
- "upper-frequency": "194650000"
- },
- {
- "name": "47 (100GHz)",
- "lower-frequency": "194650000",
- "upper-frequency": "194750000"
- },
- {
- "name": "48 (100GHz)",
- "lower-frequency": "194750000",
- "upper-frequency": "194850000"
- },
- {
- "name": "49 (100GHz)",
- "lower-frequency": "194850000",
- "upper-frequency": "194950000"
- },
- {
- "name": "50 (100GHz)",
- "lower-frequency": "194950000",
- "upper-frequency": "195050000"
- },
- {
- "name": "51 (100GHz)",
- "lower-frequency": "195050000",
- "upper-frequency": "195150000"
- },
- {
- "name": "52 (100GHz)",
- "lower-frequency": "195150000",
- "upper-frequency": "195250000"
- },
- {
- "name": "53 (100GHz)",
- "lower-frequency": "195250000",
- "upper-frequency": "195350000"
- },
- {
- "name": "54 (100GHz)",
- "lower-frequency": "195350000",
- "upper-frequency": "195450000"
- },
- {
- "name": "55 (100GHz)",
- "lower-frequency": "195450000",
- "upper-frequency": "195550000"
- },
- {
- "name": "56 (100GHz)",
- "lower-frequency": "195550000",
- "upper-frequency": "195650000"
- },
- {
- "name": "57 (100GHz)",
- "lower-frequency": "195650000",
- "upper-frequency": "195750000"
- },
- {
- "name": "58 (100GHz)",
- "lower-frequency": "195750000",
- "upper-frequency": "195850000"
- },
- {
- "name": "59 (100GHz)",
- "lower-frequency": "195850000",
- "upper-frequency": "195950000"
- },
- {
- "name": "60 (100GHz)",
- "lower-frequency": "195950000",
- "upper-frequency": "196050000"
- }
- ]
- },
- "czechlight-roadm-device:media-channels": [
- {
- "channel": "C-band",
- "description": "Whole-band overview"
- }
- ],
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Permit yangnobody user/group to read only some modules",
- "group": [
- "yangnobody"
- ],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-yang-library",
- "module-name": "ietf-yang-library",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: contact",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/contact",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: hostname",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/hostname",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: location",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/location",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: clock",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/clock",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: system-state",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system-state",
- "access-operations": "read"
- },
- {
- "name": "czechlight-lldp",
- "module-name": "czechlight-lldp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:firmware",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:firmware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:leds",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:leds",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "wildcard-deny",
- "module-name": "*",
- "action": "deny",
- "access-operations": "*"
- }
- ]
- },
- {
- "name": "Allow DWDM control to the optics group",
- "group": [
- "optics"
- ],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- },
- {
- "name": "Authentication details of current user",
- "group": [
- "*"
- ],
- "rule": [
- {
- "name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
- "module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
- }
- ]
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_with_altered_initial_data/startup.json b/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_with_altered_initial_data/startup.json
deleted file mode 100644
index 4435818..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_with_altered_initial_data/startup.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "czechlight-roadm-device:channel-plan": {
- "channel": [
- {
- "name": "haha",
- "lower-frequency": "195325000",
- "upper-frequency": "195425000"
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_with_altered_initial_data/version b/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_with_altered_initial_data/version
deleted file mode 100644
index 573541a..0000000
--- a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_with_altered_initial_data/version
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/tests/czechlight-cfg-fs/data/v1_inline_eth0_explicit_ip/cmdline b/tests/czechlight-cfg-fs/data/v1_inline_eth0_explicit_ip/cmdline
deleted file mode 100644
index 17d977e..0000000
--- a/tests/czechlight-cfg-fs/data/v1_inline_eth0_explicit_ip/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-inline
diff --git a/tests/czechlight-cfg-fs/data/v1_inline_eth0_explicit_ip/expected.json b/tests/czechlight-cfg-fs/data/v1_inline_eth0_explicit_ip/expected.json
deleted file mode 100644
index 58babdd..0000000
--- a/tests/czechlight-cfg-fs/data/v1_inline_eth0_explicit_ip/expected.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "ietf-interfaces:interfaces": {
- "interface": [
- {
- "name": "br0",
- "type": "iana-if-type:bridge",
- "ietf-ip:ipv4": {
- "czechlight-network:dhcp-client": true
- },
- "ietf-ip:ipv6": {
- "enabled": true,
- "autoconf": {
- "create-global-addresses": true
- }
- }
- },
- {
- "name": "eth1",
- "type": "iana-if-type:ethernetCsmacd",
- "czechlight-network:bridge": "br0"
- },
- {
- "name": "eth0",
- "type": "iana-if-type:ethernetCsmacd",
- "czechlight-network:bridge": "br0"
- },
- {
- "name": "oscE",
- "type": "iana-if-type:ethernetCsmacd",
- "czechlight-network:bridge": "br0"
- },
- {
- "name": "oscW",
- "type": "iana-if-type:ethernetCsmacd",
- "czechlight-network:bridge": "br0"
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v1_inline_eth0_explicit_ip/startup.json b/tests/czechlight-cfg-fs/data/v1_inline_eth0_explicit_ip/startup.json
deleted file mode 100644
index baca11f..0000000
--- a/tests/czechlight-cfg-fs/data/v1_inline_eth0_explicit_ip/startup.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "ietf-interfaces:interfaces": {
- "interface": [
- {
- "name": "br0",
- "type": "iana-if-type:bridge",
- "ietf-ip:ipv4": {
- "czechlight-network:dhcp-client": true
- },
- "ietf-ip:ipv6": {
- "enabled": true,
- "autoconf": {
- "create-global-addresses": true
- }
- }
- },
- {
- "name": "eth1",
- "type": "iana-if-type:ethernetCsmacd",
- "czechlight-network:bridge": "br0"
- },
- {
- "name": "eth0",
- "type": "iana-if-type:ethernetCsmacd",
- "ietf-ip:ipv4": {
- "czechlight-network:dhcp-client": true
- },
- "ietf-ip:ipv6": {
- "enabled": true,
- "autoconf": {
- "create-global-addresses": true
- }
- }
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v1_inline_eth0_explicit_ip/version b/tests/czechlight-cfg-fs/data/v1_inline_eth0_explicit_ip/version
deleted file mode 100644
index d00491f..0000000
--- a/tests/czechlight-cfg-fs/data/v1_inline_eth0_explicit_ip/version
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/tests/czechlight-cfg-fs/data/v1_inline_eth0_explicit_ip/xpath b/tests/czechlight-cfg-fs/data/v1_inline_eth0_explicit_ip/xpath
deleted file mode 100644
index a745562..0000000
--- a/tests/czechlight-cfg-fs/data/v1_inline_eth0_explicit_ip/xpath
+++ /dev/null
@@ -1 +0,0 @@
-/ietf-interfaces:interfaces
diff --git a/tests/czechlight-cfg-fs/data/v1_sdn-roadm-line_empty/cmdline b/tests/czechlight-cfg-fs/data/v1_sdn-roadm-line_empty/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v1_sdn-roadm-line_empty/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v1_sdn-roadm-line_empty/expected.json b/tests/czechlight-cfg-fs/data/v1_sdn-roadm-line_empty/expected.json
deleted file mode 100644
index 25dc77e..0000000
--- a/tests/czechlight-cfg-fs/data/v1_sdn-roadm-line_empty/expected.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "ietf-interfaces:interfaces": {
- "interface": [
- {
- "name": "br0",
- "type": "iana-if-type:bridge",
- "ietf-ip:ipv4": {
- "czechlight-network:dhcp-client": true
- },
- "ietf-ip:ipv6": {
- "enabled": true,
- "autoconf": {
- "create-global-addresses": true
- }
- }
- },
- {
- "name": "eth1",
- "type": "iana-if-type:ethernetCsmacd",
- "czechlight-network:bridge": "br0"
- },
- {
- "name": "eth0",
- "type": "iana-if-type:ethernetCsmacd",
- "czechlight-network:bridge": "br0"
- },
- {
- "name": "osc",
- "type": "iana-if-type:ethernetCsmacd",
- "czechlight-network:bridge": "br0"
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v1_sdn-roadm-line_empty/startup.json b/tests/czechlight-cfg-fs/data/v1_sdn-roadm-line_empty/startup.json
deleted file mode 100644
index 2c63c08..0000000
--- a/tests/czechlight-cfg-fs/data/v1_sdn-roadm-line_empty/startup.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/tests/czechlight-cfg-fs/data/v1_sdn-roadm-line_empty/version b/tests/czechlight-cfg-fs/data/v1_sdn-roadm-line_empty/version
deleted file mode 100644
index d00491f..0000000
--- a/tests/czechlight-cfg-fs/data/v1_sdn-roadm-line_empty/version
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/tests/czechlight-cfg-fs/data/v1_sdn-roadm-line_empty/xpath b/tests/czechlight-cfg-fs/data/v1_sdn-roadm-line_empty/xpath
deleted file mode 100644
index a745562..0000000
--- a/tests/czechlight-cfg-fs/data/v1_sdn-roadm-line_empty/xpath
+++ /dev/null
@@ -1 +0,0 @@
-/ietf-interfaces:interfaces
diff --git a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_empty_alarms/cmdline b/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_empty_alarms/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_empty_alarms/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_empty_alarms/expected.json b/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_empty_alarms/expected.json
deleted file mode 100644
index 29fcd4a..0000000
--- a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_empty_alarms/expected.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "ietf-alarms:alarms": {
- "control": {
- "alarm-shelving": {
- "shelf": [
- {
- "name": "systemd journal upload",
- "resource": [
- "systemd-journal-upload.service"
- ],
- "alarm-type": [
- {
- "alarm-type-id": "velia-alarms:systemd-unit-failure",
- "alarm-type-qualifier-match": ""
- }
- ],
- "description": "Ignore systemd-journal-upload.service failures"
- }
- ]
- }
- }
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_empty_alarms/startup.json b/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_empty_alarms/startup.json
deleted file mode 100644
index 2c63c08..0000000
--- a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_empty_alarms/startup.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_empty_alarms/version b/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_empty_alarms/version
deleted file mode 100644
index 0cfbf08..0000000
--- a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_empty_alarms/version
+++ /dev/null
@@ -1 +0,0 @@
-2
diff --git a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_empty_alarms/xpath b/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_empty_alarms/xpath
deleted file mode 100644
index 68b9e92..0000000
--- a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_empty_alarms/xpath
+++ /dev/null
@@ -1 +0,0 @@
-/ietf-alarms:alarms
diff --git a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_samename/cmdline b/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_samename/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_samename/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_samename/expected.json b/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_samename/expected.json
deleted file mode 100644
index 29fcd4a..0000000
--- a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_samename/expected.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "ietf-alarms:alarms": {
- "control": {
- "alarm-shelving": {
- "shelf": [
- {
- "name": "systemd journal upload",
- "resource": [
- "systemd-journal-upload.service"
- ],
- "alarm-type": [
- {
- "alarm-type-id": "velia-alarms:systemd-unit-failure",
- "alarm-type-qualifier-match": ""
- }
- ],
- "description": "Ignore systemd-journal-upload.service failures"
- }
- ]
- }
- }
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_samename/startup.json b/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_samename/startup.json
deleted file mode 100644
index c49d5e7..0000000
--- a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_samename/startup.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "ietf-alarms:alarms": {
- "control": {
- "alarm-shelving": {
- "shelf": [
- {
- "name": "systemd journal upload",
- "resource": [],
- "alarm-type": [],
- "description": "Something something something"
- }
- ]
- }
- }
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_samename/version b/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_samename/version
deleted file mode 100644
index 0cfbf08..0000000
--- a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_samename/version
+++ /dev/null
@@ -1 +0,0 @@
-2
diff --git a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_samename/xpath b/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_samename/xpath
deleted file mode 100644
index 68b9e92..0000000
--- a/tests/czechlight-cfg-fs/data/v2_sdn-roadm-line_samename/xpath
+++ /dev/null
@@ -1 +0,0 @@
-/ietf-alarms:alarms
diff --git a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_default_nacm/cmdline b/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_default_nacm/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_default_nacm/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_default_nacm/startup.json b/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_default_nacm/startup.json
deleted file mode 100644
index 59d413b..0000000
--- a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_default_nacm/startup.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Allow DWDM control to the optics group",
- "group": ["optics"],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_default_nacm/version b/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_default_nacm/version
deleted file mode 100644
index 00750ed..0000000
--- a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_default_nacm/version
+++ /dev/null
@@ -1 +0,0 @@
-3
diff --git a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_default_nacm/xpath b/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_default_nacm/xpath
deleted file mode 100644
index 8eca9fa..0000000
--- a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_default_nacm/xpath
+++ /dev/null
@@ -1 +0,0 @@
-/ietf-netconf-acm:nacm
diff --git a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_multiple_nacm_rules/cmdline b/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_multiple_nacm_rules/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_multiple_nacm_rules/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_multiple_nacm_rules/expected.json b/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_multiple_nacm_rules/expected.json
deleted file mode 100644
index 976b8c8..0000000
--- a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_multiple_nacm_rules/expected.json
+++ /dev/null
@@ -1,169 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Permit yangnobody user/group to read only some modules",
- "group": [
- "yangnobody"
- ],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-yang-library",
- "module-name": "ietf-yang-library",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: contact",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/contact",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: hostname",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/hostname",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: location",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/location",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: clock",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/clock",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: system-state",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system-state",
- "access-operations": "read"
- },
- {
- "name": "czechlight-lldp",
- "module-name": "czechlight-lldp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:firmware",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:firmware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:leds",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:leds",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "wildcard-deny",
- "module-name": "*",
- "action": "deny",
- "access-operations": "*"
- }
- ]
- },
- {
- "name": "Allow DWDM control to the optics group",
- "group": ["optics"],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- },
- {
- "name": "Authentication details of current user",
- "group": [
- "*"
- ],
- "rule": [
- {
- "name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
- "module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
- }
- ]
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_multiple_nacm_rules/startup.json b/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_multiple_nacm_rules/startup.json
deleted file mode 100644
index a56c909..0000000
--- a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_multiple_nacm_rules/startup.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Some rule list",
- "group": ["optics"],
- "rule": []
- },
- {
- "name": "Another rule list",
- "group": ["optics"],
- "rule": []
- },
- {
- "name": "Allow DWDM control to the optics group",
- "group": ["optics"],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- },
- {
- "name": "Yet another rule list (YARL)",
- "group": ["optics"],
- "rule": []
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_multiple_nacm_rules/version b/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_multiple_nacm_rules/version
deleted file mode 100644
index 00750ed..0000000
--- a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_multiple_nacm_rules/version
+++ /dev/null
@@ -1 +0,0 @@
-3
diff --git a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_multiple_nacm_rules/xpath b/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_multiple_nacm_rules/xpath
deleted file mode 100644
index 8eca9fa..0000000
--- a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_multiple_nacm_rules/xpath
+++ /dev/null
@@ -1 +0,0 @@
-/ietf-netconf-acm:nacm
diff --git a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_no_nacm/cmdline b/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_no_nacm/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_no_nacm/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_no_nacm/expected.json b/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_no_nacm/expected.json
deleted file mode 100644
index 976b8c8..0000000
--- a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_no_nacm/expected.json
+++ /dev/null
@@ -1,169 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Permit yangnobody user/group to read only some modules",
- "group": [
- "yangnobody"
- ],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-yang-library",
- "module-name": "ietf-yang-library",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: contact",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/contact",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: hostname",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/hostname",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: location",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/location",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: clock",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/clock",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: system-state",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system-state",
- "access-operations": "read"
- },
- {
- "name": "czechlight-lldp",
- "module-name": "czechlight-lldp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:firmware",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:firmware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:leds",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:leds",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "wildcard-deny",
- "module-name": "*",
- "action": "deny",
- "access-operations": "*"
- }
- ]
- },
- {
- "name": "Allow DWDM control to the optics group",
- "group": ["optics"],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- },
- {
- "name": "Authentication details of current user",
- "group": [
- "*"
- ],
- "rule": [
- {
- "name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
- "module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
- }
- ]
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_no_nacm/startup.json b/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_no_nacm/startup.json
deleted file mode 100644
index 2c63c08..0000000
--- a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_no_nacm/startup.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_no_nacm/version b/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_no_nacm/version
deleted file mode 100644
index 00750ed..0000000
--- a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_no_nacm/version
+++ /dev/null
@@ -1 +0,0 @@
-3
diff --git a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_no_nacm/xpath b/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_no_nacm/xpath
deleted file mode 100644
index 8eca9fa..0000000
--- a/tests/czechlight-cfg-fs/data/v3_sdn-roadm-line_no_nacm/xpath
+++ /dev/null
@@ -1 +0,0 @@
-/ietf-netconf-acm:nacm
diff --git a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_default_nacm/cmdline b/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_default_nacm/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_default_nacm/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_default_nacm/expected.json b/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_default_nacm/expected.json
deleted file mode 100644
index 4606260..0000000
--- a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_default_nacm/expected.json
+++ /dev/null
@@ -1,167 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Permit yangnobody user/group to read only some modules",
- "group": [
- "yangnobody"
- ],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-yang-library",
- "module-name": "ietf-yang-library",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: contact",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/contact",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: hostname",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/hostname",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: location",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/location",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: clock",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/clock",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: system-state",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system-state",
- "access-operations": "read"
- },
- {
- "name": "czechlight-lldp",
- "module-name": "czechlight-lldp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:firmware",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:firmware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:leds",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:leds",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "wildcard-deny",
- "module-name": "*",
- "action": "deny",
- "access-operations": "*"
- }
- ]
- },
- {
- "name": "Allow DWDM control to the optics group",
- "group": ["optics"],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- },
- {
- "name": "Authentication details of current user",
- "group": ["*"],
- "rule": [
- {
- "name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
- "module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
- }
- ]
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_default_nacm/startup.json b/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_default_nacm/startup.json
deleted file mode 100644
index 59d413b..0000000
--- a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_default_nacm/startup.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Allow DWDM control to the optics group",
- "group": ["optics"],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_default_nacm/version b/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_default_nacm/version
deleted file mode 100644
index b8626c4..0000000
--- a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_default_nacm/version
+++ /dev/null
@@ -1 +0,0 @@
-4
diff --git a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_default_nacm/xpath b/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_default_nacm/xpath
deleted file mode 100644
index 8eca9fa..0000000
--- a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_default_nacm/xpath
+++ /dev/null
@@ -1 +0,0 @@
-/ietf-netconf-acm:nacm
diff --git a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_multiple_nacm_rules/cmdline b/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_multiple_nacm_rules/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_multiple_nacm_rules/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_multiple_nacm_rules/expected.json b/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_multiple_nacm_rules/expected.json
deleted file mode 100644
index 67f0489..0000000
--- a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_multiple_nacm_rules/expected.json
+++ /dev/null
@@ -1,179 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Permit yangnobody user/group to read only some modules",
- "group": [
- "yangnobody"
- ],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-yang-library",
- "module-name": "ietf-yang-library",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: contact",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/contact",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: hostname",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/hostname",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: location",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/location",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: clock",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/clock",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: system-state",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system-state",
- "access-operations": "read"
- },
- {
- "name": "czechlight-lldp",
- "module-name": "czechlight-lldp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:firmware",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:firmware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:leds",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:leds",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "wildcard-deny",
- "module-name": "*",
- "action": "deny",
- "access-operations": "*"
- }
- ]
- },
- {
- "name": "Some rule list",
- "group": ["optics"]
- },
- {
- "name": "Another rule list",
- "group": ["optics"]
- },
- {
- "name": "Allow DWDM control to the optics group",
- "group": ["optics"],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- },
- {
- "name": "Yet another rule list (YARL)",
- "group": ["optics"]
- },
- {
- "name": "Authentication details of current user",
- "group": ["*"],
- "rule": [
- {
- "name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
- "module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
- }
- ]
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_multiple_nacm_rules/startup.json b/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_multiple_nacm_rules/startup.json
deleted file mode 100644
index a56c909..0000000
--- a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_multiple_nacm_rules/startup.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Some rule list",
- "group": ["optics"],
- "rule": []
- },
- {
- "name": "Another rule list",
- "group": ["optics"],
- "rule": []
- },
- {
- "name": "Allow DWDM control to the optics group",
- "group": ["optics"],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- },
- {
- "name": "Yet another rule list (YARL)",
- "group": ["optics"],
- "rule": []
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_multiple_nacm_rules/version b/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_multiple_nacm_rules/version
deleted file mode 100644
index b8626c4..0000000
--- a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_multiple_nacm_rules/version
+++ /dev/null
@@ -1 +0,0 @@
-4
diff --git a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_multiple_nacm_rules/xpath b/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_multiple_nacm_rules/xpath
deleted file mode 100644
index 8eca9fa..0000000
--- a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_multiple_nacm_rules/xpath
+++ /dev/null
@@ -1 +0,0 @@
-/ietf-netconf-acm:nacm
diff --git a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_no_nacm/cmdline b/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_no_nacm/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_no_nacm/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_no_nacm/expected.json b/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_no_nacm/expected.json
deleted file mode 100644
index c81f5cd..0000000
--- a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_no_nacm/expected.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Permit yangnobody user/group to read only some modules",
- "group": [
- "yangnobody"
- ],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-yang-library",
- "module-name": "ietf-yang-library",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: contact",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/contact",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: hostname",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/hostname",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: location",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/location",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: clock",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/clock",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: system-state",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system-state",
- "access-operations": "read"
- },
- {
- "name": "czechlight-lldp",
- "module-name": "czechlight-lldp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:firmware",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:firmware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:leds",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:leds",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "wildcard-deny",
- "module-name": "*",
- "action": "deny",
- "access-operations": "*"
- }
- ]
- },
- {
- "name": "Authentication details of current user",
- "group": ["*"],
- "rule": [
- {
- "name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
- "module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
- }
- ]
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_no_nacm/startup.json b/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_no_nacm/startup.json
deleted file mode 100644
index 2c63c08..0000000
--- a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_no_nacm/startup.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_no_nacm/version b/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_no_nacm/version
deleted file mode 100644
index b8626c4..0000000
--- a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_no_nacm/version
+++ /dev/null
@@ -1 +0,0 @@
-4
diff --git a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_no_nacm/xpath b/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_no_nacm/xpath
deleted file mode 100644
index 8eca9fa..0000000
--- a/tests/czechlight-cfg-fs/data/v4_sdn-roadm-line_no_nacm/xpath
+++ /dev/null
@@ -1 +0,0 @@
-/ietf-netconf-acm:nacm
diff --git a/tests/czechlight-cfg-fs/data/v5-sdn-roadm-line_no_nacm/cmdline b/tests/czechlight-cfg-fs/data/v5-sdn-roadm-line_no_nacm/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v5-sdn-roadm-line_no_nacm/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v5-sdn-roadm-line_no_nacm/expected.json b/tests/czechlight-cfg-fs/data/v5-sdn-roadm-line_no_nacm/expected.json
deleted file mode 100644
index da814f8..0000000
--- a/tests/czechlight-cfg-fs/data/v5-sdn-roadm-line_no_nacm/expected.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Authentication details of current user",
- "group": [
- "*"
- ],
- "rule": [
- {
- "name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
- "module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
- }
- ]
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v5-sdn-roadm-line_no_nacm/startup.json b/tests/czechlight-cfg-fs/data/v5-sdn-roadm-line_no_nacm/startup.json
deleted file mode 100644
index 2c63c08..0000000
--- a/tests/czechlight-cfg-fs/data/v5-sdn-roadm-line_no_nacm/startup.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/tests/czechlight-cfg-fs/data/v5-sdn-roadm-line_no_nacm/version b/tests/czechlight-cfg-fs/data/v5-sdn-roadm-line_no_nacm/version
deleted file mode 100644
index 7ed6ff8..0000000
--- a/tests/czechlight-cfg-fs/data/v5-sdn-roadm-line_no_nacm/version
+++ /dev/null
@@ -1 +0,0 @@
-5
diff --git a/tests/czechlight-cfg-fs/data/v5-sdn-roadm-line_no_nacm/xpath b/tests/czechlight-cfg-fs/data/v5-sdn-roadm-line_no_nacm/xpath
deleted file mode 100644
index 8eca9fa..0000000
--- a/tests/czechlight-cfg-fs/data/v5-sdn-roadm-line_no_nacm/xpath
+++ /dev/null
@@ -1 +0,0 @@
-/ietf-netconf-acm:nacm
diff --git a/tests/czechlight-cfg-fs/data/v5_sdn-roadm-line_multiple_nacm_rules/cmdline b/tests/czechlight-cfg-fs/data/v5_sdn-roadm-line_multiple_nacm_rules/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v5_sdn-roadm-line_multiple_nacm_rules/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v5_sdn-roadm-line_multiple_nacm_rules/expected.json b/tests/czechlight-cfg-fs/data/v5_sdn-roadm-line_multiple_nacm_rules/expected.json
deleted file mode 100644
index 0c95155..0000000
--- a/tests/czechlight-cfg-fs/data/v5_sdn-roadm-line_multiple_nacm_rules/expected.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Some rule list",
- "group": ["optics"]
- },
- {
- "name": "Another rule list",
- "group": ["optics"]
- },
- {
- "name": "Allow DWDM control to the optics group",
- "group": ["optics"],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- },
- {
- "name": "Yet another rule list (YARL)",
- "group": ["optics"]
- },
- {
- "name": "Authentication details of current user",
- "group": ["*"],
- "rule": [
- {
- "name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
- "module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
- }
- ]
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v5_sdn-roadm-line_multiple_nacm_rules/startup.json b/tests/czechlight-cfg-fs/data/v5_sdn-roadm-line_multiple_nacm_rules/startup.json
deleted file mode 100644
index a56c909..0000000
--- a/tests/czechlight-cfg-fs/data/v5_sdn-roadm-line_multiple_nacm_rules/startup.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Some rule list",
- "group": ["optics"],
- "rule": []
- },
- {
- "name": "Another rule list",
- "group": ["optics"],
- "rule": []
- },
- {
- "name": "Allow DWDM control to the optics group",
- "group": ["optics"],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- },
- {
- "name": "Yet another rule list (YARL)",
- "group": ["optics"],
- "rule": []
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v5_sdn-roadm-line_multiple_nacm_rules/version b/tests/czechlight-cfg-fs/data/v5_sdn-roadm-line_multiple_nacm_rules/version
deleted file mode 100644
index 7ed6ff8..0000000
--- a/tests/czechlight-cfg-fs/data/v5_sdn-roadm-line_multiple_nacm_rules/version
+++ /dev/null
@@ -1 +0,0 @@
-5
diff --git a/tests/czechlight-cfg-fs/data/v5_sdn-roadm-line_multiple_nacm_rules/xpath b/tests/czechlight-cfg-fs/data/v5_sdn-roadm-line_multiple_nacm_rules/xpath
deleted file mode 100644
index 8eca9fa..0000000
--- a/tests/czechlight-cfg-fs/data/v5_sdn-roadm-line_multiple_nacm_rules/xpath
+++ /dev/null
@@ -1 +0,0 @@
-/ietf-netconf-acm:nacm
diff --git a/tests/czechlight-cfg-fs/data/v6-sdn-roadm-line_no_nacm/cmdline b/tests/czechlight-cfg-fs/data/v6-sdn-roadm-line_no_nacm/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v6-sdn-roadm-line_no_nacm/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v6-sdn-roadm-line_no_nacm/expected.json b/tests/czechlight-cfg-fs/data/v6-sdn-roadm-line_no_nacm/expected.json
deleted file mode 100644
index 2c63c08..0000000
--- a/tests/czechlight-cfg-fs/data/v6-sdn-roadm-line_no_nacm/expected.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/tests/czechlight-cfg-fs/data/v6-sdn-roadm-line_no_nacm/startup.json b/tests/czechlight-cfg-fs/data/v6-sdn-roadm-line_no_nacm/startup.json
deleted file mode 100644
index 2c63c08..0000000
--- a/tests/czechlight-cfg-fs/data/v6-sdn-roadm-line_no_nacm/startup.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/tests/czechlight-cfg-fs/data/v6-sdn-roadm-line_no_nacm/version b/tests/czechlight-cfg-fs/data/v6-sdn-roadm-line_no_nacm/version
deleted file mode 100644
index 1e8b314..0000000
--- a/tests/czechlight-cfg-fs/data/v6-sdn-roadm-line_no_nacm/version
+++ /dev/null
@@ -1 +0,0 @@
-6
diff --git a/tests/czechlight-cfg-fs/data/v6-sdn-roadm-line_no_nacm/xpath b/tests/czechlight-cfg-fs/data/v6-sdn-roadm-line_no_nacm/xpath
deleted file mode 100644
index 8eca9fa..0000000
--- a/tests/czechlight-cfg-fs/data/v6-sdn-roadm-line_no_nacm/xpath
+++ /dev/null
@@ -1 +0,0 @@
-/ietf-netconf-acm:nacm
diff --git a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_modified_nacm/cmdline b/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_modified_nacm/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_modified_nacm/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_modified_nacm/expected.json b/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_modified_nacm/expected.json
deleted file mode 100644
index 83e7f48..0000000
--- a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_modified_nacm/expected.json
+++ /dev/null
@@ -1,147 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Permit yangnobody user/group to read only some modules",
- "group": [
- "yangnobody"
- ],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-yang-library",
- "module-name": "ietf-yang-library",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: contact",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/contact",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: hostname",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/hostname",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: location",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/location",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: clock",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/clock",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: system-state",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system-state",
- "access-operations": "read"
- },
- {
- "name": "czechlight-lldp",
- "module-name": "czechlight-lldp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:firmware",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:firmware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:leds",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:leds",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "wildcard-deny",
- "module-name": "*",
- "action": "deny",
- "access-operations": "*"
- }
- ]
- },
- {
- "name": "Allow DWDM control to the optics group",
- "group": ["optics"],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- },
- {
- "name": "Authentication details of current user",
- "group": [
- "*"
- ],
- "rule": [
- {
- "name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
- "module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
- }
- ]
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_modified_nacm/startup.json b/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_modified_nacm/startup.json
deleted file mode 100644
index 83e7f48..0000000
--- a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_modified_nacm/startup.json
+++ /dev/null
@@ -1,147 +0,0 @@
-{
- "ietf-netconf-acm:nacm": {
- "rule-list": [
- {
- "name": "Permit yangnobody user/group to read only some modules",
- "group": [
- "yangnobody"
- ],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-yang-library",
- "module-name": "ietf-yang-library",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: contact",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/contact",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: hostname",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/hostname",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: location",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/location",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: clock",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system/clock",
- "access-operations": "read"
- },
- {
- "name": "ietf-system: system-state",
- "module-name": "ietf-system",
- "action": "permit",
- "path": "/ietf-system:system-state",
- "access-operations": "read"
- },
- {
- "name": "czechlight-lldp",
- "module-name": "czechlight-lldp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:firmware",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:firmware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-system:leds",
- "module-name": "czechlight-system",
- "path": "/czechlight-system:leds",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "wildcard-deny",
- "module-name": "*",
- "action": "deny",
- "access-operations": "*"
- }
- ]
- },
- {
- "name": "Allow DWDM control to the optics group",
- "group": ["optics"],
- "rule": [
- {
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit"
- },
- {
- "name": "czechlight-calibration-device",
- "module-name": "czechlight-calibration-device",
- "action": "permit"
- }
- ]
- },
- {
- "name": "Authentication details of current user",
- "group": [
- "*"
- ],
- "rule": [
- {
- "name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
- "module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
- }
- ]
- }
- ]
- }
-}
diff --git a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_modified_nacm/version b/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_modified_nacm/version
deleted file mode 100644
index 7f8f011..0000000
--- a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_modified_nacm/version
+++ /dev/null
@@ -1 +0,0 @@
-7
diff --git a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_modified_nacm/xpath b/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_modified_nacm/xpath
deleted file mode 100644
index 8eca9fa..0000000
--- a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_modified_nacm/xpath
+++ /dev/null
@@ -1 +0,0 @@
-/ietf-netconf-acm:nacm
diff --git a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_no_nacm/cmdline b/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_no_nacm/cmdline
deleted file mode 100644
index 6b1d906..0000000
--- a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_no_nacm/cmdline
+++ /dev/null
@@ -1 +0,0 @@
-czechlight=sdn-roadm-line
diff --git a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_no_nacm/expected.json b/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_no_nacm/expected.json
deleted file mode 100644
index 2c63c08..0000000
--- a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_no_nacm/expected.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_no_nacm/startup.json b/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_no_nacm/startup.json
deleted file mode 100644
index 2c63c08..0000000
--- a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_no_nacm/startup.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_no_nacm/version b/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_no_nacm/version
deleted file mode 100644
index 7f8f011..0000000
--- a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_no_nacm/version
+++ /dev/null
@@ -1 +0,0 @@
-7
diff --git a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_no_nacm/xpath b/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_no_nacm/xpath
deleted file mode 100644
index 8eca9fa..0000000
--- a/tests/czechlight-cfg-fs/data/v7-sdn-roadm-line_no_nacm/xpath
+++ /dev/null
@@ -1 +0,0 @@
-/ietf-netconf-acm:nacm
diff --git a/tests/czechlight-cfg-fs/data/v8_sdn-roadm-line/cmdline b/tests/czechlight-cfg-fs/data/v8_sdn-roadm-line/cmdline
new file mode 100644
index 0000000..a29c2ff
--- /dev/null
+++ b/tests/czechlight-cfg-fs/data/v8_sdn-roadm-line/cmdline
@@ -0,0 +1 @@
+root=/dev/mmcblk0p3 init=/sbin/init-czechlight.sh rauc.slot=B czechlight=sdn-roadm-line-g2 systemd.machine_id=314cf78df04e43ec964df710de813476 panic=10 oops=panic spidev.bufsiz=131072 schedstats=enable i2c_algo_bit.bit_test=1
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/expected.json b/tests/czechlight-cfg-fs/data/v8_sdn-roadm-line/expected.json
similarity index 88%
rename from tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/expected.json
rename to tests/czechlight-cfg-fs/data/v8_sdn-roadm-line/expected.json
index d603c13..b034c6d 100644
--- a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/expected.json
+++ b/tests/czechlight-cfg-fs/data/v8_sdn-roadm-line/expected.json
@@ -1,70 +1,17 @@
{
- "ietf-alarms:alarms": {
- "control": {
- "alarm-shelving": {
- "shelf": [
- {
- "name": "systemd journal upload",
- "resource": [
- "systemd-journal-upload.service"
- ],
- "alarm-type": [
- {
- "alarm-type-id": "velia-alarms:systemd-unit-failure",
- "alarm-type-qualifier-match": ""
- }
- ],
- "description": "Ignore systemd-journal-upload.service failures"
- }
- ]
- }
- }
- },
- "ietf-interfaces:interfaces": {
- "interface": [
- {
- "ietf-ip:ipv4": {
- "czechlight-network:dhcp-client": true
- },
- "ietf-ip:ipv6": {
- "autoconf": {
- "create-global-addresses": true
- },
- "enabled": true
- },
- "name": "br0",
- "type": "iana-if-type:bridge"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "eth1",
- "type": "iana-if-type:ethernetCsmacd"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "eth0",
- "type": "iana-if-type:ethernetCsmacd"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "osc",
- "type": "iana-if-type:ethernetCsmacd"
- }
- ]
- },
"czechlight-roadm-device:channel-plan": {
"channel": [
{
- "name": "C-band",
- "lower-frequency": "191325000",
- "upper-frequency": "196125000"
- },
- {
"name": "13.5",
"lower-frequency": "191325000",
"upper-frequency": "191375000"
},
{
+ "name": "14 (100GHz)",
+ "lower-frequency": "191350000",
+ "upper-frequency": "191450000"
+ },
+ {
"name": "14.0",
"lower-frequency": "191375000",
"upper-frequency": "191425000"
@@ -75,6 +22,11 @@
"upper-frequency": "191475000"
},
{
+ "name": "15 (100GHz)",
+ "lower-frequency": "191450000",
+ "upper-frequency": "191550000"
+ },
+ {
"name": "15.0",
"lower-frequency": "191475000",
"upper-frequency": "191525000"
@@ -85,6 +37,11 @@
"upper-frequency": "191575000"
},
{
+ "name": "16 (100GHz)",
+ "lower-frequency": "191550000",
+ "upper-frequency": "191650000"
+ },
+ {
"name": "16.0",
"lower-frequency": "191575000",
"upper-frequency": "191625000"
@@ -95,6 +52,11 @@
"upper-frequency": "191675000"
},
{
+ "name": "17 (100GHz)",
+ "lower-frequency": "191650000",
+ "upper-frequency": "191750000"
+ },
+ {
"name": "17.0",
"lower-frequency": "191675000",
"upper-frequency": "191725000"
@@ -105,6 +67,11 @@
"upper-frequency": "191775000"
},
{
+ "name": "18 (100GHz)",
+ "lower-frequency": "191750000",
+ "upper-frequency": "191850000"
+ },
+ {
"name": "18.0",
"lower-frequency": "191775000",
"upper-frequency": "191825000"
@@ -115,6 +82,11 @@
"upper-frequency": "191875000"
},
{
+ "name": "19 (100GHz)",
+ "lower-frequency": "191850000",
+ "upper-frequency": "191950000"
+ },
+ {
"name": "19.0",
"lower-frequency": "191875000",
"upper-frequency": "191925000"
@@ -125,6 +97,11 @@
"upper-frequency": "191975000"
},
{
+ "name": "20 (100GHz)",
+ "lower-frequency": "191950000",
+ "upper-frequency": "192050000"
+ },
+ {
"name": "20.0",
"lower-frequency": "191975000",
"upper-frequency": "192025000"
@@ -135,6 +112,11 @@
"upper-frequency": "192075000"
},
{
+ "name": "21 (100GHz)",
+ "lower-frequency": "192050000",
+ "upper-frequency": "192150000"
+ },
+ {
"name": "21.0",
"lower-frequency": "192075000",
"upper-frequency": "192125000"
@@ -145,6 +127,11 @@
"upper-frequency": "192175000"
},
{
+ "name": "22 (100GHz)",
+ "lower-frequency": "192150000",
+ "upper-frequency": "192250000"
+ },
+ {
"name": "22.0",
"lower-frequency": "192175000",
"upper-frequency": "192225000"
@@ -155,6 +142,11 @@
"upper-frequency": "192275000"
},
{
+ "name": "23 (100GHz)",
+ "lower-frequency": "192250000",
+ "upper-frequency": "192350000"
+ },
+ {
"name": "23.0",
"lower-frequency": "192275000",
"upper-frequency": "192325000"
@@ -165,6 +157,11 @@
"upper-frequency": "192375000"
},
{
+ "name": "24 (100GHz)",
+ "lower-frequency": "192350000",
+ "upper-frequency": "192450000"
+ },
+ {
"name": "24.0",
"lower-frequency": "192375000",
"upper-frequency": "192425000"
@@ -175,6 +172,11 @@
"upper-frequency": "192475000"
},
{
+ "name": "25 (100GHz)",
+ "lower-frequency": "192450000",
+ "upper-frequency": "192550000"
+ },
+ {
"name": "25.0",
"lower-frequency": "192475000",
"upper-frequency": "192525000"
@@ -185,6 +187,11 @@
"upper-frequency": "192575000"
},
{
+ "name": "26 (100GHz)",
+ "lower-frequency": "192550000",
+ "upper-frequency": "192650000"
+ },
+ {
"name": "26.0",
"lower-frequency": "192575000",
"upper-frequency": "192625000"
@@ -195,6 +202,11 @@
"upper-frequency": "192675000"
},
{
+ "name": "27 (100GHz)",
+ "lower-frequency": "192650000",
+ "upper-frequency": "192750000"
+ },
+ {
"name": "27.0",
"lower-frequency": "192675000",
"upper-frequency": "192725000"
@@ -205,6 +217,11 @@
"upper-frequency": "192775000"
},
{
+ "name": "28 (100GHz)",
+ "lower-frequency": "192750000",
+ "upper-frequency": "192850000"
+ },
+ {
"name": "28.0",
"lower-frequency": "192775000",
"upper-frequency": "192825000"
@@ -215,6 +232,11 @@
"upper-frequency": "192875000"
},
{
+ "name": "29 (100GHz)",
+ "lower-frequency": "192850000",
+ "upper-frequency": "192950000"
+ },
+ {
"name": "29.0",
"lower-frequency": "192875000",
"upper-frequency": "192925000"
@@ -225,6 +247,11 @@
"upper-frequency": "192975000"
},
{
+ "name": "30 (100GHz)",
+ "lower-frequency": "192950000",
+ "upper-frequency": "193050000"
+ },
+ {
"name": "30.0",
"lower-frequency": "192975000",
"upper-frequency": "193025000"
@@ -235,6 +262,11 @@
"upper-frequency": "193075000"
},
{
+ "name": "31 (100GHz)",
+ "lower-frequency": "193050000",
+ "upper-frequency": "193150000"
+ },
+ {
"name": "31.0",
"lower-frequency": "193075000",
"upper-frequency": "193125000"
@@ -245,6 +277,11 @@
"upper-frequency": "193175000"
},
{
+ "name": "32 (100GHz)",
+ "lower-frequency": "193150000",
+ "upper-frequency": "193250000"
+ },
+ {
"name": "32.0",
"lower-frequency": "193175000",
"upper-frequency": "193225000"
@@ -255,6 +292,11 @@
"upper-frequency": "193275000"
},
{
+ "name": "33 (100GHz)",
+ "lower-frequency": "193250000",
+ "upper-frequency": "193350000"
+ },
+ {
"name": "33.0",
"lower-frequency": "193275000",
"upper-frequency": "193325000"
@@ -265,6 +307,11 @@
"upper-frequency": "193375000"
},
{
+ "name": "34 (100GHz)",
+ "lower-frequency": "193350000",
+ "upper-frequency": "193450000"
+ },
+ {
"name": "34.0",
"lower-frequency": "193375000",
"upper-frequency": "193425000"
@@ -275,6 +322,11 @@
"upper-frequency": "193475000"
},
{
+ "name": "35 (100GHz)",
+ "lower-frequency": "193450000",
+ "upper-frequency": "193550000"
+ },
+ {
"name": "35.0",
"lower-frequency": "193475000",
"upper-frequency": "193525000"
@@ -285,6 +337,11 @@
"upper-frequency": "193575000"
},
{
+ "name": "36 (100GHz)",
+ "lower-frequency": "193550000",
+ "upper-frequency": "193650000"
+ },
+ {
"name": "36.0",
"lower-frequency": "193575000",
"upper-frequency": "193625000"
@@ -295,6 +352,11 @@
"upper-frequency": "193675000"
},
{
+ "name": "37 (100GHz)",
+ "lower-frequency": "193650000",
+ "upper-frequency": "193750000"
+ },
+ {
"name": "37.0",
"lower-frequency": "193675000",
"upper-frequency": "193725000"
@@ -305,6 +367,11 @@
"upper-frequency": "193775000"
},
{
+ "name": "38 (100GHz)",
+ "lower-frequency": "193750000",
+ "upper-frequency": "193850000"
+ },
+ {
"name": "38.0",
"lower-frequency": "193775000",
"upper-frequency": "193825000"
@@ -315,6 +382,11 @@
"upper-frequency": "193875000"
},
{
+ "name": "39 (100GHz)",
+ "lower-frequency": "193850000",
+ "upper-frequency": "193950000"
+ },
+ {
"name": "39.0",
"lower-frequency": "193875000",
"upper-frequency": "193925000"
@@ -325,6 +397,11 @@
"upper-frequency": "193975000"
},
{
+ "name": "40 (100GHz)",
+ "lower-frequency": "193950000",
+ "upper-frequency": "194050000"
+ },
+ {
"name": "40.0",
"lower-frequency": "193975000",
"upper-frequency": "194025000"
@@ -335,6 +412,11 @@
"upper-frequency": "194075000"
},
{
+ "name": "41 (100GHz)",
+ "lower-frequency": "194050000",
+ "upper-frequency": "194150000"
+ },
+ {
"name": "41.0",
"lower-frequency": "194075000",
"upper-frequency": "194125000"
@@ -345,6 +427,11 @@
"upper-frequency": "194175000"
},
{
+ "name": "42 (100GHz)",
+ "lower-frequency": "194150000",
+ "upper-frequency": "194250000"
+ },
+ {
"name": "42.0",
"lower-frequency": "194175000",
"upper-frequency": "194225000"
@@ -355,6 +442,11 @@
"upper-frequency": "194275000"
},
{
+ "name": "43 (100GHz)",
+ "lower-frequency": "194250000",
+ "upper-frequency": "194350000"
+ },
+ {
"name": "43.0",
"lower-frequency": "194275000",
"upper-frequency": "194325000"
@@ -365,6 +457,11 @@
"upper-frequency": "194375000"
},
{
+ "name": "44 (100GHz)",
+ "lower-frequency": "194350000",
+ "upper-frequency": "194450000"
+ },
+ {
"name": "44.0",
"lower-frequency": "194375000",
"upper-frequency": "194425000"
@@ -375,6 +472,11 @@
"upper-frequency": "194475000"
},
{
+ "name": "45 (100GHz)",
+ "lower-frequency": "194450000",
+ "upper-frequency": "194550000"
+ },
+ {
"name": "45.0",
"lower-frequency": "194475000",
"upper-frequency": "194525000"
@@ -385,6 +487,11 @@
"upper-frequency": "194575000"
},
{
+ "name": "46 (100GHz)",
+ "lower-frequency": "194550000",
+ "upper-frequency": "194650000"
+ },
+ {
"name": "46.0",
"lower-frequency": "194575000",
"upper-frequency": "194625000"
@@ -395,6 +502,11 @@
"upper-frequency": "194675000"
},
{
+ "name": "47 (100GHz)",
+ "lower-frequency": "194650000",
+ "upper-frequency": "194750000"
+ },
+ {
"name": "47.0",
"lower-frequency": "194675000",
"upper-frequency": "194725000"
@@ -405,6 +517,11 @@
"upper-frequency": "194775000"
},
{
+ "name": "48 (100GHz)",
+ "lower-frequency": "194750000",
+ "upper-frequency": "194850000"
+ },
+ {
"name": "48.0",
"lower-frequency": "194775000",
"upper-frequency": "194825000"
@@ -415,6 +532,11 @@
"upper-frequency": "194875000"
},
{
+ "name": "49 (100GHz)",
+ "lower-frequency": "194850000",
+ "upper-frequency": "194950000"
+ },
+ {
"name": "49.0",
"lower-frequency": "194875000",
"upper-frequency": "194925000"
@@ -425,6 +547,11 @@
"upper-frequency": "194975000"
},
{
+ "name": "50 (100GHz)",
+ "lower-frequency": "194950000",
+ "upper-frequency": "195050000"
+ },
+ {
"name": "50.0",
"lower-frequency": "194975000",
"upper-frequency": "195025000"
@@ -435,6 +562,11 @@
"upper-frequency": "195075000"
},
{
+ "name": "51 (100GHz)",
+ "lower-frequency": "195050000",
+ "upper-frequency": "195150000"
+ },
+ {
"name": "51.0",
"lower-frequency": "195075000",
"upper-frequency": "195125000"
@@ -445,6 +577,11 @@
"upper-frequency": "195175000"
},
{
+ "name": "52 (100GHz)",
+ "lower-frequency": "195150000",
+ "upper-frequency": "195250000"
+ },
+ {
"name": "52.0",
"lower-frequency": "195175000",
"upper-frequency": "195225000"
@@ -455,6 +592,11 @@
"upper-frequency": "195275000"
},
{
+ "name": "53 (100GHz)",
+ "lower-frequency": "195250000",
+ "upper-frequency": "195350000"
+ },
+ {
"name": "53.0",
"lower-frequency": "195275000",
"upper-frequency": "195325000"
@@ -465,6 +607,11 @@
"upper-frequency": "195375000"
},
{
+ "name": "54 (100GHz)",
+ "lower-frequency": "195350000",
+ "upper-frequency": "195450000"
+ },
+ {
"name": "54.0",
"lower-frequency": "195375000",
"upper-frequency": "195425000"
@@ -475,6 +622,11 @@
"upper-frequency": "195475000"
},
{
+ "name": "55 (100GHz)",
+ "lower-frequency": "195450000",
+ "upper-frequency": "195550000"
+ },
+ {
"name": "55.0",
"lower-frequency": "195475000",
"upper-frequency": "195525000"
@@ -485,6 +637,11 @@
"upper-frequency": "195575000"
},
{
+ "name": "56 (100GHz)",
+ "lower-frequency": "195550000",
+ "upper-frequency": "195650000"
+ },
+ {
"name": "56.0",
"lower-frequency": "195575000",
"upper-frequency": "195625000"
@@ -495,6 +652,11 @@
"upper-frequency": "195675000"
},
{
+ "name": "57 (100GHz)",
+ "lower-frequency": "195650000",
+ "upper-frequency": "195750000"
+ },
+ {
"name": "57.0",
"lower-frequency": "195675000",
"upper-frequency": "195725000"
@@ -505,6 +667,11 @@
"upper-frequency": "195775000"
},
{
+ "name": "58 (100GHz)",
+ "lower-frequency": "195750000",
+ "upper-frequency": "195850000"
+ },
+ {
"name": "58.0",
"lower-frequency": "195775000",
"upper-frequency": "195825000"
@@ -515,6 +682,11 @@
"upper-frequency": "195875000"
},
{
+ "name": "59 (100GHz)",
+ "lower-frequency": "195850000",
+ "upper-frequency": "195950000"
+ },
+ {
"name": "59.0",
"lower-frequency": "195875000",
"upper-frequency": "195925000"
@@ -525,6 +697,11 @@
"upper-frequency": "195975000"
},
{
+ "name": "60 (100GHz)",
+ "lower-frequency": "195950000",
+ "upper-frequency": "196050000"
+ },
+ {
"name": "60.0",
"lower-frequency": "195975000",
"upper-frequency": "196025000"
@@ -540,239 +717,9 @@
"upper-frequency": "196125000"
},
{
- "name": "14 (100GHz)",
- "lower-frequency": "191350000",
- "upper-frequency": "191450000"
- },
- {
- "name": "15 (100GHz)",
- "lower-frequency": "191450000",
- "upper-frequency": "191550000"
- },
- {
- "name": "16 (100GHz)",
- "lower-frequency": "191550000",
- "upper-frequency": "191650000"
- },
- {
- "name": "17 (100GHz)",
- "lower-frequency": "191650000",
- "upper-frequency": "191750000"
- },
- {
- "name": "18 (100GHz)",
- "lower-frequency": "191750000",
- "upper-frequency": "191850000"
- },
- {
- "name": "19 (100GHz)",
- "lower-frequency": "191850000",
- "upper-frequency": "191950000"
- },
- {
- "name": "20 (100GHz)",
- "lower-frequency": "191950000",
- "upper-frequency": "192050000"
- },
- {
- "name": "21 (100GHz)",
- "lower-frequency": "192050000",
- "upper-frequency": "192150000"
- },
- {
- "name": "22 (100GHz)",
- "lower-frequency": "192150000",
- "upper-frequency": "192250000"
- },
- {
- "name": "23 (100GHz)",
- "lower-frequency": "192250000",
- "upper-frequency": "192350000"
- },
- {
- "name": "24 (100GHz)",
- "lower-frequency": "192350000",
- "upper-frequency": "192450000"
- },
- {
- "name": "25 (100GHz)",
- "lower-frequency": "192450000",
- "upper-frequency": "192550000"
- },
- {
- "name": "26 (100GHz)",
- "lower-frequency": "192550000",
- "upper-frequency": "192650000"
- },
- {
- "name": "27 (100GHz)",
- "lower-frequency": "192650000",
- "upper-frequency": "192750000"
- },
- {
- "name": "28 (100GHz)",
- "lower-frequency": "192750000",
- "upper-frequency": "192850000"
- },
- {
- "name": "29 (100GHz)",
- "lower-frequency": "192850000",
- "upper-frequency": "192950000"
- },
- {
- "name": "30 (100GHz)",
- "lower-frequency": "192950000",
- "upper-frequency": "193050000"
- },
- {
- "name": "31 (100GHz)",
- "lower-frequency": "193050000",
- "upper-frequency": "193150000"
- },
- {
- "name": "32 (100GHz)",
- "lower-frequency": "193150000",
- "upper-frequency": "193250000"
- },
- {
- "name": "33 (100GHz)",
- "lower-frequency": "193250000",
- "upper-frequency": "193350000"
- },
- {
- "name": "34 (100GHz)",
- "lower-frequency": "193350000",
- "upper-frequency": "193450000"
- },
- {
- "name": "35 (100GHz)",
- "lower-frequency": "193450000",
- "upper-frequency": "193550000"
- },
- {
- "name": "36 (100GHz)",
- "lower-frequency": "193550000",
- "upper-frequency": "193650000"
- },
- {
- "name": "37 (100GHz)",
- "lower-frequency": "193650000",
- "upper-frequency": "193750000"
- },
- {
- "name": "38 (100GHz)",
- "lower-frequency": "193750000",
- "upper-frequency": "193850000"
- },
- {
- "name": "39 (100GHz)",
- "lower-frequency": "193850000",
- "upper-frequency": "193950000"
- },
- {
- "name": "40 (100GHz)",
- "lower-frequency": "193950000",
- "upper-frequency": "194050000"
- },
- {
- "name": "41 (100GHz)",
- "lower-frequency": "194050000",
- "upper-frequency": "194150000"
- },
- {
- "name": "42 (100GHz)",
- "lower-frequency": "194150000",
- "upper-frequency": "194250000"
- },
- {
- "name": "43 (100GHz)",
- "lower-frequency": "194250000",
- "upper-frequency": "194350000"
- },
- {
- "name": "44 (100GHz)",
- "lower-frequency": "194350000",
- "upper-frequency": "194450000"
- },
- {
- "name": "45 (100GHz)",
- "lower-frequency": "194450000",
- "upper-frequency": "194550000"
- },
- {
- "name": "46 (100GHz)",
- "lower-frequency": "194550000",
- "upper-frequency": "194650000"
- },
- {
- "name": "47 (100GHz)",
- "lower-frequency": "194650000",
- "upper-frequency": "194750000"
- },
- {
- "name": "48 (100GHz)",
- "lower-frequency": "194750000",
- "upper-frequency": "194850000"
- },
- {
- "name": "49 (100GHz)",
- "lower-frequency": "194850000",
- "upper-frequency": "194950000"
- },
- {
- "name": "50 (100GHz)",
- "lower-frequency": "194950000",
- "upper-frequency": "195050000"
- },
- {
- "name": "51 (100GHz)",
- "lower-frequency": "195050000",
- "upper-frequency": "195150000"
- },
- {
- "name": "52 (100GHz)",
- "lower-frequency": "195150000",
- "upper-frequency": "195250000"
- },
- {
- "name": "53 (100GHz)",
- "lower-frequency": "195250000",
- "upper-frequency": "195350000"
- },
- {
- "name": "54 (100GHz)",
- "lower-frequency": "195350000",
- "upper-frequency": "195450000"
- },
- {
- "name": "55 (100GHz)",
- "lower-frequency": "195450000",
- "upper-frequency": "195550000"
- },
- {
- "name": "56 (100GHz)",
- "lower-frequency": "195550000",
- "upper-frequency": "195650000"
- },
- {
- "name": "57 (100GHz)",
- "lower-frequency": "195650000",
- "upper-frequency": "195750000"
- },
- {
- "name": "58 (100GHz)",
- "lower-frequency": "195750000",
- "upper-frequency": "195850000"
- },
- {
- "name": "59 (100GHz)",
- "lower-frequency": "195850000",
- "upper-frequency": "195950000"
- },
- {
- "name": "60 (100GHz)",
- "lower-frequency": "195950000",
- "upper-frequency": "196050000"
+ "name": "C-band",
+ "lower-frequency": "191325000",
+ "upper-frequency": "196125000"
}
]
},
@@ -782,6 +729,70 @@
"description": "Whole-band overview"
}
],
+ "ietf-alarms:alarms": {
+ "control": {
+ "alarm-shelving": {
+ "shelf": [
+ {
+ "alarm-type": [
+ {
+ "alarm-type-id": "velia-alarms:systemd-unit-failure",
+ "alarm-type-qualifier-match": ""
+ }
+ ],
+ "description": "Ignore systemd-journal-upload.service failures",
+ "name": "systemd journal upload",
+ "resource": [
+ "systemd-journal-upload.service"
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "ietf-interfaces:interfaces": {
+ "interface": [
+ {
+ "name": "br0",
+ "type": "iana-if-type:bridge",
+ "ietf-ip:ipv4": {
+ "czechlight-network:dhcp-client": true
+ },
+ "ietf-ip:ipv6": {
+ "enabled": true,
+ "autoconf": {
+ "create-global-addresses": true
+ }
+ }
+ },
+ {
+ "name": "eth0",
+ "type": "iana-if-type:ethernetCsmacd",
+ "czechlight-network:bridge": "br0"
+ },
+ {
+ "name": "eth1",
+ "type": "iana-if-type:ethernetCsmacd",
+ "czechlight-network:bridge": "br0"
+ },
+ {
+ "name": "osc",
+ "type": "iana-if-type:ethernetCsmacd",
+ "czechlight-network:bridge": "br0"
+ }
+ ]
+ },
+ "ietf-keystore:keystore": {
+ "asymmetric-keys": {
+ "asymmetric-key": [
+ {
+ "name": "genkey",
+ "public-key-format": "ietf-crypto-types:ssh-public-key-format",
+ "private-key-format": "ietf-crypto-types:rsa-private-key-format"
+ }
+ ]
+ }
+ },
"ietf-netconf-acm:nacm": {
"rule-list": [
{
@@ -791,113 +802,119 @@
],
"rule": [
{
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
"name": "ietf-yang-library",
"module-name": "ietf-yang-library",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
- "action": "permit",
- "access-operations": "read"
+ "name": "ietf-restconf-monitoring",
+ "module-name": "ietf-restconf-monitoring",
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: contact",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/contact",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: hostname",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/hostname",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: location",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/location",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: clock",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/clock",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: system-state",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system-state",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "ietf-hardware",
+ "module-name": "ietf-hardware",
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "ietf-interfaces",
+ "module-name": "ietf-interfaces",
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "czechlight-lldp",
"module-name": "czechlight-lldp",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "czechlight-system:firmware",
"module-name": "czechlight-system",
"path": "/czechlight-system:firmware",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "czechlight-system:leds",
"module-name": "czechlight-system",
"path": "/czechlight-system:leds",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
+ "name": "czechlight-roadm-device",
+ "module-name": "czechlight-roadm-device",
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "czechlight-inline-amp",
+ "module-name": "czechlight-inline-amp",
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "czechlight-bidi-amp",
+ "module-name": "czechlight-bidi-amp",
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "czechlight-coherent-add-drop",
+ "module-name": "czechlight-coherent-add-drop",
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "czechlight-calibration-device",
+ "module-name": "czechlight-calibration-device",
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "wildcard-deny",
"module-name": "*",
- "action": "deny",
- "access-operations": "*"
+ "access-operations": "*",
+ "action": "deny"
}
]
},
@@ -942,13 +959,41 @@
"rule": [
{
"name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
"module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
+ "path": "/czechlight-system:authentication/users[name=$USER]",
+ "access-operations": "read exec",
+ "action": "permit"
}
]
}
]
+ },
+ "ietf-netconf-server:netconf-server": {
+ "listen": {
+ "endpoints": {
+ "endpoint": [
+ {
+ "name": "default-ssh",
+ "ssh": {
+ "tcp-server-parameters": {
+ "local-address": "::"
+ },
+ "ssh-server-parameters": {
+ "server-identity": {
+ "host-key": [
+ {
+ "name": "default-key",
+ "public-key": {
+ "central-keystore-reference": "genkey"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
}
}
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/expected.json b/tests/czechlight-cfg-fs/data/v8_sdn-roadm-line/startup.json
similarity index 81%
copy from tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/expected.json
copy to tests/czechlight-cfg-fs/data/v8_sdn-roadm-line/startup.json
index d603c13..6983d71 100644
--- a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/expected.json
+++ b/tests/czechlight-cfg-fs/data/v8_sdn-roadm-line/startup.json
@@ -1,57 +1,4 @@
{
- "ietf-alarms:alarms": {
- "control": {
- "alarm-shelving": {
- "shelf": [
- {
- "name": "systemd journal upload",
- "resource": [
- "systemd-journal-upload.service"
- ],
- "alarm-type": [
- {
- "alarm-type-id": "velia-alarms:systemd-unit-failure",
- "alarm-type-qualifier-match": ""
- }
- ],
- "description": "Ignore systemd-journal-upload.service failures"
- }
- ]
- }
- }
- },
- "ietf-interfaces:interfaces": {
- "interface": [
- {
- "ietf-ip:ipv4": {
- "czechlight-network:dhcp-client": true
- },
- "ietf-ip:ipv6": {
- "autoconf": {
- "create-global-addresses": true
- },
- "enabled": true
- },
- "name": "br0",
- "type": "iana-if-type:bridge"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "eth1",
- "type": "iana-if-type:ethernetCsmacd"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "eth0",
- "type": "iana-if-type:ethernetCsmacd"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "osc",
- "type": "iana-if-type:ethernetCsmacd"
- }
- ]
- },
"czechlight-roadm-device:channel-plan": {
"channel": [
{
@@ -782,6 +729,75 @@
"description": "Whole-band overview"
}
],
+ "czechlight-system:journal-upload": {
+ "protocol": "http",
+ "host": "10.0.1.10"
+ },
+ "ietf-alarms:alarms": {
+ "control": {
+ "alarm-shelving": {
+ "shelf": [
+ {
+ "name": "systemd journal upload",
+ "resource": [
+ "systemd-journal-upload.service"
+ ],
+ "alarm-type": [
+ {
+ "alarm-type-id": "velia-alarms:systemd-unit-failure",
+ "alarm-type-qualifier-match": ""
+ }
+ ],
+ "description": "Ignore systemd-journal-upload.service failures"
+ }
+ ]
+ }
+ }
+ },
+ "ietf-interfaces:interfaces": {
+ "interface": [
+ {
+ "name": "br0",
+ "type": "iana-if-type:bridge",
+ "ietf-ip:ipv4": {
+ "czechlight-network:dhcp-client": true
+ },
+ "ietf-ip:ipv6": {
+ "enabled": true,
+ "autoconf": {
+ "create-global-addresses": true
+ }
+ }
+ },
+ {
+ "name": "eth1",
+ "type": "iana-if-type:ethernetCsmacd",
+ "czechlight-network:bridge": "br0"
+ },
+ {
+ "name": "eth0",
+ "type": "iana-if-type:ethernetCsmacd",
+ "czechlight-network:bridge": "br0"
+ },
+ {
+ "name": "osc",
+ "type": "iana-if-type:ethernetCsmacd",
+ "czechlight-network:bridge": "br0"
+ }
+ ]
+ },
+ "ietf-keystore:keystore": {
+ "asymmetric-keys": {
+ "asymmetric-key": [
+ {
+ "name": "genkey",
+ "algorithm": "rsa2048",
+ "public-key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApqoFMvxnT/wHPrjsfYw3JTRJPW/Xo+fdreqszC8c5lLrruBeCk8/Yp3Rv42ULsrnsd9Up6XGSGkPwesq7vBqCJeFHSYQEfRgdGktytzt7pwYmjxga30HPk9+FARNu1ToRsIgOJHWcnJG1PTKggeZnR0mhv349Dttn0SxZJ9HbaYZ1cl7ZZ26Z1gMzFOYsesvDdLJo9uM+hFz5x512/nAMWe4YNJmbHZiI8fEDtyoYwH50Y2UHqmJaHQ3KIBdRQGGtOwn6/iNDeRQn0/att+UvWVL+j25sq2a2R2xbv2V5tMqeXvSGfj8ZlKPeXuMGkGrjTqjI01Us+r8mhZMaEi3TQIDAQAB",
+ "private-key": "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCmqgUy/GdP/Ac+uOx9jDclNEk9b9ej592t6qzMLxzmUuuu4F4KTz9indG/jZQuyuex31SnpcZIaQ/B6yru8GoIl4UdJhAR9GB0aS3K3O3unBiaPGBrfQc+T34UBE27VOhGwiA4kdZyckbU9MqCB5mdHSaG/fj0O22fRLFkn0dtphnVyXtlnbpnWAzMU5ix6y8N0smj24z6EXPnHnXb+cAxZ7hg0mZsdmIjx8QO3KhjAfnRjZQeqYlodDcogF1FAYa07Cfr+I0N5FCfT9q235S9ZUv6PbmyrZrZHbFu/ZXm0yp5e9IZ+PxmUo95e4waQauNOqMjTVSz6vyaFkxoSLdNAgMBAAECggEAc6U4NFfFzE9iK5ifqMI5pZwxUesgY4BJZxuWyZvLXtqc5VyUhGzW27QMzfEMqKdsvBTupeG2w5n7MCDhSqkRumKBIGe/8OV0ZHJzLve8NbykqalJcmxwMUFxh6wwz9Mr1aVwPDCd8A3xrmUpe66QXd/TUwo5zCbMex5sRRjstFzVg9iSENHKAKhF3Wxxp0Wo00rzPaH4JUz+IlSb9q2pgcwTDt7Xczbst+hpLEfREY21HX6NKyjouGXvs88QCODxyZJ02j7N47gzzDGvVspy737Eo86XfRluadTxi9yiGIrPU9IpW9d8cVVEQMu7AL9JAs3NACjXbfAEz4bIjJITtQKBgQDTsrZ0So19fUJ36sfwEDia1WKZ6rM7xKfub2EhMeCrydOE7ns1fD0StCb52eD32w3p8MbO1b80gibrQaMBEF8dQNUKVL6qGnJpg50J/GsMhKhTcJhzBGlIxOT9ukQLVvcZeJza28x42WjYoPoD9ZqhJMlywWbbLVKfksrVdo7TZwKBgQDJirTqMjrAr7pKi67ko0FTJ8VIuG+MUQeSYrK0zYgtGqeUEjTtrVxPHypW/YtSzdJqpArBBPHacKo3RXDozUcMLQoXnSlYrVLjGnlkS+epcQGgh2uwzERKImOLtD1YHYUjDbWCZzxwIqtuoW1oWGK76+QpIzSv7K7awnLdZgcDKwKBgCrgtafUOdhC+KWFPj3Xaz+hHLmEGg1vBXx7vraUfacN1/PCwd3RbiVNq99LTA+npKfPhtT54iJmgi+AOd3LTRiFuyC+jWeyt527dKFDKQN+EwHjel1BdXmxt5fUlFefo6jbDxodDssjbeMCp+EJa+pboxnFJmoaQfPkLYUS4FbdAoGAD5zsOPxdKtIyN1Ys3U98XwnEscZ/9bnNQVzeBT2q3/uhocnrScJVVVfPut93bJm/RD2jC6LrbYWu2gtKHO7SIzJWBtBJBLKgqjFB2DA9KRY1Dw+Omyqn26pgVdFHs0zOJJIKTqjauMEm0LI2vI+kTnSOv1UX3s0SGqZXqakev/MCgYAuEecJ5qtLtSkj7wRHb3FPrUOnCxBuF+CvPP+CKZuG6R4l+i+VabAcLPtV4MlMt8fhsbn4jIMFETbX6OwFjW8cgGR+25iWm5OL0TfwpqroE8gcLw7cM8B3G0RKGcMSsxSLWhKDMNrxECHvhu2DGTs4642MPxPH3z1x1x+dVQOwog=="
+ }
+ ]
+ }
+ },
"ietf-netconf-acm:nacm": {
"rule-list": [
{
@@ -793,111 +809,111 @@
{
"name": "czechlight-roadm-device",
"module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "czechlight-inline-amp",
"module-name": "czechlight-inline-amp",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "czechlight-bidi-amp",
"module-name": "czechlight-bidi-amp",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "czechlight-coherent-add-drop",
"module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-yang-library",
"module-name": "ietf-yang-library",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-hardware",
"module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-interfaces",
"module-name": "ietf-interfaces",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: contact",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/contact",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: hostname",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/hostname",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: location",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/location",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: clock",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/clock",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: system-state",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system-state",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "czechlight-lldp",
"module-name": "czechlight-lldp",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "czechlight-system:firmware",
"module-name": "czechlight-system",
"path": "/czechlight-system:firmware",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "czechlight-system:leds",
"module-name": "czechlight-system",
"path": "/czechlight-system:leds",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-restconf-monitoring",
"module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "wildcard-deny",
"module-name": "*",
- "action": "deny",
- "access-operations": "*"
+ "access-operations": "*",
+ "action": "deny"
}
]
},
@@ -942,13 +958,56 @@
"rule": [
{
"name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
"module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
+ "path": "/czechlight-system:authentication/users[name=$USER]",
+ "access-operations": "read exec",
+ "action": "permit"
}
]
}
]
+ },
+ "ietf-netconf-server:netconf-server": {
+ "listen": {
+ "endpoint": [
+ {
+ "name": "default-ssh",
+ "ssh": {
+ "tcp-server-parameters": {
+ "local-address": "::",
+ "keepalives": {
+ "idle-time": 1,
+ "max-probes": 10,
+ "probe-interval": 5
+ }
+ },
+ "ssh-server-parameters": {
+ "server-identity": {
+ "host-key": [
+ {
+ "name": "default-key",
+ "public-key": {
+ "keystore-reference": "genkey"
+ }
+ }
+ ]
+ },
+ "client-authentication": {
+ "supported-authentication-methods": {
+ "publickey": [null],
+ "passsword": [null],
+ "other": [
+ "interactive"
+ ]
+ }
+ }
+ }
+ }
+ }
+ ]
+ }
+ },
+ "ietf-system:system": {
+ "hostname": "line-MPW"
}
}
diff --git a/tests/czechlight-cfg-fs/data/v8_sdn-roadm-line/version b/tests/czechlight-cfg-fs/data/v8_sdn-roadm-line/version
new file mode 100644
index 0000000..45a4fb7
--- /dev/null
+++ b/tests/czechlight-cfg-fs/data/v8_sdn-roadm-line/version
@@ -0,0 +1 @@
+8
diff --git a/tests/czechlight-cfg-fs/data/v9_sdn-roadm-line/cmdline b/tests/czechlight-cfg-fs/data/v9_sdn-roadm-line/cmdline
new file mode 100644
index 0000000..4e2f2c1
--- /dev/null
+++ b/tests/czechlight-cfg-fs/data/v9_sdn-roadm-line/cmdline
@@ -0,0 +1 @@
+root=/dev/mmcblk0p1 init=/sbin/init-czechlight.sh rauc.slot=A czechlight=sdn-roadm-line-g2 systemd.machine_id=314cf78df04e43ec964df710de813476 panic=10 oops=panic spidev.bufsiz=131072 schedstats=enable i2c_algo_bit.bit_test=1
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/expected.json b/tests/czechlight-cfg-fs/data/v9_sdn-roadm-line/expected.json
similarity index 83%
copy from tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/expected.json
copy to tests/czechlight-cfg-fs/data/v9_sdn-roadm-line/expected.json
index d603c13..886316a 100644
--- a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/expected.json
+++ b/tests/czechlight-cfg-fs/data/v9_sdn-roadm-line/expected.json
@@ -1,70 +1,17 @@
{
- "ietf-alarms:alarms": {
- "control": {
- "alarm-shelving": {
- "shelf": [
- {
- "name": "systemd journal upload",
- "resource": [
- "systemd-journal-upload.service"
- ],
- "alarm-type": [
- {
- "alarm-type-id": "velia-alarms:systemd-unit-failure",
- "alarm-type-qualifier-match": ""
- }
- ],
- "description": "Ignore systemd-journal-upload.service failures"
- }
- ]
- }
- }
- },
- "ietf-interfaces:interfaces": {
- "interface": [
- {
- "ietf-ip:ipv4": {
- "czechlight-network:dhcp-client": true
- },
- "ietf-ip:ipv6": {
- "autoconf": {
- "create-global-addresses": true
- },
- "enabled": true
- },
- "name": "br0",
- "type": "iana-if-type:bridge"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "eth1",
- "type": "iana-if-type:ethernetCsmacd"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "eth0",
- "type": "iana-if-type:ethernetCsmacd"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "osc",
- "type": "iana-if-type:ethernetCsmacd"
- }
- ]
- },
"czechlight-roadm-device:channel-plan": {
"channel": [
{
- "name": "C-band",
- "lower-frequency": "191325000",
- "upper-frequency": "196125000"
- },
- {
"name": "13.5",
"lower-frequency": "191325000",
"upper-frequency": "191375000"
},
{
+ "name": "14 (100GHz)",
+ "lower-frequency": "191350000",
+ "upper-frequency": "191450000"
+ },
+ {
"name": "14.0",
"lower-frequency": "191375000",
"upper-frequency": "191425000"
@@ -75,6 +22,11 @@
"upper-frequency": "191475000"
},
{
+ "name": "15 (100GHz)",
+ "lower-frequency": "191450000",
+ "upper-frequency": "191550000"
+ },
+ {
"name": "15.0",
"lower-frequency": "191475000",
"upper-frequency": "191525000"
@@ -85,6 +37,11 @@
"upper-frequency": "191575000"
},
{
+ "name": "16 (100GHz)",
+ "lower-frequency": "191550000",
+ "upper-frequency": "191650000"
+ },
+ {
"name": "16.0",
"lower-frequency": "191575000",
"upper-frequency": "191625000"
@@ -95,6 +52,11 @@
"upper-frequency": "191675000"
},
{
+ "name": "17 (100GHz)",
+ "lower-frequency": "191650000",
+ "upper-frequency": "191750000"
+ },
+ {
"name": "17.0",
"lower-frequency": "191675000",
"upper-frequency": "191725000"
@@ -105,6 +67,11 @@
"upper-frequency": "191775000"
},
{
+ "name": "18 (100GHz)",
+ "lower-frequency": "191750000",
+ "upper-frequency": "191850000"
+ },
+ {
"name": "18.0",
"lower-frequency": "191775000",
"upper-frequency": "191825000"
@@ -115,6 +82,11 @@
"upper-frequency": "191875000"
},
{
+ "name": "19 (100GHz)",
+ "lower-frequency": "191850000",
+ "upper-frequency": "191950000"
+ },
+ {
"name": "19.0",
"lower-frequency": "191875000",
"upper-frequency": "191925000"
@@ -125,6 +97,11 @@
"upper-frequency": "191975000"
},
{
+ "name": "20 (100GHz)",
+ "lower-frequency": "191950000",
+ "upper-frequency": "192050000"
+ },
+ {
"name": "20.0",
"lower-frequency": "191975000",
"upper-frequency": "192025000"
@@ -135,6 +112,11 @@
"upper-frequency": "192075000"
},
{
+ "name": "21 (100GHz)",
+ "lower-frequency": "192050000",
+ "upper-frequency": "192150000"
+ },
+ {
"name": "21.0",
"lower-frequency": "192075000",
"upper-frequency": "192125000"
@@ -145,6 +127,11 @@
"upper-frequency": "192175000"
},
{
+ "name": "22 (100GHz)",
+ "lower-frequency": "192150000",
+ "upper-frequency": "192250000"
+ },
+ {
"name": "22.0",
"lower-frequency": "192175000",
"upper-frequency": "192225000"
@@ -155,6 +142,11 @@
"upper-frequency": "192275000"
},
{
+ "name": "23 (100GHz)",
+ "lower-frequency": "192250000",
+ "upper-frequency": "192350000"
+ },
+ {
"name": "23.0",
"lower-frequency": "192275000",
"upper-frequency": "192325000"
@@ -165,6 +157,11 @@
"upper-frequency": "192375000"
},
{
+ "name": "24 (100GHz)",
+ "lower-frequency": "192350000",
+ "upper-frequency": "192450000"
+ },
+ {
"name": "24.0",
"lower-frequency": "192375000",
"upper-frequency": "192425000"
@@ -175,6 +172,11 @@
"upper-frequency": "192475000"
},
{
+ "name": "25 (100GHz)",
+ "lower-frequency": "192450000",
+ "upper-frequency": "192550000"
+ },
+ {
"name": "25.0",
"lower-frequency": "192475000",
"upper-frequency": "192525000"
@@ -185,6 +187,11 @@
"upper-frequency": "192575000"
},
{
+ "name": "26 (100GHz)",
+ "lower-frequency": "192550000",
+ "upper-frequency": "192650000"
+ },
+ {
"name": "26.0",
"lower-frequency": "192575000",
"upper-frequency": "192625000"
@@ -195,6 +202,11 @@
"upper-frequency": "192675000"
},
{
+ "name": "27 (100GHz)",
+ "lower-frequency": "192650000",
+ "upper-frequency": "192750000"
+ },
+ {
"name": "27.0",
"lower-frequency": "192675000",
"upper-frequency": "192725000"
@@ -205,6 +217,11 @@
"upper-frequency": "192775000"
},
{
+ "name": "28 (100GHz)",
+ "lower-frequency": "192750000",
+ "upper-frequency": "192850000"
+ },
+ {
"name": "28.0",
"lower-frequency": "192775000",
"upper-frequency": "192825000"
@@ -215,6 +232,11 @@
"upper-frequency": "192875000"
},
{
+ "name": "29 (100GHz)",
+ "lower-frequency": "192850000",
+ "upper-frequency": "192950000"
+ },
+ {
"name": "29.0",
"lower-frequency": "192875000",
"upper-frequency": "192925000"
@@ -225,6 +247,11 @@
"upper-frequency": "192975000"
},
{
+ "name": "30 (100GHz)",
+ "lower-frequency": "192950000",
+ "upper-frequency": "193050000"
+ },
+ {
"name": "30.0",
"lower-frequency": "192975000",
"upper-frequency": "193025000"
@@ -235,6 +262,11 @@
"upper-frequency": "193075000"
},
{
+ "name": "31 (100GHz)",
+ "lower-frequency": "193050000",
+ "upper-frequency": "193150000"
+ },
+ {
"name": "31.0",
"lower-frequency": "193075000",
"upper-frequency": "193125000"
@@ -245,6 +277,11 @@
"upper-frequency": "193175000"
},
{
+ "name": "32 (100GHz)",
+ "lower-frequency": "193150000",
+ "upper-frequency": "193250000"
+ },
+ {
"name": "32.0",
"lower-frequency": "193175000",
"upper-frequency": "193225000"
@@ -255,6 +292,11 @@
"upper-frequency": "193275000"
},
{
+ "name": "33 (100GHz)",
+ "lower-frequency": "193250000",
+ "upper-frequency": "193350000"
+ },
+ {
"name": "33.0",
"lower-frequency": "193275000",
"upper-frequency": "193325000"
@@ -265,6 +307,11 @@
"upper-frequency": "193375000"
},
{
+ "name": "34 (100GHz)",
+ "lower-frequency": "193350000",
+ "upper-frequency": "193450000"
+ },
+ {
"name": "34.0",
"lower-frequency": "193375000",
"upper-frequency": "193425000"
@@ -275,6 +322,11 @@
"upper-frequency": "193475000"
},
{
+ "name": "35 (100GHz)",
+ "lower-frequency": "193450000",
+ "upper-frequency": "193550000"
+ },
+ {
"name": "35.0",
"lower-frequency": "193475000",
"upper-frequency": "193525000"
@@ -285,6 +337,11 @@
"upper-frequency": "193575000"
},
{
+ "name": "36 (100GHz)",
+ "lower-frequency": "193550000",
+ "upper-frequency": "193650000"
+ },
+ {
"name": "36.0",
"lower-frequency": "193575000",
"upper-frequency": "193625000"
@@ -295,6 +352,11 @@
"upper-frequency": "193675000"
},
{
+ "name": "37 (100GHz)",
+ "lower-frequency": "193650000",
+ "upper-frequency": "193750000"
+ },
+ {
"name": "37.0",
"lower-frequency": "193675000",
"upper-frequency": "193725000"
@@ -305,6 +367,11 @@
"upper-frequency": "193775000"
},
{
+ "name": "38 (100GHz)",
+ "lower-frequency": "193750000",
+ "upper-frequency": "193850000"
+ },
+ {
"name": "38.0",
"lower-frequency": "193775000",
"upper-frequency": "193825000"
@@ -315,6 +382,11 @@
"upper-frequency": "193875000"
},
{
+ "name": "39 (100GHz)",
+ "lower-frequency": "193850000",
+ "upper-frequency": "193950000"
+ },
+ {
"name": "39.0",
"lower-frequency": "193875000",
"upper-frequency": "193925000"
@@ -325,6 +397,11 @@
"upper-frequency": "193975000"
},
{
+ "name": "40 (100GHz)",
+ "lower-frequency": "193950000",
+ "upper-frequency": "194050000"
+ },
+ {
"name": "40.0",
"lower-frequency": "193975000",
"upper-frequency": "194025000"
@@ -335,6 +412,11 @@
"upper-frequency": "194075000"
},
{
+ "name": "41 (100GHz)",
+ "lower-frequency": "194050000",
+ "upper-frequency": "194150000"
+ },
+ {
"name": "41.0",
"lower-frequency": "194075000",
"upper-frequency": "194125000"
@@ -345,6 +427,11 @@
"upper-frequency": "194175000"
},
{
+ "name": "42 (100GHz)",
+ "lower-frequency": "194150000",
+ "upper-frequency": "194250000"
+ },
+ {
"name": "42.0",
"lower-frequency": "194175000",
"upper-frequency": "194225000"
@@ -355,6 +442,11 @@
"upper-frequency": "194275000"
},
{
+ "name": "43 (100GHz)",
+ "lower-frequency": "194250000",
+ "upper-frequency": "194350000"
+ },
+ {
"name": "43.0",
"lower-frequency": "194275000",
"upper-frequency": "194325000"
@@ -365,6 +457,11 @@
"upper-frequency": "194375000"
},
{
+ "name": "44 (100GHz)",
+ "lower-frequency": "194350000",
+ "upper-frequency": "194450000"
+ },
+ {
"name": "44.0",
"lower-frequency": "194375000",
"upper-frequency": "194425000"
@@ -375,6 +472,11 @@
"upper-frequency": "194475000"
},
{
+ "name": "45 (100GHz)",
+ "lower-frequency": "194450000",
+ "upper-frequency": "194550000"
+ },
+ {
"name": "45.0",
"lower-frequency": "194475000",
"upper-frequency": "194525000"
@@ -385,6 +487,11 @@
"upper-frequency": "194575000"
},
{
+ "name": "46 (100GHz)",
+ "lower-frequency": "194550000",
+ "upper-frequency": "194650000"
+ },
+ {
"name": "46.0",
"lower-frequency": "194575000",
"upper-frequency": "194625000"
@@ -395,6 +502,11 @@
"upper-frequency": "194675000"
},
{
+ "name": "47 (100GHz)",
+ "lower-frequency": "194650000",
+ "upper-frequency": "194750000"
+ },
+ {
"name": "47.0",
"lower-frequency": "194675000",
"upper-frequency": "194725000"
@@ -405,6 +517,11 @@
"upper-frequency": "194775000"
},
{
+ "name": "48 (100GHz)",
+ "lower-frequency": "194750000",
+ "upper-frequency": "194850000"
+ },
+ {
"name": "48.0",
"lower-frequency": "194775000",
"upper-frequency": "194825000"
@@ -415,6 +532,11 @@
"upper-frequency": "194875000"
},
{
+ "name": "49 (100GHz)",
+ "lower-frequency": "194850000",
+ "upper-frequency": "194950000"
+ },
+ {
"name": "49.0",
"lower-frequency": "194875000",
"upper-frequency": "194925000"
@@ -425,6 +547,11 @@
"upper-frequency": "194975000"
},
{
+ "name": "50 (100GHz)",
+ "lower-frequency": "194950000",
+ "upper-frequency": "195050000"
+ },
+ {
"name": "50.0",
"lower-frequency": "194975000",
"upper-frequency": "195025000"
@@ -435,6 +562,11 @@
"upper-frequency": "195075000"
},
{
+ "name": "51 (100GHz)",
+ "lower-frequency": "195050000",
+ "upper-frequency": "195150000"
+ },
+ {
"name": "51.0",
"lower-frequency": "195075000",
"upper-frequency": "195125000"
@@ -445,6 +577,11 @@
"upper-frequency": "195175000"
},
{
+ "name": "52 (100GHz)",
+ "lower-frequency": "195150000",
+ "upper-frequency": "195250000"
+ },
+ {
"name": "52.0",
"lower-frequency": "195175000",
"upper-frequency": "195225000"
@@ -455,6 +592,11 @@
"upper-frequency": "195275000"
},
{
+ "name": "53 (100GHz)",
+ "lower-frequency": "195250000",
+ "upper-frequency": "195350000"
+ },
+ {
"name": "53.0",
"lower-frequency": "195275000",
"upper-frequency": "195325000"
@@ -465,6 +607,11 @@
"upper-frequency": "195375000"
},
{
+ "name": "54 (100GHz)",
+ "lower-frequency": "195350000",
+ "upper-frequency": "195450000"
+ },
+ {
"name": "54.0",
"lower-frequency": "195375000",
"upper-frequency": "195425000"
@@ -475,6 +622,11 @@
"upper-frequency": "195475000"
},
{
+ "name": "55 (100GHz)",
+ "lower-frequency": "195450000",
+ "upper-frequency": "195550000"
+ },
+ {
"name": "55.0",
"lower-frequency": "195475000",
"upper-frequency": "195525000"
@@ -485,6 +637,11 @@
"upper-frequency": "195575000"
},
{
+ "name": "56 (100GHz)",
+ "lower-frequency": "195550000",
+ "upper-frequency": "195650000"
+ },
+ {
"name": "56.0",
"lower-frequency": "195575000",
"upper-frequency": "195625000"
@@ -495,6 +652,11 @@
"upper-frequency": "195675000"
},
{
+ "name": "57 (100GHz)",
+ "lower-frequency": "195650000",
+ "upper-frequency": "195750000"
+ },
+ {
"name": "57.0",
"lower-frequency": "195675000",
"upper-frequency": "195725000"
@@ -505,6 +667,11 @@
"upper-frequency": "195775000"
},
{
+ "name": "58 (100GHz)",
+ "lower-frequency": "195750000",
+ "upper-frequency": "195850000"
+ },
+ {
"name": "58.0",
"lower-frequency": "195775000",
"upper-frequency": "195825000"
@@ -515,6 +682,11 @@
"upper-frequency": "195875000"
},
{
+ "name": "59 (100GHz)",
+ "lower-frequency": "195850000",
+ "upper-frequency": "195950000"
+ },
+ {
"name": "59.0",
"lower-frequency": "195875000",
"upper-frequency": "195925000"
@@ -525,6 +697,11 @@
"upper-frequency": "195975000"
},
{
+ "name": "60 (100GHz)",
+ "lower-frequency": "195950000",
+ "upper-frequency": "196050000"
+ },
+ {
"name": "60.0",
"lower-frequency": "195975000",
"upper-frequency": "196025000"
@@ -540,239 +717,9 @@
"upper-frequency": "196125000"
},
{
- "name": "14 (100GHz)",
- "lower-frequency": "191350000",
- "upper-frequency": "191450000"
- },
- {
- "name": "15 (100GHz)",
- "lower-frequency": "191450000",
- "upper-frequency": "191550000"
- },
- {
- "name": "16 (100GHz)",
- "lower-frequency": "191550000",
- "upper-frequency": "191650000"
- },
- {
- "name": "17 (100GHz)",
- "lower-frequency": "191650000",
- "upper-frequency": "191750000"
- },
- {
- "name": "18 (100GHz)",
- "lower-frequency": "191750000",
- "upper-frequency": "191850000"
- },
- {
- "name": "19 (100GHz)",
- "lower-frequency": "191850000",
- "upper-frequency": "191950000"
- },
- {
- "name": "20 (100GHz)",
- "lower-frequency": "191950000",
- "upper-frequency": "192050000"
- },
- {
- "name": "21 (100GHz)",
- "lower-frequency": "192050000",
- "upper-frequency": "192150000"
- },
- {
- "name": "22 (100GHz)",
- "lower-frequency": "192150000",
- "upper-frequency": "192250000"
- },
- {
- "name": "23 (100GHz)",
- "lower-frequency": "192250000",
- "upper-frequency": "192350000"
- },
- {
- "name": "24 (100GHz)",
- "lower-frequency": "192350000",
- "upper-frequency": "192450000"
- },
- {
- "name": "25 (100GHz)",
- "lower-frequency": "192450000",
- "upper-frequency": "192550000"
- },
- {
- "name": "26 (100GHz)",
- "lower-frequency": "192550000",
- "upper-frequency": "192650000"
- },
- {
- "name": "27 (100GHz)",
- "lower-frequency": "192650000",
- "upper-frequency": "192750000"
- },
- {
- "name": "28 (100GHz)",
- "lower-frequency": "192750000",
- "upper-frequency": "192850000"
- },
- {
- "name": "29 (100GHz)",
- "lower-frequency": "192850000",
- "upper-frequency": "192950000"
- },
- {
- "name": "30 (100GHz)",
- "lower-frequency": "192950000",
- "upper-frequency": "193050000"
- },
- {
- "name": "31 (100GHz)",
- "lower-frequency": "193050000",
- "upper-frequency": "193150000"
- },
- {
- "name": "32 (100GHz)",
- "lower-frequency": "193150000",
- "upper-frequency": "193250000"
- },
- {
- "name": "33 (100GHz)",
- "lower-frequency": "193250000",
- "upper-frequency": "193350000"
- },
- {
- "name": "34 (100GHz)",
- "lower-frequency": "193350000",
- "upper-frequency": "193450000"
- },
- {
- "name": "35 (100GHz)",
- "lower-frequency": "193450000",
- "upper-frequency": "193550000"
- },
- {
- "name": "36 (100GHz)",
- "lower-frequency": "193550000",
- "upper-frequency": "193650000"
- },
- {
- "name": "37 (100GHz)",
- "lower-frequency": "193650000",
- "upper-frequency": "193750000"
- },
- {
- "name": "38 (100GHz)",
- "lower-frequency": "193750000",
- "upper-frequency": "193850000"
- },
- {
- "name": "39 (100GHz)",
- "lower-frequency": "193850000",
- "upper-frequency": "193950000"
- },
- {
- "name": "40 (100GHz)",
- "lower-frequency": "193950000",
- "upper-frequency": "194050000"
- },
- {
- "name": "41 (100GHz)",
- "lower-frequency": "194050000",
- "upper-frequency": "194150000"
- },
- {
- "name": "42 (100GHz)",
- "lower-frequency": "194150000",
- "upper-frequency": "194250000"
- },
- {
- "name": "43 (100GHz)",
- "lower-frequency": "194250000",
- "upper-frequency": "194350000"
- },
- {
- "name": "44 (100GHz)",
- "lower-frequency": "194350000",
- "upper-frequency": "194450000"
- },
- {
- "name": "45 (100GHz)",
- "lower-frequency": "194450000",
- "upper-frequency": "194550000"
- },
- {
- "name": "46 (100GHz)",
- "lower-frequency": "194550000",
- "upper-frequency": "194650000"
- },
- {
- "name": "47 (100GHz)",
- "lower-frequency": "194650000",
- "upper-frequency": "194750000"
- },
- {
- "name": "48 (100GHz)",
- "lower-frequency": "194750000",
- "upper-frequency": "194850000"
- },
- {
- "name": "49 (100GHz)",
- "lower-frequency": "194850000",
- "upper-frequency": "194950000"
- },
- {
- "name": "50 (100GHz)",
- "lower-frequency": "194950000",
- "upper-frequency": "195050000"
- },
- {
- "name": "51 (100GHz)",
- "lower-frequency": "195050000",
- "upper-frequency": "195150000"
- },
- {
- "name": "52 (100GHz)",
- "lower-frequency": "195150000",
- "upper-frequency": "195250000"
- },
- {
- "name": "53 (100GHz)",
- "lower-frequency": "195250000",
- "upper-frequency": "195350000"
- },
- {
- "name": "54 (100GHz)",
- "lower-frequency": "195350000",
- "upper-frequency": "195450000"
- },
- {
- "name": "55 (100GHz)",
- "lower-frequency": "195450000",
- "upper-frequency": "195550000"
- },
- {
- "name": "56 (100GHz)",
- "lower-frequency": "195550000",
- "upper-frequency": "195650000"
- },
- {
- "name": "57 (100GHz)",
- "lower-frequency": "195650000",
- "upper-frequency": "195750000"
- },
- {
- "name": "58 (100GHz)",
- "lower-frequency": "195750000",
- "upper-frequency": "195850000"
- },
- {
- "name": "59 (100GHz)",
- "lower-frequency": "195850000",
- "upper-frequency": "195950000"
- },
- {
- "name": "60 (100GHz)",
- "lower-frequency": "195950000",
- "upper-frequency": "196050000"
+ "name": "C-band",
+ "lower-frequency": "191325000",
+ "upper-frequency": "196125000"
}
]
},
@@ -782,6 +729,71 @@
"description": "Whole-band overview"
}
],
+ "ietf-alarms:alarms": {
+ "control": {
+ "alarm-shelving": {
+ "shelf": [
+ {
+ "alarm-type": [
+ {
+ "alarm-type-id": "velia-alarms:systemd-unit-failure",
+ "alarm-type-qualifier-match": ""
+ }
+ ],
+ "description": "Ignore systemd-journal-upload.service failures",
+ "name": "systemd journal upload",
+ "resource": [
+ "systemd-journal-upload.service"
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "ietf-interfaces:interfaces": {
+ "interface": [
+ {
+ "name": "br0",
+ "type": "iana-if-type:bridge",
+ "ietf-ip:ipv4": {
+ "czechlight-network:dhcp-client": true
+ },
+ "ietf-ip:ipv6": {
+ "enabled": true,
+ "autoconf": {
+ "create-global-addresses": true
+ }
+ }
+ },
+ {
+ "name": "eth0",
+ "type": "iana-if-type:ethernetCsmacd",
+ "czechlight-network:bridge": "br0"
+ },
+ {
+ "name": "eth1",
+ "type": "iana-if-type:ethernetCsmacd",
+ "czechlight-network:bridge": "br0"
+ },
+ {
+ "name": "osc",
+ "type": "iana-if-type:ethernetCsmacd",
+ "czechlight-network:bridge": "br0"
+ }
+ ]
+ },
+ "ietf-keystore:keystore": {
+ "asymmetric-keys": {
+ "asymmetric-key": [
+ {
+ "name": "genkey",
+ "public-key-format": "ietf-crypto-types:ssh-public-key-format",
+ "private-key-format": "ietf-crypto-types:rsa-private-key-format",
+ "cleartext-private-key": "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDFGV7H9prAhLMUvO9yH6dRyUD7jfy6dQK/ocHjNpAil8TRen/OjvRFmEItnNqt0C6Ry/VbRvhZgogmUXd8xRCyUi8K3+BnJbkY923hsE9DuUMxq7XiFPjsp90v6rPVcDWvRB3KWQuqdKFYWVKgrwxan4tJh+R71uucamXqXEogMqs0Pw9BEo+daoGgePZN9AYYwW1UEhp8U7X3PWzcKtH988Ri5mpkcABQN6tCRGDp6PqoDKbEtSHLk3ap4HiiQs8nWCjbRA7x/I5kK0DMZdDOXRY+ZipH43/HEFdaOjm4bbgMRb4eu+d/tvZzwDlAv3g51oSZYcw+CAYAw6kvZMRlAgMBAAECggEAL5wBu46TcfZ75YH/2tLPkV9qPXleN1HlYJG7ql03MsvzRGBxN91rHtZ5AdiWMA8N+LTKJwq9Ga4AojTihnZ5ooFckKVkaLYBgIjf93ilpOe+1eQy0pIbUNr5gEYSu3dX2Ga9RW/98+YpRRSKc3rlIozQUeor5EgVcJp41MQHOcBmqnOjdyhx7Vv7/nugaPxqnYggOCvoWjQHMdpYKcmt8Sjet3XYwwMo3dqavTMFuV0xW0i3zkkijvsW5ONmzfB0eaUSe+hw9zrmi5DFyLau5Zd3psblU5jAxqVd53zKoW/NC5CDzKcuLk4V81IwaeR6d6kenaaktJHqYVc9pHCIbwKBgQDyWGo9WP7QCRQ2PNFxCSBFBjdUnHSJTP5yKXZ6Xc9bG3l9YqazUQT0vOBuHBRGHzzXHmEycIWNh80rpiV+tEjTQWelggatuJJA1h39UOWuIlHgMgyIpEWM+Jvab3Ky1mboZnoel7zCN+lAfVIEEFGaEO8pWXNuhO/QYRI+9EZrvwKBgQDQNFLs2eusqYPNjX7mZFb7ltMx5jYJuV2Be67Nnu/bU8sH4xdKlbQgFrFYC5T1UxhQMfrF9BjL2g1eM8MyP6+a+12gf2nSErH4QoS/b478rFAUsOJoHi2XnCbfd6s3kzmSu4MzvihHsXqR5u+lsyTGlny8B9pXGwKKbAo2QN9o2wKBgEMfig2D4M/uM9Lx9XDBflaf6iNdUknVMYSdR1uNMCmj6np4IIP6JM1Eo0TcMiFZ9Zf/qhw2XkddHc7BLhFyDdm1e+ezo/Xp8VhT9ep7xaH9j3/xXNdb6IerND/ELpiqGca0244tqPKCWfCqxVSq0G9D0Xo6dGZgG6wztsIJFpgxAoGAa8xrkw5Ro5gxEeBM7+TL1H+G4bMcD3TWIRB0tSmxbpG38WF20bspA+Q79iYo/cwELqFyAcQcgo9nlHqgegfXWBsFou/VTls3oh5utN+B3PkqjUv4LYhSesjyp4lCMQgdKwfDKqsuF9CgcaJsOhLC279W3dQDDE6Dxj+iGe0EvzkCgYEAsJtmjj6MiItFabNfAdMLti4FGugNDBrG7YP0LHaAAgm43OgJp34SDkLiLYQJyajE8CCWHo9+ExhQ0HXdFd0Toh3y67jT21GJ0xgvOzVRRsFSccw3Br9TPwR6ENIB4W7h5yya7apU3tqNBnBRpbDANxBn6XK4eXrzMDOxUsMQJKg="
+ }
+ ]
+ }
+ },
"ietf-netconf-acm:nacm": {
"rule-list": [
{
@@ -791,113 +803,119 @@
],
"rule": [
{
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
"name": "ietf-yang-library",
"module-name": "ietf-yang-library",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
- "action": "permit",
- "access-operations": "read"
+ "name": "ietf-restconf-monitoring",
+ "module-name": "ietf-restconf-monitoring",
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: contact",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/contact",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: hostname",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/hostname",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: location",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/location",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: clock",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/clock",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: system-state",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system-state",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "ietf-hardware",
+ "module-name": "ietf-hardware",
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "ietf-interfaces",
+ "module-name": "ietf-interfaces",
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "czechlight-lldp",
"module-name": "czechlight-lldp",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "czechlight-system:firmware",
"module-name": "czechlight-system",
"path": "/czechlight-system:firmware",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "czechlight-system:leds",
"module-name": "czechlight-system",
"path": "/czechlight-system:leds",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
+ "name": "czechlight-roadm-device",
+ "module-name": "czechlight-roadm-device",
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "czechlight-inline-amp",
+ "module-name": "czechlight-inline-amp",
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "czechlight-bidi-amp",
+ "module-name": "czechlight-bidi-amp",
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "czechlight-coherent-add-drop",
+ "module-name": "czechlight-coherent-add-drop",
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "czechlight-calibration-device",
+ "module-name": "czechlight-calibration-device",
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "wildcard-deny",
"module-name": "*",
- "action": "deny",
- "access-operations": "*"
+ "access-operations": "*",
+ "action": "deny"
}
]
},
@@ -942,13 +960,41 @@
"rule": [
{
"name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
"module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
+ "path": "/czechlight-system:authentication/users[name=$USER]",
+ "access-operations": "read exec",
+ "action": "permit"
}
]
}
]
+ },
+ "ietf-netconf-server:netconf-server": {
+ "listen": {
+ "endpoints": {
+ "endpoint": [
+ {
+ "name": "default-ssh",
+ "ssh": {
+ "tcp-server-parameters": {
+ "local-address": "::"
+ },
+ "ssh-server-parameters": {
+ "server-identity": {
+ "host-key": [
+ {
+ "name": "default-key",
+ "public-key": {
+ "central-keystore-reference": "genkey"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
}
}
diff --git a/tests/czechlight-cfg-fs/data/v9_sdn-roadm-line/query b/tests/czechlight-cfg-fs/data/v9_sdn-roadm-line/query
new file mode 100644
index 0000000..9c558e3
--- /dev/null
+++ b/tests/czechlight-cfg-fs/data/v9_sdn-roadm-line/query
@@ -0,0 +1 @@
+.
diff --git a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/expected.json b/tests/czechlight-cfg-fs/data/v9_sdn-roadm-line/startup.json
similarity index 82%
copy from tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/expected.json
copy to tests/czechlight-cfg-fs/data/v9_sdn-roadm-line/startup.json
index d603c13..886316a 100644
--- a/tests/czechlight-cfg-fs/data/v0_sdn-roadm-line_empty/expected.json
+++ b/tests/czechlight-cfg-fs/data/v9_sdn-roadm-line/startup.json
@@ -1,70 +1,17 @@
{
- "ietf-alarms:alarms": {
- "control": {
- "alarm-shelving": {
- "shelf": [
- {
- "name": "systemd journal upload",
- "resource": [
- "systemd-journal-upload.service"
- ],
- "alarm-type": [
- {
- "alarm-type-id": "velia-alarms:systemd-unit-failure",
- "alarm-type-qualifier-match": ""
- }
- ],
- "description": "Ignore systemd-journal-upload.service failures"
- }
- ]
- }
- }
- },
- "ietf-interfaces:interfaces": {
- "interface": [
- {
- "ietf-ip:ipv4": {
- "czechlight-network:dhcp-client": true
- },
- "ietf-ip:ipv6": {
- "autoconf": {
- "create-global-addresses": true
- },
- "enabled": true
- },
- "name": "br0",
- "type": "iana-if-type:bridge"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "eth1",
- "type": "iana-if-type:ethernetCsmacd"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "eth0",
- "type": "iana-if-type:ethernetCsmacd"
- },
- {
- "czechlight-network:bridge": "br0",
- "name": "osc",
- "type": "iana-if-type:ethernetCsmacd"
- }
- ]
- },
"czechlight-roadm-device:channel-plan": {
"channel": [
{
- "name": "C-band",
- "lower-frequency": "191325000",
- "upper-frequency": "196125000"
- },
- {
"name": "13.5",
"lower-frequency": "191325000",
"upper-frequency": "191375000"
},
{
+ "name": "14 (100GHz)",
+ "lower-frequency": "191350000",
+ "upper-frequency": "191450000"
+ },
+ {
"name": "14.0",
"lower-frequency": "191375000",
"upper-frequency": "191425000"
@@ -75,6 +22,11 @@
"upper-frequency": "191475000"
},
{
+ "name": "15 (100GHz)",
+ "lower-frequency": "191450000",
+ "upper-frequency": "191550000"
+ },
+ {
"name": "15.0",
"lower-frequency": "191475000",
"upper-frequency": "191525000"
@@ -85,6 +37,11 @@
"upper-frequency": "191575000"
},
{
+ "name": "16 (100GHz)",
+ "lower-frequency": "191550000",
+ "upper-frequency": "191650000"
+ },
+ {
"name": "16.0",
"lower-frequency": "191575000",
"upper-frequency": "191625000"
@@ -95,6 +52,11 @@
"upper-frequency": "191675000"
},
{
+ "name": "17 (100GHz)",
+ "lower-frequency": "191650000",
+ "upper-frequency": "191750000"
+ },
+ {
"name": "17.0",
"lower-frequency": "191675000",
"upper-frequency": "191725000"
@@ -105,6 +67,11 @@
"upper-frequency": "191775000"
},
{
+ "name": "18 (100GHz)",
+ "lower-frequency": "191750000",
+ "upper-frequency": "191850000"
+ },
+ {
"name": "18.0",
"lower-frequency": "191775000",
"upper-frequency": "191825000"
@@ -115,6 +82,11 @@
"upper-frequency": "191875000"
},
{
+ "name": "19 (100GHz)",
+ "lower-frequency": "191850000",
+ "upper-frequency": "191950000"
+ },
+ {
"name": "19.0",
"lower-frequency": "191875000",
"upper-frequency": "191925000"
@@ -125,6 +97,11 @@
"upper-frequency": "191975000"
},
{
+ "name": "20 (100GHz)",
+ "lower-frequency": "191950000",
+ "upper-frequency": "192050000"
+ },
+ {
"name": "20.0",
"lower-frequency": "191975000",
"upper-frequency": "192025000"
@@ -135,6 +112,11 @@
"upper-frequency": "192075000"
},
{
+ "name": "21 (100GHz)",
+ "lower-frequency": "192050000",
+ "upper-frequency": "192150000"
+ },
+ {
"name": "21.0",
"lower-frequency": "192075000",
"upper-frequency": "192125000"
@@ -145,6 +127,11 @@
"upper-frequency": "192175000"
},
{
+ "name": "22 (100GHz)",
+ "lower-frequency": "192150000",
+ "upper-frequency": "192250000"
+ },
+ {
"name": "22.0",
"lower-frequency": "192175000",
"upper-frequency": "192225000"
@@ -155,6 +142,11 @@
"upper-frequency": "192275000"
},
{
+ "name": "23 (100GHz)",
+ "lower-frequency": "192250000",
+ "upper-frequency": "192350000"
+ },
+ {
"name": "23.0",
"lower-frequency": "192275000",
"upper-frequency": "192325000"
@@ -165,6 +157,11 @@
"upper-frequency": "192375000"
},
{
+ "name": "24 (100GHz)",
+ "lower-frequency": "192350000",
+ "upper-frequency": "192450000"
+ },
+ {
"name": "24.0",
"lower-frequency": "192375000",
"upper-frequency": "192425000"
@@ -175,6 +172,11 @@
"upper-frequency": "192475000"
},
{
+ "name": "25 (100GHz)",
+ "lower-frequency": "192450000",
+ "upper-frequency": "192550000"
+ },
+ {
"name": "25.0",
"lower-frequency": "192475000",
"upper-frequency": "192525000"
@@ -185,6 +187,11 @@
"upper-frequency": "192575000"
},
{
+ "name": "26 (100GHz)",
+ "lower-frequency": "192550000",
+ "upper-frequency": "192650000"
+ },
+ {
"name": "26.0",
"lower-frequency": "192575000",
"upper-frequency": "192625000"
@@ -195,6 +202,11 @@
"upper-frequency": "192675000"
},
{
+ "name": "27 (100GHz)",
+ "lower-frequency": "192650000",
+ "upper-frequency": "192750000"
+ },
+ {
"name": "27.0",
"lower-frequency": "192675000",
"upper-frequency": "192725000"
@@ -205,6 +217,11 @@
"upper-frequency": "192775000"
},
{
+ "name": "28 (100GHz)",
+ "lower-frequency": "192750000",
+ "upper-frequency": "192850000"
+ },
+ {
"name": "28.0",
"lower-frequency": "192775000",
"upper-frequency": "192825000"
@@ -215,6 +232,11 @@
"upper-frequency": "192875000"
},
{
+ "name": "29 (100GHz)",
+ "lower-frequency": "192850000",
+ "upper-frequency": "192950000"
+ },
+ {
"name": "29.0",
"lower-frequency": "192875000",
"upper-frequency": "192925000"
@@ -225,6 +247,11 @@
"upper-frequency": "192975000"
},
{
+ "name": "30 (100GHz)",
+ "lower-frequency": "192950000",
+ "upper-frequency": "193050000"
+ },
+ {
"name": "30.0",
"lower-frequency": "192975000",
"upper-frequency": "193025000"
@@ -235,6 +262,11 @@
"upper-frequency": "193075000"
},
{
+ "name": "31 (100GHz)",
+ "lower-frequency": "193050000",
+ "upper-frequency": "193150000"
+ },
+ {
"name": "31.0",
"lower-frequency": "193075000",
"upper-frequency": "193125000"
@@ -245,6 +277,11 @@
"upper-frequency": "193175000"
},
{
+ "name": "32 (100GHz)",
+ "lower-frequency": "193150000",
+ "upper-frequency": "193250000"
+ },
+ {
"name": "32.0",
"lower-frequency": "193175000",
"upper-frequency": "193225000"
@@ -255,6 +292,11 @@
"upper-frequency": "193275000"
},
{
+ "name": "33 (100GHz)",
+ "lower-frequency": "193250000",
+ "upper-frequency": "193350000"
+ },
+ {
"name": "33.0",
"lower-frequency": "193275000",
"upper-frequency": "193325000"
@@ -265,6 +307,11 @@
"upper-frequency": "193375000"
},
{
+ "name": "34 (100GHz)",
+ "lower-frequency": "193350000",
+ "upper-frequency": "193450000"
+ },
+ {
"name": "34.0",
"lower-frequency": "193375000",
"upper-frequency": "193425000"
@@ -275,6 +322,11 @@
"upper-frequency": "193475000"
},
{
+ "name": "35 (100GHz)",
+ "lower-frequency": "193450000",
+ "upper-frequency": "193550000"
+ },
+ {
"name": "35.0",
"lower-frequency": "193475000",
"upper-frequency": "193525000"
@@ -285,6 +337,11 @@
"upper-frequency": "193575000"
},
{
+ "name": "36 (100GHz)",
+ "lower-frequency": "193550000",
+ "upper-frequency": "193650000"
+ },
+ {
"name": "36.0",
"lower-frequency": "193575000",
"upper-frequency": "193625000"
@@ -295,6 +352,11 @@
"upper-frequency": "193675000"
},
{
+ "name": "37 (100GHz)",
+ "lower-frequency": "193650000",
+ "upper-frequency": "193750000"
+ },
+ {
"name": "37.0",
"lower-frequency": "193675000",
"upper-frequency": "193725000"
@@ -305,6 +367,11 @@
"upper-frequency": "193775000"
},
{
+ "name": "38 (100GHz)",
+ "lower-frequency": "193750000",
+ "upper-frequency": "193850000"
+ },
+ {
"name": "38.0",
"lower-frequency": "193775000",
"upper-frequency": "193825000"
@@ -315,6 +382,11 @@
"upper-frequency": "193875000"
},
{
+ "name": "39 (100GHz)",
+ "lower-frequency": "193850000",
+ "upper-frequency": "193950000"
+ },
+ {
"name": "39.0",
"lower-frequency": "193875000",
"upper-frequency": "193925000"
@@ -325,6 +397,11 @@
"upper-frequency": "193975000"
},
{
+ "name": "40 (100GHz)",
+ "lower-frequency": "193950000",
+ "upper-frequency": "194050000"
+ },
+ {
"name": "40.0",
"lower-frequency": "193975000",
"upper-frequency": "194025000"
@@ -335,6 +412,11 @@
"upper-frequency": "194075000"
},
{
+ "name": "41 (100GHz)",
+ "lower-frequency": "194050000",
+ "upper-frequency": "194150000"
+ },
+ {
"name": "41.0",
"lower-frequency": "194075000",
"upper-frequency": "194125000"
@@ -345,6 +427,11 @@
"upper-frequency": "194175000"
},
{
+ "name": "42 (100GHz)",
+ "lower-frequency": "194150000",
+ "upper-frequency": "194250000"
+ },
+ {
"name": "42.0",
"lower-frequency": "194175000",
"upper-frequency": "194225000"
@@ -355,6 +442,11 @@
"upper-frequency": "194275000"
},
{
+ "name": "43 (100GHz)",
+ "lower-frequency": "194250000",
+ "upper-frequency": "194350000"
+ },
+ {
"name": "43.0",
"lower-frequency": "194275000",
"upper-frequency": "194325000"
@@ -365,6 +457,11 @@
"upper-frequency": "194375000"
},
{
+ "name": "44 (100GHz)",
+ "lower-frequency": "194350000",
+ "upper-frequency": "194450000"
+ },
+ {
"name": "44.0",
"lower-frequency": "194375000",
"upper-frequency": "194425000"
@@ -375,6 +472,11 @@
"upper-frequency": "194475000"
},
{
+ "name": "45 (100GHz)",
+ "lower-frequency": "194450000",
+ "upper-frequency": "194550000"
+ },
+ {
"name": "45.0",
"lower-frequency": "194475000",
"upper-frequency": "194525000"
@@ -385,6 +487,11 @@
"upper-frequency": "194575000"
},
{
+ "name": "46 (100GHz)",
+ "lower-frequency": "194550000",
+ "upper-frequency": "194650000"
+ },
+ {
"name": "46.0",
"lower-frequency": "194575000",
"upper-frequency": "194625000"
@@ -395,6 +502,11 @@
"upper-frequency": "194675000"
},
{
+ "name": "47 (100GHz)",
+ "lower-frequency": "194650000",
+ "upper-frequency": "194750000"
+ },
+ {
"name": "47.0",
"lower-frequency": "194675000",
"upper-frequency": "194725000"
@@ -405,6 +517,11 @@
"upper-frequency": "194775000"
},
{
+ "name": "48 (100GHz)",
+ "lower-frequency": "194750000",
+ "upper-frequency": "194850000"
+ },
+ {
"name": "48.0",
"lower-frequency": "194775000",
"upper-frequency": "194825000"
@@ -415,6 +532,11 @@
"upper-frequency": "194875000"
},
{
+ "name": "49 (100GHz)",
+ "lower-frequency": "194850000",
+ "upper-frequency": "194950000"
+ },
+ {
"name": "49.0",
"lower-frequency": "194875000",
"upper-frequency": "194925000"
@@ -425,6 +547,11 @@
"upper-frequency": "194975000"
},
{
+ "name": "50 (100GHz)",
+ "lower-frequency": "194950000",
+ "upper-frequency": "195050000"
+ },
+ {
"name": "50.0",
"lower-frequency": "194975000",
"upper-frequency": "195025000"
@@ -435,6 +562,11 @@
"upper-frequency": "195075000"
},
{
+ "name": "51 (100GHz)",
+ "lower-frequency": "195050000",
+ "upper-frequency": "195150000"
+ },
+ {
"name": "51.0",
"lower-frequency": "195075000",
"upper-frequency": "195125000"
@@ -445,6 +577,11 @@
"upper-frequency": "195175000"
},
{
+ "name": "52 (100GHz)",
+ "lower-frequency": "195150000",
+ "upper-frequency": "195250000"
+ },
+ {
"name": "52.0",
"lower-frequency": "195175000",
"upper-frequency": "195225000"
@@ -455,6 +592,11 @@
"upper-frequency": "195275000"
},
{
+ "name": "53 (100GHz)",
+ "lower-frequency": "195250000",
+ "upper-frequency": "195350000"
+ },
+ {
"name": "53.0",
"lower-frequency": "195275000",
"upper-frequency": "195325000"
@@ -465,6 +607,11 @@
"upper-frequency": "195375000"
},
{
+ "name": "54 (100GHz)",
+ "lower-frequency": "195350000",
+ "upper-frequency": "195450000"
+ },
+ {
"name": "54.0",
"lower-frequency": "195375000",
"upper-frequency": "195425000"
@@ -475,6 +622,11 @@
"upper-frequency": "195475000"
},
{
+ "name": "55 (100GHz)",
+ "lower-frequency": "195450000",
+ "upper-frequency": "195550000"
+ },
+ {
"name": "55.0",
"lower-frequency": "195475000",
"upper-frequency": "195525000"
@@ -485,6 +637,11 @@
"upper-frequency": "195575000"
},
{
+ "name": "56 (100GHz)",
+ "lower-frequency": "195550000",
+ "upper-frequency": "195650000"
+ },
+ {
"name": "56.0",
"lower-frequency": "195575000",
"upper-frequency": "195625000"
@@ -495,6 +652,11 @@
"upper-frequency": "195675000"
},
{
+ "name": "57 (100GHz)",
+ "lower-frequency": "195650000",
+ "upper-frequency": "195750000"
+ },
+ {
"name": "57.0",
"lower-frequency": "195675000",
"upper-frequency": "195725000"
@@ -505,6 +667,11 @@
"upper-frequency": "195775000"
},
{
+ "name": "58 (100GHz)",
+ "lower-frequency": "195750000",
+ "upper-frequency": "195850000"
+ },
+ {
"name": "58.0",
"lower-frequency": "195775000",
"upper-frequency": "195825000"
@@ -515,6 +682,11 @@
"upper-frequency": "195875000"
},
{
+ "name": "59 (100GHz)",
+ "lower-frequency": "195850000",
+ "upper-frequency": "195950000"
+ },
+ {
"name": "59.0",
"lower-frequency": "195875000",
"upper-frequency": "195925000"
@@ -525,6 +697,11 @@
"upper-frequency": "195975000"
},
{
+ "name": "60 (100GHz)",
+ "lower-frequency": "195950000",
+ "upper-frequency": "196050000"
+ },
+ {
"name": "60.0",
"lower-frequency": "195975000",
"upper-frequency": "196025000"
@@ -540,239 +717,9 @@
"upper-frequency": "196125000"
},
{
- "name": "14 (100GHz)",
- "lower-frequency": "191350000",
- "upper-frequency": "191450000"
- },
- {
- "name": "15 (100GHz)",
- "lower-frequency": "191450000",
- "upper-frequency": "191550000"
- },
- {
- "name": "16 (100GHz)",
- "lower-frequency": "191550000",
- "upper-frequency": "191650000"
- },
- {
- "name": "17 (100GHz)",
- "lower-frequency": "191650000",
- "upper-frequency": "191750000"
- },
- {
- "name": "18 (100GHz)",
- "lower-frequency": "191750000",
- "upper-frequency": "191850000"
- },
- {
- "name": "19 (100GHz)",
- "lower-frequency": "191850000",
- "upper-frequency": "191950000"
- },
- {
- "name": "20 (100GHz)",
- "lower-frequency": "191950000",
- "upper-frequency": "192050000"
- },
- {
- "name": "21 (100GHz)",
- "lower-frequency": "192050000",
- "upper-frequency": "192150000"
- },
- {
- "name": "22 (100GHz)",
- "lower-frequency": "192150000",
- "upper-frequency": "192250000"
- },
- {
- "name": "23 (100GHz)",
- "lower-frequency": "192250000",
- "upper-frequency": "192350000"
- },
- {
- "name": "24 (100GHz)",
- "lower-frequency": "192350000",
- "upper-frequency": "192450000"
- },
- {
- "name": "25 (100GHz)",
- "lower-frequency": "192450000",
- "upper-frequency": "192550000"
- },
- {
- "name": "26 (100GHz)",
- "lower-frequency": "192550000",
- "upper-frequency": "192650000"
- },
- {
- "name": "27 (100GHz)",
- "lower-frequency": "192650000",
- "upper-frequency": "192750000"
- },
- {
- "name": "28 (100GHz)",
- "lower-frequency": "192750000",
- "upper-frequency": "192850000"
- },
- {
- "name": "29 (100GHz)",
- "lower-frequency": "192850000",
- "upper-frequency": "192950000"
- },
- {
- "name": "30 (100GHz)",
- "lower-frequency": "192950000",
- "upper-frequency": "193050000"
- },
- {
- "name": "31 (100GHz)",
- "lower-frequency": "193050000",
- "upper-frequency": "193150000"
- },
- {
- "name": "32 (100GHz)",
- "lower-frequency": "193150000",
- "upper-frequency": "193250000"
- },
- {
- "name": "33 (100GHz)",
- "lower-frequency": "193250000",
- "upper-frequency": "193350000"
- },
- {
- "name": "34 (100GHz)",
- "lower-frequency": "193350000",
- "upper-frequency": "193450000"
- },
- {
- "name": "35 (100GHz)",
- "lower-frequency": "193450000",
- "upper-frequency": "193550000"
- },
- {
- "name": "36 (100GHz)",
- "lower-frequency": "193550000",
- "upper-frequency": "193650000"
- },
- {
- "name": "37 (100GHz)",
- "lower-frequency": "193650000",
- "upper-frequency": "193750000"
- },
- {
- "name": "38 (100GHz)",
- "lower-frequency": "193750000",
- "upper-frequency": "193850000"
- },
- {
- "name": "39 (100GHz)",
- "lower-frequency": "193850000",
- "upper-frequency": "193950000"
- },
- {
- "name": "40 (100GHz)",
- "lower-frequency": "193950000",
- "upper-frequency": "194050000"
- },
- {
- "name": "41 (100GHz)",
- "lower-frequency": "194050000",
- "upper-frequency": "194150000"
- },
- {
- "name": "42 (100GHz)",
- "lower-frequency": "194150000",
- "upper-frequency": "194250000"
- },
- {
- "name": "43 (100GHz)",
- "lower-frequency": "194250000",
- "upper-frequency": "194350000"
- },
- {
- "name": "44 (100GHz)",
- "lower-frequency": "194350000",
- "upper-frequency": "194450000"
- },
- {
- "name": "45 (100GHz)",
- "lower-frequency": "194450000",
- "upper-frequency": "194550000"
- },
- {
- "name": "46 (100GHz)",
- "lower-frequency": "194550000",
- "upper-frequency": "194650000"
- },
- {
- "name": "47 (100GHz)",
- "lower-frequency": "194650000",
- "upper-frequency": "194750000"
- },
- {
- "name": "48 (100GHz)",
- "lower-frequency": "194750000",
- "upper-frequency": "194850000"
- },
- {
- "name": "49 (100GHz)",
- "lower-frequency": "194850000",
- "upper-frequency": "194950000"
- },
- {
- "name": "50 (100GHz)",
- "lower-frequency": "194950000",
- "upper-frequency": "195050000"
- },
- {
- "name": "51 (100GHz)",
- "lower-frequency": "195050000",
- "upper-frequency": "195150000"
- },
- {
- "name": "52 (100GHz)",
- "lower-frequency": "195150000",
- "upper-frequency": "195250000"
- },
- {
- "name": "53 (100GHz)",
- "lower-frequency": "195250000",
- "upper-frequency": "195350000"
- },
- {
- "name": "54 (100GHz)",
- "lower-frequency": "195350000",
- "upper-frequency": "195450000"
- },
- {
- "name": "55 (100GHz)",
- "lower-frequency": "195450000",
- "upper-frequency": "195550000"
- },
- {
- "name": "56 (100GHz)",
- "lower-frequency": "195550000",
- "upper-frequency": "195650000"
- },
- {
- "name": "57 (100GHz)",
- "lower-frequency": "195650000",
- "upper-frequency": "195750000"
- },
- {
- "name": "58 (100GHz)",
- "lower-frequency": "195750000",
- "upper-frequency": "195850000"
- },
- {
- "name": "59 (100GHz)",
- "lower-frequency": "195850000",
- "upper-frequency": "195950000"
- },
- {
- "name": "60 (100GHz)",
- "lower-frequency": "195950000",
- "upper-frequency": "196050000"
+ "name": "C-band",
+ "lower-frequency": "191325000",
+ "upper-frequency": "196125000"
}
]
},
@@ -782,6 +729,71 @@
"description": "Whole-band overview"
}
],
+ "ietf-alarms:alarms": {
+ "control": {
+ "alarm-shelving": {
+ "shelf": [
+ {
+ "alarm-type": [
+ {
+ "alarm-type-id": "velia-alarms:systemd-unit-failure",
+ "alarm-type-qualifier-match": ""
+ }
+ ],
+ "description": "Ignore systemd-journal-upload.service failures",
+ "name": "systemd journal upload",
+ "resource": [
+ "systemd-journal-upload.service"
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "ietf-interfaces:interfaces": {
+ "interface": [
+ {
+ "name": "br0",
+ "type": "iana-if-type:bridge",
+ "ietf-ip:ipv4": {
+ "czechlight-network:dhcp-client": true
+ },
+ "ietf-ip:ipv6": {
+ "enabled": true,
+ "autoconf": {
+ "create-global-addresses": true
+ }
+ }
+ },
+ {
+ "name": "eth0",
+ "type": "iana-if-type:ethernetCsmacd",
+ "czechlight-network:bridge": "br0"
+ },
+ {
+ "name": "eth1",
+ "type": "iana-if-type:ethernetCsmacd",
+ "czechlight-network:bridge": "br0"
+ },
+ {
+ "name": "osc",
+ "type": "iana-if-type:ethernetCsmacd",
+ "czechlight-network:bridge": "br0"
+ }
+ ]
+ },
+ "ietf-keystore:keystore": {
+ "asymmetric-keys": {
+ "asymmetric-key": [
+ {
+ "name": "genkey",
+ "public-key-format": "ietf-crypto-types:ssh-public-key-format",
+ "private-key-format": "ietf-crypto-types:rsa-private-key-format",
+ "cleartext-private-key": "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDFGV7H9prAhLMUvO9yH6dRyUD7jfy6dQK/ocHjNpAil8TRen/OjvRFmEItnNqt0C6Ry/VbRvhZgogmUXd8xRCyUi8K3+BnJbkY923hsE9DuUMxq7XiFPjsp90v6rPVcDWvRB3KWQuqdKFYWVKgrwxan4tJh+R71uucamXqXEogMqs0Pw9BEo+daoGgePZN9AYYwW1UEhp8U7X3PWzcKtH988Ri5mpkcABQN6tCRGDp6PqoDKbEtSHLk3ap4HiiQs8nWCjbRA7x/I5kK0DMZdDOXRY+ZipH43/HEFdaOjm4bbgMRb4eu+d/tvZzwDlAv3g51oSZYcw+CAYAw6kvZMRlAgMBAAECggEAL5wBu46TcfZ75YH/2tLPkV9qPXleN1HlYJG7ql03MsvzRGBxN91rHtZ5AdiWMA8N+LTKJwq9Ga4AojTihnZ5ooFckKVkaLYBgIjf93ilpOe+1eQy0pIbUNr5gEYSu3dX2Ga9RW/98+YpRRSKc3rlIozQUeor5EgVcJp41MQHOcBmqnOjdyhx7Vv7/nugaPxqnYggOCvoWjQHMdpYKcmt8Sjet3XYwwMo3dqavTMFuV0xW0i3zkkijvsW5ONmzfB0eaUSe+hw9zrmi5DFyLau5Zd3psblU5jAxqVd53zKoW/NC5CDzKcuLk4V81IwaeR6d6kenaaktJHqYVc9pHCIbwKBgQDyWGo9WP7QCRQ2PNFxCSBFBjdUnHSJTP5yKXZ6Xc9bG3l9YqazUQT0vOBuHBRGHzzXHmEycIWNh80rpiV+tEjTQWelggatuJJA1h39UOWuIlHgMgyIpEWM+Jvab3Ky1mboZnoel7zCN+lAfVIEEFGaEO8pWXNuhO/QYRI+9EZrvwKBgQDQNFLs2eusqYPNjX7mZFb7ltMx5jYJuV2Be67Nnu/bU8sH4xdKlbQgFrFYC5T1UxhQMfrF9BjL2g1eM8MyP6+a+12gf2nSErH4QoS/b478rFAUsOJoHi2XnCbfd6s3kzmSu4MzvihHsXqR5u+lsyTGlny8B9pXGwKKbAo2QN9o2wKBgEMfig2D4M/uM9Lx9XDBflaf6iNdUknVMYSdR1uNMCmj6np4IIP6JM1Eo0TcMiFZ9Zf/qhw2XkddHc7BLhFyDdm1e+ezo/Xp8VhT9ep7xaH9j3/xXNdb6IerND/ELpiqGca0244tqPKCWfCqxVSq0G9D0Xo6dGZgG6wztsIJFpgxAoGAa8xrkw5Ro5gxEeBM7+TL1H+G4bMcD3TWIRB0tSmxbpG38WF20bspA+Q79iYo/cwELqFyAcQcgo9nlHqgegfXWBsFou/VTls3oh5utN+B3PkqjUv4LYhSesjyp4lCMQgdKwfDKqsuF9CgcaJsOhLC279W3dQDDE6Dxj+iGe0EvzkCgYEAsJtmjj6MiItFabNfAdMLti4FGugNDBrG7YP0LHaAAgm43OgJp34SDkLiLYQJyajE8CCWHo9+ExhQ0HXdFd0Toh3y67jT21GJ0xgvOzVRRsFSccw3Br9TPwR6ENIB4W7h5yya7apU3tqNBnBRpbDANxBn6XK4eXrzMDOxUsMQJKg="
+ }
+ ]
+ }
+ },
"ietf-netconf-acm:nacm": {
"rule-list": [
{
@@ -791,113 +803,119 @@
],
"rule": [
{
- "name": "czechlight-roadm-device",
- "module-name": "czechlight-roadm-device",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-inline-amp",
- "module-name": "czechlight-inline-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-bidi-amp",
- "module-name": "czechlight-bidi-amp",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "czechlight-coherent-add-drop",
- "module-name": "czechlight-coherent-add-drop",
- "action": "permit",
- "access-operations": "read"
- },
- {
"name": "ietf-yang-library",
"module-name": "ietf-yang-library",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
- "name": "ietf-hardware",
- "module-name": "ietf-hardware",
- "action": "permit",
- "access-operations": "read"
- },
- {
- "name": "ietf-interfaces",
- "module-name": "ietf-interfaces",
- "action": "permit",
- "access-operations": "read"
+ "name": "ietf-restconf-monitoring",
+ "module-name": "ietf-restconf-monitoring",
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: contact",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/contact",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: hostname",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/hostname",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: location",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/location",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: clock",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system/clock",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "ietf-system: system-state",
"module-name": "ietf-system",
- "action": "permit",
"path": "/ietf-system:system-state",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "ietf-hardware",
+ "module-name": "ietf-hardware",
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "ietf-interfaces",
+ "module-name": "ietf-interfaces",
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "czechlight-lldp",
"module-name": "czechlight-lldp",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "czechlight-system:firmware",
"module-name": "czechlight-system",
"path": "/czechlight-system:firmware",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "czechlight-system:leds",
"module-name": "czechlight-system",
"path": "/czechlight-system:leds",
- "action": "permit",
- "access-operations": "read"
+ "access-operations": "read",
+ "action": "permit"
},
{
- "name": "ietf-restconf-monitoring",
- "module-name": "ietf-restconf-monitoring",
- "action": "permit",
- "access-operations": "read"
+ "name": "czechlight-roadm-device",
+ "module-name": "czechlight-roadm-device",
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "czechlight-inline-amp",
+ "module-name": "czechlight-inline-amp",
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "czechlight-bidi-amp",
+ "module-name": "czechlight-bidi-amp",
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "czechlight-coherent-add-drop",
+ "module-name": "czechlight-coherent-add-drop",
+ "access-operations": "read",
+ "action": "permit"
+ },
+ {
+ "name": "czechlight-calibration-device",
+ "module-name": "czechlight-calibration-device",
+ "access-operations": "read",
+ "action": "permit"
},
{
"name": "wildcard-deny",
"module-name": "*",
- "action": "deny",
- "access-operations": "*"
+ "access-operations": "*",
+ "action": "deny"
}
]
},
@@ -942,13 +960,41 @@
"rule": [
{
"name": "Allow reading and executing actions in the context of the current user",
- "access-operations": "read exec",
"module-name": "czechlight-system",
- "action": "permit",
- "path": "/czechlight-system:authentication/users[name=$USER]"
+ "path": "/czechlight-system:authentication/users[name=$USER]",
+ "access-operations": "read exec",
+ "action": "permit"
}
]
}
]
+ },
+ "ietf-netconf-server:netconf-server": {
+ "listen": {
+ "endpoints": {
+ "endpoint": [
+ {
+ "name": "default-ssh",
+ "ssh": {
+ "tcp-server-parameters": {
+ "local-address": "::"
+ },
+ "ssh-server-parameters": {
+ "server-identity": {
+ "host-key": [
+ {
+ "name": "default-key",
+ "public-key": {
+ "central-keystore-reference": "genkey"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
}
}
diff --git a/tests/czechlight-cfg-fs/data/v9_sdn-roadm-line/version b/tests/czechlight-cfg-fs/data/v9_sdn-roadm-line/version
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/tests/czechlight-cfg-fs/data/v9_sdn-roadm-line/version
@@ -0,0 +1 @@
+9
diff --git a/tests/czechlight-cfg-fs/migrations.py b/tests/czechlight-cfg-fs/migrations.py
index c5e7ea4..c252757 100644
--- a/tests/czechlight-cfg-fs/migrations.py
+++ b/tests/czechlight-cfg-fs/migrations.py
@@ -5,24 +5,18 @@
import re
import os
import pathlib
+import pytest
import shutil
import subprocess
import sys
-import pytest
-
SCRIPT_ROOT = pathlib.Path(__file__).resolve().parent
-BR2_ROOT = (SCRIPT_ROOT / '../../').resolve()
+BR2_EXT_ROOT = (SCRIPT_ROOT / '../../').resolve()
+CFG_FS_SCRIPTS_PATH = BR2_EXT_ROOT / 'package' / 'czechlight-cfg-fs'
-INSTALL_SCRIPT_PATH = BR2_ROOT / 'package/czechlight-cfg-fs/czechlight-install-yang.sh'
-MIGRATE_SCRIPT_PATH = BR2_ROOT / 'package/czechlight-cfg-fs/czechlight-migrate.sh'
-MIGRATE_DEFINITIONS_PATH = BR2_ROOT / 'package/czechlight-cfg-fs/czechlight-migration-list.sh'
-NETOPEER_SCRIPT_PATH = BR2_ROOT / 'submodules/buildroot/package/netopeer2/setup.sh'
-
-
-def run_and_wait(ctx, desc, command_args):
- print(f'executing {desc}')
+def run_and_wait(ctx, command_args):
+ print(f'RUN {command_args}')
with subprocess.Popen(command_args, stdout=sys.stdout, stderr=sys.stderr, env=ctx.get_env()) as proc:
proc.wait()
assert proc.returncode == 0
@@ -30,70 +24,55 @@
class SysrepoFixture:
def __init__(self, test_directory, tmp_path):
- test_directory = SCRIPT_ROOT / test_directory
- self.test_name = test_directory.name
+ self.test_directory = SCRIPT_ROOT / test_directory
+ test_name = self.test_directory.name
+ self.running_directory = tmp_path / test_name
+ self.running_directory.mkdir()
+ self.tmp_path = tmp_path
- self.expected_file = test_directory / 'expected.json'
- assert self.expected_file.is_file()
+ for fn in ('startup.json', 'version'):
+ try:
+ shutil.copy(self.test_directory / fn, self.running_directory)
+ except FileNotFoundError:
+ pass
- startup = test_directory / 'startup.json'
- assert startup.is_file()
-
- self.proc_cmdline = test_directory / 'cmdline'
- assert self.proc_cmdline.is_file()
-
- version_file = test_directory / 'version'
- assert version_file.is_file()
-
- tested_xpath_file = test_directory / 'xpath'
- self.tested_xpath = tested_xpath_file.read_text() if tested_xpath_file.is_file() else None
-
- self._running_directory = tmp_path / self.test_name
- self._running_directory.mkdir()
-
- self.startup_file = self._running_directory / 'startup.json'
- shutil.copyfile(startup, self.startup_file)
-
- self.export_file = self._running_directory / 'export.json'
-
- self.version_file = self._running_directory / 'version'
- shutil.copy(version_file, self.version_file)
+ query_file = self.test_directory / 'query'
+ self.query = query_file.read_text() if query_file.is_file() \
+ else 'del(."ietf-keystore:keystore"."asymmetric-keys"."asymmetric-key"[0]."cleartext-private-key")'
# all tests must run with clean sysrepo state
- self._shm_prefix = 'br2-migr-' + self.test_name
+ self._shm_prefix = 'br2-migr-' + test_name
+ self._repo_path = self.running_directory / 'sysrepo_repository'
def get_env(self):
res = os.environ.copy()
res['SYSREPO_SHM_PREFIX'] = self._shm_prefix
- res['SYSREPO_REPOSITORY_PATH'] = self._running_directory / 'sysrepo_repository'
+ res['SYSREPO_REPOSITORY_PATH'] = self._repo_path
+ res['LN2_MODULE_DIR'] = pathlib.Path(os.environ['LIBNETCONF2_SRCDIR']) / 'modules'
+ res['NP2_MODULE_DIR'] = pathlib.Path(os.environ['NETOPEER2_SRCDIR']) / 'modules'
+ res['NETOPEER2_SETUP_DIR'] = BR2_EXT_ROOT / 'submodules' / 'buildroot' / 'package' / 'netopeer2'
res['CLA_YANG'] = pathlib.Path(os.environ['CLA_SYSREPO_SRCDIR']) / 'yang'
res['VELIA_YANG'] = pathlib.Path(os.environ['VELIA_SRCDIR']) / 'yang'
- res['ROUSETTE_YANG'] = pathlib.Path(os.environ['ROUSETTE_SRCDIR']) / 'yang'
res['ALARMS_YANG'] = pathlib.Path(os.environ['SYSREPO_IETF_ALARMS_SRCDIR']) / 'yang'
- res['PROC_CMDLINE'] = self.proc_cmdline
- res['CFG_VERSION_FILE'] = self.version_file
- res['CFG_STARTUP_FILE'] = self.startup_file
- res['NP2_MODULE_DIR'] = pathlib.Path(os.environ['NETOPEER2_SRCDIR']) / 'modules'
- res['NP2_MODULE_PERMS'] = '0600'
- res['USER'] = os.getlogin()
+ res['ROUSETTE_YANG'] = pathlib.Path(os.environ['ROUSETTE_SRCDIR']) / 'yang'
+ res['CFG_FS_YANG'] = CFG_FS_SCRIPTS_PATH / 'yang'
+ res['CFG_STATIC_DATA'] = CFG_FS_SCRIPTS_PATH / 'static-data'
+ res['VELIA_STATIC_DATA'] = pathlib.Path(os.environ['VELIA_SRCDIR']) / 'yang'
+ res['CLA_STATIC_DATA'] = pathlib.Path(os.environ['CLA_SYSREPO_SRCDIR']) / 'yang'
+ res['PROC_CMDLINE'] = self.test_directory / 'cmdline'
+ res['CFG_SYSREPO_DIR'] = self.running_directory
+ res['CURRENT_VERSION_FILE'] = CFG_FS_SCRIPTS_PATH / 'CURRENT_CONFIG_VERSION'
+ res['TMPDIR'] = self.tmp_path
return res
+ def nuke_shm(self):
+ for f in glob.glob(f'/dev/shm/{self._shm_prefix}*'):
+ os.remove(f)
+
@pytest.fixture(scope='session')
def max_version():
- """
- Fetches last version from czechlight-migrate script by sourcing the
- migration definitions file and verifying the length of the migration
- files array.
- """
- args = ["/bin/bash", "-c", "source " + str(MIGRATE_DEFINITIONS_PATH) + " && echo ${#MIGRATION_FILES[@]}"]
- with subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) as proc:
- proc.wait()
- stdout, stderr = proc.communicate()
- assert stderr.decode().strip() == ''
- assert proc.returncode == 0
-
- return int(stdout.decode().strip())
+ return (CFG_FS_SCRIPTS_PATH / 'CURRENT_CONFIG_VERSION').read_text()
@pytest.fixture
@@ -107,34 +86,19 @@
@pytest.mark.parametrize("sysrepo_fixture", find_test_directories(), indirect=True)
def test(sysrepo_fixture, max_version):
- # clean SHM state
- for f in glob.glob(f'/dev/shm/{sysrepo_fixture._shm_prefix}*'):
- os.remove(f)
- # prepare sysrepo
- run_and_wait(sysrepo_fixture, 'netopeer2 setup.sh', [NETOPEER_SCRIPT_PATH])
- run_and_wait(sysrepo_fixture, 'czechlight-install-yang.sh', [INSTALL_SCRIPT_PATH])
- run_and_wait(sysrepo_fixture, 'restoring startup.json to sysrepo', ['sysrepocfg', '--datastore', 'startup', '--format', 'json', f'--import={sysrepo_fixture.startup_file}'])
+ # prevent running with a stale SHM state
+ sysrepo_fixture.nuke_shm()
- current_version = int(sysrepo_fixture.version_file.read_text())
+ run_and_wait(sysrepo_fixture, [CFG_FS_SCRIPTS_PATH / "cfg-migrate.sh"])
+ run_and_wait(sysrepo_fixture, [CFG_FS_SCRIPTS_PATH / "cfg-yang.sh"])
- # perform the actual migration
- print(f'migration: current version is {current_version}')
- print('migration: applying migration script')
- run_and_wait(sysrepo_fixture, 'migration', [MIGRATE_SCRIPT_PATH])
+ assert (sysrepo_fixture.running_directory / 'version').read_text() == max_version
- after_migration_version = int(sysrepo_fixture.version_file.read_text())
- assert after_migration_version == max_version
+ dump = subprocess.run(['sysrepocfg', '-f', 'json', '-d', 'startup', '-X'], check=True, capture_output=True, env=sysrepo_fixture.get_env())
+ jq = subprocess.run(['jq', sysrepo_fixture.query], input=dump.stdout, check=True, capture_output=True)
+ actual = json.loads(jq.stdout.decode('utf-8'))
+ with open(sysrepo_fixture.test_directory / 'expected.json', 'r') as fp_expected:
+ expected = json.load(fp_expected)
+ assert actual == expected
- print('migration: checking datastore contents')
- export_args = ['sysrepocfg', '--datastore', 'startup', '-f', 'json', f'--export={sysrepo_fixture.export_file}']
- if sysrepo_fixture.tested_xpath:
- export_args += ['-x', sysrepo_fixture.tested_xpath]
- run_and_wait(sysrepo_fixture, 'export', export_args)
-
- with open(sysrepo_fixture.export_file, 'r') as fp_actual:
- with open(sysrepo_fixture.expected_file, 'r') as fp_expected:
- print(f'migration: comparing files {sysrepo_fixture.export_file.name} and {sysrepo_fixture.expected_file.name}')
-
- actual = json.load(fp_actual)
- expected = json.load(fp_expected)
- assert actual == expected
+ sysrepo_fixture.nuke_shm()