From dc981997d37990cfc0ad5dceccf50850acd17f55 Mon Sep 17 00:00:00 2001
From: Aleksandr Kurbatov <ak@geant.org>
Date: Mon, 2 Dec 2024 18:49:12 +0000
Subject: [PATCH 1/5] P to PE: PRE and POST checks

---
 .../routers/nokia/checks_single_command.j2     |  1 +
 .../promote_p_to_pe/tasks/command_checks.yaml  | 10 ++++++++++
 .../roles/promote_p_to_pe/tasks/main.yml       | 18 ++++++++++++++----
 .../roles/promote_p_to_pe/vars/main.yml        | 14 ++++++++++++++
 4 files changed, 39 insertions(+), 4 deletions(-)
 create mode 120000 geant/gap_ansible/roles/bc_templates/routers/nokia/checks_single_command.j2
 create mode 100644 geant/gap_ansible/roles/promote_p_to_pe/tasks/command_checks.yaml

diff --git a/geant/gap_ansible/roles/bc_templates/routers/nokia/checks_single_command.j2 b/geant/gap_ansible/roles/bc_templates/routers/nokia/checks_single_command.j2
new file mode 120000
index 00000000..86b25070
--- /dev/null
+++ b/geant/gap_ansible/roles/bc_templates/routers/nokia/checks_single_command.j2
@@ -0,0 +1 @@
+../../../base_config_checks/templates/base_config_single_command.j2
\ No newline at end of file
diff --git a/geant/gap_ansible/roles/promote_p_to_pe/tasks/command_checks.yaml b/geant/gap_ansible/roles/promote_p_to_pe/tasks/command_checks.yaml
new file mode 100644
index 00000000..4d95f8c4
--- /dev/null
+++ b/geant/gap_ansible/roles/promote_p_to_pe/tasks/command_checks.yaml
@@ -0,0 +1,10 @@
+- name: "Execute {{ item.command }}"
+  ansible.netcommon.netconf_rpc:
+    rpc: action
+    xmlns: "urn:ietf:params:xml:ns:yang:1"
+    content: "{{ lookup('ansible.builtin.template', 'routers/{{ subscription.router.vendor }}/checks_single_command.j2') }}"
+    display: json
+  register: out
+- name: "Results of {{ item.command }}"
+  ansible.builtin.debug:
+    msg: "{{out.output['rpc-reply']['nokiaoper:results']['nokiaoper:md-cli-output-block'].split('\n')}}"
diff --git a/geant/gap_ansible/roles/promote_p_to_pe/tasks/main.yml b/geant/gap_ansible/roles/promote_p_to_pe/tasks/main.yml
index d7a7208a..9df015e2 100644
--- a/geant/gap_ansible/roles/promote_p_to_pe/tasks/main.yml
+++ b/geant/gap_ansible/roles/promote_p_to_pe/tasks/main.yml
@@ -43,10 +43,10 @@
 - name: Print the ID
   ansible.builtin.debug:
     msg: "{{ opid }}"
-
-- name: Include ISIS overload tasks
-  when: verb in ['set_isis_overload', 'remove_isis_overload']
-  ansible.builtin.include_tasks: configure_isis_overload.yaml
+#
+# - name: Include ISIS overload tasks
+#   when: verb in ['set_isis_overload', 'remove_isis_overload']
+#   ansible.builtin.include_tasks: configure_isis_overload.yaml
 
 - name: Include templates compilation
   when: verb in [ 'deploy_pe_base_config', 'update_sdp_mesh' , 'deploy_routing_instances', 'delete_default_routes' ]
@@ -56,6 +56,16 @@
   when: verb in [ 'deploy_pe_base_config', 'update_sdp_mesh', 'deploy_routing_instances', 'delete_default_routes' ]
   ansible.builtin.include_tasks: deploy.yaml
 
