From f77dc9ee52e7737d90019e4c3017d73a10f0c2ef Mon Sep 17 00:00:00 2001 From: Mark90 Date: Thu, 30 Apr 2026 11:48:41 +0200 Subject: [PATCH 1/4] Temporarily pin core to branch feature/1471-namespace-package --- pyproject.toml | 3 ++- uv.lock | 26 +++++++++++--------------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 2628b56..3e5bb08 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,8 @@ version = "0.1.0" requires-python = "==3.13.*" dependencies = [ "deepdiff==8.6.2", - "orchestrator-core==5.0.0rc2", + # TODO: switch back to release once feature/1471-namespace-package is merged: "orchestrator-core==5.0.0rc3", + "orchestrator-core @ git+https://github.com/workfloworchestrator/orchestrator-core.git@feature/1471-namespace-package", "pynetbox==7.4.1", "rich==13.9.4", ] diff --git a/uv.lock b/uv.lock index 2823912..6e9f645 100644 --- a/uv.lock +++ b/uv.lock @@ -370,7 +370,7 @@ dev = [ [package.metadata] requires-dist = [ { name = "deepdiff", specifier = "==8.6.2" }, - { name = "orchestrator-core", specifier = "==5.0.0rc2" }, + { name = "orchestrator-core", git = "https://github.com/workfloworchestrator/orchestrator-core.git?rev=feature%2F1471-namespace-package" }, { name = "pynetbox", specifier = "==7.4.1" }, { name = "rich", specifier = "==13.9.4" }, ] @@ -986,7 +986,7 @@ wheels = [ [[package]] name = "orchestrator-core" version = "5.0.0rc2" -source = { registry = "https://pypi.org/simple" } +source = { git = "https://github.com/workfloworchestrator/orchestrator-core.git?rev=feature%2F1471-namespace-package#b7ab87253eac9f30f29c2d16dffa6c0528743cd4" } dependencies = [ { name = "alembic" }, { name = "anyio" }, @@ -1023,10 +1023,6 @@ dependencies = [ { name = "typer" }, { name = "uvicorn", extra = ["standard"] }, ] -sdist = { url = "https://files.pythonhosted.org/packages/91/53/12e6d02f3d3eb67427a2f078b36b8ba6c9015a948f138e324bcfb48281fe/orchestrator_core-5.0.0rc2.tar.gz", hash = "sha256:54b1db10e1bf6af76c078a8d0ff848206f58c38870505f38e76928390f5c6242", size = 346983, upload-time = "2026-04-24T13:12:54.887Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/42/7662314128673cc73a11aeb8208c98c36011104d574c82efcac624e707c5/orchestrator_core-5.0.0rc2-py3-none-any.whl", hash = "sha256:703e85f9fc236b668dfc4de5ee190c93531add908822af8a6278d25bdedd1133", size = 571293, upload-time = "2026-04-24T13:12:52.973Z" }, -] [[package]] name = "orderly-set" @@ -1272,16 +1268,16 @@ wheels = [ [[package]] name = "pydantic-settings" -version = "2.13.1" +version = "2.14.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pydantic" }, { name = "python-dotenv" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/52/6d/fffca34caecc4a3f97bda81b2098da5e8ab7efc9a66e819074a11955d87e/pydantic_settings-2.13.1.tar.gz", hash = "sha256:b4c11847b15237fb0171e1462bf540e294affb9b86db4d9aa5c01730bdbe4025", size = 223826, upload-time = "2026-02-19T13:45:08.055Z" } +sdist = { url = "https://files.pythonhosted.org/packages/42/98/c8345dccdc31de4228c039a98f6467a941e39558da41c1744fbe29fa5666/pydantic_settings-2.14.0.tar.gz", hash = "sha256:24285fd4b0e0c06507dd9fdfd331ee23794305352aaec8fc4eb92d4047aeb67d", size = 235709, upload-time = "2026-04-20T13:37:40.293Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/00/4b/ccc026168948fec4f7555b9164c724cf4125eac006e176541483d2c959be/pydantic_settings-2.13.1-py3-none-any.whl", hash = "sha256:d56fd801823dbeae7f0975e1f8c8e25c258eb75d278ea7abb5d9cebb01b56237", size = 58929, upload-time = "2026-02-19T13:45:06.034Z" }, + { url = "https://files.pythonhosted.org/packages/01/dd/bebff3040138f00ae8a102d426b27349b9a49acc310fcae7f92112d867e3/pydantic_settings-2.14.0-py3-none-any.whl", hash = "sha256:fc8d5d692eb7092e43c8647c1c35a3ecd00e040fcf02ed86f4cb5458ca62182e", size = 60940, upload-time = "2026-04-20T13:37:38.586Z" }, ] [[package]] @@ -1727,7 +1723,7 @@ wheels = [ [[package]] name = "typer" -version = "0.24.1" +version = "0.24.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-doc" }, @@ -1735,9 +1731,9 @@ dependencies = [ { name = "rich" }, { name = "shellingham" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f5/24/cb09efec5cc954f7f9b930bf8279447d24618bb6758d4f6adf2574c41780/typer-0.24.1.tar.gz", hash = "sha256:e39b4732d65fbdcde189ae76cf7cd48aeae72919dea1fdfc16593be016256b45", size = 118613, upload-time = "2026-02-21T16:54:40.609Z" } +sdist = { url = "https://files.pythonhosted.org/packages/83/b8/9ebb531b6c2d377af08ac6746a5df3425b21853a5d2260876919b58a2a4a/typer-0.24.2.tar.gz", hash = "sha256:ec070dcfca1408e85ee203c6365001e818c3b7fffe686fd07ff2d68095ca0480", size = 119849, upload-time = "2026-04-22T17:45:34.413Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/91/48db081e7a63bb37284f9fbcefda7c44c277b18b0e13fbc36ea2335b71e6/typer-0.24.1-py3-none-any.whl", hash = "sha256:112c1f0ce578bfb4cab9ffdabc68f031416ebcc216536611ba21f04e9aa84c9e", size = 56085, upload-time = "2026-02-21T16:54:41.616Z" }, + { url = "https://files.pythonhosted.org/packages/39/d1/9484b497e0a0410b901c12b8251c3e746e1e863f7d28419ffe06f7892fda/typer-0.24.2-py3-none-any.whl", hash = "sha256:b618bc3d721f9a8d30f3e05565be26416d06e9bcc29d49bc491dc26aba674fa8", size = 55977, upload-time = "2026-04-22T17:45:33.055Z" }, ] [[package]] @@ -1793,15 +1789,15 @@ wheels = [ [[package]] name = "uvicorn" -version = "0.44.0" +version = "0.46.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, { name = "h11" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5e/da/6eee1ff8b6cbeed47eeb5229749168e81eb4b7b999a1a15a7176e51410c9/uvicorn-0.44.0.tar.gz", hash = "sha256:6c942071b68f07e178264b9152f1f16dfac5da85880c4ce06366a96d70d4f31e", size = 86947, upload-time = "2026-04-06T09:23:22.826Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1f/93/041fca8274050e40e6791f267d82e0e2e27dd165627bd640d3e0e378d877/uvicorn-0.46.0.tar.gz", hash = "sha256:fb9da0926999cc6cb22dc7cd71a94a632f078e6ae47ff683c5c420750fb7413d", size = 88758, upload-time = "2026-04-23T07:16:00.151Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/23/a5bbd9600dd607411fa644c06ff4951bec3a4d82c4b852374024359c19c0/uvicorn-0.44.0-py3-none-any.whl", hash = "sha256:ce937c99a2cc70279556967274414c087888e8cec9f9c94644dfca11bd3ced89", size = 69425, upload-time = "2026-04-06T09:23:21.524Z" }, + { url = "https://files.pythonhosted.org/packages/31/a3/5b1562db76a5a488274b2332a97199b32d0442aca0ed193697fd47786316/uvicorn-0.46.0-py3-none-any.whl", hash = "sha256:bbebbcbed972d162afca128605223022bedd345b7bc7855ce66deb31487a9048", size = 70926, upload-time = "2026-04-23T07:15:58.355Z" }, ] [package.optional-dependencies] From 298340757d1b20bc9c2530b2b796a5593fcd8028 Mon Sep 17 00:00:00 2001 From: Mark90 Date: Thu, 30 Apr 2026 11:49:41 +0200 Subject: [PATCH 2/4] Apply 50_upgrade script to python code --- graphql_federation.py | 2 +- main.py | 8 ++++---- migrations/env.py | 4 ++-- migrations/helpers.py | 2 +- .../schema/2023-10-27_a84ca2e5e4db_add_node.py | 4 ++-- .../schema/2023-11-02_c044b0da4126_add_port.py | 4 ++-- .../2023-11-16_1faddadd7aae_add_core_link.py | 4 ++-- .../schema/2023-11-17_e2a0fed2a4c7_add_l2vpn.py | 4 ++-- .../2023-12-04_d946c20663d3_add_netbox_tasks.py | 4 ++-- ...08-28_0e8d17ce0f06_reconcile_workflows_l2vpn.py | 2 +- .../schema/2025-09-30_a87d11eb8dd1_add_nsistp.py | 10 ++++++++-- .../schema/2026-02-04_f8dc5901fe6d_add_nsip2p.py | 10 ++++++++-- products/__init__.py | 2 +- products/product_blocks/core_link.py | 4 ++-- products/product_blocks/core_port.py | 4 ++-- products/product_blocks/node.py | 4 ++-- products/product_blocks/nsistp.py | 4 ++-- products/product_blocks/port.py | 4 ++-- products/product_blocks/sap.py | 4 ++-- products/product_blocks/virtual_circuit.py | 4 ++-- products/product_types/core_link.py | 4 ++-- products/product_types/l2vpn.py | 4 ++-- products/product_types/node.py | 4 ++-- products/product_types/nsip2p.py | 4 ++-- products/product_types/nsistp.py | 4 ++-- products/product_types/port.py | 4 ++-- products/services/description.py | 2 +- products/services/netbox/netbox.py | 2 +- products/services/netbox/payload/core_link.py | 2 +- products/services/netbox/payload/core_port.py | 2 +- products/services/netbox/payload/l2vpn.py | 2 +- products/services/netbox/payload/node.py | 2 +- products/services/netbox/payload/port.py | 2 +- products/services/netbox/payload/sap.py | 2 +- services/lso_client.py | 10 +++++----- workflows/__init__.py | 2 +- workflows/core_link/create_core_link.py | 14 +++++++------- workflows/core_link/modify_core_link.py | 6 +++--- workflows/core_link/terminate_core_link.py | 8 ++++---- workflows/core_link/validate_core_link.py | 4 ++-- workflows/l2vpn/create_l2vpn.py | 10 +++++----- workflows/l2vpn/modify_l2vpn.py | 6 +++--- workflows/l2vpn/shared/forms.py | 2 +- workflows/l2vpn/terminate_l2vpn.py | 6 +++--- workflows/l2vpn/validate_l2vpn.py | 4 ++-- workflows/node/create_node.py | 14 +++++++------- workflows/node/modify_node.py | 8 ++++---- workflows/node/modify_sync_ports.py | 8 ++++---- workflows/node/shared/steps.py | 2 +- workflows/node/terminate_node.py | 6 +++--- workflows/node/validate_node.py | 4 ++-- workflows/nsip2p/create_nsip2p.py | 10 +++++----- workflows/nsip2p/modify_nsip2p.py | 6 +++--- workflows/nsip2p/terminate_nsip2p.py | 8 ++++---- workflows/nsip2p/validate_nsip2p.py | 4 ++-- workflows/nsistp/create_nsistp.py | 12 ++++++------ workflows/nsistp/modify_nsistp.py | 8 ++++---- workflows/nsistp/shared/forms.py | 8 ++++---- workflows/nsistp/shared/shared.py | 2 +- workflows/nsistp/terminate_nsistp.py | 8 ++++---- workflows/nsistp/validate_nsistp.py | 4 ++-- workflows/port/create_port.py | 14 +++++++------- workflows/port/modify_port.py | 6 +++--- workflows/port/shared/steps.py | 2 +- workflows/port/terminate_port.py | 10 +++++----- workflows/port/validate_port.py | 4 ++-- workflows/shared.py | 12 ++++++------ workflows/tasks/bootstrap_netbox.py | 6 +++--- workflows/tasks/wipe_netbox.py | 8 ++++---- wsgi.py | 4 ++-- 70 files changed, 195 insertions(+), 183 deletions(-) diff --git a/graphql_federation.py b/graphql_federation.py index 8a48267..db16e73 100644 --- a/graphql_federation.py +++ b/graphql_federation.py @@ -12,7 +12,7 @@ # limitations under the License. import strawberry -from orchestrator.graphql.schemas import DEFAULT_GRAPHQL_MODELS +from orchestrator.core.graphql.schemas import DEFAULT_GRAPHQL_MODELS from products.product_blocks.node import NodeBlockInactive as _NodeBlockInactive diff --git a/main.py b/main.py index 9ed8293..39a4872 100644 --- a/main.py +++ b/main.py @@ -12,10 +12,10 @@ # limitations under the License. import typer -from orchestrator import app_settings -from orchestrator.cli.main import app as core_cli -from orchestrator.db import init_database -from orchestrator.log_config import LOGGER_OVERRIDES +from orchestrator.core import app_settings +from orchestrator.core.cli.main import app as core_cli +from orchestrator.core.db import init_database +from orchestrator.core.log_config import LOGGER_OVERRIDES import products # noqa: F401 Registers SUBSCRIPTION_MODEL_REGISTRY entries from nwastdlib.logging import initialise_logging diff --git a/migrations/env.py b/migrations/env.py index 715a7e3..e845a87 100644 --- a/migrations/env.py +++ b/migrations/env.py @@ -1,7 +1,7 @@ import structlog from alembic import context -from orchestrator.db.database import BaseModel -from orchestrator.settings import app_settings +from orchestrator.core.db.database import BaseModel +from orchestrator.core.settings import app_settings from sqlalchemy import engine_from_config, pool # this is the Alembic Config object, which provides diff --git a/migrations/helpers.py b/migrations/helpers.py index 2bb4192..df3117c 100644 --- a/migrations/helpers.py +++ b/migrations/helpers.py @@ -1,3 +1,3 @@ -# from orchestrator.migrations.helpers import * +# from orchestrator.core.migrations.helpers import * # Write your own helper functions below this line. diff --git a/migrations/versions/schema/2023-10-27_a84ca2e5e4db_add_node.py b/migrations/versions/schema/2023-10-27_a84ca2e5e4db_add_node.py index a2b185a..9921b96 100644 --- a/migrations/versions/schema/2023-10-27_a84ca2e5e4db_add_node.py +++ b/migrations/versions/schema/2023-10-27_a84ca2e5e4db_add_node.py @@ -9,14 +9,14 @@ from uuid import uuid4 from alembic import op -from orchestrator.migrations.helpers import ( +from orchestrator.core.migrations.helpers import ( create, create_workflow, delete, delete_workflow, ensure_default_workflows, ) -from orchestrator.targets import Target +from orchestrator.core.targets import Target # revision identifiers, used by Alembic. revision = "a84ca2e5e4db" diff --git a/migrations/versions/schema/2023-11-02_c044b0da4126_add_port.py b/migrations/versions/schema/2023-11-02_c044b0da4126_add_port.py index def26c5..4072344 100644 --- a/migrations/versions/schema/2023-11-02_c044b0da4126_add_port.py +++ b/migrations/versions/schema/2023-11-02_c044b0da4126_add_port.py @@ -9,14 +9,14 @@ from uuid import uuid4 from alembic import op -from orchestrator.migrations.helpers import ( +from orchestrator.core.migrations.helpers import ( create, create_workflow, delete, delete_workflow, ensure_default_workflows, ) -from orchestrator.targets import Target +from orchestrator.core.targets import Target from products.product_types.port import PortSpeed diff --git a/migrations/versions/schema/2023-11-16_1faddadd7aae_add_core_link.py b/migrations/versions/schema/2023-11-16_1faddadd7aae_add_core_link.py index a36334b..56276bb 100644 --- a/migrations/versions/schema/2023-11-16_1faddadd7aae_add_core_link.py +++ b/migrations/versions/schema/2023-11-16_1faddadd7aae_add_core_link.py @@ -9,14 +9,14 @@ from uuid import uuid4 from alembic import op -from orchestrator.migrations.helpers import ( +from orchestrator.core.migrations.helpers import ( create, create_workflow, delete, delete_workflow, ensure_default_workflows, ) -from orchestrator.targets import Target +from orchestrator.core.targets import Target from products.product_types.core_link import CoreLinkSpeed diff --git a/migrations/versions/schema/2023-11-17_e2a0fed2a4c7_add_l2vpn.py b/migrations/versions/schema/2023-11-17_e2a0fed2a4c7_add_l2vpn.py index c94e0d3..a35150f 100644 --- a/migrations/versions/schema/2023-11-17_e2a0fed2a4c7_add_l2vpn.py +++ b/migrations/versions/schema/2023-11-17_e2a0fed2a4c7_add_l2vpn.py @@ -9,14 +9,14 @@ from uuid import uuid4 from alembic import op -from orchestrator.migrations.helpers import ( +from orchestrator.core.migrations.helpers import ( create, create_workflow, delete, delete_workflow, ensure_default_workflows, ) -from orchestrator.targets import Target +from orchestrator.core.targets import Target # revision identifiers, used by Alembic. revision = "e2a0fed2a4c7" diff --git a/migrations/versions/schema/2023-12-04_d946c20663d3_add_netbox_tasks.py b/migrations/versions/schema/2023-12-04_d946c20663d3_add_netbox_tasks.py index 283b424..c55af06 100644 --- a/migrations/versions/schema/2023-12-04_d946c20663d3_add_netbox_tasks.py +++ b/migrations/versions/schema/2023-12-04_d946c20663d3_add_netbox_tasks.py @@ -8,8 +8,8 @@ import sqlalchemy as sa from alembic import op -from orchestrator.migrations.helpers import delete_workflow -from orchestrator.targets import Target +from orchestrator.core.migrations.helpers import delete_workflow +from orchestrator.core.targets import Target # revision identifiers, used by Alembic. revision = "d946c20663d3" diff --git a/migrations/versions/schema/2025-08-28_0e8d17ce0f06_reconcile_workflows_l2vpn.py b/migrations/versions/schema/2025-08-28_0e8d17ce0f06_reconcile_workflows_l2vpn.py index c903839..7e19f95 100644 --- a/migrations/versions/schema/2025-08-28_0e8d17ce0f06_reconcile_workflows_l2vpn.py +++ b/migrations/versions/schema/2025-08-28_0e8d17ce0f06_reconcile_workflows_l2vpn.py @@ -7,7 +7,7 @@ """ from alembic import op -from orchestrator.migrations.helpers import create_workflow, delete_workflow +from orchestrator.core.migrations.helpers import create_workflow, delete_workflow # revision identifiers, used by Alembic. revision = "0e8d17ce0f06" diff --git a/migrations/versions/schema/2025-09-30_a87d11eb8dd1_add_nsistp.py b/migrations/versions/schema/2025-09-30_a87d11eb8dd1_add_nsistp.py index 3c0d471..b291444 100644 --- a/migrations/versions/schema/2025-09-30_a87d11eb8dd1_add_nsistp.py +++ b/migrations/versions/schema/2025-09-30_a87d11eb8dd1_add_nsistp.py @@ -9,8 +9,14 @@ from uuid import uuid4 from alembic import op -from orchestrator.migrations.helpers import create, create_workflow, delete, delete_workflow, ensure_default_workflows -from orchestrator.targets import Target +from orchestrator.core.migrations.helpers import ( + create, + create_workflow, + delete, + delete_workflow, + ensure_default_workflows, +) +from orchestrator.core.targets import Target # revision identifiers, used by Alembic. revision = "a87d11eb8dd1" diff --git a/migrations/versions/schema/2026-02-04_f8dc5901fe6d_add_nsip2p.py b/migrations/versions/schema/2026-02-04_f8dc5901fe6d_add_nsip2p.py index c1d0d56..0df7773 100644 --- a/migrations/versions/schema/2026-02-04_f8dc5901fe6d_add_nsip2p.py +++ b/migrations/versions/schema/2026-02-04_f8dc5901fe6d_add_nsip2p.py @@ -9,8 +9,14 @@ from uuid import uuid4 from alembic import op -from orchestrator.migrations.helpers import create, create_workflow, delete, delete_workflow, ensure_default_workflows -from orchestrator.targets import Target +from orchestrator.core.migrations.helpers import ( + create, + create_workflow, + delete, + delete_workflow, + ensure_default_workflows, +) +from orchestrator.core.targets import Target # revision identifiers, used by Alembic. revision = "f8dc5901fe6d" diff --git a/products/__init__.py b/products/__init__.py index 322caf1..44e48c3 100644 --- a/products/__init__.py +++ b/products/__init__.py @@ -12,7 +12,7 @@ # limitations under the License. -from orchestrator.domain import SUBSCRIPTION_MODEL_REGISTRY +from orchestrator.core.domain import SUBSCRIPTION_MODEL_REGISTRY from products.product_types.core_link import CoreLink from products.product_types.l2vpn import L2vpn diff --git a/products/product_blocks/core_link.py b/products/product_blocks/core_link.py index e0c001b..a1f8242 100644 --- a/products/product_blocks/core_link.py +++ b/products/product_blocks/core_link.py @@ -15,8 +15,8 @@ from typing import Annotated from annotated_types import Len -from orchestrator.domain.base import ProductBlockModel -from orchestrator.types import SI, SubscriptionLifecycle +from orchestrator.core.domain.base import ProductBlockModel +from orchestrator.core.types import SI, SubscriptionLifecycle from pydantic import computed_field from products.product_blocks.core_port import CorePortBlock, CorePortBlockInactive, CorePortBlockProvisioning diff --git a/products/product_blocks/core_port.py b/products/product_blocks/core_port.py index 12473c9..7f4e63a 100644 --- a/products/product_blocks/core_port.py +++ b/products/product_blocks/core_port.py @@ -12,8 +12,8 @@ # limitations under the License. -from orchestrator.domain.base import ProductBlockModel -from orchestrator.types import SubscriptionLifecycle +from orchestrator.core.domain.base import ProductBlockModel +from orchestrator.core.types import SubscriptionLifecycle from pydantic import computed_field from products.product_blocks.node import NodeBlock, NodeBlockInactive, NodeBlockProvisioning diff --git a/products/product_blocks/node.py b/products/product_blocks/node.py index 5388ca6..4d483f9 100644 --- a/products/product_blocks/node.py +++ b/products/product_blocks/node.py @@ -12,8 +12,8 @@ # limitations under the License. -from orchestrator.domain.base import ProductBlockModel -from orchestrator.types import SubscriptionLifecycle +from orchestrator.core.domain.base import ProductBlockModel +from orchestrator.core.types import SubscriptionLifecycle from pydantic import computed_field diff --git a/products/product_blocks/nsistp.py b/products/product_blocks/nsistp.py index c544eb7..c2586a9 100644 --- a/products/product_blocks/nsistp.py +++ b/products/product_blocks/nsistp.py @@ -12,8 +12,8 @@ # limitations under the License. -from orchestrator.domain.base import ProductBlockModel -from orchestrator.types import SubscriptionLifecycle +from orchestrator.core.domain.base import ProductBlockModel +from orchestrator.core.types import SubscriptionLifecycle from pydantic import computed_field from products.product_blocks.sap import SAPBlock, SAPBlockInactive, SAPBlockProvisioning diff --git a/products/product_blocks/port.py b/products/product_blocks/port.py index 7c49de9..f8512b5 100644 --- a/products/product_blocks/port.py +++ b/products/product_blocks/port.py @@ -14,8 +14,8 @@ from typing import List -from orchestrator.domain.base import ProductBlockModel -from orchestrator.types import SubscriptionLifecycle +from orchestrator.core.domain.base import ProductBlockModel +from orchestrator.core.types import SubscriptionLifecycle from pydantic import computed_field from products.product_blocks.node import NodeBlock, NodeBlockInactive, NodeBlockProvisioning diff --git a/products/product_blocks/sap.py b/products/product_blocks/sap.py index f55197f..6b648ca 100644 --- a/products/product_blocks/sap.py +++ b/products/product_blocks/sap.py @@ -12,8 +12,8 @@ # limitations under the License. -from orchestrator.domain.base import ProductBlockModel -from orchestrator.types import SubscriptionLifecycle +from orchestrator.core.domain.base import ProductBlockModel +from orchestrator.core.types import SubscriptionLifecycle from pydantic import computed_field from nwastdlib.vlans import VlanRanges diff --git a/products/product_blocks/virtual_circuit.py b/products/product_blocks/virtual_circuit.py index 8deb437..95c2292 100644 --- a/products/product_blocks/virtual_circuit.py +++ b/products/product_blocks/virtual_circuit.py @@ -15,8 +15,8 @@ from typing import Annotated from annotated_types import Len -from orchestrator.domain.base import ProductBlockModel -from orchestrator.types import SI, SubscriptionLifecycle +from orchestrator.core.domain.base import ProductBlockModel +from orchestrator.core.types import SI, SubscriptionLifecycle from pydantic import computed_field from products.product_blocks.sap import SAPBlock, SAPBlockInactive, SAPBlockProvisioning diff --git a/products/product_types/core_link.py b/products/product_types/core_link.py index ec02954..03f75ec 100644 --- a/products/product_types/core_link.py +++ b/products/product_types/core_link.py @@ -14,8 +14,8 @@ from enum import IntEnum -from orchestrator.domain.base import SubscriptionModel -from orchestrator.types import SubscriptionLifecycle +from orchestrator.core.domain.base import SubscriptionModel +from orchestrator.core.types import SubscriptionLifecycle from products.product_blocks.core_link import CoreLinkBlock, CoreLinkBlockInactive, CoreLinkBlockProvisioning diff --git a/products/product_types/l2vpn.py b/products/product_types/l2vpn.py index 42368d9..1cba375 100644 --- a/products/product_types/l2vpn.py +++ b/products/product_types/l2vpn.py @@ -12,8 +12,8 @@ # limitations under the License. -from orchestrator.domain.base import SubscriptionModel -from orchestrator.types import SubscriptionLifecycle +from orchestrator.core.domain.base import SubscriptionModel +from orchestrator.core.types import SubscriptionLifecycle from products.product_blocks.virtual_circuit import ( VirtualCircuitBlock, diff --git a/products/product_types/node.py b/products/product_types/node.py index 935dabc..c744841 100644 --- a/products/product_types/node.py +++ b/products/product_types/node.py @@ -12,8 +12,8 @@ # limitations under the License. -from orchestrator.domain.base import SubscriptionModel -from orchestrator.types import SubscriptionLifecycle +from orchestrator.core.domain.base import SubscriptionModel +from orchestrator.core.types import SubscriptionLifecycle from products.product_blocks.node import NodeBlock, NodeBlockInactive, NodeBlockProvisioning from pydantic_forms.types import strEnum diff --git a/products/product_types/nsip2p.py b/products/product_types/nsip2p.py index 7cfefe1..85a47c9 100644 --- a/products/product_types/nsip2p.py +++ b/products/product_types/nsip2p.py @@ -11,8 +11,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -from orchestrator.domain.base import SubscriptionModel -from orchestrator.types import SubscriptionLifecycle +from orchestrator.core.domain.base import SubscriptionModel +from orchestrator.core.types import SubscriptionLifecycle from pydantic import model_validator from products.product_blocks.virtual_circuit import ( diff --git a/products/product_types/nsistp.py b/products/product_types/nsistp.py index 97c0562..0baf980 100644 --- a/products/product_types/nsistp.py +++ b/products/product_types/nsistp.py @@ -12,8 +12,8 @@ # limitations under the License. -from orchestrator.domain.base import SubscriptionModel -from orchestrator.types import SubscriptionLifecycle +from orchestrator.core.domain.base import SubscriptionModel +from orchestrator.core.types import SubscriptionLifecycle from nwastdlib.vlans import VlanRanges from products.product_blocks.nsistp import NsistpBlock, NsistpBlockInactive, NsistpBlockProvisioning diff --git a/products/product_types/port.py b/products/product_types/port.py index 59bca6f..0abb7c9 100644 --- a/products/product_types/port.py +++ b/products/product_types/port.py @@ -14,8 +14,8 @@ from enum import IntEnum -from orchestrator.domain.base import SubscriptionModel -from orchestrator.types import SubscriptionLifecycle +from orchestrator.core.domain.base import SubscriptionModel +from orchestrator.core.types import SubscriptionLifecycle from products.product_blocks.port import PortBlock, PortBlockInactive, PortBlockProvisioning diff --git a/products/services/description.py b/products/services/description.py index f74d064..41190a5 100644 --- a/products/services/description.py +++ b/products/services/description.py @@ -15,7 +15,7 @@ from functools import singledispatch from typing import Union -from orchestrator.domain.base import ProductBlockModel, ProductModel, SubscriptionModel +from orchestrator.core.domain.base import ProductBlockModel, ProductModel, SubscriptionModel from products.product_blocks.core_port import CorePortBlockProvisioning from products.product_blocks.sap import SAPBlockProvisioning diff --git a/products/services/netbox/netbox.py b/products/services/netbox/netbox.py index 3db513e..333ed2b 100644 --- a/products/services/netbox/netbox.py +++ b/products/services/netbox/netbox.py @@ -15,7 +15,7 @@ from functools import singledispatch from typing import Any -from orchestrator.domain.base import ProductBlockModel, SubscriptionModel +from orchestrator.core.domain.base import ProductBlockModel, SubscriptionModel from products.product_blocks.core_link import CoreLinkBlockProvisioning from products.product_blocks.core_port import CorePortBlockProvisioning diff --git a/products/services/netbox/payload/core_link.py b/products/services/netbox/payload/core_link.py index 05abaf6..bdbdd39 100644 --- a/products/services/netbox/payload/core_link.py +++ b/products/services/netbox/payload/core_link.py @@ -12,7 +12,7 @@ # limitations under the License. -from orchestrator.domain import SubscriptionModel +from orchestrator.core.domain import SubscriptionModel from products.product_blocks.core_link import CoreLinkBlockProvisioning from services import netbox diff --git a/products/services/netbox/payload/core_port.py b/products/services/netbox/payload/core_port.py index cf3c977..7242489 100644 --- a/products/services/netbox/payload/core_port.py +++ b/products/services/netbox/payload/core_port.py @@ -12,7 +12,7 @@ # limitations under the License. -from orchestrator.domain import SubscriptionModel +from orchestrator.core.domain import SubscriptionModel from products.product_blocks.core_port import CorePortBlockProvisioning from services import netbox diff --git a/products/services/netbox/payload/l2vpn.py b/products/services/netbox/payload/l2vpn.py index e907000..77cf45c 100644 --- a/products/services/netbox/payload/l2vpn.py +++ b/products/services/netbox/payload/l2vpn.py @@ -12,7 +12,7 @@ # limitations under the License. -from orchestrator.domain import SubscriptionModel +from orchestrator.core.domain import SubscriptionModel from products.product_blocks.virtual_circuit import VirtualCircuitBlockProvisioning from products.services.description import description diff --git a/products/services/netbox/payload/node.py b/products/services/netbox/payload/node.py index 83258af..b8947e0 100644 --- a/products/services/netbox/payload/node.py +++ b/products/services/netbox/payload/node.py @@ -12,7 +12,7 @@ # limitations under the License. -from orchestrator.domain import SubscriptionModel +from orchestrator.core.domain import SubscriptionModel from products.product_blocks.node import NodeBlockProvisioning from services import netbox diff --git a/products/services/netbox/payload/port.py b/products/services/netbox/payload/port.py index e63f8e3..4a1eec8 100644 --- a/products/services/netbox/payload/port.py +++ b/products/services/netbox/payload/port.py @@ -12,7 +12,7 @@ # limitations under the License. -from orchestrator.domain import SubscriptionModel +from orchestrator.core.domain import SubscriptionModel from products.product_blocks.port import PortBlockProvisioning, PortMode from services import netbox diff --git a/products/services/netbox/payload/sap.py b/products/services/netbox/payload/sap.py index b3b154e..7becb6d 100644 --- a/products/services/netbox/payload/sap.py +++ b/products/services/netbox/payload/sap.py @@ -12,7 +12,7 @@ # limitations under the License. -from orchestrator.domain import SubscriptionModel +from orchestrator.core.domain import SubscriptionModel from products.product_blocks.sap import SAPBlockProvisioning from services import netbox diff --git a/services/lso_client.py b/services/lso_client.py index 32c118e..b7e90ec 100644 --- a/services/lso_client.py +++ b/services/lso_client.py @@ -21,11 +21,11 @@ from typing import Any import requests -from orchestrator import step -from orchestrator.config.assignee import Assignee -from orchestrator.forms import FormPage -from orchestrator.utils.errors import ProcessFailureError -from orchestrator.workflow import Step, StepList, begin, callback_step, conditional, inputstep +from orchestrator.core import step +from orchestrator.core.config.assignee import Assignee +from orchestrator.core.forms import FormPage +from orchestrator.core.utils.errors import ProcessFailureError +from orchestrator.core.workflow import Step, StepList, begin, callback_step, conditional, inputstep from pydantic_forms.types import FormGenerator, State from pydantic_forms.validators import LongText diff --git a/workflows/__init__.py b/workflows/__init__.py index 04a59c6..da4c37a 100644 --- a/workflows/__init__.py +++ b/workflows/__init__.py @@ -12,7 +12,7 @@ # limitations under the License. -from orchestrator.workflows import LazyWorkflowInstance +from orchestrator.core.workflows import LazyWorkflowInstance LazyWorkflowInstance("workflows.node.create_node", "create_node") LazyWorkflowInstance("workflows.node.modify_node", "modify_node") diff --git a/workflows/core_link/create_core_link.py b/workflows/core_link/create_core_link.py index b2894ff..3056e00 100644 --- a/workflows/core_link/create_core_link.py +++ b/workflows/core_link/create_core_link.py @@ -17,13 +17,13 @@ from random import randrange from typing import TypeAlias, cast -from orchestrator.forms import FormPage -from orchestrator.services.products import get_product_by_id -from orchestrator.types import SubscriptionLifecycle -from orchestrator.utils.json import json_dumps -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.steps import store_process_subscription -from orchestrator.workflows.utils import create_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.services.products import get_product_by_id +from orchestrator.core.types import SubscriptionLifecycle +from orchestrator.core.utils.json import json_dumps +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.steps import store_process_subscription +from orchestrator.core.workflows.utils import create_workflow from pydantic import ConfigDict, model_validator from products.product_types.core_link import CoreLinkInactive, CoreLinkProvisioning diff --git a/workflows/core_link/modify_core_link.py b/workflows/core_link/modify_core_link.py index 39cf498..30e7eb2 100644 --- a/workflows/core_link/modify_core_link.py +++ b/workflows/core_link/modify_core_link.py @@ -12,9 +12,9 @@ # limitations under the License. -from orchestrator.forms import FormPage -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import ensure_provisioning_status, modify_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import ensure_provisioning_status, modify_workflow from products.product_types.core_link import CoreLink, CoreLinkProvisioning from products.services.description import description diff --git a/workflows/core_link/terminate_core_link.py b/workflows/core_link/terminate_core_link.py index d3805db..d91398f 100644 --- a/workflows/core_link/terminate_core_link.py +++ b/workflows/core_link/terminate_core_link.py @@ -13,10 +13,10 @@ import json -from orchestrator.forms import FormPage -from orchestrator.utils.json import json_dumps -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import terminate_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.utils.json import json_dumps +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import terminate_workflow from products.product_types.core_link import CoreLink from products.services.netbox.netbox import build_payload diff --git a/workflows/core_link/validate_core_link.py b/workflows/core_link/validate_core_link.py index f5e3f80..05e6516 100644 --- a/workflows/core_link/validate_core_link.py +++ b/workflows/core_link/validate_core_link.py @@ -12,8 +12,8 @@ # limitations under the License. -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import validate_workflow +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import validate_workflow from products.product_types.core_link import CoreLink from pydantic_forms.types import State diff --git a/workflows/l2vpn/create_l2vpn.py b/workflows/l2vpn/create_l2vpn.py index 29781db..32ed60b 100644 --- a/workflows/l2vpn/create_l2vpn.py +++ b/workflows/l2vpn/create_l2vpn.py @@ -18,11 +18,11 @@ from typing import Annotated, TypeAlias, cast from more_itertools.more import unzip -from orchestrator.forms import FormPage -from orchestrator.types import SubscriptionLifecycle -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.steps import store_process_subscription -from orchestrator.workflows.utils import create_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.types import SubscriptionLifecycle +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.steps import store_process_subscription +from orchestrator.core.workflows.utils import create_workflow from pydantic import AfterValidator, ConfigDict from nwastdlib.vlans import VlanRanges diff --git a/workflows/l2vpn/modify_l2vpn.py b/workflows/l2vpn/modify_l2vpn.py index 75af55d..c26e7fa 100644 --- a/workflows/l2vpn/modify_l2vpn.py +++ b/workflows/l2vpn/modify_l2vpn.py @@ -12,9 +12,9 @@ # limitations under the License. -from orchestrator.forms import FormPage -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import ensure_provisioning_status, modify_workflow, reconcile_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import ensure_provisioning_status, modify_workflow, reconcile_workflow from products.product_types.l2vpn import L2vpn, L2vpnProvisioning from products.services.description import description diff --git a/workflows/l2vpn/shared/forms.py b/workflows/l2vpn/shared/forms.py index 51cafe7..f6de543 100644 --- a/workflows/l2vpn/shared/forms.py +++ b/workflows/l2vpn/shared/forms.py @@ -12,7 +12,7 @@ # limitations under the License. -from orchestrator.types import SubscriptionLifecycle +from orchestrator.core.types import SubscriptionLifecycle from products.product_blocks.port import PortMode from pydantic_forms.validators import Choice, choice_list diff --git a/workflows/l2vpn/terminate_l2vpn.py b/workflows/l2vpn/terminate_l2vpn.py index 659ef77..ae93088 100644 --- a/workflows/l2vpn/terminate_l2vpn.py +++ b/workflows/l2vpn/terminate_l2vpn.py @@ -12,9 +12,9 @@ # limitations under the License. -from orchestrator.forms import FormPage -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import terminate_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import terminate_workflow from products.product_types.l2vpn import L2vpn from pydantic_forms.types import InputForm, UUIDstr diff --git a/workflows/l2vpn/validate_l2vpn.py b/workflows/l2vpn/validate_l2vpn.py index e546d42..84635b8 100644 --- a/workflows/l2vpn/validate_l2vpn.py +++ b/workflows/l2vpn/validate_l2vpn.py @@ -11,8 +11,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import validate_workflow +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import validate_workflow from products.product_types.l2vpn import L2vpn from pydantic_forms.types import State diff --git a/workflows/node/create_node.py b/workflows/node/create_node.py index 19cb606..efe6bb0 100644 --- a/workflows/node/create_node.py +++ b/workflows/node/create_node.py @@ -17,13 +17,13 @@ from random import randrange from typing import TypeAlias, cast -from orchestrator.forms import FormPage -from orchestrator.services.products import get_product_by_id -from orchestrator.types import SubscriptionLifecycle -from orchestrator.utils.json import json_dumps -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.steps import store_process_subscription -from orchestrator.workflows.utils import create_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.services.products import get_product_by_id +from orchestrator.core.types import SubscriptionLifecycle +from orchestrator.core.utils.json import json_dumps +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.steps import store_process_subscription +from orchestrator.core.workflows.utils import create_workflow from pydantic import ConfigDict from products.product_blocks.shared.types import NodeStatus diff --git a/workflows/node/modify_node.py b/workflows/node/modify_node.py index 71b1e6f..73e5a20 100644 --- a/workflows/node/modify_node.py +++ b/workflows/node/modify_node.py @@ -13,10 +13,10 @@ from typing import TypeAlias, cast import structlog -from orchestrator.forms import FormPage -from orchestrator.services.products import get_product_by_id -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import ensure_provisioning_status, modify_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.services.products import get_product_by_id +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import ensure_provisioning_status, modify_workflow from products.product_blocks.shared.types import NodeStatus from products.product_types.node import Node, NodeProvisioning diff --git a/workflows/node/modify_sync_ports.py b/workflows/node/modify_sync_ports.py index bf74779..0cbfd82 100644 --- a/workflows/node/modify_sync_ports.py +++ b/workflows/node/modify_sync_ports.py @@ -12,10 +12,10 @@ # limitations under the License. -from orchestrator.types import SubscriptionLifecycle -from orchestrator.workflow import StepList, begin -from orchestrator.workflows.steps import set_status -from orchestrator.workflows.utils import modify_initial_input_form_generator, modify_workflow +from orchestrator.core.types import SubscriptionLifecycle +from orchestrator.core.workflow import StepList, begin +from orchestrator.core.workflows.steps import set_status +from orchestrator.core.workflows.utils import modify_initial_input_form_generator, modify_workflow from workflows.node.shared.steps import update_interfaces diff --git a/workflows/node/shared/steps.py b/workflows/node/shared/steps.py index 5ed4f29..16fd061 100644 --- a/workflows/node/shared/steps.py +++ b/workflows/node/shared/steps.py @@ -12,7 +12,7 @@ # limitations under the License. from typing import Callable, List, Tuple -from orchestrator.workflow import StepList, conditional, step +from orchestrator.core.workflow import StepList, conditional, step from products.product_types.node import Node, NodeProvisioning from products.services.netbox.netbox import build_payload diff --git a/workflows/node/terminate_node.py b/workflows/node/terminate_node.py index 9eb77cb..f39740e 100644 --- a/workflows/node/terminate_node.py +++ b/workflows/node/terminate_node.py @@ -12,9 +12,9 @@ # limitations under the License. -from orchestrator.forms import FormPage -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import terminate_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import terminate_workflow from products.product_types.node import Node from pydantic_forms.types import InputForm, State, UUIDstr diff --git a/workflows/node/validate_node.py b/workflows/node/validate_node.py index 4e2b501..a7e9db7 100644 --- a/workflows/node/validate_node.py +++ b/workflows/node/validate_node.py @@ -13,8 +13,8 @@ from deepdiff import DeepDiff -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import validate_workflow +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import validate_workflow from products.product_types.node import Node from products.services.netbox.netbox import build_payload diff --git a/workflows/nsip2p/create_nsip2p.py b/workflows/nsip2p/create_nsip2p.py index f6acb77..f68f22c 100644 --- a/workflows/nsip2p/create_nsip2p.py +++ b/workflows/nsip2p/create_nsip2p.py @@ -17,11 +17,11 @@ from typing import Annotated, TypeAlias, cast from more_itertools import unzip -from orchestrator.forms import FormPage -from orchestrator.types import SubscriptionLifecycle -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.steps import store_process_subscription -from orchestrator.workflows.utils import create_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.types import SubscriptionLifecycle +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.steps import store_process_subscription +from orchestrator.core.workflows.utils import create_workflow from pydantic import AfterValidator, ConfigDict from pydantic_core.core_schema import ValidationInfo diff --git a/workflows/nsip2p/modify_nsip2p.py b/workflows/nsip2p/modify_nsip2p.py index 0c1e90c..c462f5d 100644 --- a/workflows/nsip2p/modify_nsip2p.py +++ b/workflows/nsip2p/modify_nsip2p.py @@ -11,9 +11,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -from orchestrator.forms import FormPage -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import ensure_provisioning_status, modify_workflow, reconcile_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import ensure_provisioning_status, modify_workflow, reconcile_workflow from products.product_types.nsip2p import Nsip2p, Nsip2pProvisioning from products.services.description import description diff --git a/workflows/nsip2p/terminate_nsip2p.py b/workflows/nsip2p/terminate_nsip2p.py index 1b630f3..5336aa0 100644 --- a/workflows/nsip2p/terminate_nsip2p.py +++ b/workflows/nsip2p/terminate_nsip2p.py @@ -11,10 +11,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -from orchestrator.forms import FormPage -from orchestrator.forms.validators import DisplaySubscription -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import terminate_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.forms.validators import DisplaySubscription +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import terminate_workflow from products import Nsip2p from pydantic_forms.types import InputForm, UUIDstr diff --git a/workflows/nsip2p/validate_nsip2p.py b/workflows/nsip2p/validate_nsip2p.py index 6ba1858..b2b6dd0 100644 --- a/workflows/nsip2p/validate_nsip2p.py +++ b/workflows/nsip2p/validate_nsip2p.py @@ -11,8 +11,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import validate_workflow +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import validate_workflow from products.product_types.nsip2p import Nsip2p from pydantic_forms.types import State diff --git a/workflows/nsistp/create_nsistp.py b/workflows/nsistp/create_nsistp.py index e4d98a7..924ce9d 100644 --- a/workflows/nsistp/create_nsistp.py +++ b/workflows/nsistp/create_nsistp.py @@ -17,12 +17,12 @@ from typing import Annotated, TypeAlias, cast import structlog -from orchestrator.forms import FormPage -from orchestrator.forms.validators import Divider, Label -from orchestrator.types import SubscriptionLifecycle -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.steps import store_process_subscription -from orchestrator.workflows.utils import create_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.forms.validators import Divider, Label +from orchestrator.core.types import SubscriptionLifecycle +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.steps import store_process_subscription +from orchestrator.core.workflows.utils import create_workflow from pydantic import AfterValidator, ConfigDict, model_validator from nwastdlib.vlans import VlanRanges diff --git a/workflows/nsistp/modify_nsistp.py b/workflows/nsistp/modify_nsistp.py index 21426fe..12b1600 100644 --- a/workflows/nsistp/modify_nsistp.py +++ b/workflows/nsistp/modify_nsistp.py @@ -13,10 +13,10 @@ import structlog -from orchestrator.forms import FormPage -from orchestrator.forms.validators import Divider -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import ensure_provisioning_status, modify_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.forms.validators import Divider +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import ensure_provisioning_status, modify_workflow from products.product_types.nsistp import Nsistp, NsistpProvisioning from products.services.description import description diff --git a/workflows/nsistp/shared/forms.py b/workflows/nsistp/shared/forms.py index dfa0703..77b7197 100644 --- a/workflows/nsistp/shared/forms.py +++ b/workflows/nsistp/shared/forms.py @@ -20,10 +20,10 @@ from uuid import UUID from annotated_types import BaseMetadata, Ge, Le -from orchestrator.db import ProductTable, db -from orchestrator.db.models import SubscriptionTable -from orchestrator.domain.base import SubscriptionModel -from orchestrator.types import SubscriptionLifecycle +from orchestrator.core.db import ProductTable, db +from orchestrator.core.db.models import SubscriptionTable +from orchestrator.core.domain.base import SubscriptionModel +from orchestrator.core.types import SubscriptionLifecycle from pydantic import AfterValidator, Field, ValidationInfo from sqlalchemy import select from typing_extensions import Doc diff --git a/workflows/nsistp/shared/shared.py b/workflows/nsistp/shared/shared.py index 09e1fb9..aec67a9 100644 --- a/workflows/nsistp/shared/shared.py +++ b/workflows/nsistp/shared/shared.py @@ -16,7 +16,7 @@ from uuid import UUID import structlog -from orchestrator.db import SubscriptionTable +from orchestrator.core.db import SubscriptionTable logger = structlog.get_logger(__name__) diff --git a/workflows/nsistp/terminate_nsistp.py b/workflows/nsistp/terminate_nsistp.py index 6b6a2fe..f64da64 100644 --- a/workflows/nsistp/terminate_nsistp.py +++ b/workflows/nsistp/terminate_nsistp.py @@ -13,10 +13,10 @@ import structlog -from orchestrator.forms import FormPage -from orchestrator.forms.validators import DisplaySubscription -from orchestrator.workflow import StepList, begin -from orchestrator.workflows.utils import terminate_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.forms.validators import DisplaySubscription +from orchestrator.core.workflow import StepList, begin +from orchestrator.core.workflows.utils import terminate_workflow from pydantic_forms.types import InputForm, UUIDstr diff --git a/workflows/nsistp/validate_nsistp.py b/workflows/nsistp/validate_nsistp.py index c66c82f..6f78e2f 100644 --- a/workflows/nsistp/validate_nsistp.py +++ b/workflows/nsistp/validate_nsistp.py @@ -13,8 +13,8 @@ import structlog -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import validate_workflow +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import validate_workflow from products.product_types.nsistp import Nsistp from pydantic_forms.types import State diff --git a/workflows/port/create_port.py b/workflows/port/create_port.py index 83bf0c2..e479fce 100644 --- a/workflows/port/create_port.py +++ b/workflows/port/create_port.py @@ -17,13 +17,13 @@ from random import randrange from typing import TypeAlias, cast -from orchestrator.forms import FormPage -from orchestrator.services.products import get_product_by_id -from orchestrator.types import SubscriptionLifecycle -from orchestrator.utils.json import json_dumps -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.steps import store_process_subscription -from orchestrator.workflows.utils import create_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.services.products import get_product_by_id +from orchestrator.core.types import SubscriptionLifecycle +from orchestrator.core.utils.json import json_dumps +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.steps import store_process_subscription +from orchestrator.core.workflows.utils import create_workflow from pydantic import ConfigDict from products.product_blocks.port import PortMode diff --git a/workflows/port/modify_port.py b/workflows/port/modify_port.py index 604a116..2cf635e 100644 --- a/workflows/port/modify_port.py +++ b/workflows/port/modify_port.py @@ -12,9 +12,9 @@ # limitations under the License. -from orchestrator.forms import FormPage -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import ensure_provisioning_status, modify_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import ensure_provisioning_status, modify_workflow from products.product_types.port import Port, PortProvisioning from products.services.description import description diff --git a/workflows/port/shared/steps.py b/workflows/port/shared/steps.py index 403109b..9c19c18 100644 --- a/workflows/port/shared/steps.py +++ b/workflows/port/shared/steps.py @@ -12,7 +12,7 @@ # limitations under the License. -from orchestrator.workflow import step +from orchestrator.core.workflow import step from products.product_types.port import Port from products.services.netbox.netbox import build_payload diff --git a/workflows/port/terminate_port.py b/workflows/port/terminate_port.py index 3fa529c..7858da9 100644 --- a/workflows/port/terminate_port.py +++ b/workflows/port/terminate_port.py @@ -12,11 +12,11 @@ # limitations under the License. -from orchestrator.forms import FormPage -from orchestrator.types import SubscriptionLifecycle -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.steps import set_status -from orchestrator.workflows.utils import terminate_workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.types import SubscriptionLifecycle +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.steps import set_status +from orchestrator.core.workflows.utils import terminate_workflow from products.product_types.port import PortProvisioning from pydantic_forms.types import InputForm, State, UUIDstr diff --git a/workflows/port/validate_port.py b/workflows/port/validate_port.py index 18d6f72..8d26d29 100644 --- a/workflows/port/validate_port.py +++ b/workflows/port/validate_port.py @@ -13,8 +13,8 @@ from deepdiff import DeepDiff -from orchestrator.workflow import StepList, begin, step -from orchestrator.workflows.utils import validate_workflow +from orchestrator.core.workflow import StepList, begin, step +from orchestrator.core.workflows.utils import validate_workflow from products.product_types.port import Port from products.services.netbox.netbox import build_payload diff --git a/workflows/shared.py b/workflows/shared.py index 5d9d2e2..21384be 100644 --- a/workflows/shared.py +++ b/workflows/shared.py @@ -19,7 +19,7 @@ import structlog from annotated_types import Ge, Le, doc from deepdiff import DeepDiff -from orchestrator.db import ( +from orchestrator.core.db import ( ProductTable, ResourceTypeTable, SubscriptionInstanceRelationTable, @@ -28,11 +28,11 @@ SubscriptionTable, db, ) -from orchestrator.domain import SubscriptionModel -from orchestrator.domain.base import ProductBlockModel -from orchestrator.forms import FormPage -from orchestrator.services import subscriptions -from orchestrator.types import SubscriptionLifecycle +from orchestrator.core.domain import SubscriptionModel +from orchestrator.core.domain.base import ProductBlockModel +from orchestrator.core.forms import FormPage +from orchestrator.core.services import subscriptions +from orchestrator.core.types import SubscriptionLifecycle from pydantic import ConfigDict from pydantic_core.core_schema import ValidationInfo from sqlalchemy import select diff --git a/workflows/tasks/bootstrap_netbox.py b/workflows/tasks/bootstrap_netbox.py index d86071f..8ea5b86 100644 --- a/workflows/tasks/bootstrap_netbox.py +++ b/workflows/tasks/bootstrap_netbox.py @@ -13,9 +13,9 @@ import structlog -from orchestrator import workflow -from orchestrator.targets import Target -from orchestrator.workflow import StepList, done, init, step +from orchestrator.core import workflow +from orchestrator.core.targets import Target +from orchestrator.core.workflow import StepList, done, init, step from pydantic_forms.types import State from services import netbox diff --git a/workflows/tasks/wipe_netbox.py b/workflows/tasks/wipe_netbox.py index a787d40..f78d588 100644 --- a/workflows/tasks/wipe_netbox.py +++ b/workflows/tasks/wipe_netbox.py @@ -13,10 +13,10 @@ from typing import Annotated import structlog -from orchestrator import workflow -from orchestrator.forms import FormPage -from orchestrator.targets import Target -from orchestrator.workflow import StepList, done, init, step +from orchestrator.core import workflow +from orchestrator.core.forms import FormPage +from orchestrator.core.targets import Target +from orchestrator.core.workflow import StepList, done, init, step from pydantic import AfterValidator, ConfigDict from pydantic_forms.types import FormGenerator, State diff --git a/wsgi.py b/wsgi.py index 765c1e9..8701fff 100644 --- a/wsgi.py +++ b/wsgi.py @@ -12,8 +12,8 @@ # limitations under the License. -from orchestrator import OrchestratorCore -from orchestrator.settings import AppSettings +from orchestrator.core import OrchestratorCore +from orchestrator.core.settings import AppSettings import products # noqa: F401 Side-effects import workflows # noqa: F401 Side-effects From 1eb4718bd2d343b25f715b2c6949c870155e1724 Mon Sep 17 00:00:00 2001 From: Mark90 Date: Thu, 30 Apr 2026 11:52:42 +0200 Subject: [PATCH 3/4] Update readme --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d19164e..7d9cfc7 100644 --- a/README.md +++ b/README.md @@ -353,8 +353,8 @@ The `wsgi.py` can be as simple as shown below, and can be deployed by a ASGI server like Uvicorn[^5]. ```python -from orchestrator import OrchestratorCore -from orchestrator.settings import AppSettings +from orchestrator.core import OrchestratorCore +from orchestrator.core.settings import AppSettings import products import workflows @@ -373,7 +373,7 @@ uvicorn --host localhost --port 8080 wsgi:app To use the orchestrator command line interface create a `main.py` like below: ```python -from orchestrator.cli.main import app as core_cli +from orchestrator.core.cli.main import app as core_cli if __name__ == "__main__": core_cli() @@ -658,7 +658,7 @@ to be added to the `SUBSCRIPTION_MODEL_REGISTRY`, in `products/__init__.py`, as shown below. ```python -from orchestrator.domain import SUBSCRIPTION_MODEL_REGISTRY +from orchestrator.core.domain import SUBSCRIPTION_MODEL_REGISTRY from products.product_types.core_link import CoreLink SUBSCRIPTION_MODEL_REGISTRY.update( @@ -676,7 +676,7 @@ an argument, see below. Notice that the name of the product and the product type need to match with the subscription model registry. ```python -from orchestrator.migrations.helpers import create +from orchestrator.core.migrations.helpers import create new_products = { "products": { From 7b26a8bbdc37bf71952fcfe0c95884dcb74cee15 Mon Sep 17 00:00:00 2001 From: Mark90 Date: Thu, 30 Apr 2026 18:26:17 +0200 Subject: [PATCH 4/4] Bump orchestrator-core to 5.0.0rc3 --- pyproject.toml | 3 +-- uv.lock | 10 +++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 3e5bb08..a6d8a9d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,8 +5,7 @@ version = "0.1.0" requires-python = "==3.13.*" dependencies = [ "deepdiff==8.6.2", - # TODO: switch back to release once feature/1471-namespace-package is merged: "orchestrator-core==5.0.0rc3", - "orchestrator-core @ git+https://github.com/workfloworchestrator/orchestrator-core.git@feature/1471-namespace-package", + "orchestrator-core==5.0.0rc3", "pynetbox==7.4.1", "rich==13.9.4", ] diff --git a/uv.lock b/uv.lock index 6e9f645..80b2eb2 100644 --- a/uv.lock +++ b/uv.lock @@ -370,7 +370,7 @@ dev = [ [package.metadata] requires-dist = [ { name = "deepdiff", specifier = "==8.6.2" }, - { name = "orchestrator-core", git = "https://github.com/workfloworchestrator/orchestrator-core.git?rev=feature%2F1471-namespace-package" }, + { name = "orchestrator-core", specifier = "==5.0.0rc3" }, { name = "pynetbox", specifier = "==7.4.1" }, { name = "rich", specifier = "==13.9.4" }, ] @@ -985,8 +985,8 @@ wheels = [ [[package]] name = "orchestrator-core" -version = "5.0.0rc2" -source = { git = "https://github.com/workfloworchestrator/orchestrator-core.git?rev=feature%2F1471-namespace-package#b7ab87253eac9f30f29c2d16dffa6c0528743cd4" } +version = "5.0.0rc3" +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "alembic" }, { name = "anyio" }, @@ -1023,6 +1023,10 @@ dependencies = [ { name = "typer" }, { name = "uvicorn", extra = ["standard"] }, ] +sdist = { url = "https://files.pythonhosted.org/packages/07/6e/5ba5564a08873afbf60fb9a4c695218f89c913510f414261fe9b5bd27186/orchestrator_core-5.0.0rc3.tar.gz", hash = "sha256:17a22a67db4f49b58b2b434ef0464a07313aafd13c09f8a3150d3e3e4ccf49cf", size = 350793, upload-time = "2026-04-30T16:24:34.06Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/96/6bdc06a7a35eb636479a2909274965721a16fd4194761a6daa5231ff7118/orchestrator_core-5.0.0rc3-py3-none-any.whl", hash = "sha256:6c2c99f95fc493c592641a069f4422be6d75868fbc986e093a9547145878d690", size = 635598, upload-time = "2026-04-30T16:24:31.291Z" }, +] [[package]] name = "orderly-set"