orchestrator-core 2.10.0rc1__tar.gz → 3.0.0rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (641) hide show
  1. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.bumpversion.cfg +1 -1
  2. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.github/workflows/run-linting-tests.yml +0 -7
  3. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.pre-commit-config.yaml +3 -3
  4. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/PKG-INFO +1 -1
  5. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/__init__.py +1 -1
  6. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/api_v1/api.py +24 -3
  7. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/api_v1/endpoints/processes.py +1 -1
  8. orchestrator_core-3.0.0rc1/orchestrator/api/api_v1/endpoints/product_blocks.py +56 -0
  9. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/api_v1/endpoints/products.py +28 -1
  10. orchestrator_core-3.0.0rc1/orchestrator/api/api_v1/endpoints/resource_types.py +56 -0
  11. orchestrator_core-3.0.0rc1/orchestrator/api/api_v1/endpoints/workflows.py +54 -0
  12. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/app.py +3 -2
  13. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/generator/product_block.py +1 -9
  14. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/create_product.j2 +2 -1
  15. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/modify_product.j2 +2 -1
  16. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/shared_workflows.j2 +2 -1
  17. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/terminate_product.j2 +1 -1
  18. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/test_create_workflow.j2 +0 -1
  19. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/test_modify_workflow.j2 +1 -2
  20. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/validate_product.j2 +3 -1
  21. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/helpers/print_helpers.py +1 -1
  22. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/config/assignee.py +1 -1
  23. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/devtools/populator.py +1 -1
  24. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/devtools/scripts/migrate_20.py +11 -106
  25. orchestrator_core-3.0.0rc1/orchestrator/devtools/scripts/migrate_30.py +61 -0
  26. orchestrator_core-3.0.0rc1/orchestrator/devtools/scripts/shared.py +108 -0
  27. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/domain/base.py +1 -2
  28. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/domain/lifecycle.py +2 -1
  29. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/helpers.py +1 -1
  30. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schemas/engine_settings.py +1 -1
  31. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schemas/product.py +4 -0
  32. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schemas/product_block.py +4 -0
  33. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schemas/resource_type.py +4 -0
  34. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schemas/subscription.py +2 -1
  35. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schemas/workflow.py +4 -0
  36. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/services/celery.py +1 -1
  37. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/services/processes.py +2 -1
  38. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/services/products.py +1 -1
  39. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/services/subscriptions.py +2 -1
  40. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/services/tasks.py +2 -1
  41. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/settings.py +1 -1
  42. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/targets.py +1 -1
  43. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/types.py +8 -43
  44. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/errors.py +2 -1
  45. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/state.py +2 -1
  46. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/workflow.py +3 -1
  47. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/workflows/modify_note.py +1 -2
  48. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/workflows/steps.py +2 -1
  49. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/workflows/tasks/cleanup_tasks_log.py +1 -1
  50. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/workflows/tasks/resume_workflows.py +1 -1
  51. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/workflows/tasks/validate_product_type.py +1 -1
  52. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/workflows/tasks/validate_products.py +1 -1
  53. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/workflows/utils.py +2 -2
  54. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/test_product_populator.py +1 -1
  55. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/workflows/create_test_product.py +2 -2
  56. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/api/test_processes_ws.py +1 -1
  57. orchestrator_core-3.0.0rc1/test/unit_tests/api/test_product_blocks.py +58 -0
  58. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/api/test_products.py +30 -0
  59. orchestrator_core-3.0.0rc1/test/unit_tests/api/test_resource_types.py +56 -0
  60. orchestrator_core-3.0.0rc1/test/unit_tests/api/test_workflows.py +57 -0
  61. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example4sub.py +1 -1
  62. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/create_example1.py +2 -1
  63. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/modify_example1.py +2 -1
  64. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/terminate_example1.py +1 -1
  65. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/validate_example1.py +1 -1
  66. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/create_example2.py +2 -1
  67. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/modify_example2.py +2 -1
  68. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/terminate_example2.py +1 -1
  69. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/create_example4.py +2 -1
  70. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/modify_example4.py +2 -1
  71. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/terminate_example4.py +1 -1
  72. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/test_workflow.py +1 -2
  73. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/utils/test_state.py +2 -1
  74. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/workflows/__init__.py +1 -2
  75. orchestrator_core-2.10.0rc1/test/unit_tests/api/test_product_blocks.py +0 -0
  76. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.coveragerc +0 -0
  77. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  78. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  79. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.github/dependabot.yml +0 -0
  80. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.github/workflows/README.md +0 -0
  81. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.github/workflows/build-push-container.yml +0 -0
  82. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.github/workflows/changelog.yml +0 -0
  83. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.github/workflows/codeql-analysis.yml +0 -0
  84. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.github/workflows/gh-pages.yml +0 -0
  85. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.github/workflows/issues.yml +0 -0
  86. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.github/workflows/publish-package.yml +0 -0
  87. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.github/workflows/run-unit-tests.yml +0 -0
  88. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.github/workflows/scheduled-build.yml +0 -0
  89. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.gitignore +0 -0
  90. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/.stignore +0 -0
  91. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/CHANGELOG.md +0 -0
  92. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/Dockerfile +0 -0
  93. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/LICENSE +0 -0
  94. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/NOTICE +0 -0
  95. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/README.md +0 -0
  96. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/codecov.yml +0 -0
  97. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/application/domainmodels.md +0 -0
  98. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/application/forms-frontend.md +0 -0
  99. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/application/tasks.md +0 -0
  100. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/application/workflow.md +0 -0
  101. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/framework.md +0 -0
  102. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/img/base-orchestrator-setup.png +0 -0
  103. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/img/custom-orchestrator-setup.png +0 -0
  104. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/orchestration/img/Custom-orchestrator-ui-using-override.png +0 -0
  105. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/orchestration/img/Standard-orchestrator-ui.png +0 -0
  106. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/orchestration/orchestrator-ui.md +0 -0
  107. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/orchestration/philosophy.md +0 -0
  108. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/backfilling.md +0 -0
  109. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/context.md +0 -0
  110. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/imports.md +0 -0
  111. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/introduction.md +0 -0
  112. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/ip_static.md +0 -0
  113. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/ip_static.png +0 -0
  114. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/l2_point_to_point.md +0 -0
  115. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/l2_point_to_point.png +0 -0
  116. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/l2_vpn.md +0 -0
  117. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/l2_vpn.png +0 -0
  118. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/modelling.md +0 -0
  119. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/node.md +0 -0
  120. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/node.png +0 -0
  121. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/port.md +0 -0
  122. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/port.png +0 -0
  123. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/product_block_graph.md +0 -0
  124. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/product_block_graph.png +0 -0
  125. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/standards.md +0 -0
  126. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/product_modelling/terminology.md +0 -0
  127. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/architecture/tldr.md +0 -0
  128. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/contributing/development.md +0 -0
  129. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/contributing/guidelines.md +0 -0
  130. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/contributing/testing.md +0 -0
  131. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/css/custom.css +0 -0
  132. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/css/style.css +0 -0
  133. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/css/termynal.css +0 -0
  134. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/getting-started/base.md +0 -0
  135. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/getting-started/docker.md +0 -0
  136. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/getting-started/orchestration-ui.md +0 -0
  137. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/getting-started/prepare-source-folder.md +0 -0
  138. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/getting-started/versions.md +0 -0
  139. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/img/WFO-Emblem-White.png +0 -0
  140. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/img/favicon.ico +0 -0
  141. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/index.md +0 -0
  142. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/js/custom.js +0 -0
  143. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/js/termynal.js +0 -0
  144. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/migration-guide/2.0.md +0 -0
  145. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/api.md +0 -0
  146. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/app/app.md +0 -0
  147. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/app/scaling.md +0 -0
  148. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/auth-backend-and-frontend.md +0 -0
  149. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/cli.md +0 -0
  150. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/database.md +0 -0
  151. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/domain_models/generator.md +0 -0
  152. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/domain_models/instantiating.md +0 -0
  153. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/domain_models/model_attributes.md +0 -0
  154. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/domain_models/overview.md +0 -0
  155. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/domain_models/product_blocks.md +0 -0
  156. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/domain_models/product_types.md +0 -0
  157. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/domain_models/properties.md +0 -0
  158. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/domain_models/pydantic_hooks.md +0 -0
  159. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/domain_models/type_casting.md +0 -0
  160. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/domain_models/union_types.md +0 -0
  161. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/domain_models/validation.md +0 -0
  162. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/forms.md +0 -0
  163. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/graphql.md +0 -0
  164. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/python.md +0 -0
  165. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/search.md +0 -0
  166. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/search_overview.png +0 -0
  167. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/serialization.md +0 -0
  168. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/tasks.md +0 -0
  169. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/tests.md +0 -0
  170. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/tldr.md +0 -0
  171. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/websockets.md +0 -0
  172. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/workflows/callbacks.md +0 -0
  173. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/workflows/workflow-lifecycles.md +0 -0
  174. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/reference-docs/workflows/workflow-steps.md +0 -0
  175. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/advanced/bootstrap.md +0 -0
  176. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/advanced/create-your-own.md +0 -0
  177. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/advanced/docker-installation.md +0 -0
  178. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/advanced/domain-models.md +0 -0
  179. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/advanced/execute-workflows.md +0 -0
  180. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/advanced/generator.md +0 -0
  181. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/advanced/l2_point_to_point.png +0 -0
  182. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/advanced/node-create.md +0 -0
  183. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/advanced/node-modify.md +0 -0
  184. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/advanced/node-terminate.md +0 -0
  185. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/advanced/node-validate.md +0 -0
  186. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/advanced/overview.md +0 -0
  187. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/advanced/scenario.md +0 -0
  188. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/advanced/workflow-basics.md +0 -0
  189. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/advanced/workflow-introduction.md +0 -0
  190. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/create-user-group.md +0 -0
  191. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/create-user.md +0 -0
  192. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/database-migration.md +0 -0
  193. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/debian.md +0 -0
  194. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/docker.md +0 -0
  195. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/domain-models.md +0 -0
  196. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/explore.md +0 -0
  197. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/input-forms.md +0 -0
  198. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/macos.md +0 -0
  199. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/modify-user-group.md +0 -0
  200. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/modify-user.md +0 -0
  201. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/register-workflows.md +0 -0
  202. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/start-applications.md +0 -0
  203. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/terminate-user-group.md +0 -0
  204. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/terminate-user.md +0 -0
  205. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/workflow-introduction.md +0 -0
  206. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/beginner/workshop-overview.md +0 -0
  207. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/images/Software-topology.drawio.png +0 -0
  208. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/images/clab_topology.png +0 -0
  209. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/images/metadata_products.png +0 -0
  210. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/images/netbox_devices_active.png +0 -0
  211. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/images/subscriptions.png +0 -0
  212. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/docs/workshops/images/topology.drawio.png +0 -0
  213. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/includes/abbreviations.md +0 -0
  214. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/mkdocs.yml +0 -0
  215. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/mutmut_config.py +0 -0
  216. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/nitpick-style.toml +0 -0
  217. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/__init__.py +0 -0
  218. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/api_v1/__init__.py +0 -0
  219. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/api_v1/endpoints/__init__.py +0 -0
  220. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/api_v1/endpoints/health.py +0 -0
  221. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/api_v1/endpoints/settings.py +0 -0
  222. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py +0 -0
  223. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/api_v1/endpoints/subscriptions.py +0 -0
  224. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/api_v1/endpoints/translations.py +0 -0
  225. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/api_v1/endpoints/user.py +0 -0
  226. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/api_v1/endpoints/ws.py +0 -0
  227. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/error_handling.py +0 -0
  228. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/helpers.py +0 -0
  229. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/api/models.py +0 -0
  230. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/__init__.py +0 -0
  231. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/database.py +0 -0
  232. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/domain_gen_helpers/__init__.py +0 -0
  233. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/domain_gen_helpers/fixed_input_helpers.py +0 -0
  234. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/domain_gen_helpers/helpers.py +0 -0
  235. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/domain_gen_helpers/product_block_helpers.py +0 -0
  236. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/domain_gen_helpers/product_helpers.py +0 -0
  237. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/domain_gen_helpers/resource_type_helpers.py +0 -0
  238. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/domain_gen_helpers/types.py +0 -0
  239. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generate.py +0 -0
  240. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/__init__.py +0 -0
  241. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/custom_templates/README +0 -0
  242. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_create_imports.j2 +0 -0
  243. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_create_input_fields.j2 +0 -0
  244. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_create_steps.j2 +0 -0
  245. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_modify_imports.j2 +0 -0
  246. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_modify_input_fields.j2 +0 -0
  247. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_modify_steps.j2 +0 -0
  248. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_imports.j2 +0 -0
  249. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_input_fields.j2 +0 -0
  250. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/custom_templates/additional_terminate_steps.j2 +0 -0
  251. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/generator/__init__.py +0 -0
  252. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/generator/enums.py +0 -0
  253. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/generator/helpers.py +0 -0
  254. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/generator/migration.py +0 -0
  255. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/generator/product.py +0 -0
  256. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/generator/settings.py +0 -0
  257. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/generator/translations.py +0 -0
  258. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/generator/unittest.py +0 -0
  259. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/generator/validations.py +0 -0
  260. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/generator/workflow.py +0 -0
  261. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/products/workshop/circuit.yaml +0 -0
  262. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/products/workshop/node.yaml +0 -0
  263. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/products/workshop/user.yaml +0 -0
  264. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/products/workshop/user_group.yaml +0 -0
  265. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/additional_create_imports.j2 +0 -0
  266. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/additional_create_steps.j2 +0 -0
  267. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/additional_modify_imports.j2 +0 -0
  268. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/additional_modify_steps.j2 +0 -0
  269. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/additional_terminate_steps.j2 +0 -0
  270. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/constrained_int_definitions.j2 +0 -0
  271. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/create_data_head.j2 +0 -0
  272. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/enums.j2 +0 -0
  273. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/lazy_workflow_instance.j2 +0 -0
  274. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/list_definitions.j2 +0 -0
  275. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/macros.j2 +0 -0
  276. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/new_product_migration.j2 +0 -0
  277. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/product.j2 +0 -0
  278. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/product_block.j2 +0 -0
  279. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/shared_forms.j2 +0 -0
  280. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/subscription_model_registry.j2 +0 -0
  281. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/test_product_type.j2 +0 -0
  282. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/test_terminate_workflow.j2 +1 -1
  283. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/generator/templates/test_validate_workflow.j2 +0 -0
  284. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/helpers/__init__.py +0 -0
  285. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/helpers/input_helpers.py +0 -0
  286. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/main.py +0 -0
  287. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/migrate_domain_models.py +0 -0
  288. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/migrate_tasks.py +0 -0
  289. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/migrate_workflows.py +0 -0
  290. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/migration_helpers.py +0 -0
  291. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/cli/scheduler.py +0 -0
  292. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/config/__init__.py +0 -0
  293. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/__init__.py +0 -0
  294. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/database.py +0 -0
  295. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/filters/__init__.py +0 -0
  296. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/filters/filters.py +0 -0
  297. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/filters/process.py +0 -0
  298. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/filters/product.py +0 -0
  299. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/filters/product_block.py +0 -0
  300. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/filters/resource_type.py +0 -0
  301. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/filters/search_filters/__init__.py +0 -0
  302. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/filters/search_filters/inferred_filter.py +0 -0
  303. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/filters/subscription.py +0 -0
  304. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/filters/workflow.py +0 -0
  305. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/helpers.py +0 -0
  306. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/listeners.py +0 -0
  307. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/loaders.py +0 -0
  308. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/models.py +0 -0
  309. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/range/__init__.py +0 -0
  310. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/range/range.py +0 -0
  311. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/sorting/__init__.py +0 -0
  312. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/sorting/process.py +0 -0
  313. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/sorting/product.py +0 -0
  314. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/sorting/product_block.py +0 -0
  315. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/sorting/resource_type.py +0 -0
  316. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/sorting/sorting.py +0 -0
  317. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/sorting/subscription.py +0 -0
  318. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/db/sorting/workflow.py +0 -0
  319. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/devtools/__init__.py +0 -0
  320. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/devtools/scripts/__init__.py +0 -0
  321. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/distlock/__init__.py +0 -0
  322. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/distlock/distlock_manager.py +0 -0
  323. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/distlock/managers/__init__.py +0 -0
  324. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/distlock/managers/memory_distlock_manager.py +0 -0
  325. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/distlock/managers/redis_distlock_manager.py +0 -0
  326. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/domain/__init__.py +0 -0
  327. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/domain/customer_description.py +0 -0
  328. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/domain/helpers.py +0 -0
  329. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/exception_handlers.py +0 -0
  330. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/forms/__init__.py +0 -0
  331. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/forms/validators/__init__.py +0 -0
  332. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/forms/validators/customer_contact_list.py +0 -0
  333. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/forms/validators/customer_id.py +0 -0
  334. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/forms/validators/display_subscription.py +0 -0
  335. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/forms/validators/network_type_validators.py +0 -0
  336. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/forms/validators/product_id.py +0 -0
  337. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/__init__.py +0 -0
  338. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/autoregistration.py +0 -0
  339. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/extensions/__init__.py +0 -0
  340. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/extensions/stats.py +0 -0
  341. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/loaders/__init__.py +0 -0
  342. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/loaders/subscriptions.py +0 -0
  343. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/mutations/customer_description.py +0 -0
  344. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/mutations/start_process.py +0 -0
  345. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/pagination.py +0 -0
  346. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/resolvers/__init__.py +0 -0
  347. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/resolvers/customer.py +0 -0
  348. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/resolvers/helpers.py +0 -0
  349. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/resolvers/process.py +0 -0
  350. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/resolvers/product.py +0 -0
  351. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/resolvers/product_block.py +0 -0
  352. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/resolvers/resource_type.py +0 -0
  353. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/resolvers/settings.py +0 -0
  354. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/resolvers/subscription.py +0 -0
  355. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/resolvers/version.py +0 -0
  356. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/resolvers/workflow.py +0 -0
  357. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schema.py +0 -0
  358. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schemas/__init__.py +0 -0
  359. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schemas/customer.py +0 -0
  360. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schemas/customer_description.py +0 -0
  361. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schemas/errors.py +0 -0
  362. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schemas/fixed_input.py +0 -0
  363. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schemas/helpers.py +0 -0
  364. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schemas/process.py +0 -0
  365. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schemas/product.py +0 -0
  366. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schemas/product_block.py +0 -0
  367. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schemas/resource_type.py +0 -0
  368. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schemas/settings.py +0 -0
  369. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schemas/strawberry_pydantic_patch.py +0 -0
  370. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schemas/subscription.py +0 -0
  371. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schemas/version.py +0 -0
  372. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/schemas/workflow.py +0 -0
  373. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/types.py +0 -0
  374. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/utils/__init__.py +0 -0
  375. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/utils/create_resolver_error_handler.py +0 -0
  376. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/utils/get_query_loaders.py +0 -0
  377. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/utils/get_selected_fields.py +0 -0
  378. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/utils/get_selected_paths.py +0 -0
  379. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/utils/get_subscription_product_blocks.py +0 -0
  380. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/utils/is_query_detailed.py +0 -0
  381. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/utils/override_class.py +0 -0
  382. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/graphql/utils/to_graphql_result_page.py +0 -0
  383. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/log_config.py +0 -0
  384. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/README +0 -0
  385. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/alembic.ini +0 -0
  386. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/env.py +0 -0
  387. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/script.py.mako +0 -0
  388. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/templates/alembic.ini.j2 +0 -0
  389. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/templates/env.py.j2 +0 -0
  390. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/templates/helpers.py.j2 +0 -0
  391. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2020-10-19_3323bcb934e7_fix_tsv_triggers.py +0 -0
  392. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2020-10-19_a76b9185b334_add_generic_workflows_to_core.py +0 -0
  393. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2020-10-19_c112305b07d3_initial_schema_migration.py +0 -0
  394. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2021-04-06_3c8b9185c221_add_validate_products_task.py +0 -0
  395. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2021-07-01_6896a54e9483_add_product_block_relations.py +0 -0
  396. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2021-11-17_19cdd3ab86f6_fix_parse_websearch.py +0 -0
  397. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2022-02-16_bed6bc0b197a_rename_parent_and_child_block_relations.py +0 -0
  398. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2023-03-06_e05bb1967eff_add_subscriptions_search_view.py +0 -0
  399. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2023-05-25_b1970225392d_add_subscription_metadata_workflow.py +0 -0
  400. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.py +0 -0
  401. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.sql +0 -0
  402. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.py +0 -0
  403. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.sql +0 -0
  404. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.py +0 -0
  405. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.sql +0 -0
  406. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2023-12-06_048219045729_add_workflow_id_to_processes_table.py +0 -0
  407. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.py +0 -0
  408. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.sql +0 -0
  409. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2025-01-08_4c5859620539_add_version_column_to_subscription.py +0 -0
  410. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/migrations/versions/schema/2025-10-19_4fjdn13f83ga_add_validate_product_type_task.py +0 -0
  411. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/py.typed +0 -0
  412. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schedules/__init__.py +0 -0
  413. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schedules/resume_workflows.py +0 -0
  414. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schedules/scheduling.py +0 -0
  415. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schedules/task_vacuum.py +0 -0
  416. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schedules/validate_products.py +0 -0
  417. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schedules/validate_subscriptions.py +0 -0
  418. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schemas/__init__.py +0 -0
  419. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schemas/base.py +0 -0
  420. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schemas/fixed_input.py +0 -0
  421. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schemas/problem_detail.py +0 -0
  422. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schemas/process.py +0 -0
  423. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/schemas/subscription_descriptions.py +0 -0
  424. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/security.py +0 -0
  425. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/services/__init__.py +0 -0
  426. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/services/fixed_inputs.py +0 -0
  427. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/services/process_broadcast_thread.py +0 -0
  428. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/services/resource_types.py +0 -0
  429. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/services/settings.py +0 -0
  430. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/services/subscription_relations.py +0 -0
  431. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/services/translations.py +0 -0
  432. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/services/workflows.py +0 -0
  433. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/__init__.py +0 -0
  434. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/crypt.py +0 -0
  435. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/datetime.py +0 -0
  436. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/deprecation_logger.py +0 -0
  437. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/docs.py +0 -0
  438. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/enrich_process.py +0 -0
  439. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/fixed_inputs.py +0 -0
  440. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/functional.py +0 -0
  441. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/get_subscription_dict.py +0 -0
  442. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/get_updated_properties.py +0 -0
  443. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/helpers.py +0 -0
  444. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/json.py +0 -0
  445. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/redis.py +0 -0
  446. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/search_query.py +0 -0
  447. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/strings.py +0 -0
  448. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/utils/validate_data_version.py +0 -0
  449. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/version.py +0 -0
  450. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/websocket/__init__.py +0 -0
  451. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/websocket/managers/broadcast_websocket_manager.py +0 -0
  452. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/websocket/managers/memory_websocket_manager.py +0 -0
  453. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/websocket/websocket_manager.py +0 -0
  454. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/workflows/__init__.py +0 -0
  455. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/workflows/removed_workflow.py +0 -0
  456. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/workflows/tasks/__init__.py +0 -0
  457. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/orchestrator/workflows/translations/en-GB.json +0 -0
  458. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/pyproject.toml +0 -0
  459. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/setup.cfg +0 -0
  460. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/setup.py +0 -0
  461. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/__init__.py +0 -0
  462. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/acceptance_tests/__init__.py +0 -0
  463. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/acceptance_tests/conftest.py +0 -0
  464. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/__init__.py +0 -0
  465. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/devtools/populator/__init__.py +0 -0
  466. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/main.py +0 -0
  467. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/__init__.py +0 -0
  468. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/product_blocks/test_product_blocks.py +0 -0
  469. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/products/__init__.py +0 -0
  470. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/products/test_product.py +0 -0
  471. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/acceptance_tests/fixtures/test_orchestrator/workflows/__init__.py +0 -0
  472. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/acceptance_tests/test_test_product.py +0 -0
  473. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/__init__.py +0 -0
  474. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/api/__init__.py +0 -0
  475. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/api/test_caching.py +0 -0
  476. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/api/test_health.py +0 -0
  477. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/api/test_helpers.py +0 -0
  478. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/api/test_models.py +0 -0
  479. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/api/test_processes.py +0 -0
  480. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/api/test_settings.py +0 -0
  481. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/api/test_subscription_customer_descriptions.py +0 -0
  482. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/api/test_subscriptions.py +0 -0
  483. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/api/test_ws.py +0 -0
  484. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/__init__.py +0 -0
  485. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/conftest.py +0 -0
  486. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/alembic.ini +0 -0
  487. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/main.py +0 -0
  488. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/migrations/env.py +0 -0
  489. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/migrations/helpers.py +0 -0
  490. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/migrations/script.py.mako +0 -0
  491. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_59e1199aff7f_create_data_head.py +0 -0
  492. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_85be1c80731c_add_example2.py +0 -0
  493. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-02-20_ea9e6c9de75c_add_example1.py +0 -0
  494. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/migrations/versions/schema/2024-06-07_380a5b0c928c_add_example4.py +0 -0
  495. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/products/__init__.py +0 -0
  496. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/__init__.py +0 -0
  497. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example1.py +0 -0
  498. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example2.py +0 -0
  499. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/products/product_blocks/example4.py +0 -0
  500. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/products/product_types/__init__.py +0 -0
  501. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/products/product_types/example1.py +0 -0
  502. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/products/product_types/example2.py +0 -0
  503. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/products/product_types/example4.py +0 -0
  504. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example1.py +0 -0
  505. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example2.py +0 -0
  506. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/domain/product_types/test_example4.py +0 -0
  507. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_create_example1.py +0 -0
  508. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_modify_example1.py +0 -0
  509. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_terminate_example1.py +0 -0
  510. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example1/test_validate_example1.py +0 -0
  511. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_create_example2.py +0 -0
  512. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_modify_example2.py +0 -0
  513. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_terminate_example2.py +0 -0
  514. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example2/test_validate_example2.py +0 -0
  515. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_create_example4.py +0 -0
  516. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_modify_example4.py +0 -0
  517. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_terminate_example4.py +0 -0
  518. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/test/unit_tests/workflows/example4/test_validate_example4.py +0 -0
  519. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/translations/en-GB.json +0 -0
  520. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/workflows/__init__.py +0 -0
  521. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example1/shared/forms.py +0 -0
  522. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example2/shared/forms.py +0 -0
  523. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/workflows/example4/shared/forms.py +0 -0
  524. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate/workflows/shared.py +0 -0
  525. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/generate.sh +0 -0
  526. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/invalid_product_config1.yaml +0 -0
  527. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/invalid_product_config2.yaml +0 -0
  528. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/product_config1.yaml +0 -0
  529. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/product_config2.yaml +0 -0
  530. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/product_config3.yaml +0 -0
  531. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/data/product_config4.yaml +0 -0
  532. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/generator/__init__.py +0 -0
  533. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/generator/test_enums.py +0 -0
  534. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/helpers.py +0 -0
  535. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/test_cli_generate.py +0 -0
  536. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/test_config_validation.py +0 -0
  537. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/test_generate_code.py +0 -0
  538. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/test_migrate_domain_models_with_instances.py +0 -0
  539. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/cli/test_migrate_domain_models_without_instances.py +0 -0
  540. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/config.py +0 -0
  541. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/conftest.py +0 -0
  542. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/db/__init__.py +0 -0
  543. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/db/test_listeners.py +0 -0
  544. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/domain/__init__.py +0 -0
  545. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/domain/test_base.py +0 -0
  546. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/domain/test_base_multiple.py +0 -0
  547. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/domain/test_base_with_list_union.py +0 -0
  548. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/domain/test_base_with_union.py +0 -0
  549. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/domain/test_lifecycle.py +0 -0
  550. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/__init__.py +0 -0
  551. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/processes.py +0 -0
  552. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/__init__.py +0 -0
  553. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/__init__.py +0 -0
  554. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_list_nested.py +0 -0
  555. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_one.py +0 -0
  556. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_one_nested.py +0 -0
  557. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_with_list_union.py +0 -0
  558. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_block_with_union.py +0 -0
  559. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_one.py +0 -0
  560. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_blocks/product_sub_block_two.py +0 -0
  561. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_types/__init__.py +0 -0
  562. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_nested.py +0 -0
  563. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_union.py +0 -0
  564. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_list_union_overlap.py +0 -0
  565. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_one.py +0 -0
  566. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_one_nested.py +0 -0
  567. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_list_union.py +0 -0
  568. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_one.py +0 -0
  569. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_two.py +0 -0
  570. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_sub_union.py +0 -0
  571. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_types/product_type_union.py +0 -0
  572. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/product_types/subscription_relations.py +0 -0
  573. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/products/resource_types.py +0 -0
  574. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/fixtures/workflows.py +0 -0
  575. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/forms/__init__.py +0 -0
  576. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/forms/test_customer_contact_list.py +0 -0
  577. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/forms/test_customer_id.py +0 -0
  578. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/forms/test_display_subscription.py +0 -0
  579. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/forms/test_generic_validators.py +0 -0
  580. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/__init__.py +0 -0
  581. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/conftest.py +0 -0
  582. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/extensions/__init__.py +0 -0
  583. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/extensions/test_stats.py +0 -0
  584. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/mutations/helpers.py +0 -0
  585. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/mutations/test_customer_description.py +0 -0
  586. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/mutations/test_start_process.py +0 -0
  587. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/test_customer.py +0 -0
  588. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/test_process.py +0 -0
  589. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/test_processes.py +0 -0
  590. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/test_product.py +0 -0
  591. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/test_product_blocks.py +0 -0
  592. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/test_resource_types.py +0 -0
  593. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/test_settings.py +0 -0
  594. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/test_sort_and_filter_fields.py +0 -0
  595. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/test_subscription.py +0 -0
  596. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/test_subscription_relations.py +0 -0
  597. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/test_subscriptions.py +0 -0
  598. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/test_version.py +0 -0
  599. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/test_workflows.py +0 -0
  600. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/utils/__init__.py +0 -0
  601. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/utils/fixtures.py +0 -0
  602. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/utils/test_autoregistration.py +0 -0
  603. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/utils/test_get_query_loaders.py +0 -0
  604. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/utils/test_get_selected_paths.py +0 -0
  605. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/utils/test_is_query_detailed.py +0 -0
  606. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/utils/test_is_querying_page_data.py +0 -0
  607. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/graphql/utils/test_override_class.py +0 -0
  608. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/helpers.py +0 -0
  609. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/schedules/__init__.py +0 -0
  610. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/schedules/test_scheduling.py +0 -0
  611. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/services/__init__.py +0 -0
  612. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/services/test_processes.py +0 -0
  613. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/services/test_products.py +0 -0
  614. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/services/test_subscription_relations.py +0 -0
  615. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/services/test_subscriptions.py +0 -0
  616. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/services/test_translations.py +0 -0
  617. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/test_db.py +0 -0
  618. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/test_types.py +0 -0
  619. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/utils/__init__.py +0 -0
  620. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/utils/get_subscription_dict.py +0 -0
  621. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/utils/test_datetime.py +0 -0
  622. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/utils/test_errors.py +0 -0
  623. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/utils/test_functional.py +0 -0
  624. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/utils/test_get_updated_properties.py +0 -0
  625. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/utils/test_json.py +0 -0
  626. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/utils/test_search_query.py +0 -0
  627. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/utils/test_strings.py +0 -0
  628. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/websocket/__init__.py +0 -0
  629. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/websocket/test_broadcast.py +0 -0
  630. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/workflows/conftest.py +0 -0
  631. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/workflows/shared/__init__.py +0 -0
  632. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/workflows/shared/test_validate_subscriptions.py +0 -0
  633. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/workflows/tasks/__init__.py +0 -0
  634. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/workflows/tasks/test_clean_up_task_log.py +0 -0
  635. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/workflows/tasks/test_resume_workflows.py +0 -0
  636. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/workflows/tasks/test_validate_product_type.py +0 -0
  637. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/workflows/tasks/test_validate_products.py +0 -0
  638. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/workflows/test_async_workflow.py +0 -0
  639. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/workflows/test_config_db_code.py +0 -0
  640. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/workflows/test_generic_workflow_steps.py +0 -0
  641. {orchestrator_core-2.10.0rc1 → orchestrator_core-3.0.0rc1}/test/unit_tests/workflows/test_modify_note.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 2.10.0rc1
2
+ current_version = 3.0.0rc1
3
3
  commit = False
4
4
  tag = False
5
5
  parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(rc(?P<build>\d+))?
@@ -29,13 +29,6 @@ jobs:
29
29
  python -m pip install --upgrade pip
30
30
  pip install flit
31
31
  flit install --deps develop --symlink
32
- - name: Check formatting
33
- run: |
34
- black --check .
35
- - name: Lint with ruff
36
- run: |
37
- # stop the build if there are Python syntax errors or undefined names
38
- ruff check .
39
32
  - name: Check with mypy
40
33
  run: |
41
34
  mypy .
@@ -3,7 +3,7 @@ default_language_version:
3
3
  exclude: ^test/unit_tests/cli/data/generate/.*\.py|orchestrator/vendor.*
4
4
  repos:
5
5
  - repo: https://github.com/psf/black
6
- rev: 24.8.0
6
+ rev: 25.1.0
7
7
  hooks:
8
8
  - id: black
9
9
  # - repo: https://github.com/asottile/blacken-docs
@@ -14,12 +14,12 @@ repos:
14
14
  # Disabling since this cannot parse bit shift operators how we've overloaded them and you can't ignore lines.
15
15
  - repo: https://github.com/astral-sh/ruff-pre-commit
16
16
  # Ruff version.
