clearfog: velia-hardware: support current PCB revision

Change-Id: Ia08a72b3cdaa07cfea27cb927a022eddc8f266ba
Depends-on: https://cesnet-gerrit-czechlight/c/CzechLight/velia/+/3692
Depends-on: https://gerrit.cesnet.cz/c/CzechLight/velia/+/3692
diff --git a/package/cla-sysrepo/cla-appliance.service.in b/package/cla-sysrepo/cla-appliance.service.in
index 548d189..2cf20b0 100644
--- a/package/cla-sysrepo/cla-appliance.service.in
+++ b/package/cla-sysrepo/cla-appliance.service.in
@@ -1,11 +1,12 @@
 [Unit]
 Description=CzechLight __MODEL__ driver
 After=syslog.target network.target czechlight-install-yang.service cfg-restore-sysrepo.service
-Before=rauc-mark-good.service velia-hardware.service
+Before=rauc-mark-good.service velia-hardware-g1.service velia-hardware-g2.service
 PartOf=netopeer2.service
 Requires=czechlight-install-yang.service cfg-restore-sysrepo.service
 StartLimitIntervalSec=0
-ConditionKernelCommandLine=czechlight=__MODEL__
+ConditionKernelCommandLine=|czechlight=__MODEL__
+ConditionKernelCommandLine=|czechlight=__MODEL__-g2
 
 [Service]
 Type=notify
@@ -24,4 +25,4 @@
 
 [Install]
 WantedBy=multi-user.target
-RequiredBy=velia-hardware.service
+RequiredBy=velia-hardware-g1.service velia-hardware-g2.service
diff --git a/package/cla-sysrepo/czechlight-install-yang.sh b/package/cla-sysrepo/czechlight-install-yang.sh
index 37bc349..f0d26fa 100755
--- a/package/cla-sysrepo/czechlight-install-yang.sh
+++ b/package/cla-sysrepo/czechlight-install-yang.sh
@@ -19,22 +19,30 @@
     esac
 done
 
+INITIAL_DATA=${CZECHLIGHT%%-g2}
+
 case "${CZECHLIGHT}" in
-    sdn-roadm-line)
+    sdn-roadm-line*)
         YANG_ROADM=1
         WITH_FEATURE=hw-line-9
         IETF_HW_STATE=1
         ;;
-    sdn-roadm-add-drop)
+    sdn-roadm-add-drop*)
         YANG_ROADM=1
         WITH_FEATURE=hw-add-drop-20
         IETF_HW_STATE=1
         ;;
-    sdn-roadm-coherent-a-d)
+    sdn-roadm-hires-add-drop*)
+        YANG_ROADM=1
+        WITH_FEATURE=hw-add-drop-20
+        IETF_HW_STATE=1
+        INITIAL_DATA=sdn-roadm-add-drop
+        ;;
+    sdn-roadm-coherent-a-d*)
         IETF_HW_STATE=1
         YANG_COHERENT=1
         ;;
-    sdn-inline)
+    sdn-inline*)
         IETF_HW_STATE=1
         YANG_INLINE=1
         ;;
@@ -69,24 +77,24 @@
     if [[ ${WITH_FEATURE} ]]; then
         sysrepoctl --change czechlight-roadm-device --enable-feature ${WITH_FEATURE}
     fi
-    sysrepocfg --datastore=startup --format=json --module=czechlight-roadm-device --import="${YANG_DIR}/${CZECHLIGHT}.json"
+    sysrepocfg --datastore=startup --format=json --module=czechlight-roadm-device --import="${YANG_DIR}/${INITIAL_DATA}.json"
 fi
 
 if [[ ${YANG_COHERENT} == 1 && ! -f ${REPO}/czechlight-coherent-add-drop@2019-09-30.yang ]]; then
     sysrepoctl --search-dirs ${YANG_DIR} --install ${YANG_DIR}/czechlight-coherent-add-drop@2019-09-30.yang
-    sysrepocfg --datastore=startup --format=json --module=czechlight-coherent-add-drop --new-data="${YANG_DIR}/${CZECHLIGHT}.json"
+    sysrepocfg --datastore=startup --format=json --module=czechlight-coherent-add-drop --new-data="${YANG_DIR}/${INITIAL_DATA}.json"
     sysrepoctl --change czechlight-coherent-add-drop --group optics --permissions 0664 --apply
 fi
 
 if [[ ${YANG_INLINE} == 1 && ! -f ${REPO}/czechlight-inline-amp@2019-09-30.yang ]]; then
     sysrepoctl --search-dirs ${YANG_DIR} --install ${YANG_DIR}/czechlight-inline-amp@2019-09-30.yang
