Skip to content

Commit c3dd18c

Browse files
authored
Merge pull request #3973 from opsmill/bab-merge-stable-into-develop
Merge stable into develop
2 parents fa633bc + 89efe22 commit c3dd18c

File tree

50 files changed

+387
-210
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+387
-210
lines changed

.github/workflows/update-compose-file.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ jobs:
2929
steps:
3030
- name: "Check out repository code"
3131
uses: "actions/checkout@v4"
32+
with:
33+
token: ${{ secrets.GH_INFRAHUB_BOT_TOKEN }}
3234
- name: Set up Python
3335
uses: actions/setup-python@v5
3436
with:
@@ -37,15 +39,13 @@ jobs:
3739
run: |
3840
pipx install poetry
3941
poetry config virtualenvs.prefer-active-python true
40-
pip install invoke toml
4142
- name: "Install Package"
4243
run: "poetry install --all-extras"
4344

4445
- name: "Update Docker Env variable in docker-compose.yml file"
45-
run: "invoke dev.gen-config-env -u"
46+
run: "poetry run invoke dev.gen-config-env -u"
4647
- name: "Update Infrahub Image Version in docker-compose.yml file"
47-
run: "invoke dev.update-docker-compose"
48-
48+
run: "poetry run invoke dev.update-docker-compose"
4949
- name: Commit docker-compose.yml
5050
uses: github-actions-x/[email protected]
5151
with:

backend/infrahub/api/schema.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from infrahub.core.schema_manager import SchemaBranch, SchemaNamespace, SchemaUpdateValidationResult # noqa: TCH001
2424
from infrahub.core.validators.checker import schema_validators_checker
2525
from infrahub.database import InfrahubDatabase # noqa: TCH001
26-
from infrahub.exceptions import MigrationError, PermissionDeniedError
26+
from infrahub.exceptions import MigrationError
2727
from infrahub.log import get_logger
2828
from infrahub.message_bus import Meta, messages
2929
from infrahub.services import services
@@ -85,7 +85,7 @@ class SchemaLoadAPI(SchemaRoot):
8585
version: str
8686

8787

88-
class SchemasLoadAPI(SchemaRoot):
88+
class SchemasLoadAPI(BaseModel):
8989
schemas: list[SchemaLoadAPI]
9090

9191