17
- rev: v0.6.1
17
+ rev: v0.9.6
18
18
  hooks:
19
19
  - id: ruff
20
20
  args: [ --fix, --exit-non-zero-on-fix, --show-fixes ]
21
21
  - repo: https://github.com/pre-commit/pre-commit-hooks
22
- rev: v4.6.0
22
+ rev: v5.0.0
23
23
  hooks:
24
24
  - id: trailing-whitespace
25
25
  exclude:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: orchestrator-core
3
- Version: 2.10.0rc1
3
+ Version: 3.0.0rc1
4
4
  Summary: This is the orchestrator workflow engine.
5
5
  Requires-Python: >=3.11,<3.14
6
6
  Classifier: Intended Audience :: Information Technology
@@ -13,7 +13,7 @@
13
13
 
14
14
  """This is the orchestrator workflow engine."""
15
15
 
16
- __version__ = "2.10.0rc1"
16
+ __version__ = "3.0.0rc1"
17
17
 
18
18
  from orchestrator.app import OrchestratorCore
19
19
  from orchestrator.settings import app_settings
@@ -19,12 +19,15 @@ from fastapi.routing import APIRouter
19
19
  from orchestrator.api.api_v1.endpoints import (
20
20
  health,
21
21
  processes,
22
+ product_blocks,
22
23
  products,
24
+ resource_types,
23
25
  settings,
24
26
  subscription_customer_descriptions,
25
27
  subscriptions,
26
28
  translations,
27
29
  user,
30
+ workflows,
28
31
  ws,
29
32
  )
