From 6e82c3887ab8401fbe36c4d5235f49c335508cca Mon Sep 17 00:00:00 2001
From: Karel van Klink <karel.vanklink@geant.org>
Date: Mon, 3 Jul 2023 10:54:03 +0200
Subject: [PATCH] add typing to services

---
 gso/services/ipam.py             | 12 ++++++------
 gso/services/resource_manager.py |  6 +++---
 pyproject.toml                   |  1 +
 3 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/gso/services/ipam.py b/gso/services/ipam.py
index 85b99458..64e1fdf9 100644
--- a/gso/services/ipam.py
+++ b/gso/services/ipam.py
@@ -1,5 +1,5 @@
 import ipaddress
-from typing import Union
+from typing import Union, Optional
 
 from pydantic import BaseSettings
 
@@ -25,7 +25,7 @@ class HostAddresses(BaseSettings):
     v6: ipaddress.IPv6Address
 
 
-def new_service_networks(service_type: str = "", comment: str = "", extattrs=None) -> ServiceNetworks:
+def new_service_networks(service_type: str = "", comment: str = "", extattrs: dict = None) -> ServiceNetworks:
     if extattrs is None:
         extattrs = {}
     v4_service_network = _ipam.allocate_service_ipv4_network(
@@ -40,10 +40,10 @@ def new_service_networks(service_type: str = "", comment: str = "", extattrs=Non
 def new_service_host(
     hostname: str,
     service_type: str = "",
-    service_networks: ServiceNetworks = None,
-    host_addresses: HostAddresses = None,
-    cname_aliases=None,
-    extattrs=None,
+    service_networks: Optional[ServiceNetworks] = None,
+    host_addresses: Optional[HostAddresses] = None,
+    cname_aliases: list = None,
+    extattrs: dict = None,
 ) -> HostAddresses:
     if extattrs is None:
         extattrs = {}
diff --git a/gso/services/resource_manager.py b/gso/services/resource_manager.py
index 51847eb1..50b1bc89 100644
--- a/gso/services/resource_manager.py
+++ b/gso/services/resource_manager.py
@@ -3,14 +3,14 @@ import requests
 from gso import settings
 
 
-def import_new_router(router_name, oss_params=settings.OSSParams) -> None:
+def import_new_router(router_name: str, oss_params=settings.OSSParams) -> None:
     r = requests.post(
         f"{oss_params.RESOURCE_MANAGER_API_PREFIX}" f"/api/interfaces/initialize-router/{router_name}", timeout=10000
     )
     r.raise_for_status()
 
 
-def next_lag(router_name, oss_params=settings.OSSParams) -> dict:
+def next_lag(router_name: str, oss_params=settings.OSSParams) -> dict:
     r = requests.post(
         f"{oss_params.RESOURCE_MANAGER_API_PREFIX}" f"/api/interfaces/next-lag/{router_name}", timeout=10000
     )
@@ -19,7 +19,7 @@ def next_lag(router_name, oss_params=settings.OSSParams) -> dict:
     return response["name"]
 
 
-def next_physical(router_name, lag_name, oss_params=settings.OSSParams) -> dict:
+def next_physical(router_name: str, lag_name: str, oss_params=settings.OSSParams) -> dict:
     # TODO: speed needed (if first interface)
     r = requests.post(
         f"{oss_params.RESOURCE_MANAGER_API_PREFIX}" f"/api/interfaces/next-physical/{router_name}/{lag_name}",
diff --git a/pyproject.toml b/pyproject.toml
index 409c5504..ce6ec4bf 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -25,6 +25,7 @@ exclude = '''
 [tool.mypy]
 exclude = [
     "venv",
+    "test/*",
     "gso/services/_ipam.py"  # TODO: remove
 ]
 ignore_missing_imports = true
-- 
GitLab