From 6874280e27d7e16c35b24543c257eab0cc918cc8 Mon Sep 17 00:00:00 2001
From: Karel van Klink <karel.vanklink@geant.org>
Date: Tue, 30 Apr 2024 10:44:16 +0200
Subject: [PATCH] Replace calls to deprecated .dict() with .model_dump()

---
 gso/cli/imports.py                                   |  4 ++--
 gso/services/partners.py                             |  2 +-
 gso/workflows/iptrunk/activate_iptrunk.py            |  4 ++--
 gso/workflows/iptrunk/create_imported_iptrunk.py     |  2 +-
 gso/workflows/iptrunk/create_iptrunk.py              | 12 ++++++------
 gso/workflows/iptrunk/deploy_twamp.py                |  2 +-
 gso/workflows/iptrunk/migrate_iptrunk.py             |  6 +++---
 gso/workflows/iptrunk/modify_isis_metric.py          |  2 +-
 gso/workflows/iptrunk/modify_trunk_interface.py      | 11 ++++++++---
 gso/workflows/iptrunk/terminate_iptrunk.py           |  2 +-
 .../office_router/create_imported_office_router.py   |  2 +-
 gso/workflows/router/activate_router.py              |  4 ++--
 gso/workflows/router/create_imported_router.py       |  2 +-
 gso/workflows/router/create_router.py                |  2 +-
 gso/workflows/router/modify_connection_strategy.py   |  2 +-
 gso/workflows/router/redeploy_base_config.py         |  2 +-
 gso/workflows/router/terminate_router.py             |  2 +-
 gso/workflows/router/update_ibgp_mesh.py             |  2 +-
 gso/workflows/site/create_imported_site.py           |  2 +-
 gso/workflows/site/create_site.py                    |  2 +-
 gso/workflows/site/modify_site.py                    |  2 +-
 gso/workflows/site/terminate_site.py                 |  2 +-
 .../create_imported_super_pop_switch.py              |  2 +-
 23 files changed, 40 insertions(+), 35 deletions(-)