@@ -244,7 +244,7 @@ async def load_schema(
244244
errors += schema.validate_namespaces()
245245

246246
if errors:
247-
raise PermissionDeniedError(", ".join(errors))
247+
raise SchemaNotValidError(message=", ".join(errors))
248248

249249
async with lock.registry.global_schema_lock():
250250
branch_schema = registry.schema.get_schema_branch(name=branch.name)
@@ -330,7 +330,7 @@ async def check_schema(
330330
errors += schema.validate_namespaces()
331331

332332
if errors:
333-
raise PermissionDeniedError(", ".join(errors))
333+
raise SchemaNotValidError(message=", ".join(errors))
334334

335335
branch_schema = registry.schema.get_schema_branch(name=branch.name)
336336

backend/infrahub/core/manager.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ async def query_peers(
276276
at: Optional[Union[Timestamp, str]] = None,
277277
branch: Optional[Union[Branch, str]] = None,
278278
branch_agnostic: bool = False,
279+
fetch_peers: bool = False,
279280
) -> list[Relationship]:
280281
branch = await registry.get_branch(branch=branch, db=db)
281282
at = Timestamp(at)
@@ -308,16 +309,26 @@ async def query_peers(
308309
if display_label_fields:
309310
fields = deep_merge_dict(dicta=fields, dictb=display_label_fields)
310311

311-
return [
312-
await Relationship(schema=schema, branch=branch, at=at, node_id=peer.source_id).load(
312+
if fetch_peers:
313+
peer_ids = [peer.peer_id for peer in peers_info]
314+
peer_nodes = await cls.get_many(
315+
db=db, ids=peer_ids, fields=fields, at=at, branch=branch, branch_agnostic=branch_agnostic
316+
)
317+
318+
results = []
319+
for peer in peers_info:
320+
result = await Relationship(schema=schema, branch=branch, at=at, node_id=peer.source_id).load(
313321
db=db,
314322
id=peer.rel_node_id,
315323
db_id=peer.rel_node_db_id,
316324
updated_at=peer.updated_at,
317325
data=peer,
318326
)
319-
for peer in peers_info
320-
]
327+
if fetch_peers:
328+
await result.set_peer(value=peer_nodes[peer.peer_id])
329+
results.append(result)
330+
331+
return results
321332

322333
@classmethod
323334
async def count_hierarchy(

backend/infrahub/graphql/resolver.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ async def default_resolver(*args, **kwargs):
7979
at=context.at,
8080
branch=context.branch,
8181
branch_agnostic=node_rel.branch is BranchSupportType.AGNOSTIC,
82+
fetch_peers=True,
8283
)
8384

8485
if node_rel.cardinality == "many":
@@ -134,6 +135,7 @@ async def single_relationship_resolver(parent: dict, info: GraphQLResolveInfo, *
134135
at=context.at,
135136
branch=context.branch,
136137
branch_agnostic=node_rel.branch is BranchSupportType.AGNOSTIC,
138+
fetch_peers=True,
137139
)
138140

139141
if not objs:
@@ -231,6 +233,7 @@ async def many_relationship_resolver(
231233
at=context.at,
232234
branch=context.branch,
233235
branch_agnostic=node_rel.branch is BranchSupportType.AGNOSTIC,
236+
fetch_peers=True,
234237
)
235238

236239
if not objs:

backend/infrahub/message_bus/messages/__init__.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@
2222
from .git_repository_merge import GitRepositoryMerge
2323
from .git_repository_read_only_add import GitRepositoryAddReadOnly
2424
from .git_repository_read_only_pull import GitRepositoryPullReadOnly
25+
from .proposed_change.request_proposedchange_dataintegrity import RequestProposedChangeDataIntegrity
26+
from .proposed_change.request_proposedchange_refreshartifacts import RequestProposedChangeRefreshArtifacts
27+
from .proposed_change.request_proposedchange_repositorychecks import RequestProposedChangeRepositoryChecks
28+
from .proposed_change.request_proposedchange_rungenerators import RequestProposedChangeRunGenerators
29+
from .proposed_change.request_proposedchange_runtests import RequestProposedChangeRunTests
30+
from .proposed_change.request_proposedchange_schemaintegrity import RequestProposedChangeSchemaIntegrity
2531
from .refresh_registry_branches import RefreshRegistryBranches
2632
from .refresh_registry_rebasedbranch import RefreshRegistryRebasedBranch
2733
from .refresh_webhook_configuration import RefreshWebhookConfiguration
@@ -35,13 +41,7 @@
3541
from .request_git_sync import RequestGitSync
3642
from .request_graphqlquerygroup_update import RequestGraphQLQueryGroupUpdate
3743
from .request_proposed_change_cancel import RequestProposedChangeCancel
38-
from .request_proposedchange_dataintegrity import RequestProposedChangeDataIntegrity
3944
from .request_proposedchange_pipeline import RequestProposedChangePipeline
40-
from .request_proposedchange_refreshartifacts import RequestProposedChangeRefreshArtifacts
41-
from .request_proposedchange_repositorychecks import RequestProposedChangeRepositoryChecks
42-
from .request_proposedchange_rungenerators import RequestProposedChangeRunGenerators
43-
from .request_proposedchange_runtests import RequestProposedChangeRunTests
44-
from .request_proposedchange_schemaintegrity import RequestProposedChangeSchemaIntegrity
4545
from .request_repository_checks import RequestRepositoryChecks
4646
from .request_repository_userchecks import RequestRepositoryUserChecks
4747
from .schema_migration_path import SchemaMigrationPath, SchemaMigrationPathResponse

backend/infrahub/message_bus/messages/proposed_change/__init__.py

Whitespace-only changes.

backend/infrahub/message_bus/messages/request_proposedchange_refreshartifacts.py renamed to backend/infrahub/message_bus/messages/proposed_change/base_with_diff.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from infrahub.message_bus.types import ProposedChangeBranchDiff
55

66

7-
class RequestProposedChangeRefreshArtifacts(InfrahubMessage):
7+
class BaseProposedChangeWithDiffMessage(InfrahubMessage):
88
"""Sent trigger the refresh of artifacts that are impacted by the proposed change."""
99

1010
model_config = ConfigDict(arbitrary_types_allowed=True)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from .base_with_diff import BaseProposedChangeWithDiffMessage
2+
3+
4+
class RequestProposedChangeDataIntegrity(BaseProposedChangeWithDiffMessage):
5+
"""Sent trigger data integrity checks for a proposed change"""
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from .base_with_diff import BaseProposedChangeWithDiffMessage
2+
3+
4+
class RequestProposedChangeRefreshArtifacts(BaseProposedChangeWithDiffMessage):
5+
"""Sent trigger the refresh of artifacts that are impacted by the proposed change."""
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from .base_with_diff import BaseProposedChangeWithDiffMessage
2+
3+
4+
class RequestProposedChangeRepositoryChecks(BaseProposedChangeWithDiffMessage):
5+
"""Sent when a proposed change is created to trigger additional checks"""

0 commit comments

Comments
 (0)