Skip to content
Snippets Groups Projects

Feature/manage sid and gids

Merged Neda Moeini requested to merge feature/manage-sid-and-gids into develop
All threads resolved!
1 file
+ 38
0
Compare changes
  • Side-by-side
  • Inline
@@ -19,6 +19,8 @@ from orchestrator.db import (
from orchestrator.domain import SubscriptionModel
from orchestrator.services.subscriptions import query_in_use_by_subscriptions
from orchestrator.types import SubscriptionLifecycle, UUIDstr
from sqlalchemy import text
from sqlalchemy.exc import SQLAlchemyError
from gso.products import ProductName, ProductType
from gso.products.product_types.site import Site
@@ -329,3 +331,39 @@ def is_virtual_circuit_id_available(virtual_circuit_id: str) -> bool:
True if the virtual circuit ID is unique (not found), False if it exists.
"""
return is_resource_type_value_unique("virtual_circuit_id", virtual_circuit_id)
def make_unique_gs_id() -> str:
"""Generate a unique GS ID using the gs_id_seq database sequence.
Returns:
str: A unique GS ID in the format `GS-<number>`.
Raises:
ValueError: If there is an error generating the ID.
"""
try:
new_id = db.session.execute(text("SELECT nextval('gs_id_seq')")).scalar_one()
except SQLAlchemyError as exc:
error_message = f"Error generating GS ID: {exc}"
raise ValueError(error_message) from exc
else:
return f"GS-{new_id}"
def make_unique_ga_id() -> str:
"""Generate a unique GA ID using the ga_id_seq database sequence.
Returns:
str: A unique GA ID in the format `GA<number>`.
Raises:
ValueError: If there is an error generating the ID.
"""
try:
new_id = db.session.execute(text("SELECT nextval('ga_id_seq')")).scalar_one()
except SQLAlchemyError as exc:
error_message = f"Error generating GA ID: {exc}"
raise ValueError(error_message) from exc
else:
return f"GA-{new_id}"
Loading