30
33
  from orchestrator.security import authorize
@@ -34,14 +37,32 @@ api_router = APIRouter()
34
37
  api_router.include_router(
35
38
  processes.router, prefix="/processes", tags=["Core", "Processes"], dependencies=[Depends(authorize)]
36
39
  )
40
+ api_router.include_router(
41
+ subscriptions.router,
42
+ prefix="/subscriptions",
43
+ tags=["Core", "Subscriptions"],
44
+ dependencies=[Depends(authorize)],
45
+ )
37
46
  api_router.include_router(processes.ws_router, prefix="/processes", tags=["Core", "Processes"])
38
47
  api_router.include_router(
39
48
  products.router, prefix="/products", tags=["Core", "Product"], dependencies=[Depends(authorize)]
40
49
  )
41
50
  api_router.include_router(
42
- subscriptions.router,
43
- prefix="/subscriptions",
44
- tags=["Core", "Subscriptions"],
51
+ product_blocks.router,
52
+ prefix="/product_blocks",
53
+ tags=["Core", "Product Blocks"],
54
+ dependencies=[Depends(authorize)],
55
+ )
56
+ api_router.include_router(
57
+ resource_types.router,
58
+ prefix="/resource_types",
59
+ tags=["Core", "Resource Types"],
60
+ dependencies=[Depends(authorize)],
61
+ )
62
+ api_router.include_router(
63
+ workflows.router,
64
+ prefix="/workflows",
65
+ tags=["Core", "Workflows"],
45
66
  dependencies=[Depends(authorize)],
46
67
  )
47
68
  api_router.include_router(
@@ -61,7 +61,6 @@ from orchestrator.services.processes import (
61
61
  )
62
62
  from orchestrator.services.settings import get_engine_settings
63
63
  from orchestrator.settings import app_settings
64
- from orchestrator.types import JSON, State
65
64
  from orchestrator.utils.enrich_process import enrich_process
66
65
  from orchestrator.websocket import (
67
66
  WS_CHANNELS,
@@ -70,6 +69,7 @@ from orchestrator.websocket import (
70
69
  websocket_manager,
71
70
  )
72
71
  from orchestrator.workflow import ProcessStatus
72
+ from pydantic_forms.types import JSON, State
73
73
 
74
74
  router = APIRouter()
75
75
 
@@ -0,0 +1,56 @@
1
+ # Copyright 2019-2020 SURF.
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+
14
+ from http import HTTPStatus
15
+ from uuid import UUID
16
+
17
+ from fastapi.param_functions import Body
18
+ from fastapi.routing import APIRouter
19
+
20
+ from orchestrator.api.error_handling import raise_status
21
+ from orchestrator.db import db
22
+ from orchestrator.db.models import ProductBlockTable
23
+ from orchestrator.schemas.product_block import ProductBlockPatchSchema, ProductBlockSchema
24
+
25
+ router = APIRouter()
26
+
27
+
28
+ @router.get("/{product_block_id}", response_model=ProductBlockSchema)
29
+ def get_product_block_description(product_block_id: UUID) -> str:
30
+ product_block = db.session.get(ProductBlockTable, product_block_id)
31
+ if product_block is None:
32
+ raise_status(HTTPStatus.NOT_FOUND)
33
+ return product_block
34
+
35
+
36
+ @router.patch("/{product_block_id}", status_code=HTTPStatus.CREATED, response_model=ProductBlockSchema)
37
+ async def patch_product_block_by_id(
38
+ product_block_id: UUID, data: ProductBlockPatchSchema = Body(...)
39
+ ) -> ProductBlockTable:
40
+ product_block = db.session.get(ProductBlockTable, product_block_id)
41
+ if not product_block:
42
+ raise_status(HTTPStatus.NOT_FOUND, f"Product_block id {product_block_id} not found")
43
+
44
+ return await _patch_product_block_description(data, product_block)
45
+
46
+
47
+ async def _patch_product_block_description(
48
+ data: ProductBlockPatchSchema,
49
+ product_block: ProductBlockTable,
50
+ ) -> ProductBlockTable:
51
+
52
+ updated_properties = data.model_dump(exclude_unset=True)
53
+ description = updated_properties.get("description", product_block.description)
54
+ product_block.description = description
55
+ db.session.commit()
56
+ return product_block
@@ -14,6 +14,7 @@
14
14
  from http import HTTPStatus
15
15
  from uuid import UUID
16
16
 
17
+ from fastapi.param_functions import Body
17
18
  from fastapi.routing import APIRouter
18
19
  from sqlalchemy import select
19
20
  from sqlalchemy.orm import joinedload, selectinload
@@ -21,6 +22,7 @@ from sqlalchemy.orm import joinedload, selectinload
21
22
  from orchestrator.api.error_handling import raise_status
22
23
  from orchestrator.db import ProductBlockTable, ProductTable, db
23
24
  from orchestrator.schemas import ProductSchema
25
+ from orchestrator.schemas.product import ProductPatchSchema
24
26
 
25
27
  router = APIRouter()
26
28
 
@@ -48,6 +50,13 @@ def fetch(tag: str | None = None, product_type: str | None = None) -> list[Produ
48
50
  response_model=ProductSchema,
49
51
  )
50
52
  def product_by_id(product_id: UUID) -> ProductTable:
53
+ product = _product_by_id(product_id)
54
+ if not product:
55
+ raise_status(HTTPStatus.NOT_FOUND, f"Product id {product_id} not found")
56
+ return product
57
+
58
+
59
+ def _product_by_id(product_id: UUID) -> ProductTable | None:
51
60
  stmt = (
52
61
  select(ProductTable)
53
62
  .options(
@@ -57,7 +66,25 @@ def product_by_id(product_id: UUID) -> ProductTable:
57
66
  )
58
67
  .filter(ProductTable.product_id == product_id)
59
68
  )
60
- product = db.session.scalars(stmt).unique().one_or_none()
69
+ return db.session.scalars(stmt).unique().one_or_none()
70
+
71
+
72
+ @router.patch("/{product_id}", status_code=HTTPStatus.CREATED, response_model=ProductSchema)
73
+ async def patch_product_by_id(product_id: UUID, data: ProductPatchSchema = Body(...)) -> ProductTable:
74
+ product = _product_by_id(product_id)
61
75
  if not product:
62
76
  raise_status(HTTPStatus.NOT_FOUND, f"Product id {product_id} not found")
77
+
78
+ return await _patch_product_description(data, product)
79
+
80
+
81
+ async def _patch_product_description(
82
+ data: ProductPatchSchema,
83
+ product: ProductTable,
84
+ ) -> ProductTable:
85
+
86
+ updated_properties = data.model_dump(exclude_unset=True)
87
+ description = updated_properties.get("description", product.description)
88
+ product.description = description
89
+ db.session.commit()
63
90
  return product
@@ -0,0 +1,56 @@
1
+ # Copyright 2019-2020 SURF.
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+
14
+ from http import HTTPStatus
15
+ from uuid import UUID
16
+
17
+ from fastapi.param_functions import Body
18
+ from fastapi.routing import APIRouter
19
+
20
+ from orchestrator.api.error_handling import raise_status
21
+ from orchestrator.db import db
22
+ from orchestrator.db.models import ResourceTypeTable
23
+ from orchestrator.schemas.resource_type import ResourceTypePatchSchema, ResourceTypeSchema
24
+
25
+ router = APIRouter()
26
+
27
+
28
+ @router.get("/{resource_type_id}", response_model=ResourceTypeSchema)
29
+ def get_resource_type_description(resource_type_id: UUID) -> str:
30
+ resource_type = db.session.get(ResourceTypeTable, resource_type_id)
31
+ if resource_type is None:
32
+ raise_status(HTTPStatus.NOT_FOUND)
33
+ return resource_type
34
+
35
+
36
+ @router.patch("/{resource_type_id}", status_code=HTTPStatus.CREATED, response_model=ResourceTypeSchema)
37
+ async def patch_resource_type_by_id(
38
+ resource_type_id: UUID, data: ResourceTypePatchSchema = Body(...)
39
+ ) -> ResourceTypeTable:
40
+ resource_type = db.session.get(ResourceTypeTable, resource_type_id)
41
+ if not resource_type:
42
+ raise_status(HTTPStatus.NOT_FOUND, f"ResourceType id {resource_type_id} not found")
43
+
44
+ return await _patch_resource_type_description(data, resource_type)
45
+
46
+
47
+ async def _patch_resource_type_description(
48
+ data: ResourceTypePatchSchema,
49
+ resource_type: ResourceTypeTable,
50
+ ) -> ResourceTypeTable:
51
+
52
+ updated_properties = data.model_dump(exclude_unset=True)
53
+ description = updated_properties.get("description", resource_type.description)
54
+ resource_type.description = description
55
+ db.session.commit()
56
+ return resource_type
@@ -0,0 +1,54 @@
1
+ # Copyright 2019-2020 SURF.
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+
14
+ from http import HTTPStatus
15
+ from uuid import UUID
16
+
17
+ from fastapi.param_functions import Body
18
+ from fastapi.routing import APIRouter
19
+
20
+ from orchestrator.api.error_handling import raise_status
21
+ from orchestrator.db import db
22
+ from orchestrator.db.models import WorkflowTable
23
+ from orchestrator.schemas.workflow import WorkflowPatchSchema, WorkflowSchema
24
+
25
+ router = APIRouter()
26
+
27
+
28
+ @router.get("/{workflow_id}", response_model=WorkflowSchema)
29
+ def get_workflow_description(workflow_id: UUID) -> str:
30
+ workflow = db.session.get(WorkflowTable, workflow_id)
31
+ if workflow is None:
32
+ raise_status(HTTPStatus.NOT_FOUND)
33
+ return workflow
34
+
35
+
36
+ @router.patch("/{workflow_id}", status_code=HTTPStatus.CREATED, response_model=WorkflowSchema)
37
+ async def patch_workflow_by_id(workflow_id: UUID, data: WorkflowPatchSchema = Body(...)) -> WorkflowTable:
38
+ workflow = db.session.get(WorkflowTable, workflow_id)
39
+ if not workflow:
40
+ raise_status(HTTPStatus.NOT_FOUND, f"Workflow id {workflow_id} not found")
41
+
42
+ return await _patch_workflow_description(data, workflow)
43
+
44
+
45
+ async def _patch_workflow_description(
46
+ data: WorkflowPatchSchema,
47
+ workflow: WorkflowTable,
48
+ ) -> WorkflowTable:
49
+
50
+ updated_properties = data.model_dump(exclude_unset=True)
51
+ description = updated_properties.get("description", workflow.description)
52
+ workflow.description = description
53
+ db.session.commit()
54
+ return workflow
@@ -199,8 +199,9 @@ class OrchestratorCore(FastAPI):
199
199
 
200
200
  def register_graphql(
201
201
  self: "OrchestratorCore",
202
- query: Any = Query,
203
- mutation: Any = Mutation,
202
+ # mypy 1.9 cannot properly inspect these, fixed in 1.15
203
+ query: Any = Query, # type: ignore
204
+ mutation: Any = Mutation, # type: ignore
204
205
  register_models: bool = True,
205
206
  subscription_interface: Any = SubscriptionInterface,
206
207
  graphql_models: StrawberryModelType | None = None,
@@ -11,7 +11,6 @@
11
11
  # See the License for the specific language governing permissions and
12
12
  # limitations under the License.
13
13
 
14
- import re
15
14
  from collections import ChainMap
16
15
  from collections.abc import Mapping
17
16
  from pathlib import Path
@@ -56,15 +55,8 @@ def get_product_block_path(product_block: dict) -> Path:
56
55
 
57
56
 
58
57
  def enrich_product_block(product_block: dict) -> dict:
59
- def to_block_name() -> str:
60
- """Separate block name into words."""
61
- type = product_block["type"]
62
- name = re.sub("(.)([A-Z][a-z]+)", r"\1 \2", type)
63
- return re.sub("([a-z0-9])([A-Z])", r"\1 \2", name)
64
-
65
58
  fields = get_all_fields(product_block)
66
- block_name = product_block.get("block_name", to_block_name())
67
-
59
+ block_name = product_block.get("block_name", product_block.get("type"))
68
60
  return product_block | {
69
61
  "fields": fields,
70
62
  "block_name": block_name,
@@ -7,11 +7,12 @@ from typing import Annotated
7
7
 
8
8
  import structlog
9
9
  from pydantic import AfterValidator, ConfigDict, model_validator
10
+ from pydantic_forms.types import FormGenerator, State, UUIDstr
10
11
 
11
12
  from orchestrator.forms import FormPage
12
13
  from orchestrator.forms.validators import Divider, Label, CustomerId, MigrationSummary
13
14
  from orchestrator.targets import Target
14
- from orchestrator.types import FormGenerator, State, SubscriptionLifecycle, UUIDstr
15
+ from orchestrator.types import SubscriptionLifecycle
15
16
  from orchestrator.workflow import StepList, begin, step
16
17
  from orchestrator.workflows.steps import store_process_subscription
17
18
  from orchestrator.workflows.utils import create_workflow
@@ -6,11 +6,12 @@ from typing import Annotated
6
6
 
7
7
  import structlog
8
8
  from pydantic import AfterValidator, ConfigDict, model_validator
9
+ from pydantic_forms.types import FormGenerator, State, UUIDstr
9
10
  from pydantic_forms.validators import ReadOnlyField
10
11
 
11
12
  from orchestrator.forms import FormPage
12
13
  from orchestrator.forms.validators import CustomerId, Divider
13
- from orchestrator.types import FormGenerator, State, SubscriptionLifecycle, UUIDstr
14
+ from orchestrator.types import SubscriptionLifecycle
14
15
  from orchestrator.workflow import StepList, begin, step
15
16
  from orchestrator.workflows.steps import set_status
16
17
  from orchestrator.workflows.utils import modify_workflow
@@ -1,4 +1,5 @@
1
- from typing import Generator, List, TypeAlias, cast
1
+ from collections.abc import Generator
2
+ from typing import List, TypeAlias, cast
2
3
 
3
4
  from pydantic import ConfigDict
4
5
 
@@ -2,10 +2,10 @@
2
2
 
3
3
  import structlog
4
4
  from pydantic import AfterValidator, ConfigDict, model_validator
5
+ from pydantic_forms.types import InputForm, State, UUIDstr
5
6
 
6
7
  from orchestrator.forms import FormPage
7
8
  from orchestrator.forms.validators import DisplaySubscription
8
- from orchestrator.types import InputForm, State, UUIDstr
9
9
  from orchestrator.workflow import StepList, begin, step
10
10
  from orchestrator.workflows.utils import terminate_workflow
11
11
 
@@ -4,7 +4,6 @@ from orchestrator.db import ProductTable
4
4
  from orchestrator.forms import FormValidationError
5
5
 
6
6
  from test.unit_tests.workflows import assert_complete, extract_state, run_workflow
7
-
8
7
  from {{ product_types_module }}.{{ product.variable }} import {{ product.type }}
9
8
 
10
9
 
@@ -1,9 +1,8 @@
1
1
  import pytest
2
2
  from orchestrator.forms import FormValidationError
3
-
4
3
  from orchestrator.types import SubscriptionLifecycle
5
- from test.unit_tests.workflows import assert_complete, extract_state, run_workflow
6
4
 
5
+ from test.unit_tests.workflows import assert_complete, extract_state, run_workflow
7
6
  from {{ product_types_module }}.{{ product.variable }} import {{ product.type }}
8
7
 
9
8
 
@@ -3,9 +3,11 @@
3
3
  import structlog
4
4
  {% if product.nso_service_id_path %}
5
5
  from deepdiff import DeepDiff
6
+ {% endif %}
7
+ from pydantic_forms.types import State
8
+ {% if product.nso_service_id_path %}
6
9
  from surf.products.services.nso.nso import build_payload
7
10
  {% endif %}
8
- from orchestrator.types import State
9
11
  from orchestrator.workflow import StepList, begin, step
10
12
  from orchestrator.workflows.utils import validate_workflow
11
13
 
@@ -1,7 +1,7 @@
1
1
  from collections.abc import Callable, Iterable
2
2
  from typing import Any
3
3
 
4
- from orchestrator.types import strEnum
4
+ from pydantic_forms.types import strEnum
5
5
 
6
6
 
7
7
  def _esc_str(i: int) -> str:
@@ -13,7 +13,7 @@
13
13
 
14
14
  import strawberry
15
15
 
16
- from orchestrator.types import strEnum
16
+ from pydantic_forms.types import strEnum
17
17
 
18
18
 
19
19
  @strawberry.enum
@@ -26,8 +26,8 @@ import structlog
26
26
  from more_itertools import first, first_true
27
27
 
28
28
  from nwastdlib.url import URL
29
- from orchestrator.types import State
30
29
  from pydantic_forms.types import InputForm as LegacyInputForm
30
+ from pydantic_forms.types import State
31
31
 
32
32
 
33
33
  class JSONSubSchema(TypedDict, total=False):
@@ -6,61 +6,17 @@ Refer to the 2.0 migration guide documentation for background.
6
6
  import re
7
7
  import sys
8
8
  from pathlib import Path
9
- from subprocess import run
10
9
  from typing import Iterable
11
10
 
12
-
13
- def remove_imports(text: str, module: str, symbol: str) -> tuple[str, bool]:
14
- """Find imports and remove them.
15
-
16
- Assumes code is formatted through Black to keep the regex somewhat readable.
17
- """
18
- text_orig = text
19
-
20
- # single import from module (may have a #comment) -> remove line
21
- rgx = r"(from %s import \b%s\b(\s*#[^\n]*)*\n)" % (re.escape(module), symbol)
22
- text = re.sub(rgx, "", text)
23
-
24
- # middle or last of multiple imports from module -> strip symbol
25
- rgx = r"(from %s import .+)(, \b%s\b)" % (re.escape(module), symbol)
26
- text = re.sub(rgx, r"\1", text)
27
-
28
- # first of multiple imports from same module -> strip symbol
29
- rgx = r"(from %s import )\b%s\b, " % (re.escape(module), symbol)
30
- text = re.sub(rgx, r"\1", text)
31
-
32
- # multiline import -> remove line with symbol
33
- rgx_verbose = r"""(?P<before>^from\s%s\simport\s*\([^\n]*\n(?:^[^\n]+,\n)*)
34
- (^\s*\b%s\b,[^\n]*\n)
35
- (?P<after>(?:^[^\n]+,\n)*\)[^\n]*$)"""
36
- text = re.sub(rgx_verbose % (re.escape(module), symbol), r"\g<before>\g<after>", text, flags=re.M | re.X)
37
- return text, text_orig != text
38
-
39
-
40
- def insert_import(text: str, import_stmt: str) -> str:
41
- # Find the first import line and add our line above that
42
- # Rely on ruff & black for formatting
43
- return re.sub(r"(^(?:from .+|import .+)$)", f"{import_stmt}\n" + r"\1", text, count=1, flags=re.M)
44
-
45
-
46
- def find_and_remove_aliases(text: str, symbol: str) -> tuple[str, list[str]]:
47
- """In the given text find aliases of the given symbol and remove them.
48
-
49
- Return updated text and aliases removed.
50
- """
51
- rgx = r"(\b%s as (\w+))" % (symbol,)
52
- aliases = [aliasgroup for fullgroup, aliasgroup in re.findall(rgx, text)]
53
- newtext = re.sub(rgx, symbol, text)
54
- return newtext, aliases
55
-
56
-
57
- def replace_words(text: str, words: list[str], replace: str) -> str:
58
- rgx = r"\b(%s)\b" % ("|".join(words),)
59
- return re.sub(rgx, replace, text)
60
-
61
-
62
- def has_word(text: str, word: str) -> bool:
63
- return bool(re.search(r"\b%s\b" % (word,), text))
11
+ from orchestrator.devtools.scripts.shared import (
12
+ find_and_remove_aliases,
13
+ has_word,
14
+ insert_import,
15
+ migrate,
16
+ move_import,
17
+ remove_imports,
18
+ replace_words,
19
+ )
64
20
 
65
21
 
66
22
  def rewrite_subscription_instance_lists(f: Path) -> list[str]:
@@ -124,17 +80,6 @@ def rewrite_subscription_instance_lists(f: Path) -> list[str]:
124
80
  return names
125
81
 
126
82
 
127
- def move_import(f: Path, symbol: str, old_module: str, new_module: str) -> bool:
128
- text = f.read_text()
129
- text, changed = remove_imports(text, old_module, symbol)
130
- if not changed:
131
- return False
132
- text = insert_import(text, f"from {new_module} import {symbol}")
133
- with f.open(mode="w"):
134
- f.write_text(text)
135
- return True
136
-
137
-
138
83
  re_serializable_property = re.compile(r"^(\s+)(@serializable_property)([^\n]*)\n", flags=re.MULTILINE)
139
84
 
140
85
 
@@ -167,7 +112,7 @@ def replace_serializable_props(f: Path) -> bool:
167
112
  return True
168
113
 
169
114
 
170
- def migrate_file(f: Path) -> int:
115
+ def migrate_file(f: Path) -> bool:
171
116
  imports = {
172
117
  "SI": move_import(f, "SI", "orchestrator.domain.base", "orchestrator.types"),
173
118
  "VlanRanges": move_import(f, "VlanRanges", "orchestrator.utils.vlans", "nwastdlib.vlans"),
@@ -189,46 +134,6 @@ def migrate_file(f: Path) -> int:
189
134
  return bool(lines)
190
135
 
191
136
 
192
- def run_tool(*args: str) -> bool:
193
- cmd = " ".join(args)
194
- try:
195
- r = run(args, capture_output=True) # noqa: S603
196
- if r.returncode == 0:
197
- return True
198
- print(f"{cmd} failed:", r.stdout, r.stderr)
199
- except FileNotFoundError:
200
- print(f"{cmd }failed: could not find executable in the current venv")
201
- return False
202
-
203
-
204
- def migrate(target_dir: Path) -> bool:
205
- abs_path = str(target_dir.resolve())
206
-
207
- def run_tools() -> bool:
208
- return run_tool("ruff", "--fix", abs_path) and run_tool("black", "--quiet", abs_path)
209
-
210
- print(f"\n### Verifing files in {abs_path}... ", end="")
211
- if not run_tools():
212
- print("Failed to verify files, aborting migration. Please resolve the errors.")
213
- return False
214
- print("Ok")
215
-
216
- files_migrated = files_checked = 0
217
- print(f"\n### Migrating files in {abs_path}")
218
- try:
219
- for f in target_dir.glob("**/*.py"):
220
- if migrate_file(f):
221
- files_migrated += 1
222
- files_checked += 1
223
- except KeyboardInterrupt:
224
- print("Interrupted...")
225
-
226
- print(f"\n### Migrated {files_migrated}/{files_checked} files in {abs_path}")
227
-
228
- print(f"\n### Formatting files in {abs_path}")
229
- return run_tools()
230
-
231
-
232
137
  if __name__ == "__main__":
233
138
  try:
234
139
  _target_dir = Path(sys.argv[1])
@@ -237,4 +142,4 @@ if __name__ == "__main__":
237
142
  print("Need a directory as parameter")
238
143
  sys.exit(1)
239
144
 
240
- sys.exit(0 if migrate(_target_dir) else 1)
145
+ sys.exit(0 if migrate(_target_dir, migrate_file) else 1)