From 93dc024fccd1b653428f7fe9a1faa4f8e6ba7248 Mon Sep 17 00:00:00 2001
From: Christian Breunig <christian@breunig.cc>
Date: Tue, 16 Jan 2024 14:55:48 +0100
Subject: bgp: T5937: fix migration script for IPv6 AFI peer-group

Migrate "bgp <ASN> neighbor <NEIGH> address-family ipv6-unicast peer-group"
to "bgp neighbor <NEIGH> peer-group"

(cherry picked from commit 9febed1344e93815dc3a94047daa69967c3af160)
---
 src/migration-scripts/bgp/0-to-1 |  2 +-
 src/migration-scripts/bgp/1-to-2 | 12 +++++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

(limited to 'src/migration-scripts')

diff --git a/src/migration-scripts/bgp/0-to-1 b/src/migration-scripts/bgp/0-to-1
index 03c45107b..5b8e8a163 100755
--- a/src/migration-scripts/bgp/0-to-1
+++ b/src/migration-scripts/bgp/0-to-1
@@ -14,7 +14,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# T3417: migrate IS-IS tagNode to node as we can only have one IS-IS process
+# T3417: migrate BGP tagNode to node as we can only have one BGP process
 
 from sys import argv
 from sys import exit
diff --git a/src/migration-scripts/bgp/1-to-2 b/src/migration-scripts/bgp/1-to-2
index 96b939b47..a40d86e67 100755
--- a/src/migration-scripts/bgp/1-to-2
+++ b/src/migration-scripts/bgp/1-to-2
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 #
-# Copyright (C) 2021-2022 VyOS maintainers and contributors
+# Copyright (C) 2021-2024 VyOS maintainers and contributors
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 or later as
@@ -15,6 +15,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # T3741: no-ipv4-unicast is now enabled by default
+# T5937: Migrate IPv6 BGP Neighbor Peer Groups
 
 from sys import argv
 from sys import exit
@@ -66,6 +67,15 @@ else:
             if not config.exists(afi_ipv4):
                 config.set(afi_ipv4)
 
+# Migrate IPv6 AFI peer-group
+if config.exists(base + ['neighbor']):
+    for neighbor in config.list_nodes(base + ['neighbor']):
+        tmp_path = base + ['neighbor', neighbor, 'address-family', 'ipv6-unicast', 'peer-group']
+        if config.exists(tmp_path):
+            peer_group = config.return_value(tmp_path)
+            config.set(base + ['neighbor', neighbor, 'peer-group'], value=peer_group)
+            config.delete(tmp_path)
+
 try:
     with open(file_name, 'w') as f:
         f.write(config.to_string())
-- 
cgit v1.2.3