From c2c98f8f12d028e04f9342d04437c4ecc1ff3e99 Mon Sep 17 00:00:00 2001
From: Aleksandr Kurbatov <aleksandr.kurbatov@GL1342.local>
Date: Fri, 8 Mar 2024 12:17:16 +0000
Subject: [PATCH] v1.0.50

---
 .../templates/nokia/trunk_deprovision.j2      | 66 +++++++++++++++++++
 1 file changed, 66 insertions(+)
 create mode 100644 geant/gap_ansible/roles/iptrunk_migration/templates/nokia/trunk_deprovision.j2

diff --git a/geant/gap_ansible/roles/iptrunk_migration/templates/nokia/trunk_deprovision.j2 b/geant/gap_ansible/roles/iptrunk_migration/templates/nokia/trunk_deprovision.j2
new file mode 100644
index 00000000..0bde57ad
--- /dev/null
+++ b/geant/gap_ansible/roles/iptrunk_migration/templates/nokia/trunk_deprovision.j2
@@ -0,0 +1,66 @@
+<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:alu="urn:ietf:params:xml:ns:netconf:base:1.0">
+    <configure xmlns="urn:nokia.com:sros:ns:yang:sr:conf">
+
+{##}
+{% for trunk in trunks %}
+    {% if inventory_hostname == trunk.config.nodeA.name  %}
+        {% set local= trunk.config.nodeA %}
+        {% set remote= trunk.config.nodeB %}
+        {% set common= trunk.config.common %}
+    {% endif %}
+    {% if inventory_hostname == trunk.config.nodeB.name  %}
+        {% set local= trunk.config.nodeB %}
+        {% set remote= trunk.config.nodeA %}
+        {% set common= trunk.config.common %}
+    {% endif %}
+
+    {% if local is defined  %}
+    {##}
+    {# I need to sort the source and the destination alfabetically #}
+    {% set trunk_direction_name = [ local.name.split(".")[1] | upper, remote.name.split(".")[1] | upper ] %}
+    {% set trunk_direction_name_sorted = trunk_direction_name|sort %}
+{##}
+
+{% for member in local.members %}
+      <port xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes" alu:operation="delete">
+          <port-id>{{ member.interface_name }}</port-id>
+      </port>
+{% endfor %}
+
+      <lag xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes" alu:operation="delete">
+          <lag-name>{{ local.ae_name }}</lag-name>
+      </lag>
+
+      <router xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes">
+          <router-name>Base</router-name>
+          <interface alu:operation="delete">
+              <interface-name>{{ local.ae_name }}.0</interface-name>
+          </interface>
+          <isis xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes">
+              <isis-instance>0</isis-instance>
+                  <interface xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes" alu:operation="delete">
+                      <interface-name>{{ local.ae_name }}.0</interface-name>
+                  </interface>
+          </isis>
+          <mpls xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes">
+              <interface alu:operation="delete">
+                <interface-name>{{ local.ae_name | lower }}.0</interface-name>
+              </interface>
+          </mpls>
+          <pim xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes">
+              <interface alu:operation="delete">
+                <interface-name>{{ local.ae_name | lower }}.0</interface-name>
+              </interface>
+          </pim>
+          <rsvp xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes">
+              <interface alu:operation="delete">
+                <interface-name>{{ local.ae_name | lower }}.0</interface-name>
+              </interface>
+          </rsvp>
+      </router>
+
+    {% endif %}
+{% endfor %}
+
+    </configure>
+</config>
-- 
GitLab