diff --git a/gso/cli/imports.py b/gso/cli/imports.py
index f9dc660b..0a41ac74 100644
--- a/gso/cli/imports.py
+++ b/gso/cli/imports.py
@@ -218,7 +218,7 @@ def _generic_import_product(
         typer.echo(f"Creating imported {name_key}: {details[name_key]}")
         try:
             initial_data = import_model(**details)
-            start_process(f"create_imported_{workflow_suffix}", [initial_data.dict()])
+            start_process(f"create_imported_{workflow_suffix}", [initial_data.model_dump()])
             successfully_imported_data.append(getattr(initial_data, name_key))
             typer.echo(
                 f"Successfully created {name_key}: {getattr(initial_data, name_key)}",
@@ -341,7 +341,7 @@ def import_iptrunks(filepath: str = common_filepath_option) -> None:
                 iptrunk_ipv4_network=iptrunk_ipv4_network,
                 iptrunk_ipv6_network=iptrunk_ipv6_network,
             )
-            start_process("create_imported_iptrunk", [initial_data.dict()])
+            start_process("create_imported_iptrunk", [initial_data.model_dump()])
             successfully_imported_data.append(trunk["id"])
             typer.echo(f"Successfully imported IP Trunk: {trunk['id']}")
         except ValidationError as e:
diff --git a/gso/services/partners.py b/gso/services/partners.py
index f2080380..6c425bda 100644
--- a/gso/services/partners.py
+++ b/gso/services/partners.py
@@ -38,7 +38,7 @@ def create_partner(
     :return: JSON representation of the created partner.
     """
     try:
-        new_partner = PartnerTable(**partner_data.dict())
+        new_partner = PartnerTable(**partner_data.model_dump())
 
         db.session.add(new_partner)
         db.session.commit()
diff --git a/gso/workflows/iptrunk/activate_iptrunk.py b/gso/workflows/iptrunk/activate_iptrunk.py
index f229599f..4ec1dff0 100644
--- a/gso/workflows/iptrunk/activate_iptrunk.py
+++ b/gso/workflows/iptrunk/activate_iptrunk.py
@@ -20,7 +20,7 @@ def _initial_input_form(subscription_id: UUIDstr) -> FormGenerator:
 
     user_input = yield ActivateTrunkForm
 
-    return user_input.dict() | {"subscription": trunk}
+    return user_input.model_dump() | {"subscription": trunk}
 
 
 @inputstep("Verify checklist completion", assignee=Assignee.SYSTEM)
@@ -33,7 +33,7 @@ def verify_complete_checklist() -> FormGenerator:
 
     user_input = yield VerifyCompleteForm
 
-    return {"checklist_url": user_input.dict()["checklist_url"]}
+    return {"checklist_url": user_input.model_dump()["checklist_url"]}
 
 
 @workflow(
diff --git a/gso/workflows/iptrunk/create_imported_iptrunk.py b/gso/workflows/iptrunk/create_imported_iptrunk.py
index dd5ceed0..9b0e6b87 100644
--- a/gso/workflows/iptrunk/create_imported_iptrunk.py
+++ b/gso/workflows/iptrunk/create_imported_iptrunk.py
@@ -66,7 +66,7 @@ def initial_input_form_generator() -> FormGenerator:
 
     initial_user_input = yield CreateIptrunkForm
 
-    return initial_user_input.dict()
+    return initial_user_input.model_dump()
 
 
 @step("Create a new subscription")
diff --git a/gso/workflows/iptrunk/create_iptrunk.py b/gso/workflows/iptrunk/create_iptrunk.py
index ae5a1432..1b543753 100644
--- a/gso/workflows/iptrunk/create_iptrunk.py
+++ b/gso/workflows/iptrunk/create_iptrunk.py
@@ -189,12 +189,12 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
     user_input_side_b = yield CreateIptrunkSideBForm
 
     return (
-        initial_user_input.dict()
-        | verify_minimum_links.dict()
-        | user_input_router_side_a.dict()
-        | user_input_side_a.dict()
-        | user_input_router_side_b.dict()
-        | user_input_side_b.dict()
+        initial_user_input.model_dump()
+        | verify_minimum_links.model_dump()
+        | user_input_router_side_a.model_dump()
+        | user_input_side_a.model_dump()
+        | user_input_router_side_b.model_dump()
+        | user_input_side_b.model_dump()
     )
 
 
diff --git a/gso/workflows/iptrunk/deploy_twamp.py b/gso/workflows/iptrunk/deploy_twamp.py
index 60e852cc..92e37fd5 100644
--- a/gso/workflows/iptrunk/deploy_twamp.py
+++ b/gso/workflows/iptrunk/deploy_twamp.py
@@ -34,7 +34,7 @@ def _initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
 
     user_input = yield DeployTWAMPForm
 
-    return user_input.dict()
+    return user_input.model_dump()
 
 
 @step("[DRY RUN] Deploy TWAMP on both sides")
diff --git a/gso/workflows/iptrunk/migrate_iptrunk.py b/gso/workflows/iptrunk/migrate_iptrunk.py
index 913d7836..908fcdbc 100644
--- a/gso/workflows/iptrunk/migrate_iptrunk.py
+++ b/gso/workflows/iptrunk/migrate_iptrunk.py
@@ -171,9 +171,9 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
 
     new_side_input = yield NewSideIPTrunkForm
     return (
-        migrate_form_input.dict()
-        | new_side_iptrunk_router_input.dict()
-        | new_side_input.dict()
+        migrate_form_input.model_dump()
+        | new_side_iptrunk_router_input.model_dump()
+        | new_side_input.model_dump()
         | {"replace_index": replace_index}
     )
 
diff --git a/gso/workflows/iptrunk/modify_isis_metric.py b/gso/workflows/iptrunk/modify_isis_metric.py
index ed38b1be..2e4a4586 100644
--- a/gso/workflows/iptrunk/modify_isis_metric.py
+++ b/gso/workflows/iptrunk/modify_isis_metric.py
@@ -24,7 +24,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
 
     user_input = yield ModifyIptrunkForm
 
-    return user_input.dict()
+    return user_input.model_dump()
 
 
 @step("Update subscription")
diff --git a/gso/workflows/iptrunk/modify_trunk_interface.py b/gso/workflows/iptrunk/modify_trunk_interface.py
index b8f272a6..d6433172 100644
--- a/gso/workflows/iptrunk/modify_trunk_interface.py
+++ b/gso/workflows/iptrunk/modify_trunk_interface.py
@@ -114,7 +114,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
         info_label2: Label = "Please confirm or modify."
 
     verify_minimum_links = yield VerifyMinimumLinksForm
-    ae_members_side_a = initialize_ae_members(subscription, initial_user_input.dict(), 0)
+    ae_members_side_a = initialize_ae_members(subscription, initial_user_input.model_dump(), 0)
 
     class ModifyIptrunkSideAForm(FormPage):
         model_config = ConfigDict(title="Provide subscription details for side A of the trunk.")
@@ -140,7 +140,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
             return validate_interface_name_list(side_a_ae_members, vendor)
 
     user_input_side_a = yield ModifyIptrunkSideAForm
-    ae_members_side_b = initialize_ae_members(subscription, initial_user_input.dict(), 1)
+    ae_members_side_b = initialize_ae_members(subscription, initial_user_input.model_dump(), 1)
 
     class ModifyIptrunkSideBForm(FormPage):
         model_config = ConfigDict(title="Provide subscription details for side B of the trunk.")
@@ -167,7 +167,12 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
 
     user_input_side_b = yield ModifyIptrunkSideBForm
 
-    return initial_user_input.dict() | user_input_side_a.dict() | user_input_side_b.dict() | verify_minimum_links.dict()
+    return (
+        initial_user_input.model_dump()
+        | user_input_side_a.model_dump()
+        | user_input_side_b.model_dump()
+        | verify_minimum_links.model_dump()
+    )
 
 
 @step("Update subscription")
diff --git a/gso/workflows/iptrunk/terminate_iptrunk.py b/gso/workflows/iptrunk/terminate_iptrunk.py
index 0c8a2726..bee9739a 100644
--- a/gso/workflows/iptrunk/terminate_iptrunk.py
+++ b/gso/workflows/iptrunk/terminate_iptrunk.py
@@ -51,7 +51,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
             return validate_tt_number(tt_number)
 
     user_input = yield TerminateForm
-    return user_input.dict()
+    return user_input.model_dump()
 
 
 @step("[DRY RUN] Deprovision IP trunk")
diff --git a/gso/workflows/office_router/create_imported_office_router.py b/gso/workflows/office_router/create_imported_office_router.py
index c0abaebc..e82f69cb 100644
--- a/gso/workflows/office_router/create_imported_office_router.py
+++ b/gso/workflows/office_router/create_imported_office_router.py
@@ -44,7 +44,7 @@ def initial_input_form_generator() -> FormGenerator:
 
     user_input = yield ImportOfficeRouter
 
-    return user_input.dict()
+    return user_input.model_dump()
 
 
 @step("Initialize subscription")
diff --git a/gso/workflows/router/activate_router.py b/gso/workflows/router/activate_router.py
index d1efc727..751fc356 100644
--- a/gso/workflows/router/activate_router.py
+++ b/gso/workflows/router/activate_router.py
@@ -20,7 +20,7 @@ def _initial_input_form(subscription_id: UUIDstr) -> FormGenerator:
 
     user_input = yield ActivateRouterForm
 
-    return user_input.dict() | {"subscription": router}
+    return user_input.model_dump() | {"subscription": router}
 
 
 @inputstep("Verify checklist completion", assignee=Assignee.SYSTEM)
@@ -33,7 +33,7 @@ def verify_complete_checklist() -> FormGenerator:
 
     user_input = yield VerifyCompleteForm
 
-    return {"checklist_url": user_input.dict()["checklist_url"]}
+    return {"checklist_url": user_input.model_dump()["checklist_url"]}
 
 
 @workflow(
diff --git a/gso/workflows/router/create_imported_router.py b/gso/workflows/router/create_imported_router.py
index 68b23a2c..c8ba442b 100644
--- a/gso/workflows/router/create_imported_router.py
+++ b/gso/workflows/router/create_imported_router.py
@@ -48,7 +48,7 @@ def initial_input_form_generator() -> FormGenerator:
 
     user_input = yield ImportRouter
 
-    return user_input.dict()
+    return user_input.model_dump()
 
 
 @step("Initialize subscription")
diff --git a/gso/workflows/router/create_router.py b/gso/workflows/router/create_router.py
index 3ef4a688..8382e227 100644
--- a/gso/workflows/router/create_router.py
+++ b/gso/workflows/router/create_router.py
@@ -73,7 +73,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
 
     user_input = yield CreateRouterForm
 
-    return user_input.dict()
+    return user_input.model_dump()
 
 
 @step("Create subscription")
diff --git a/gso/workflows/router/modify_connection_strategy.py b/gso/workflows/router/modify_connection_strategy.py
index bff6fdc7..65b29b8d 100644
--- a/gso/workflows/router/modify_connection_strategy.py
+++ b/gso/workflows/router/modify_connection_strategy.py
@@ -27,7 +27,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
 
     user_input = yield ModifyConnectionStrategyForm
 
-    return user_input.dict()
+    return user_input.model_dump()
 
 
 @step("Update subscription model")
diff --git a/gso/workflows/router/redeploy_base_config.py b/gso/workflows/router/redeploy_base_config.py
index 7af29e25..c1a24c83 100644
--- a/gso/workflows/router/redeploy_base_config.py
+++ b/gso/workflows/router/redeploy_base_config.py
@@ -22,7 +22,7 @@ def _initial_input_form(subscription_id: UUIDstr) -> FormGenerator:
 
     user_input = yield RedeployBaseConfigForm
 
-    return user_input.dict() | {"subscription": router}
+    return user_input.model_dump() | {"subscription": router}
 
 
 @workflow(
diff --git a/gso/workflows/router/terminate_router.py b/gso/workflows/router/terminate_router.py
index 3409ab72..b9e521da 100644
--- a/gso/workflows/router/terminate_router.py
+++ b/gso/workflows/router/terminate_router.py
@@ -44,7 +44,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
         remove_configuration: bool = True
 
     user_input = yield TerminateForm
-    return user_input.dict() | {"router_is_nokia": router.router.vendor == Vendor.NOKIA}
+    return user_input.model_dump() | {"router_is_nokia": router.router.vendor == Vendor.NOKIA}
 
 
 @step("Deprovision loopback IPs from IPAM")
diff --git a/gso/workflows/router/update_ibgp_mesh.py b/gso/workflows/router/update_ibgp_mesh.py
index ba8777ba..118eb2ee 100644
--- a/gso/workflows/router/update_ibgp_mesh.py
+++ b/gso/workflows/router/update_ibgp_mesh.py
@@ -46,7 +46,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
 
     user_input = yield AddBGPSessionForm
 
-    return user_input.dict()
+    return user_input.model_dump()
 
 
 @step("Calculate list of all active PE routers")
diff --git a/gso/workflows/site/create_imported_site.py b/gso/workflows/site/create_imported_site.py
index 4aec97f7..1fd9d59d 100644
--- a/gso/workflows/site/create_imported_site.py
+++ b/gso/workflows/site/create_imported_site.py
@@ -37,7 +37,7 @@ def generate_initial_input_form() -> FormGenerator:
         model_config = ConfigDict(title="Import Site")
 
     user_input = yield ImportSite
-    return user_input.dict()
+    return user_input.model_dump()
 
 
 @step("Initialize subscription")
diff --git a/gso/workflows/site/create_site.py b/gso/workflows/site/create_site.py
index 9def57b5..d2e99d51 100644
--- a/gso/workflows/site/create_site.py
+++ b/gso/workflows/site/create_site.py
@@ -25,7 +25,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
 
     user_input = yield CreateSiteForm
 
-    return user_input.dict()
+    return user_input.model_dump()
 
 
 @step("Create subscription")
diff --git a/gso/workflows/site/modify_site.py b/gso/workflows/site/modify_site.py
index 62a659ed..0fb2b50d 100644
--- a/gso/workflows/site/modify_site.py
+++ b/gso/workflows/site/modify_site.py
@@ -60,7 +60,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
 
     user_input = yield ModifySiteForm
 
-    return user_input.dict()
+    return user_input.model_dump()
 
 
 @step("Modify subscription")
diff --git a/gso/workflows/site/terminate_site.py b/gso/workflows/site/terminate_site.py
index f6caec6a..cd710752 100644
--- a/gso/workflows/site/terminate_site.py
+++ b/gso/workflows/site/terminate_site.py
@@ -31,7 +31,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
         termination_label: Label = "Are you sure you want to delete this site?"
 
     user_input = yield TerminateForm
-    return user_input.dict()
+    return user_input.model_dump()
 
 
 @workflow(
diff --git a/gso/workflows/super_pop_switch/create_imported_super_pop_switch.py b/gso/workflows/super_pop_switch/create_imported_super_pop_switch.py
index 008fde91..1cdb7d09 100644
--- a/gso/workflows/super_pop_switch/create_imported_super_pop_switch.py
+++ b/gso/workflows/super_pop_switch/create_imported_super_pop_switch.py
@@ -44,7 +44,7 @@ def initial_input_form_generator() -> FormGenerator:
 
     user_input = yield ImportSuperPopSwitch
 
-    return user_input.dict()
+    return user_input.model_dump()
 
 
 @step("Initialize subscription")
-- 
GitLab