-    sysrepocfg --datastore=startup --format=json --module=czechlight-inline-amp --import="${YANG_DIR}/${CZECHLIGHT}.json"
+    sysrepocfg --datastore=startup --format=json --module=czechlight-inline-amp --import="${YANG_DIR}/${INITIAL_DATA}.json"
     sysrepoctl --change czechlight-inline-amp --group optics --permissions 0664 --apply
 fi
 
 if [[ ${YANG_CALIBRATION} == 1 && ! -f ${REPO}/czechlight-calibration-device@2019-06-25.yang ]]; then
     sysrepoctl --search-dirs ${YANG_DIR} --install ${YANG_DIR}/czechlight-calibration-device@2019-06-25.yang
-    sysrepocfg --datastore=startup --format=json --module=czechlight-calibration-device --import="${YANG_DIR}/${CZECHLIGHT}.json"
+    sysrepocfg --datastore=startup --format=json --module=czechlight-calibration-device --import="${YANG_DIR}/${INITIAL_DATA}.json"
     sysrepoctl --change czechlight-calibration-device --group optics --permissions 0664 --apply
 fi
 
diff --git a/package/reset-sysrepo/reset-sysrepo.mk b/package/reset-sysrepo/reset-sysrepo.mk
index 8fd3976..89e653c 100644
--- a/package/reset-sysrepo/reset-sysrepo.mk
+++ b/package/reset-sysrepo/reset-sysrepo.mk
@@ -23,7 +23,8 @@
 		netopeer2.service \
 		sysrepo-persistent-cfg.service \
 		velia-system.service \
-		velia-hardware.service \
+		velia-hardware-g1.service \
+		velia-hardware-g2.service \
 	; do \
 		echo "Adding systemd drop-ins $${UNIT} <-> /run/sysrepo"; \
 		$(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/lib/systemd/system/$${UNIT}.d/ ; \
diff --git a/package/velia/velia-hardware.service b/package/velia/velia-hardware-g1.service
similarity index 71%
rename from package/velia/velia-hardware.service
rename to package/velia/velia-hardware-g1.service
index d84140f..52e020f 100644
--- a/package/velia/velia-hardware.service
+++ b/package/velia/velia-hardware-g1.service
@@ -4,7 +4,10 @@
 Before=rauc-mark-good.service
 PartOf=netopeer2.service
 Requires=czechlight-install-yang.service cfg-restore-sysrepo.service
-ConditionKernelCommandLine=czechlight
+ConditionKernelCommandLine=|czechlight=sdn-inline
+ConditionKernelCommandLine=|czechlight=sdn-roadm-add-drop
+ConditionKernelCommandLine=|czechlight=sdn-roadm-coherent-a-d
+ConditionKernelCommandLine=|czechlight=sdn-roadm-line
 
 [Service]
 Type=simple
diff --git a/package/velia/velia-hardware.service b/package/velia/velia-hardware-g2.service
similarity index 63%
copy from package/velia/velia-hardware.service
copy to package/velia/velia-hardware-g2.service
index d84140f..9e30f39 100644
--- a/package/velia/velia-hardware.service
+++ b/package/velia/velia-hardware-g2.service
@@ -4,11 +4,15 @@
 Before=rauc-mark-good.service
 PartOf=netopeer2.service
 Requires=czechlight-install-yang.service cfg-restore-sysrepo.service
-ConditionKernelCommandLine=czechlight
+ConditionKernelCommandLine=|czechlight=sdn-inline-g2
+ConditionKernelCommandLine=|czechlight=sdn-roadm-add-drop-g2
+ConditionKernelCommandLine=|czechlight=sdn-roadm-coherent-a-d-g2
+ConditionKernelCommandLine=|czechlight=sdn-roadm-line-g2
+ConditionKernelCommandLine=|czechlight=sdn-roadm-hires-add-drop-g2
 
 [Service]
 Type=simple
-ExecStart=/usr/bin/veliad-hardware --log-level=4 --appliance=czechlight-clearfog
+ExecStart=/usr/bin/veliad-hardware --log-level=4 --appliance=czechlight-clearfog-g2
 PrivateTmp=yes
 PrivateDevices=no
 ProtectSystem=yes
diff --git a/package/velia/velia.mk b/package/velia/velia.mk
index a32c38e..232a962 100644
--- a/package/velia/velia.mk
+++ b/package/velia/velia.mk
@@ -21,7 +21,8 @@
                 $(TARGET_DIR)/usr/share/dbus-1/system.d/
 
         $(call VELIA_PREPARE_SERVICE,velia-health)
-        $(call VELIA_PREPARE_SERVICE,velia-hardware)
+        $(call VELIA_PREPARE_SERVICE,velia-hardware-g1)
+        $(call VELIA_PREPARE_SERVICE,velia-hardware-g2)
         $(call VELIA_PREPARE_SERVICE,velia-system)
 endef