+- name: PRE checks
+  when: verb == "post_checks"
+  ansible.builtin.include_tasks: check_commands.yaml
+  loop: "{{ pre_check_commands }}"
+
+- name: POST checks
+  when: verb == "post_checks"
+  ansible.builtin.include_tasks: check_commands.yaml
+  loop: "{{ post_check_commands }}"
+
 - name: Check VPRNs
   when: verb == "check_base_ris"
   loop: "{{ pe_vprns }}"
diff --git a/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml b/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml
index 21a8dbcc..dcecb7e8 100644
--- a/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml
+++ b/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml
@@ -16,3 +16,17 @@ lo_ipv4_address: "{{ subscription.router.router_lo_ipv4_address }}"
 lo_ipv6_address: "{{ subscription.router.router_lo_ipv6_address }}"
 router_tier: "{{ subscription.router.router_site.site_tier }}"
 router_role: "{{ subscription.router.router_role }}"
+
+post_check_commands:
+  - command: show router * route-table summary
+    description: Route summary
+  - command: show router ldp session
+    description: Check ldp
+  - command: show service sdp
+    description: SDP summary
+  - command: show router origin-validation rpki-session
+    description: Show RPKI sessions
+
+pre_check_commands:
+  - command: show router * route-table summary
+    description: Route summary
-- 
GitLab


From 64abb6c1d6c320eaffab97a0dc27281213b5c741 Mon Sep 17 00:00:00 2001
From: Aleksandr Kurbatov <ak@geant.org>
Date: Mon, 2 Dec 2024 18:52:40 +0000
Subject: [PATCH 2/5] Taks file rename

---
 geant/gap_ansible/roles/promote_p_to_pe/tasks/main.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/geant/gap_ansible/roles/promote_p_to_pe/tasks/main.yml b/geant/gap_ansible/roles/promote_p_to_pe/tasks/main.yml
index 9df015e2..16eabc11 100644
--- a/geant/gap_ansible/roles/promote_p_to_pe/tasks/main.yml
+++ b/geant/gap_ansible/roles/promote_p_to_pe/tasks/main.yml
@@ -58,12 +58,12 @@
 
 - name: PRE checks
   when: verb == "post_checks"
-  ansible.builtin.include_tasks: check_commands.yaml
+  ansible.builtin.include_tasks: command_checks.yaml
   loop: "{{ pre_check_commands }}"
 
 - name: POST checks
   when: verb == "post_checks"
-  ansible.builtin.include_tasks: check_commands.yaml
+  ansible.builtin.include_tasks: command_checks.yaml
   loop: "{{ post_check_commands }}"
 
 - name: Check VPRNs
-- 
GitLab


From e202b2e2b513d08709075aabbac2fd9b9fcb0011 Mon Sep 17 00:00:00 2001
From: Aleksandr Kurbatov <ak@geant.org>
Date: Tue, 3 Dec 2024 09:42:41 +0000
Subject: [PATCH 3/5] Add pre_ and post_checks verbs into list of verbs

---
 geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml b/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml
index dcecb7e8..e56bd463 100644
--- a/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml
+++ b/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml
@@ -11,6 +11,8 @@ verbs:
   - deploy_routing_instances # Deploy standard PE VPRNs
   - update_sdp_mesh # Upadate SDP mesh on other Nokia PE routers with this promoted router
   - check_base_ris # Check BGP summary for base VPRNs
+  - pre_checks
+  - post_checks
 
 lo_ipv4_address: "{{ subscription.router.router_lo_ipv4_address }}"
 lo_ipv6_address: "{{ subscription.router.router_lo_ipv6_address }}"
-- 
GitLab


From 707ddc2ec549813310157e71477ef2560731f1c2 Mon Sep 17 00:00:00 2001
From: Aleksandr Kurbatov <ak@geant.org>
Date: Tue, 3 Dec 2024 17:14:00 +0000
Subject: [PATCH 4/5] update p-to-pe check command list

---
 geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml b/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml
index e56bd463..f247eb32 100644
--- a/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml
+++ b/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml
@@ -31,4 +31,6 @@ post_check_commands:
 
 pre_check_commands:
   - command: show router * route-table summary
-    description: Route summary
+  - command: show router route-table summary | match ISIS
+  - command: show router isis interface | match '^[a-z]'
+  - command: show router isis adjacency | match '^[a-z]'
-- 
GitLab


From d096d0f760bb83ab06be2e855ff73d714a5be91b Mon Sep 17 00:00:00 2001
From: Aleksandr Kurbatov <ak@geant.org>
Date: Tue, 3 Dec 2024 18:09:32 +0000
Subject: [PATCH 5/5] P-to-PE - updated list of pre and post check commands

According to the NE Test Plan.
---
 .../roles/promote_p_to_pe/vars/main.yml       | 45 +++++++++++++++----
 1 file changed, 37 insertions(+), 8 deletions(-)

diff --git a/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml b/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml
index f247eb32..b6ad21f8 100644
--- a/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml
+++ b/geant/gap_ansible/roles/promote_p_to_pe/vars/main.yml
@@ -20,17 +20,46 @@ router_tier: "{{ subscription.router.router_site.site_tier }}"
 router_role: "{{ subscription.router.router_role }}"
 
 post_check_commands:
-  - command: show router * route-table summary
-    description: Route summary
-  - command: show router ldp session
-    description: Check ldp
+  - command: show router route-table summary | match ISIS
+  - command: show router isis interface | match '^[a-z]'
+  - command: show router isis adjacency | match '^[a-z]'
+  - command: show router mpls interface | match '^[a-z]'
+  - command: show router rsvp interface | match '^[a-z]'
+  - command: show router rsvp neighbor | match '^[1-9]'
+  - command: show router rsvp session | match "Up"
+  - command: show router pim interface | match "Up"
+  - command: show router pim neighbor | match '^[a-z|A-Z]'
+  - command: show router pim status | match '(State|RPF Table)'
+  - command: show router pim group | match '^[1-9]' | no-more
+  - command: show router route-table mcast-ipv4 summary
+  - command: show router route-table mcast-ipv6 summary
+  - command: show router bgp summary group "iGEANT"
+  - command: show router bgp summary group "iGEANT6"
+  - command: show router bgp summary group "iGEANT-P-ONLY"
+  - command: show router bgp summary group "iGEANT6-P-ONLY"
   - command: show service sdp
-    description: SDP summary
-  - command: show router origin-validation rpki-session
-    description: Show RPKI sessions
+  - command: show router route-table 0.0.0.0/0
+  - command: show router route-table ::/0
+  - command: show router Base route-table summary
+  - command: show router 21320 route-table summary
+  - command: show cflowd status | match '(Timeout|Retrans)'
+  - command: show cflowd collector | match '^[0-9]'
+  - command: show router Base origin-validation rpki-session detail
+  - command: show router Base bgp routes 5.150.67.0/24 detail | match '(Network|Final|Community|Attri)'
+  - command: show router Base bgp routes community ext:4300:0 | count
+  - command: show router Base bgp routes community ext:4300:1 | count
 
 pre_check_commands:
-  - command: show router * route-table summary
   - command: show router route-table summary | match ISIS
   - command: show router isis interface | match '^[a-z]'
   - command: show router isis adjacency | match '^[a-z]'
+  - command: show router mpls interface | match '^[a-z]'
+  - command: show router rsvp interface | match '^[a-z]'
+  - command: show router rsvp neighbor | match '^[1-9]'
+  - command: show router rsvp session | match "Up"
+  - command: show router pim interface | match "Up"
+  - command: show router pim neighbor | match '^[a-z|A-Z]'
+  - command: show router pim status | match '(State|RPF Table)'
+  - command: show router pim group | match '^[1-9]' | no-more
+  - command: show router route-table mcast-ipv4 summary
+  - command: show router route-table mcast-ipv6 summary
-- 
GitLab