infrahub-server 1.1.6__py3-none-any.whl → 1.2.0rc0__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} +2 -4
- 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/tasks.py +63 -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 +53 -21
- infrahub/core/branch/models.py +4 -4
- infrahub/core/branch/tasks.py +89 -130
- infrahub/core/changelog/__init__.py +0 -0
- infrahub/core/changelog/diff.py +232 -0
- infrahub/core/changelog/models.py +488 -0
- infrahub/core/constants/__init__.py +19 -2
- infrahub/core/constants/infrahubkind.py +1 -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 +2 -7
- infrahub/core/diff/enricher/hierarchy.py +5 -3
- infrahub/core/diff/enricher/labels.py +14 -4
- infrahub/core/diff/enricher/path_identifier.py +3 -9
- infrahub/core/diff/enricher/summary_counts.py +3 -1
- infrahub/core/diff/merger/merger.py +8 -4
- infrahub/core/diff/model/path.py +47 -29
- 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 +12 -1
- 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 +151 -66
- infrahub/core/diff/query/summary_counts_enricher.py +220 -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 +24 -25
- infrahub/core/diff/repository/repository.py +76 -20
- infrahub/core/diff/tasks.py +9 -8
- infrahub/core/enums.py +1 -1
- 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 +18 -13
- infrahub/core/merge.py +5 -2
- 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/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 +1 -1
- 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 +1 -1
- 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 +161 -40
- 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 +4 -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 +10 -11
- 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 +66 -26
- infrahub/core/schema/__init__.py +6 -4
- infrahub/core/schema/basenode_schema.py +1 -3
- infrahub/core/schema/definitions/core.py +14 -2
- 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 +2 -2
- infrahub/core/schema/schema_branch.py +248 -14
- infrahub/core/schema/template_schema.py +36 -0
- infrahub/core/task/user_task.py +7 -5
- infrahub/core/timestamp.py +1 -1
- 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 +15 -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 +1 -1
- infrahub/dependencies/builder/diff/enricher/summary_counts.py +1 -1
- infrahub/events/branch_action.py +47 -21
- infrahub/events/group_action.py +73 -0
- infrahub/events/models.py +159 -51
- infrahub/events/node_action.py +74 -8
- infrahub/events/repository_action.py +8 -8
- infrahub/events/schema_action.py +21 -8
- infrahub/generators/tasks.py +12 -13
- infrahub/git/base.py +3 -5
- infrahub/git/constants.py +0 -1
- infrahub/git/integrator.py +36 -35
- infrahub/git/repository.py +7 -8
- infrahub/git/tasks.py +43 -107
- 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/enums.py +1 -1
- infrahub/graphql/initialization.py +5 -1
- infrahub/graphql/loaders/node.py +2 -2
- infrahub/graphql/manager.py +59 -54
- infrahub/graphql/mutations/account.py +20 -13
- infrahub/graphql/mutations/artifact_definition.py +16 -12
- infrahub/graphql/mutations/branch.py +61 -40
- infrahub/graphql/mutations/computed_attribute.py +19 -13
- infrahub/graphql/mutations/diff.py +37 -9
- infrahub/graphql/mutations/diff_conflict.py +9 -8
- infrahub/graphql/mutations/graphql_query.py +19 -11
- infrahub/graphql/mutations/ipam.py +21 -19
- infrahub/graphql/mutations/main.py +197 -44
- infrahub/graphql/mutations/menu.py +8 -8
- infrahub/graphql/mutations/proposed_change.py +36 -28
- infrahub/graphql/mutations/relationship.py +302 -105
- infrahub/graphql/mutations/repository.py +41 -35
- infrahub/graphql/mutations/resource_manager.py +26 -26
- infrahub/graphql/mutations/schema.py +51 -33
- infrahub/graphql/mutations/tasks.py +16 -10
- infrahub/graphql/parser.py +1 -1
- infrahub/graphql/permissions.py +6 -4
- infrahub/graphql/queries/account.py +22 -18
- infrahub/graphql/queries/branch.py +6 -4
- infrahub/graphql/queries/diff/tree.py +48 -42
- infrahub/graphql/queries/event.py +112 -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 +2 -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/enums.py +2 -0
- infrahub/graphql/types/event.py +100 -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 +1 -1
- infrahub/menu/constants.py +1 -0
- infrahub/menu/generator.py +14 -3
- infrahub/menu/menu.py +116 -127
- infrahub/menu/models.py +4 -4
- infrahub/message_bus/messages/__init__.py +0 -4
- infrahub/message_bus/messages/event_branch_merge.py +3 -0
- infrahub/message_bus/messages/request_proposedchange_pipeline.py +2 -0
- infrahub/message_bus/operations/__init__.py +3 -5
- infrahub/message_bus/operations/check/__init__.py +2 -2
- infrahub/message_bus/operations/check/generator.py +1 -3
- infrahub/message_bus/operations/check/repository.py +1 -1
- infrahub/message_bus/operations/event/branch.py +7 -3
- infrahub/message_bus/operations/event/schema.py +1 -1
- 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 -2
- infrahub/message_bus/operations/requests/generator_definition.py +1 -1
- infrahub/message_bus/operations/requests/proposed_change.py +26 -11
- infrahub/message_bus/operations/requests/repository.py +2 -2
- infrahub/message_bus/operations/send/echo.py +1 -1
- infrahub/message_bus/types.py +1 -1
- infrahub/permissions/__init__.py +2 -1
- 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 +15 -1
- infrahub/proposed_change/tasks.py +173 -35
- infrahub/pytest_plugin.py +4 -4
- infrahub/server.py +12 -11
- infrahub/services/__init__.py +147 -62
- infrahub/services/adapters/cache/__init__.py +7 -5
- infrahub/services/adapters/cache/nats.py +40 -22
- infrahub/services/adapters/cache/redis.py +0 -4
- 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 +23 -6
- infrahub/services/adapters/message_bus/local.py +8 -6
- infrahub/services/adapters/message_bus/nats.py +12 -6
- infrahub/services/adapters/message_bus/rabbitmq.py +22 -9
- infrahub/services/adapters/workflow/__init__.py +11 -8
- infrahub/services/adapters/workflow/local.py +28 -7
- infrahub/services/adapters/workflow/worker.py +23 -7
- infrahub/services/component.py +38 -35
- infrahub/services/scheduler.py +32 -29
- infrahub/storage.py +2 -4
- infrahub/task_manager/constants.py +1 -1
- infrahub/task_manager/event.py +182 -0
- infrahub/task_manager/models.py +125 -1
- infrahub/task_manager/task.py +1 -1
- infrahub/tasks/artifact.py +14 -16
- 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 +15 -0
- infrahub/trigger/constants.py +9 -0
- infrahub/trigger/models.py +69 -0
- infrahub/trigger/tasks.py +85 -0
- infrahub/types.py +1 -1
- infrahub/utils.py +1 -1
- infrahub/webhook/constants.py +0 -2
- infrahub/webhook/models.py +8 -2
- infrahub/webhook/tasks.py +20 -73
- infrahub/webhook/triggers.py +20 -0
- infrahub/workers/infrahub_async.py +36 -25
- infrahub/workers/utils.py +63 -0
- infrahub/workflows/catalogue.py +13 -37
- infrahub/workflows/initialization.py +6 -8
- infrahub/workflows/models.py +3 -5
- infrahub/workflows/utils.py +1 -1
- infrahub_sdk/ctl/check.py +3 -3
- infrahub_sdk/ctl/cli_commands.py +11 -10
- 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 -3
- infrahub_sdk/ctl/validate.py +2 -1
- infrahub_sdk/exceptions.py +6 -0
- infrahub_sdk/generator.py +3 -0
- infrahub_sdk/node.py +2 -2
- infrahub_sdk/schema/__init__.py +14 -2
- infrahub_sdk/schema/main.py +7 -0
- infrahub_sdk/utils.py +11 -1
- infrahub_sdk/yaml.py +2 -3
- {infrahub_server-1.1.6.dist-info → infrahub_server-1.2.0rc0.dist-info}/METADATA +46 -12
- {infrahub_server-1.1.6.dist-info → infrahub_server-1.2.0rc0.dist-info}/RECORD +338 -321
- 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/graphql/query.py +0 -52
- infrahub/message_bus/messages/request_artifactdefinition_check.py +0 -17
- infrahub/message_bus/operations/requests/artifact_definition.py +0 -148
- 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/{schema → artifacts}/__init__.py +0 -0
- {infrahub_server-1.1.6.dist-info → infrahub_server-1.2.0rc0.dist-info}/LICENSE.txt +0 -0
- {infrahub_server-1.1.6.dist-info → infrahub_server-1.2.0rc0.dist-info}/WHEEL +0 -0
- {infrahub_server-1.1.6.dist-info → infrahub_server-1.2.0rc0.dist-info}/entry_points.txt +0 -0
infrahub/core/manager.py
CHANGED
|
@@ -23,7 +23,14 @@ from infrahub.core.query.node import (
|
|
|
23
23
|
from infrahub.core.query.relationship import RelationshipGetPeerQuery
|
|
24
24
|
from infrahub.core.registry import registry
|
|
25
25
|
from infrahub.core.relationship import Relationship, RelationshipManager
|
|
26
|
-
from infrahub.core.schema import
|
|
26
|
+
from infrahub.core.schema import (
|
|
27
|
+
GenericSchema,
|
|
28
|
+
MainSchemaTypes,
|
|
29
|
+
NodeSchema,
|
|
30
|
+
ProfileSchema,
|
|
31
|
+
RelationshipSchema,
|
|
32
|
+
TemplateSchema,
|
|
33
|
+
)
|
|
27
34
|
from infrahub.core.timestamp import Timestamp
|
|
28
35
|
from infrahub.exceptions import NodeNotFoundError, ProcessingError, SchemaNotFoundError
|
|
29
36
|
from infrahub.graphql.models import OrderModel
|
|
@@ -35,8 +42,6 @@ if TYPE_CHECKING:
|
|
|
35
42
|
|
|
36
43
|
SchemaProtocol = TypeVar("SchemaProtocol")
|
|
37
44
|
|
|
38
|
-
# pylint: disable=redefined-builtin,too-many-lines
|
|
39
|
-
|
|
40
45
|
|
|
41
46
|
def identify_node_class(node: NodeToProcess) -> type[Node]:
|
|
42
47
|
"""Identify the proper class to use to create the NodeObject.
|
|
@@ -61,7 +66,7 @@ def get_schema(
|
|
|
61
66
|
) -> MainSchemaTypes:
|
|
62
67
|
if isinstance(node_schema, str):
|
|
63
68
|
return db.schema.get(name=node_schema, branch=branch.name)
|
|
64
|
-
if hasattr(node_schema, "_is_runtime_protocol") and
|
|
69
|
+
if hasattr(node_schema, "_is_runtime_protocol") and node_schema._is_runtime_protocol:
|
|
65
70
|
return db.schema.get(name=node_schema.__name__, branch=branch.name)
|
|
66
71
|
if not isinstance(node_schema, (MainSchemaTypes)):
|
|
67
72
|
raise ValueError(f"Invalid schema provided {node_schema}")
|
|
@@ -129,7 +134,7 @@ class NodeManager:
|
|
|
129
134
|
async def query(
|
|
130
135
|
cls,
|
|
131
136
|
db: InfrahubDatabase,
|
|
132
|
-
schema: Union[NodeSchema, GenericSchema, ProfileSchema, str],
|
|
137
|
+
schema: Union[NodeSchema, GenericSchema, ProfileSchema, TemplateSchema, str],
|
|
133
138
|
filters: dict | None = ...,
|
|
134
139
|
fields: dict | None = ...,
|
|
135
140
|
offset: int | None = ...,
|
|
@@ -267,11 +272,11 @@ class NodeManager:
|
|
|
267
272
|
async def count(
|
|
268
273
|
cls,
|
|
269
274
|
db: InfrahubDatabase,
|
|
270
|
-
schema: Union[type[SchemaProtocol], NodeSchema, GenericSchema, ProfileSchema, str],
|
|
275
|
+
schema: Union[type[SchemaProtocol], NodeSchema, GenericSchema, ProfileSchema, TemplateSchema, str],
|
|
271
276
|
filters: Optional[dict] = None,
|
|
272
277
|
at: Optional[Union[Timestamp, str]] = None,
|
|
273
278
|
branch: Optional[Union[Branch, str]] = None,
|
|
274
|
-
account=None, #
|
|
279
|
+
account=None, # noqa: ARG003
|
|
275
280
|
partial_match: bool = False,
|
|
276
281
|
branch_agnostic: bool = False,
|
|
277
282
|
) -> int:
|
|
@@ -489,7 +494,7 @@ class NodeManager:
|
|
|
489
494
|
kind: type[SchemaProtocol],
|
|
490
495
|
at: Timestamp | str | None = ...,
|
|
491
496
|
branch: Branch | str | None = ...,
|
|
492
|
-
id: str | None = ...,
|
|
497
|
+
id: str | None = ...,
|
|
493
498
|
hfid: list[str] | None = ...,
|
|
494
499
|
) -> SchemaProtocol: ...
|
|
495
500
|
|
|
@@ -501,7 +506,7 @@ class NodeManager:
|
|
|
501
506
|
kind: str,
|
|
502
507
|
at: Timestamp | str | None = ...,
|
|
503
508
|
branch: Branch | str | None = ...,
|
|
504
|
-
id: str | None = ...,
|
|
509
|
+
id: str | None = ...,
|
|
505
510
|
hfid: list[str] | None = ...,
|
|
506
511
|
) -> Any: ...
|
|
507
512
|
|
|
@@ -512,7 +517,7 @@ class NodeManager:
|
|
|
512
517
|
kind: type[SchemaProtocol] | str,
|
|
513
518
|
at: Timestamp | str | None = None,
|
|
514
519
|
branch: Branch | str | None = None,
|
|
515
|
-
id: str | None = None,
|
|
520
|
+
id: str | None = None,
|
|
516
521
|
hfid: list[str] | None = None,
|
|
517
522
|
) -> Any:
|
|
518
523
|
if not id and not hfid:
|
|
@@ -802,7 +807,7 @@ class NodeManager:
|
|
|
802
807
|
raise NodeNotFoundError(branch_name=branch.name, node_type=kind_str, identifier=hfid_str)
|
|
803
808
|
|
|
804
809
|
filters = {}
|
|
805
|
-
for key, item in zip(node_schema.human_friendly_id, hfid):
|
|
810
|
+
for key, item in zip(node_schema.human_friendly_id, hfid, strict=False):
|
|
806
811
|
path = node_schema.parse_schema_path(path=key, schema=registry.schema.get_schema_branch(name=branch.name))
|
|
807
812
|
|
|
808
813
|
if path.is_type_relationship:
|
|
@@ -1007,7 +1012,7 @@ class NodeManager:
|
|
|
1007
1012
|
cls,
|
|
1008
1013
|
id: str,
|
|
1009
1014
|
db: InfrahubDatabase,
|
|
1010
|
-
kind:
|
|
1015
|
+
kind: None = ...,
|
|
1011
1016
|
raise_on_error: bool = ...,
|
|
1012
1017
|
fields: dict | None = ...,
|
|
1013
1018
|
at: Timestamp | str | None = ...,
|
|
@@ -1148,7 +1153,7 @@ class NodeManager:
|
|
|
1148
1153
|
|
|
1149
1154
|
nodes: dict[str, Node] = {}
|
|
1150
1155
|
|
|
1151
|
-
for node_id in ids:
|
|
1156
|
+
for node_id in ids:
|
|
1152
1157
|
if node_id not in nodes_info_by_id:
|
|
1153
1158
|
continue
|
|
1154
1159
|
|
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)
|
|
@@ -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(
|
|
@@ -30,7 +30,7 @@ class AttributeAddQuery(Query):
|
|
|
30
30
|
|
|
31
31
|
super().__init__(**kwargs)
|
|
32
32
|
|
|
33
|
-
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None:
|
|
33
|
+
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
|
|
34
34
|
branch_filter, branch_params = self.branch.get_query_filter_path(at=self.at.to_string())
|
|
35
35
|
self.params.update(branch_params)
|
|
36
36
|
|
|
@@ -86,7 +86,7 @@ class AttributeRenameQuery(Query):
|
|
|
86
86
|
subquery.append("RETURN peer_node as p2")
|
|
87
87
|
return "\n".join(subquery)
|
|
88
88
|
|
|
89
|
-
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None:
|
|
89
|
+
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
|
|
90
90
|
branch_filter, branch_params = self.branch.get_query_filter_path(at=self.at.to_string())
|
|
91
91
|
self.params.update(branch_params)
|
|
92
92
|
|
|
@@ -90,7 +90,7 @@ class DeleteElementInSchemaQuery(Query):
|
|
|
90
90
|
sub_query_in = "\nUNION\n".join(sub_queries_in)
|
|
91
91
|
return sub_query_in
|
|
92
92
|
|
|
93
|
-
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None:
|
|
93
|
+
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
|
|
94
94
|
branch_filter, branch_params = self.branch.get_query_filter_path(at=self.at.to_string())
|
|
95
95
|
self.params.update(branch_params)
|
|
96
96
|
|
|
@@ -86,7 +86,7 @@ class NodeDuplicateQuery(Query):
|
|
|
86
86
|
sub_query_in = "\nUNION\n".join(sub_queries_in)
|
|
87
87
|
return sub_query_in
|
|
88
88
|
|
|
89
|
-
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None:
|
|
89
|
+
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
|
|
90
90
|
branch_filter, branch_params = self.branch.get_query_filter_path(at=self.at.to_string())
|
|
91
91
|
self.params.update(branch_params)
|
|
92
92
|
|
|
@@ -84,7 +84,7 @@ class RelationshipDuplicateQuery(Query):
|
|
|
84
84
|
sub_query_in = "\nUNION\n".join(sub_queries_in)
|
|
85
85
|
return sub_query_in
|
|
86
86
|
|
|
87
|
-
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None:
|
|
87
|
+
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
|
|
88
88
|
branch_filter, branch_params = self.branch.get_query_filter_path(at=self.at.to_string())
|
|
89
89
|
self.params.update(branch_params)
|
|
90
90
|
|
|
@@ -67,7 +67,7 @@ class SchemaAttributeUpdateQuery(Query):
|
|
|
67
67
|
|
|
68
68
|
return query
|
|
69
69
|
|
|
70
|
-
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None:
|
|
70
|
+
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
|
|
71
71
|
self.params["attr_name"] = self.attr_name
|
|
72
72
|
self.params["attr_new_value"] = (
|
|
73
73
|
ujson.dumps(self.attr_new_value) if isinstance(self.attr_new_value, list) else self.attr_new_value
|
|
@@ -18,7 +18,7 @@ class NodeAttributeRemoveMigrationQuery01(AttributeMigrationQuery):
|
|
|
18
18
|
name = "migration_node_attribute_remove_01"
|
|
19
19
|
insert_return: bool = False
|
|
20
20
|
|
|
21
|
-
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None:
|
|
21
|
+
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
|
|
22
22
|
branch_filter, branch_params = self.branch.get_query_filter_path(at=self.at.to_string())
|
|
23
23
|
self.params.update(branch_params)
|
|
24
24
|
|
|
@@ -32,7 +32,7 @@ class NodeRemoveMigrationBaseQuery(MigrationQuery):
|
|
|
32
32
|
def render_node_remove_query(self, branch_filter: str) -> str:
|
|
33
33
|
raise NotImplementedError()
|
|
34
34
|
|
|
35
|
-
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None:
|
|
35
|
+
async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
|
|
36
36
|
branch_filter, branch_params = self.branch.get_query_filter_path(at=self.at.to_string())
|
|
37
37
|
self.params.update(branch_params)
|
|
38
38
|
|