Skip to content
Snippets Groups Projects
Commit a1a17772 authored by Mohammad Torkashvand's avatar Mohammad Torkashvand
Browse files

refactor api app to make it compatible with v1 version

parent a1228219
No related branches found
No related tags found
1 merge request!62Draft: Nat 219 import trunks
from fastapi import APIRouter
from gso.api.v1 import router as router_v1
router = APIRouter()
router.include_router(router_v1, prefix="/v1")
"""Module that implements process related API endpoints."""
from fastapi.param_functions import Depends
from fastapi.routing import APIRouter
from orchestrator.security import opa_security_default
from gso.api.api_v1.endpoints import imports
api_router = APIRouter()
api_router.include_router(imports.router, prefix="/imports", dependencies=[Depends(opa_security_default)])
from fastapi import APIRouter
from gso.api.v1.imports import router as imports_router
router = APIRouter()
router.include_router(imports_router)
...@@ -2,8 +2,9 @@ import ipaddress ...@@ -2,8 +2,9 @@ import ipaddress
from typing import Any, Dict, Optional from typing import Any, Dict, Optional
from uuid import UUID from uuid import UUID
from fastapi import HTTPException, status from fastapi import Depends, HTTPException, status
from fastapi.routing import APIRouter from fastapi.routing import APIRouter
from orchestrator.security import opa_security_default
from orchestrator.services import processes, subscriptions from orchestrator.services import processes, subscriptions
from pydantic import BaseModel from pydantic import BaseModel
from sqlalchemy.exc import MultipleResultsFound from sqlalchemy.exc import MultipleResultsFound
...@@ -11,7 +12,7 @@ from sqlalchemy.exc import MultipleResultsFound ...@@ -11,7 +12,7 @@ from sqlalchemy.exc import MultipleResultsFound
from gso.products.product_blocks.router import RouterRole, RouterVendor from gso.products.product_blocks.router import RouterRole, RouterVendor
from gso.products.product_blocks.site import SiteTier from gso.products.product_blocks.site import SiteTier
router = APIRouter() router = APIRouter(prefix="/imports", tags=["Import"], dependencies=[Depends(opa_security_default)])
def start_process(process_name: str, data: dict) -> UUID: def start_process(process_name: str, data: dict) -> UUID:
...@@ -45,7 +46,7 @@ class SiteImport(BaseModel): ...@@ -45,7 +46,7 @@ class SiteImport(BaseModel):
customer: str customer: str
@router.post("/sites", status_code=status.HTTP_201_CREATED, tags=["Import"]) @router.post("/sites", status_code=status.HTTP_201_CREATED)
def import_site(site: SiteImport) -> Dict[str, Any]: def import_site(site: SiteImport) -> Dict[str, Any]:
"""Import site by running the import_site workflow. """Import site by running the import_site workflow.
...@@ -90,7 +91,7 @@ class RouterImportModel(BaseModel): ...@@ -90,7 +91,7 @@ class RouterImportModel(BaseModel):
router_ias_lt_ipv6_network: Optional[ipaddress.IPv6Network] = None router_ias_lt_ipv6_network: Optional[ipaddress.IPv6Network] = None
@router.post("/routers", status_code=status.HTTP_201_CREATED, tags=["Import"]) @router.post("/routers", status_code=status.HTTP_201_CREATED)
def import_router(router_data: RouterImportModel) -> Dict[str, Any]: def import_router(router_data: RouterImportModel) -> Dict[str, Any]:
"""Import a router by running the import_router workflow. """Import a router by running the import_router workflow.
......
...@@ -7,7 +7,7 @@ from orchestrator.settings import AppSettings ...@@ -7,7 +7,7 @@ from orchestrator.settings import AppSettings
import gso.products # noqa: F401 import gso.products # noqa: F401
import gso.workflows # noqa: F401 import gso.workflows # noqa: F401
from gso import load_gso_cli from gso import load_gso_cli
from gso.api.api_v1.api import api_router from gso.api import router as api_router
def init_gso_app(settings: AppSettings) -> OrchestratorCore: def init_gso_app(settings: AppSettings) -> OrchestratorCore:
......
...@@ -12,8 +12,8 @@ class TestImportEndpoints: ...@@ -12,8 +12,8 @@ class TestImportEndpoints:
def setup(self, test_client): def setup(self, test_client):
self.faker = Faker() self.faker = Faker()
self.client = test_client self.client = test_client
self.site_import_endpoint = "/api/imports/sites" self.site_import_endpoint = "/api/v1/imports/sites"
self.router_import_endpoint = "/api/imports/routers" self.router_import_endpoint = "/api/v1/imports/routers"
self.site_data = { self.site_data = {
"site_name": self.faker.name(), "site_name": self.faker.name(),
"site_city": self.faker.city(), "site_city": self.faker.city(),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment