infrahub-server 1.1.6__py3-none-any.whl → 1.2.0b1__py3-none-any.whl
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.
- infrahub/api/artifact.py +16 -4
- infrahub/api/dependencies.py +8 -0
- infrahub/api/oauth2.py +0 -1
- infrahub/api/oidc.py +0 -1
- infrahub/api/query.py +18 -7
- infrahub/api/schema.py +32 -6
- infrahub/api/transformation.py +12 -5
- infrahub/{message_bus/messages/check_artifact_create.py → artifacts/models.py} +5 -3
- infrahub/{message_bus/operations/check/artifact.py → artifacts/tasks.py} +26 -25
- infrahub/cli/__init__.py +0 -2
- infrahub/cli/db.py +6 -7
- infrahub/cli/events.py +8 -3
- infrahub/cli/git_agent.py +9 -7
- infrahub/cli/tasks.py +4 -6
- infrahub/computed_attribute/models.py +1 -1
- infrahub/computed_attribute/tasks.py +64 -17
- infrahub/computed_attribute/triggers.py +90 -0
- infrahub/config.py +1 -1
- infrahub/context.py +39 -0
- infrahub/core/account.py +5 -8
- infrahub/core/attribute.py +54 -22
- infrahub/core/branch/models.py +4 -4
- infrahub/core/branch/tasks.py +137 -129
- infrahub/core/changelog/__init__.py +0 -0
- infrahub/core/changelog/diff.py +283 -0
- infrahub/core/changelog/models.py +499 -0
- infrahub/core/constants/__init__.py +43 -2
- infrahub/core/constants/infrahubkind.py +1 -0
- infrahub/core/constants/schema.py +2 -0
- infrahub/core/diff/combiner.py +12 -8
- infrahub/core/diff/coordinator.py +49 -70
- infrahub/core/diff/data_check_synchronizer.py +86 -7
- infrahub/core/diff/enricher/aggregated.py +3 -3
- infrahub/core/diff/enricher/cardinality_one.py +7 -7
- infrahub/core/diff/enricher/hierarchy.py +22 -7
- infrahub/core/diff/enricher/labels.py +19 -4
- infrahub/core/diff/enricher/path_identifier.py +7 -9
- infrahub/core/diff/enricher/summary_counts.py +3 -1
- infrahub/core/diff/merger/merger.py +8 -4
- infrahub/core/diff/model/path.py +76 -35
- infrahub/core/diff/parent_node_adder.py +78 -0
- infrahub/core/diff/payload_builder.py +13 -2
- infrahub/core/diff/query/all_conflicts.py +6 -3
- infrahub/core/diff/query/artifact.py +1 -1
- infrahub/core/diff/query/delete_query.py +1 -1
- infrahub/core/diff/query/diff_get.py +3 -2
- infrahub/core/diff/query/diff_summary.py +1 -1
- infrahub/core/diff/query/field_specifiers.py +3 -1
- infrahub/core/diff/query/field_summary.py +3 -2
- infrahub/core/diff/query/filters.py +14 -3
- infrahub/core/diff/query/get_conflict_query.py +1 -1
- infrahub/core/diff/query/has_conflicts_query.py +6 -3
- infrahub/core/diff/query/merge.py +3 -3
- infrahub/core/diff/query/{drop_tracking_id.py → merge_tracking_id.py} +4 -4
- infrahub/core/diff/query/roots_metadata.py +9 -2
- infrahub/core/diff/query/save.py +233 -142
- infrahub/core/diff/query/summary_counts_enricher.py +267 -0
- infrahub/core/diff/query/time_range_query.py +3 -2
- infrahub/core/diff/query/update_conflict_query.py +1 -1
- infrahub/core/diff/query_parser.py +49 -24
- infrahub/core/diff/repository/deserializer.py +32 -28
- infrahub/core/diff/repository/repository.py +215 -41
- infrahub/core/diff/tasks.py +13 -12
- infrahub/core/enums.py +1 -1
- infrahub/core/graph/__init__.py +1 -1
- infrahub/core/graph/index.py +3 -0
- infrahub/core/integrity/object_conflict/conflict_recorder.py +1 -1
- infrahub/core/ipam/reconciler.py +1 -1
- infrahub/core/ipam/tasks.py +2 -3
- infrahub/core/manager.py +20 -15
- infrahub/core/merge.py +5 -2
- infrahub/core/migrations/graph/__init__.py +4 -0
- infrahub/core/migrations/graph/m001_add_version_to_graph.py +1 -1
- infrahub/core/migrations/graph/m002_attribute_is_default.py +2 -2
- infrahub/core/migrations/graph/m003_relationship_parent_optional.py +2 -2
- infrahub/core/migrations/graph/m004_add_attr_documentation.py +1 -1
- infrahub/core/migrations/graph/m005_add_rel_read_only.py +1 -1
- infrahub/core/migrations/graph/m006_add_rel_on_delete.py +1 -1
- infrahub/core/migrations/graph/m007_add_rel_allow_override.py +1 -1
- infrahub/core/migrations/graph/m008_add_human_friendly_id.py +1 -1
- infrahub/core/migrations/graph/m009_add_generate_profile_attr.py +1 -1
- infrahub/core/migrations/graph/m010_add_generate_profile_attr_generic.py +1 -1
- infrahub/core/migrations/graph/m011_remove_profile_relationship_schema.py +2 -2
- infrahub/core/migrations/graph/m012_convert_account_generic.py +12 -23
- infrahub/core/migrations/graph/m013_convert_git_password_credential.py +7 -11
- infrahub/core/migrations/graph/m014_remove_index_attr_value.py +2 -2
- infrahub/core/migrations/graph/m015_diff_format_update.py +1 -1
- infrahub/core/migrations/graph/m016_diff_delete_bug_fix.py +1 -1
- infrahub/core/migrations/graph/m017_add_core_profile.py +1 -1
- infrahub/core/migrations/graph/m018_uniqueness_nulls.py +2 -2
- infrahub/core/migrations/graph/m019_restore_rels_to_time.py +256 -0
- infrahub/core/migrations/graph/m020_add_generate_template_attr.py +48 -0
- infrahub/core/migrations/query/attribute_add.py +1 -1
- infrahub/core/migrations/query/attribute_rename.py +1 -1
- infrahub/core/migrations/query/delete_element_in_schema.py +1 -1
- infrahub/core/migrations/query/node_duplicate.py +39 -19
- infrahub/core/migrations/query/relationship_duplicate.py +1 -1
- infrahub/core/migrations/query/schema_attribute_update.py +1 -1
- infrahub/core/migrations/schema/node_attribute_remove.py +1 -1
- infrahub/core/migrations/schema/node_remove.py +27 -13
- infrahub/core/migrations/schema/tasks.py +5 -5
- infrahub/core/migrations/shared.py +4 -4
- infrahub/core/models.py +7 -8
- infrahub/core/node/__init__.py +170 -46
- infrahub/core/node/base.py +1 -1
- infrahub/core/node/constraints/grouped_uniqueness.py +9 -2
- infrahub/core/node/delete_validator.py +4 -4
- infrahub/core/node/ipam.py +13 -8
- infrahub/core/node/permissions.py +4 -0
- infrahub/core/node/resource_manager/ip_prefix_pool.py +8 -5
- infrahub/core/node/standard.py +3 -5
- infrahub/core/property.py +1 -1
- infrahub/core/protocols.py +6 -0
- infrahub/core/protocols_base.py +4 -2
- infrahub/core/query/__init__.py +2 -5
- infrahub/core/query/attribute.py +9 -9
- infrahub/core/query/branch.py +5 -5
- infrahub/core/query/delete.py +1 -1
- infrahub/core/query/diff.py +45 -7
- infrahub/core/query/ipam.py +4 -4
- infrahub/core/query/node.py +19 -14
- infrahub/core/query/relationship.py +213 -26
- infrahub/core/query/resource_manager.py +13 -11
- infrahub/core/query/standard_node.py +6 -6
- infrahub/core/query/task.py +3 -3
- infrahub/core/query/task_log.py +1 -1
- infrahub/core/query/utils.py +5 -5
- infrahub/core/registry.py +0 -2
- infrahub/core/relationship/constraints/count.py +1 -1
- infrahub/core/relationship/constraints/peer_kind.py +1 -1
- infrahub/core/relationship/model.py +76 -38
- infrahub/core/schema/__init__.py +6 -4
- infrahub/core/schema/attribute_schema.py +8 -0
- infrahub/core/schema/basenode_schema.py +13 -3
- infrahub/core/schema/definitions/core/__init__.py +153 -0
- infrahub/core/schema/definitions/core/account.py +168 -0
- infrahub/core/schema/definitions/core/artifact.py +127 -0
- infrahub/core/schema/definitions/core/builtin.py +21 -0
- infrahub/core/schema/definitions/core/check.py +60 -0
- infrahub/core/schema/definitions/core/generator.py +96 -0
- infrahub/core/schema/definitions/core/graphql_query.py +77 -0
- infrahub/core/schema/definitions/core/group.py +105 -0
- infrahub/core/schema/definitions/core/ipam.py +252 -0
- infrahub/core/schema/definitions/core/lineage.py +17 -0
- infrahub/core/schema/definitions/core/menu.py +46 -0
- infrahub/core/schema/definitions/core/permission.py +161 -0
- infrahub/core/schema/definitions/core/profile.py +29 -0
- infrahub/core/schema/definitions/core/propose_change.py +88 -0
- infrahub/core/schema/definitions/core/propose_change_comment.py +188 -0
- infrahub/core/schema/definitions/core/propose_change_validator.py +326 -0
- infrahub/core/schema/definitions/core/repository.py +280 -0
- infrahub/core/schema/definitions/core/resource_pool.py +180 -0
- infrahub/core/schema/definitions/core/template.py +12 -0
- infrahub/core/schema/definitions/core/transform.py +87 -0
- infrahub/core/schema/definitions/core/webhook.py +108 -0
- infrahub/core/schema/definitions/internal.py +16 -0
- infrahub/core/schema/generated/genericnode_schema.py +5 -0
- infrahub/core/schema/generated/node_schema.py +5 -0
- infrahub/core/schema/generic_schema.py +5 -1
- infrahub/core/schema/manager.py +45 -42
- infrahub/core/schema/node_schema.py +4 -0
- infrahub/core/schema/profile_schema.py +4 -0
- infrahub/core/schema/relationship_schema.py +10 -2
- infrahub/core/schema/schema_branch.py +260 -16
- infrahub/core/schema/template_schema.py +36 -0
- infrahub/core/task/user_task.py +7 -5
- infrahub/core/timestamp.py +3 -3
- infrahub/core/utils.py +3 -2
- infrahub/core/validators/attribute/choices.py +1 -1
- infrahub/core/validators/attribute/enum.py +1 -1
- infrahub/core/validators/attribute/kind.py +1 -1
- infrahub/core/validators/attribute/length.py +1 -1
- infrahub/core/validators/attribute/optional.py +1 -1
- infrahub/core/validators/attribute/regex.py +1 -1
- infrahub/core/validators/attribute/unique.py +1 -1
- infrahub/core/validators/checks_runner.py +37 -0
- infrahub/core/validators/node/generate_profile.py +1 -1
- infrahub/core/validators/node/hierarchy.py +1 -1
- infrahub/core/validators/query.py +1 -1
- infrahub/core/validators/relationship/count.py +1 -1
- infrahub/core/validators/relationship/optional.py +1 -1
- infrahub/core/validators/relationship/peer.py +1 -1
- infrahub/core/validators/tasks.py +8 -6
- infrahub/core/validators/uniqueness/query.py +20 -17
- infrahub/database/__init__.py +16 -2
- infrahub/database/memgraph.py +1 -1
- infrahub/dependencies/builder/constraint/grouped/node_runner.py +0 -2
- infrahub/dependencies/builder/diff/combiner.py +1 -1
- infrahub/dependencies/builder/diff/conflicts_enricher.py +1 -1
- infrahub/dependencies/builder/diff/coordinator.py +0 -2
- infrahub/dependencies/builder/diff/deserializer.py +4 -2
- infrahub/dependencies/builder/diff/enricher/hierarchy.py +3 -1
- infrahub/dependencies/builder/diff/enricher/summary_counts.py +1 -1
- infrahub/dependencies/builder/diff/parent_node_adder.py +8 -0
- infrahub/events/artifact_action.py +76 -0
- infrahub/events/branch_action.py +50 -21
- infrahub/events/group_action.py +117 -0
- infrahub/events/models.py +164 -51
- infrahub/events/node_action.py +70 -8
- infrahub/events/repository_action.py +8 -8
- infrahub/events/schema_action.py +21 -8
- infrahub/exceptions.py +9 -0
- infrahub/generators/models.py +1 -0
- infrahub/generators/tasks.py +34 -15
- infrahub/git/base.py +3 -5
- infrahub/git/constants.py +0 -1
- infrahub/git/integrator.py +60 -36
- infrahub/git/models.py +80 -1
- infrahub/git/repository.py +7 -8
- infrahub/git/tasks.py +432 -112
- infrahub/git_credential/helper.py +2 -3
- infrahub/graphql/analyzer.py +572 -11
- infrahub/graphql/app.py +34 -26
- infrahub/graphql/auth/query_permission_checker/anonymous_checker.py +5 -5
- infrahub/graphql/auth/query_permission_checker/default_branch_checker.py +4 -4
- infrahub/graphql/auth/query_permission_checker/merge_operation_checker.py +4 -4
- infrahub/graphql/auth/query_permission_checker/object_permission_checker.py +28 -35
- infrahub/graphql/auth/query_permission_checker/super_admin_checker.py +5 -5
- infrahub/graphql/context.py +33 -0
- infrahub/graphql/enums.py +1 -1
- infrahub/graphql/initialization.py +5 -1
- infrahub/graphql/loaders/node.py +2 -2
- infrahub/graphql/manager.py +63 -63
- infrahub/graphql/mutations/account.py +20 -13
- infrahub/graphql/mutations/artifact_definition.py +16 -12
- infrahub/graphql/mutations/branch.py +86 -40
- infrahub/graphql/mutations/computed_attribute.py +24 -13
- infrahub/graphql/mutations/diff.py +54 -14
- infrahub/graphql/mutations/diff_conflict.py +14 -8
- infrahub/graphql/mutations/generator.py +83 -0
- infrahub/graphql/mutations/graphql_query.py +19 -11
- infrahub/graphql/mutations/ipam.py +25 -23
- infrahub/graphql/mutations/main.py +243 -50
- infrahub/graphql/mutations/menu.py +10 -10
- infrahub/graphql/mutations/proposed_change.py +36 -28
- infrahub/graphql/mutations/relationship.py +343 -104
- infrahub/graphql/mutations/repository.py +41 -35
- infrahub/graphql/mutations/resource_manager.py +26 -26
- infrahub/graphql/mutations/schema.py +66 -33
- infrahub/graphql/mutations/tasks.py +16 -10
- infrahub/graphql/parser.py +1 -1
- infrahub/graphql/permissions.py +3 -10
- infrahub/graphql/queries/account.py +22 -18
- infrahub/graphql/queries/branch.py +6 -4
- infrahub/graphql/queries/diff/tree.py +63 -52
- infrahub/graphql/queries/event.py +115 -0
- infrahub/graphql/queries/internal.py +3 -3
- infrahub/graphql/queries/ipam.py +23 -18
- infrahub/graphql/queries/relationship.py +11 -10
- infrahub/graphql/queries/resource_manager.py +43 -27
- infrahub/graphql/queries/search.py +9 -8
- infrahub/graphql/queries/status.py +12 -9
- infrahub/graphql/queries/task.py +11 -9
- infrahub/graphql/resolvers/resolver.py +69 -43
- infrahub/graphql/resolvers/single_relationship.py +16 -10
- infrahub/graphql/schema.py +4 -0
- infrahub/graphql/subscription/__init__.py +1 -1
- infrahub/graphql/subscription/events.py +1 -1
- infrahub/graphql/subscription/graphql_query.py +8 -8
- infrahub/graphql/types/branch.py +2 -2
- infrahub/graphql/types/common.py +6 -1
- infrahub/graphql/types/context.py +12 -0
- infrahub/graphql/types/enums.py +2 -0
- infrahub/graphql/types/event.py +158 -0
- infrahub/graphql/types/interface.py +2 -2
- infrahub/graphql/types/node.py +3 -3
- infrahub/graphql/types/permission.py +2 -2
- infrahub/graphql/types/relationship.py +3 -3
- infrahub/graphql/types/standard_node.py +9 -11
- infrahub/graphql/utils.py +28 -182
- infrahub/groups/tasks.py +2 -3
- infrahub/lock.py +21 -21
- infrahub/menu/generator.py +0 -1
- infrahub/menu/menu.py +116 -138
- infrahub/menu/models.py +4 -4
- infrahub/message_bus/__init__.py +11 -13
- infrahub/message_bus/messages/__init__.py +0 -14
- infrahub/message_bus/messages/check_generator_run.py +1 -3
- infrahub/message_bus/messages/event_branch_merge.py +3 -0
- infrahub/message_bus/messages/proposed_change/request_proposedchange_refreshartifacts.py +6 -0
- infrahub/message_bus/messages/request_proposedchange_pipeline.py +2 -0
- infrahub/message_bus/messages/send_echo_request.py +1 -1
- infrahub/message_bus/operations/__init__.py +4 -13
- infrahub/message_bus/operations/check/__init__.py +2 -2
- infrahub/message_bus/operations/check/generator.py +1 -3
- infrahub/message_bus/operations/event/branch.py +7 -3
- infrahub/message_bus/operations/event/schema.py +1 -1
- infrahub/message_bus/operations/event/worker.py +0 -3
- infrahub/message_bus/operations/finalize/validator.py +1 -1
- infrahub/message_bus/operations/git/file.py +2 -2
- infrahub/message_bus/operations/git/repository.py +1 -1
- infrahub/message_bus/operations/requests/__init__.py +0 -4
- infrahub/message_bus/operations/requests/generator_definition.py +2 -4
- infrahub/message_bus/operations/requests/proposed_change.py +37 -20
- infrahub/message_bus/operations/send/echo.py +1 -1
- infrahub/message_bus/types.py +1 -1
- infrahub/permissions/__init__.py +2 -1
- infrahub/permissions/globals.py +15 -0
- infrahub/permissions/types.py +26 -0
- infrahub/pools/prefix.py +29 -165
- infrahub/prefect_server/__init__.py +0 -0
- infrahub/prefect_server/app.py +18 -0
- infrahub/prefect_server/database.py +20 -0
- infrahub/prefect_server/events.py +28 -0
- infrahub/prefect_server/models.py +46 -0
- infrahub/proposed_change/models.py +18 -1
- infrahub/proposed_change/tasks.py +195 -53
- infrahub/pytest_plugin.py +4 -4
- infrahub/server.py +13 -12
- infrahub/services/__init__.py +148 -63
- infrahub/services/adapters/cache/__init__.py +11 -11
- infrahub/services/adapters/cache/nats.py +42 -25
- infrahub/services/adapters/cache/redis.py +3 -11
- infrahub/services/adapters/event/__init__.py +10 -18
- infrahub/services/adapters/http/__init__.py +0 -5
- infrahub/services/adapters/http/httpx.py +22 -15
- infrahub/services/adapters/message_bus/__init__.py +25 -8
- infrahub/services/adapters/message_bus/local.py +9 -7
- infrahub/services/adapters/message_bus/nats.py +14 -8
- infrahub/services/adapters/message_bus/rabbitmq.py +23 -10
- infrahub/services/adapters/workflow/__init__.py +11 -8
- infrahub/services/adapters/workflow/local.py +27 -6
- infrahub/services/adapters/workflow/worker.py +23 -7
- infrahub/services/component.py +43 -40
- infrahub/services/protocols.py +7 -7
- infrahub/services/scheduler.py +30 -29
- infrahub/storage.py +2 -4
- infrahub/task_manager/constants.py +1 -1
- infrahub/task_manager/event.py +261 -0
- infrahub/task_manager/models.py +147 -3
- infrahub/task_manager/task.py +1 -1
- infrahub/tasks/artifact.py +19 -18
- infrahub/tasks/registry.py +1 -1
- infrahub/tasks/telemetry.py +13 -14
- infrahub/transformations/tasks.py +3 -5
- infrahub/trigger/__init__.py +0 -0
- infrahub/trigger/catalogue.py +16 -0
- infrahub/trigger/constants.py +9 -0
- infrahub/trigger/models.py +105 -0
- infrahub/trigger/tasks.py +91 -0
- infrahub/types.py +1 -1
- infrahub/utils.py +1 -1
- infrahub/webhook/constants.py +0 -2
- infrahub/webhook/models.py +161 -40
- infrahub/webhook/tasks.py +123 -202
- infrahub/webhook/triggers.py +27 -0
- infrahub/workers/infrahub_async.py +36 -25
- infrahub/workers/utils.py +63 -0
- infrahub/workflows/catalogue.py +71 -52
- infrahub/workflows/initialization.py +14 -8
- infrahub/workflows/models.py +28 -4
- infrahub/workflows/utils.py +1 -1
- infrahub_sdk/client.py +8 -0
- infrahub_sdk/ctl/branch.py +3 -2
- infrahub_sdk/ctl/check.py +3 -3
- infrahub_sdk/ctl/cli_commands.py +16 -11
- infrahub_sdk/ctl/exceptions.py +0 -6
- infrahub_sdk/ctl/exporter.py +1 -1
- infrahub_sdk/ctl/generator.py +5 -5
- infrahub_sdk/ctl/importer.py +3 -2
- infrahub_sdk/ctl/menu.py +1 -1
- infrahub_sdk/ctl/object.py +1 -1
- infrahub_sdk/ctl/repository.py +23 -15
- infrahub_sdk/ctl/schema.py +2 -2
- infrahub_sdk/ctl/utils.py +4 -19
- infrahub_sdk/ctl/validate.py +2 -1
- infrahub_sdk/exceptions.py +12 -0
- infrahub_sdk/generator.py +3 -0
- infrahub_sdk/node.py +4 -4
- infrahub_sdk/protocols.py +21 -8
- infrahub_sdk/schema/__init__.py +14 -2
- infrahub_sdk/schema/main.py +7 -0
- infrahub_sdk/task/__init__.py +1 -0
- infrahub_sdk/task/constants.py +3 -0
- infrahub_sdk/task/exceptions.py +25 -0
- infrahub_sdk/task/manager.py +545 -0
- infrahub_sdk/task/models.py +74 -0
- infrahub_sdk/timestamp.py +134 -33
- infrahub_sdk/utils.py +39 -1
- infrahub_sdk/yaml.py +2 -3
- {infrahub_server-1.1.6.dist-info → infrahub_server-1.2.0b1.dist-info}/METADATA +47 -12
- infrahub_server-1.2.0b1.dist-info/RECORD +725 -0
- infrahub_testcontainers/container.py +14 -6
- infrahub_testcontainers/docker-compose.test.yml +24 -5
- infrahub_testcontainers/haproxy.cfg +43 -0
- infrahub_testcontainers/helpers.py +85 -1
- infrahub/core/branch/constants.py +0 -2
- infrahub/core/schema/definitions/core.py +0 -2274
- infrahub/graphql/query.py +0 -52
- infrahub/message_bus/messages/check_repository_checkdefinition.py +0 -20
- infrahub/message_bus/messages/check_repository_mergeconflicts.py +0 -16
- infrahub/message_bus/messages/check_repository_usercheck.py +0 -26
- infrahub/message_bus/messages/request_artifactdefinition_check.py +0 -17
- infrahub/message_bus/messages/request_repository_checks.py +0 -12
- infrahub/message_bus/messages/request_repository_userchecks.py +0 -18
- infrahub/message_bus/operations/check/repository.py +0 -293
- infrahub/message_bus/operations/requests/artifact_definition.py +0 -148
- infrahub/message_bus/operations/requests/repository.py +0 -133
- infrahub/schema/constants.py +0 -1
- infrahub/schema/tasks.py +0 -76
- infrahub/services/adapters/database/__init__.py +0 -9
- infrahub_sdk/ctl/_file.py +0 -13
- infrahub_server-1.1.6.dist-info/RECORD +0 -681
- /infrahub/{schema → artifacts}/__init__.py +0 -0
- {infrahub_server-1.1.6.dist-info → infrahub_server-1.2.0b1.dist-info}/LICENSE.txt +0 -0
- {infrahub_server-1.1.6.dist-info → infrahub_server-1.2.0b1.dist-info}/WHEEL +0 -0
- {infrahub_server-1.1.6.dist-info → infrahub_server-1.2.0b1.dist-info}/entry_points.txt +0 -0
infrahub/core/merge.py
CHANGED
|
@@ -19,6 +19,7 @@ if TYPE_CHECKING:
|
|
|
19
19
|
from infrahub.core.branch import Branch
|
|
20
20
|
from infrahub.core.diff.coordinator import DiffCoordinator
|
|
21
21
|
from infrahub.core.diff.merger.merger import DiffMerger
|
|
22
|
+
from infrahub.core.diff.model.path import EnrichedDiffRoot
|
|
22
23
|
from infrahub.core.diff.repository.repository import DiffRepository
|
|
23
24
|
from infrahub.core.models import SchemaUpdateConstraintInfo, SchemaUpdateMigrationInfo
|
|
24
25
|
from infrahub.core.schema.manager import SchemaDiff
|
|
@@ -26,6 +27,7 @@ if TYPE_CHECKING:
|
|
|
26
27
|
from infrahub.database import InfrahubDatabase
|
|
27
28
|
from infrahub.services import InfrahubServices
|
|
28
29
|
|
|
30
|
+
|
|
29
31
|
log = get_logger()
|
|
30
32
|
|
|
31
33
|
|
|
@@ -172,7 +174,7 @@ class BranchMerger:
|
|
|
172
174
|
async def merge(
|
|
173
175
|
self,
|
|
174
176
|
at: Optional[Union[str, Timestamp]] = None,
|
|
175
|
-
) ->
|
|
177
|
+
) -> EnrichedDiffRoot:
|
|
176
178
|
"""Merge the current branch into main."""
|
|
177
179
|
if self.source_branch.name == registry.default_branch:
|
|
178
180
|
raise ValidationError(f"Unable to merge the branch '{self.source_branch.name}' into itself")
|
|
@@ -198,8 +200,9 @@ class BranchMerger:
|
|
|
198
200
|
# TODO need to find a way to properly communicate back to the user any issue that could come up during the merge
|
|
199
201
|
# From the Graph or From the repositories
|
|
200
202
|
self._merge_at = Timestamp(at)
|
|
201
|
-
await self.diff_merger.merge_graph(at=self._merge_at)
|
|
203
|
+
branch_diff = await self.diff_merger.merge_graph(at=self._merge_at)
|
|
202
204
|
await self.merge_repositories()
|
|
205
|
+
return branch_diff
|
|
203
206
|
|
|
204
207
|
async def rollback(self) -> None:
|
|
205
208
|
await self.diff_merger.rollback(at=self._merge_at)
|
|
@@ -20,6 +20,8 @@ from .m015_diff_format_update import Migration015
|
|
|
20
20
|
from .m016_diff_delete_bug_fix import Migration016
|
|
21
21
|
from .m017_add_core_profile import Migration017
|
|
22
22
|
from .m018_uniqueness_nulls import Migration018
|
|
23
|
+
from .m019_restore_rels_to_time import Migration019
|
|
24
|
+
from .m020_add_generate_template_attr import Migration020
|
|
23
25
|
|
|
24
26
|
if TYPE_CHECKING:
|
|
25
27
|
from infrahub.core.root import Root
|
|
@@ -45,6 +47,8 @@ MIGRATIONS: list[type[Union[GraphMigration, InternalSchemaMigration, ArbitraryMi
|
|
|
45
47
|
Migration016,
|
|
46
48
|
Migration017,
|
|
47
49
|
Migration018,
|
|
50
|
+
Migration019,
|
|
51
|
+
Migration020,
|
|
48
52
|
]
|
|
49
53
|
|
|
50
54
|
|
|
@@ -16,7 +16,7 @@ class Migration001Query01(Query):
|
|
|
16
16
|
name = "migration_001_01"
|
|
17
17
|
type: QueryType = QueryType.WRITE
|
|
18
18
|
|
|
19
|
-
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None:
|
|
19
|
+
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
|
|
20
20
|
query = """
|
|
21
21
|
MATCH (root:Root)
|
|
22
22
|
SET root.graph_version = 1
|
|
@@ -15,7 +15,7 @@ class Migration002Query01(Query):
|
|
|
15
15
|
name = "migration_002_01"
|
|
16
16
|
type: QueryType = QueryType.WRITE
|
|
17
17
|
|
|
18
|
-
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None:
|
|
18
|
+
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
|
|
19
19
|
query = """
|
|
20
20
|
MATCH (a:AttributeValue)
|
|
21
21
|
WHERE a.is_default IS NULL
|
|
@@ -30,7 +30,7 @@ class Migration002(GraphMigration):
|
|
|
30
30
|
queries: Sequence[type[Query]] = [Migration002Query01]
|
|
31
31
|
minimum_version: int = 1
|
|
32
32
|
|
|
33
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
33
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
34
34
|
result = MigrationResult()
|
|
35
35
|
|
|
36
36
|
return result
|
|
@@ -16,7 +16,7 @@ class Migration003Query01(Query):
|
|
|
16
16
|
name = "migration_003_01"
|
|
17
17
|
type: QueryType = QueryType.WRITE
|
|
18
18
|
|
|
19
|
-
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None:
|
|
19
|
+
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
|
|
20
20
|
at = Timestamp()
|
|
21
21
|
filters, params = at.get_query_filter_path()
|
|
22
22
|
|
|
@@ -49,7 +49,7 @@ class Migration003(GraphMigration):
|
|
|
49
49
|
queries: Sequence[type[Query]] = [Migration003Query01]
|
|
50
50
|
minimum_version: int = 2
|
|
51
51
|
|
|
52
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
52
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
53
53
|
result = MigrationResult()
|
|
54
54
|
|
|
55
55
|
return result
|
|
@@ -43,6 +43,6 @@ class Migration004(InternalSchemaMigration):
|
|
|
43
43
|
]
|
|
44
44
|
return cls(migrations=migrations, **kwargs) # type: ignore[arg-type]
|
|
45
45
|
|
|
46
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
46
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
47
47
|
result = MigrationResult()
|
|
48
48
|
return result
|
|
@@ -35,6 +35,6 @@ class Migration005(InternalSchemaMigration):
|
|
|
35
35
|
]
|
|
36
36
|
return cls(migrations=migrations, **kwargs) # type: ignore[arg-type]
|
|
37
37
|
|
|
38
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
38
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
39
39
|
result = MigrationResult()
|
|
40
40
|
return result
|
|
@@ -35,6 +35,6 @@ class Migration006(InternalSchemaMigration):
|
|
|
35
35
|
]
|
|
36
36
|
return cls(migrations=migrations, **kwargs) # type: ignore[arg-type]
|
|
37
37
|
|
|
38
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
38
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
39
39
|
result = MigrationResult()
|
|
40
40
|
return result
|
|
@@ -43,6 +43,6 @@ class Migration007(InternalSchemaMigration):
|
|
|
43
43
|
]
|
|
44
44
|
return cls(migrations=migrations, **kwargs) # type: ignore[arg-type]
|
|
45
45
|
|
|
46
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
46
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
47
47
|
result = MigrationResult()
|
|
48
48
|
return result
|
|
@@ -43,6 +43,6 @@ class Migration008(InternalSchemaMigration):
|
|
|
43
43
|
]
|
|
44
44
|
return cls(migrations=migrations, **kwargs) # type: ignore[arg-type]
|
|
45
45
|
|
|
46
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
46
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
47
47
|
result = MigrationResult()
|
|
48
48
|
return result
|
|
@@ -35,6 +35,6 @@ class Migration009(InternalSchemaMigration):
|
|
|
35
35
|
]
|
|
36
36
|
return cls(migrations=migrations, **kwargs) # type: ignore[arg-type]
|
|
37
37
|
|
|
38
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
38
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
39
39
|
result = MigrationResult()
|
|
40
40
|
return result
|
|
@@ -35,6 +35,6 @@ class Migration010(InternalSchemaMigration):
|
|
|
35
35
|
]
|
|
36
36
|
return cls(migrations=migrations, **kwargs) # type: ignore[arg-type]
|
|
37
37
|
|
|
38
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
38
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
39
39
|
result = MigrationResult()
|
|
40
40
|
return result
|
|
@@ -16,7 +16,7 @@ class Migration011Query01(Query):
|
|
|
16
16
|
type: QueryType = QueryType.WRITE
|
|
17
17
|
insert_return = False
|
|
18
18
|
|
|
19
|
-
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None:
|
|
19
|
+
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
|
|
20
20
|
query = """
|
|
21
21
|
// get all the SchemaRelationship nodes for 'profiles' relationships
|
|
22
22
|
MATCH (sr_to_delete:SchemaRelationship)-[HAS_ATTRIBUTE]->(:Attribute {name: "name"})-[HAS_VALUE]->(av:AttributeValue {value: "profiles"})
|
|
@@ -42,7 +42,7 @@ class Migration011(GraphMigration):
|
|
|
42
42
|
queries: Sequence[type[Query]] = [Migration011Query01]
|
|
43
43
|
minimum_version: int = 10
|
|
44
44
|
|
|
45
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
45
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
46
46
|
result = MigrationResult()
|
|
47
47
|
|
|
48
48
|
return result
|
|
@@ -54,8 +54,7 @@ class Migration012RenameTypeAttributeData(AttributeRenameQuery):
|
|
|
54
54
|
branch_support=BranchSupportType.AGNOSTIC.value,
|
|
55
55
|
)
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
del kwargs["branch"]
|
|
57
|
+
kwargs.pop("branch", None)
|
|
59
58
|
|
|
60
59
|
super().__init__(new_attr=new_attr, previous_attr=previous_attr, branch=global_branch, **kwargs)
|
|
61
60
|
|
|
@@ -113,8 +112,7 @@ class Migration012AddLabelData(NodeDuplicateQuery):
|
|
|
113
112
|
sync_with_git=False,
|
|
114
113
|
)
|
|
115
114
|
|
|
116
|
-
|
|
117
|
-
del kwargs["branch"]
|
|
115
|
+
kwargs.pop("branch", None)
|
|
118
116
|
|
|
119
117
|
super().__init__(new_node=new_node, previous_node=previous_node, branch=branch, **kwargs)
|
|
120
118
|
|
|
@@ -165,8 +163,7 @@ class Migration012RenameRelationshipAccountTokenData(RelationshipDuplicateQuery)
|
|
|
165
163
|
dst_peer=InfrahubKind.ACCOUNTTOKEN,
|
|
166
164
|
)
|
|
167
165
|
|
|
168
|
-
|
|
169
|
-
del kwargs["branch"]
|
|
166
|
+
kwargs.pop("branch", None)
|
|
170
167
|
|
|
171
168
|
super().__init__(new_rel=new_rel, previous_rel=previous_rel, branch=global_branch, **kwargs)
|
|
172
169
|
|
|
@@ -189,8 +186,7 @@ class Migration012RenameRelationshipRefreshTokenData(RelationshipDuplicateQuery)
|
|
|
189
186
|
dst_peer=InfrahubKind.REFRESHTOKEN,
|
|
190
187
|
)
|
|
191
188
|
|
|
192
|
-
|
|
193
|
-
del kwargs["branch"]
|
|
189
|
+
kwargs.pop("branch", None)
|
|
194
190
|
|
|
195
191
|
super().__init__(new_rel=new_rel, previous_rel=previous_rel, branch=global_branch, **kwargs)
|
|
196
192
|
|
|
@@ -213,8 +209,7 @@ class Migration012RenameRelationshipThreadData(RelationshipDuplicateQuery):
|
|
|
213
209
|
dst_peer=InfrahubKind.THREAD,
|
|
214
210
|
)
|
|
215
211
|
|
|
216
|
-
|
|
217
|
-
del kwargs["branch"]
|
|
212
|
+
kwargs.pop("branch", None)
|
|
218
213
|
|
|
219
214
|
super().__init__(new_rel=new_rel, previous_rel=previous_rel, branch=global_branch, **kwargs)
|
|
220
215
|
|
|
@@ -237,8 +232,7 @@ class Migration012RenameRelationshipCommentData(RelationshipDuplicateQuery):
|
|
|
237
232
|
dst_peer=InfrahubKind.COMMENT,
|
|
238
233
|
)
|
|
239
234
|
|
|
240
|
-
|
|
241
|
-
del kwargs["branch"]
|
|
235
|
+
kwargs.pop("branch", None)
|
|
242
236
|
|
|
243
237
|
super().__init__(new_rel=new_rel, previous_rel=previous_rel, branch=default_branch, **kwargs)
|
|
244
238
|
|
|
@@ -249,8 +243,7 @@ class Migration012DeleteOldElementsSchema(DeleteElementInSchemaQuery):
|
|
|
249
243
|
insert_return = False
|
|
250
244
|
|
|
251
245
|
def __init__(self, **kwargs: Any):
|
|
252
|
-
|
|
253
|
-
del kwargs["branch"]
|
|
246
|
+
kwargs.pop("branch", None)
|
|
254
247
|
|
|
255
248
|
super().__init__(
|
|
256
249
|
element_names=["name", "password", "label", "description", "type", "role", "tokens"],
|
|
@@ -267,8 +260,7 @@ class Migration012UpdateDisplayLabels(SchemaAttributeUpdateQuery):
|
|
|
267
260
|
insert_return = False
|
|
268
261
|
|
|
269
262
|
def __init__(self, **kwargs: Any):
|
|
270
|
-
|
|
271
|
-
del kwargs["branch"]
|
|
263
|
+
kwargs.pop("branch", None)
|
|
272
264
|
|
|
273
265
|
super().__init__(
|
|
274
266
|
attribute_name="display_labels",
|
|
@@ -285,8 +277,7 @@ class Migration012UpdateOrderBy(SchemaAttributeUpdateQuery):
|
|
|
285
277
|
insert_return = False
|
|
286
278
|
|
|
287
279
|
def __init__(self, **kwargs: Any):
|
|
288
|
-
|
|
289
|
-
del kwargs["branch"]
|
|
280
|
+
kwargs.pop("branch", None)
|
|
290
281
|
|
|
291
282
|
super().__init__(
|
|
292
283
|
attribute_name="order_by",
|
|
@@ -303,8 +294,7 @@ class Migration012UpdateDefaultFilter(SchemaAttributeUpdateQuery):
|
|
|
303
294
|
insert_return = False
|
|
304
295
|
|
|
305
296
|
def __init__(self, **kwargs: Any):
|
|
306
|
-
|
|
307
|
-
del kwargs["branch"]
|
|
297
|
+
kwargs.pop("branch", None)
|
|
308
298
|
|
|
309
299
|
super().__init__(
|
|
310
300
|
attribute_name="default_filter",
|
|
@@ -321,8 +311,7 @@ class Migration012UpdateHFID(SchemaAttributeUpdateQuery):
|
|
|
321
311
|
insert_return = False
|
|
322
312
|
|
|
323
313
|
def __init__(self, **kwargs: Any):
|
|
324
|
-
|
|
325
|
-
del kwargs["branch"]
|
|
314
|
+
kwargs.pop("branch", None)
|
|
326
315
|
|
|
327
316
|
super().__init__(
|
|
328
317
|
attribute_name="human_friendly_id",
|
|
@@ -350,7 +339,7 @@ class Migration012(GraphMigration):
|
|
|
350
339
|
]
|
|
351
340
|
minimum_version: int = 11
|
|
352
341
|
|
|
353
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
342
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
354
343
|
result = MigrationResult()
|
|
355
344
|
|
|
356
345
|
return result
|
|
@@ -36,7 +36,7 @@ class Migration013ConvertCoreRepositoryWithCred(Query):
|
|
|
36
36
|
name = "migration_013_convert_repository_with_cred"
|
|
37
37
|
type = QueryType.WRITE
|
|
38
38
|
|
|
39
|
-
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None:
|
|
39
|
+
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
|
|
40
40
|
at = Timestamp()
|
|
41
41
|
filters, params = at.get_query_filter_path()
|
|
42
42
|
|
|
@@ -172,7 +172,7 @@ class Migration013ConvertCoreRepositoryWithoutCred(Query):
|
|
|
172
172
|
name = "migration_013_convert_repository_without_cred"
|
|
173
173
|
type = QueryType.WRITE
|
|
174
174
|
|
|
175
|
-
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None:
|
|
175
|
+
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
|
|
176
176
|
at = Timestamp()
|
|
177
177
|
filters, params = at.get_query_filter_path()
|
|
178
178
|
|
|
@@ -237,8 +237,7 @@ class Migration013DeleteUsernamePasswordGenericSchema(DeleteElementInSchemaQuery
|
|
|
237
237
|
insert_return = False
|
|
238
238
|
|
|
239
239
|
def __init__(self, **kwargs: Any):
|
|
240
|
-
|
|
241
|
-
del kwargs["branch"]
|
|
240
|
+
kwargs.pop("branch", None)
|
|
242
241
|
|
|
243
242
|
super().__init__(
|
|
244
243
|
element_names=["username", "password"],
|
|
@@ -255,8 +254,7 @@ class Migration013DeleteUsernamePasswordReadWriteSchema(DeleteElementInSchemaQue
|
|
|
255
254
|
insert_return = False
|
|
256
255
|
|
|
257
256
|
def __init__(self, **kwargs: Any):
|
|
258
|
-
|
|
259
|
-
del kwargs["branch"]
|
|
257
|
+
kwargs.pop("branch", None)
|
|
260
258
|
|
|
261
259
|
super().__init__(
|
|
262
260
|
element_names=["username", "password"],
|
|
@@ -273,8 +271,7 @@ class Migration013DeleteUsernamePasswordReadOnlySchema(DeleteElementInSchemaQuer
|
|
|
273
271
|
insert_return = False
|
|
274
272
|
|
|
275
273
|
def __init__(self, **kwargs: Any):
|
|
276
|
-
|
|
277
|
-
del kwargs["branch"]
|
|
274
|
+
kwargs.pop("branch", None)
|
|
278
275
|
|
|
279
276
|
super().__init__(
|
|
280
277
|
element_names=["username", "password"],
|
|
@@ -289,8 +286,7 @@ class Migration013AddInternalStatusData(AttributeAddQuery):
|
|
|
289
286
|
type = QueryType.WRITE
|
|
290
287
|
|
|
291
288
|
def __init__(self, **kwargs: Any):
|
|
292
|
-
|
|
293
|
-
del kwargs["branch"]
|
|
289
|
+
kwargs.pop("branch", None)
|
|
294
290
|
|
|
295
291
|
super().__init__(
|
|
296
292
|
node_kind="CoreGenericRepository",
|
|
@@ -315,7 +311,7 @@ class Migration013(GraphMigration):
|
|
|
315
311
|
]
|
|
316
312
|
minimum_version: int = 12
|
|
317
313
|
|
|
318
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
314
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
319
315
|
result = MigrationResult()
|
|
320
316
|
|
|
321
317
|
return result
|
|
@@ -33,12 +33,12 @@ class Migration014(GraphMigration):
|
|
|
33
33
|
try:
|
|
34
34
|
ts.manager.index.init(nodes=[INDEX_TO_DELETE], rels=[])
|
|
35
35
|
await ts.manager.index.drop()
|
|
36
|
-
except Exception as exc:
|
|
36
|
+
except Exception as exc:
|
|
37
37
|
result.errors.append(str(exc))
|
|
38
38
|
return result
|
|
39
39
|
|
|
40
40
|
return result
|
|
41
41
|
|
|
42
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
42
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
43
43
|
result = MigrationResult()
|
|
44
44
|
return result
|
|
@@ -20,7 +20,7 @@ class Migration015(ArbitraryMigration):
|
|
|
20
20
|
name: str = "015_diff_format_update"
|
|
21
21
|
minimum_version: int = 14
|
|
22
22
|
|
|
23
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
23
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
24
24
|
result = MigrationResult()
|
|
25
25
|
|
|
26
26
|
return result
|
|
@@ -20,7 +20,7 @@ class Migration016(ArbitraryMigration):
|
|
|
20
20
|
name: str = "016_diff_delete_bug_fix_update"
|
|
21
21
|
minimum_version: int = 15
|
|
22
22
|
|
|
23
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
23
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
24
24
|
result = MigrationResult()
|
|
25
25
|
|
|
26
26
|
return result
|
|
@@ -22,7 +22,7 @@ class Migration017(InternalSchemaMigration):
|
|
|
22
22
|
minimum_version: int = 16
|
|
23
23
|
migrations: Sequence[SchemaMigration] = []
|
|
24
24
|
|
|
25
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
25
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
26
26
|
result = MigrationResult()
|
|
27
27
|
|
|
28
28
|
return result
|
|
@@ -26,7 +26,7 @@ class Migration018(InternalSchemaMigration):
|
|
|
26
26
|
minimum_version: int = 17
|
|
27
27
|
migrations: Sequence[SchemaMigration] = []
|
|
28
28
|
|
|
29
|
-
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
|
|
29
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
30
30
|
result = MigrationResult()
|
|
31
31
|
|
|
32
32
|
return result
|
|
@@ -52,7 +52,7 @@ class Migration018(InternalSchemaMigration):
|
|
|
52
52
|
|
|
53
53
|
for schema_kind in schema_branch.node_names + schema_branch.generic_names:
|
|
54
54
|
schema = schema_branch.get(name=schema_kind, duplicate=False)
|
|
55
|
-
if not isinstance(schema,
|
|
55
|
+
if not isinstance(schema, NodeSchema | GenericSchema):
|
|
56
56
|
continue
|
|
57
57
|
|
|
58
58
|
schema_constraint_path_groups = schema.get_unique_constraint_schema_attribute_paths(
|