port-ocean 0.10.8__tar.gz → 0.10.10__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of port-ocean might be problematic. Click here for more details.
- {port_ocean-0.10.8 → port_ocean-0.10.10}/PKG-INFO +1 -1
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/commands/new.py +12 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/clients/port/mixins/blueprints.py +8 -7
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/defaults/initialize.py +32 -44
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/exceptions/port_defaults.py +0 -2
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/tests/helpers/__init__.py +7 -2
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/utils/async_iterators.py +1 -1
- {port_ocean-0.10.8 → port_ocean-0.10.10}/pyproject.toml +1 -1
- port_ocean-0.10.8/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/Makefile +0 -74
- {port_ocean-0.10.8 → port_ocean-0.10.10}/LICENSE.md +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/README.md +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/bootstrap.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cli.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/commands/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/commands/defaults/__init___.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/commands/defaults/clean.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/commands/defaults/dock.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/commands/defaults/group.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/commands/list_integrations.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/commands/main.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/commands/pull.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/commands/sail.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/commands/version.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/extensions.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.dockerignore +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.env.example +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/blueprints.json +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/port-app-config.yml +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CONTRIBUTING.md +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/Dockerfile +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/sonar-project.properties +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/test_sample.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/utils.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/clients/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/clients/port/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/clients/port/authentication.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/clients/port/client.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/clients/port/mixins/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/clients/port/mixins/entities.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/clients/port/mixins/integrations.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/clients/port/mixins/migrations.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/clients/port/retry_transport.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/clients/port/types.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/clients/port/utils.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/config/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/config/base.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/config/dynamic.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/config/settings.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/consumers/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/consumers/kafka_consumer.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/context/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/context/event.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/context/ocean.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/context/resource.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/defaults/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/defaults/clean.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/defaults/common.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/event_listener/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/event_listener/base.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/event_listener/factory.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/event_listener/http.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/event_listener/kafka.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/event_listener/once.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/event_listener/polling.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/base.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/entity_processor/base.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/port_app_config/api.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/port_app_config/base.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/port_app_config/models.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/resync_state_updater/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/resync_state_updater/updater.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/integrations/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/integrations/base.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/integrations/mixins/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/integrations/mixins/events.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/integrations/mixins/handler.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/integrations/mixins/sync.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/integrations/mixins/sync_raw.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/integrations/mixins/utils.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/models.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/ocean_types.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/utils.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/exceptions/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/exceptions/api.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/exceptions/base.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/exceptions/clients.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/exceptions/context.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/exceptions/core.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/exceptions/utils.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/helpers/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/helpers/async_client.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/helpers/retry.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/log/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/log/handlers.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/log/logger_setup.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/log/sensetive.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/middlewares.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/ocean.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/py.typed +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/run.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/sonar-project.properties +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/tests/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/tests/clients/port/mixins/test_entities.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/tests/test_sample.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/utils/__init__.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/utils/async_http.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/utils/cache.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/utils/misc.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/utils/queue_utils.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/utils/repeat.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/utils/signal.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/utils/time.py +0 -0
- {port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/version.py +0 -0
|
@@ -9,6 +9,17 @@ from port_ocean.cli.commands.main import cli_start, print_logo, console
|
|
|
9
9
|
from port_ocean.cli.utils import cli_root_path
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
def symlink_makefile(result: str, name: str) -> None:
|
|
13
|
+
infra_make_file = os.path.join(
|
|
14
|
+
os.path.dirname(result), "../integrations/_infra/Makefile"
|
|
15
|
+
)
|
|
16
|
+
target_link_make_file = os.path.join(
|
|
17
|
+
os.path.dirname(result), f"../integrations/{name}/Makefile"
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
os.link(infra_make_file, target_link_make_file)
|
|
21
|
+
|
|
22
|
+
|
|
12
23
|
def add_vscode_configuration(result: str, name: str) -> None:
|
|
13
24
|
vscode_entry_root_path = "${workspaceFolder}/integrations/" + name
|
|
14
25
|
new_vscode_entry = {
|
|
@@ -66,6 +77,7 @@ def new(path: str, is_private_integration: bool) -> None:
|
|
|
66
77
|
|
|
67
78
|
if not is_private_integration:
|
|
68
79
|
add_vscode_configuration(result, name)
|
|
80
|
+
symlink_makefile(result, name)
|
|
69
81
|
|
|
70
82
|
console.print(
|
|
71
83
|
"\n🌊 Ahoy, Captain! Your project is ready to set sail into the vast ocean of possibilities!",
|
|
@@ -64,7 +64,6 @@ class BlueprintClientMixin:
|
|
|
64
64
|
f"Deleting blueprint with id: {identifier} with all entities: {delete_entities}"
|
|
65
65
|
)
|
|
66
66
|
headers = await self.auth.headers(user_agent_type)
|
|
67
|
-
response = None
|
|
68
67
|
|
|
69
68
|
if not delete_entities:
|
|
70
69
|
response = await self.client.delete(
|
|
@@ -82,7 +81,9 @@ class BlueprintClientMixin:
|
|
|
82
81
|
handle_status_code(response, should_raise)
|
|
83
82
|
return response.json().get("migrationId", "")
|
|
84
83
|
|
|
85
|
-
async def create_action(
|
|
84
|
+
async def create_action(
|
|
85
|
+
self, action: dict[str, Any], should_log: bool = True
|
|
86
|
+
) -> None:
|
|
86
87
|
logger.info(f"Creating action: {action}")
|
|
87
88
|
response = await self.client.post(
|
|
88
89
|
f"{self.auth.api_url}/actions",
|
|
@@ -90,12 +91,13 @@ class BlueprintClientMixin:
|
|
|
90
91
|
headers=await self.auth.headers(),
|
|
91
92
|
)
|
|
92
93
|
|
|
93
|
-
handle_status_code(response)
|
|
94
|
+
handle_status_code(response, should_log=should_log)
|
|
94
95
|
|
|
95
96
|
async def create_scorecard(
|
|
96
97
|
self,
|
|
97
98
|
blueprint_identifier: str,
|
|
98
99
|
scorecard: dict[str, Any],
|
|
100
|
+
should_log: bool = True,
|
|
99
101
|
) -> None:
|
|
100
102
|
logger.info(f"Creating scorecard: {scorecard}")
|
|
101
103
|
response = await self.client.post(
|
|
@@ -104,11 +106,10 @@ class BlueprintClientMixin:
|
|
|
104
106
|
headers=await self.auth.headers(),
|
|
105
107
|
)
|
|
106
108
|
|
|
107
|
-
handle_status_code(response)
|
|
109
|
+
handle_status_code(response, should_log=should_log)
|
|
108
110
|
|
|
109
111
|
async def create_page(
|
|
110
|
-
self,
|
|
111
|
-
page: dict[str, Any],
|
|
112
|
+
self, page: dict[str, Any], should_log: bool = True
|
|
112
113
|
) -> dict[str, Any]:
|
|
113
114
|
logger.info(f"Creating page: {page}")
|
|
114
115
|
response = await self.client.post(
|
|
@@ -117,7 +118,7 @@ class BlueprintClientMixin:
|
|
|
117
118
|
headers=await self.auth.headers(),
|
|
118
119
|
)
|
|
119
120
|
|
|
120
|
-
handle_status_code(response)
|
|
121
|
+
handle_status_code(response, should_log=should_log)
|
|
121
122
|
return page
|
|
122
123
|
|
|
123
124
|
async def delete_page(
|
|
@@ -120,7 +120,7 @@ async def _create_resources(
|
|
|
120
120
|
)
|
|
121
121
|
return
|
|
122
122
|
|
|
123
|
-
created_blueprints,
|
|
123
|
+
created_blueprints, blueprint_errors = await gather_and_split_errors_from_results(
|
|
124
124
|
(
|
|
125
125
|
port_client.create_blueprint(
|
|
126
126
|
blueprint, user_agent_type=UserAgentType.exporter
|
|
@@ -131,15 +131,17 @@ async def _create_resources(
|
|
|
131
131
|
|
|
132
132
|
created_blueprints_identifiers = [bp["identifier"] for bp in created_blueprints]
|
|
133
133
|
|
|
134
|
-
if
|
|
135
|
-
for error in
|
|
134
|
+
if blueprint_errors:
|
|
135
|
+
for error in blueprint_errors:
|
|
136
136
|
if isinstance(error, httpx.HTTPStatusError):
|
|
137
137
|
logger.warning(
|
|
138
138
|
f"Failed to create resources: {error.response.text}. Rolling back changes..."
|
|
139
139
|
)
|
|
140
140
|
|
|
141
|
-
raise AbortDefaultCreationError(
|
|
142
|
-
|
|
141
|
+
raise AbortDefaultCreationError(
|
|
142
|
+
created_blueprints_identifiers, blueprint_errors
|
|
143
|
+
)
|
|
144
|
+
|
|
143
145
|
try:
|
|
144
146
|
for patch_stage in blueprint_patches:
|
|
145
147
|
await asyncio.gather(
|
|
@@ -153,44 +155,43 @@ async def _create_resources(
|
|
|
153
155
|
)
|
|
154
156
|
)
|
|
155
157
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
+
except httpx.HTTPStatusError as err:
|
|
159
|
+
logger.error(f"Failed to create resources: {err.response.text}. continuing...")
|
|
160
|
+
raise AbortDefaultCreationError(created_blueprints_identifiers, [err])
|
|
161
|
+
try:
|
|
162
|
+
created_actions, actions_errors = await gather_and_split_errors_from_results(
|
|
163
|
+
(
|
|
164
|
+
port_client.create_action(action, should_log=False)
|
|
165
|
+
for action in defaults.actions
|
|
166
|
+
)
|
|
158
167
|
)
|
|
159
168
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
169
|
+
created_scorecards, scorecards_errors = (
|
|
170
|
+
await gather_and_split_errors_from_results(
|
|
171
|
+
(
|
|
172
|
+
port_client.create_scorecard(
|
|
173
|
+
blueprint_scorecards["blueprint"], action, should_log=False
|
|
174
|
+
)
|
|
175
|
+
for blueprint_scorecards in defaults.scorecards
|
|
176
|
+
for action in blueprint_scorecards["data"]
|
|
177
|
+
)
|
|
165
178
|
)
|
|
166
179
|
)
|
|
167
180
|
|
|
168
181
|
created_pages, pages_errors = await gather_and_split_errors_from_results(
|
|
169
|
-
(port_client.create_page(page) for page in defaults.pages)
|
|
182
|
+
(port_client.create_page(page, should_log=False) for page in defaults.pages)
|
|
170
183
|
)
|
|
171
|
-
created_pages_identifiers = [
|
|
172
|
-
page.get("identifier", "") for page in created_pages
|
|
173
|
-
]
|
|
174
184
|
|
|
175
|
-
|
|
176
|
-
|
|
185
|
+
errors = actions_errors + scorecards_errors + pages_errors
|
|
186
|
+
if errors:
|
|
187
|
+
for error in errors:
|
|
177
188
|
if isinstance(error, httpx.HTTPStatusError):
|
|
178
189
|
logger.warning(
|
|
179
|
-
f"Failed to create
|
|
190
|
+
f"Failed to create resource: {error.response.text}. continuing..."
|
|
180
191
|
)
|
|
181
192
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
pages_errors,
|
|
185
|
-
created_pages_identifiers,
|
|
186
|
-
)
|
|
187
|
-
except httpx.HTTPStatusError as err:
|
|
188
|
-
logger.error(
|
|
189
|
-
f"Failed to create resources: {err.response.text}. Rolling back changes..."
|
|
190
|
-
)
|
|
191
|
-
raise AbortDefaultCreationError(
|
|
192
|
-
created_blueprints_identifiers, [err], created_pages_identifiers
|
|
193
|
-
)
|
|
193
|
+
except Exception as err:
|
|
194
|
+
logger.error(f"Failed to create resources: {err}. continuing...")
|
|
194
195
|
|
|
195
196
|
|
|
196
197
|
async def _initialize_defaults(
|
|
@@ -227,19 +228,6 @@ async def _initialize_defaults(
|
|
|
227
228
|
for identifier in e.blueprints_to_rollback
|
|
228
229
|
)
|
|
229
230
|
)
|
|
230
|
-
if e.pages_to_rollback:
|
|
231
|
-
logger.warning(
|
|
232
|
-
f"Failed to create resources. Rolling back pages : {e.pages_to_rollback}"
|
|
233
|
-
)
|
|
234
|
-
await asyncio.gather(
|
|
235
|
-
*(
|
|
236
|
-
port_client.delete_page(
|
|
237
|
-
identifier,
|
|
238
|
-
)
|
|
239
|
-
for identifier in e.pages_to_rollback
|
|
240
|
-
)
|
|
241
|
-
)
|
|
242
|
-
|
|
243
231
|
raise ExceptionGroup(str(e), e.errors)
|
|
244
232
|
|
|
245
233
|
|
|
@@ -6,10 +6,8 @@ class AbortDefaultCreationError(BaseOceanException):
|
|
|
6
6
|
self,
|
|
7
7
|
blueprints_to_rollback: list[str],
|
|
8
8
|
errors: list[Exception],
|
|
9
|
-
pages_to_rollback: list[str] | None = None,
|
|
10
9
|
):
|
|
11
10
|
self.blueprints_to_rollback = blueprints_to_rollback
|
|
12
|
-
self.pages_to_rollback = pages_to_rollback
|
|
13
11
|
self.errors = errors
|
|
14
12
|
super().__init__("Aborting defaults creation")
|
|
15
13
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import sys
|
|
2
2
|
from inspect import getmembers
|
|
3
|
+
from pathlib import Path
|
|
3
4
|
from typing import Dict, List, Set, Tuple, Union
|
|
4
5
|
|
|
5
6
|
from yaml import safe_load
|
|
@@ -8,13 +9,17 @@ from port_ocean.bootstrap import create_default_app
|
|
|
8
9
|
from port_ocean.core.handlers.port_app_config.models import ResourceConfig
|
|
9
10
|
from port_ocean.core.ocean_types import RESYNC_RESULT
|
|
10
11
|
from port_ocean.ocean import Ocean
|
|
11
|
-
from port_ocean.utils.misc import load_module
|
|
12
|
+
from port_ocean.utils.misc import get_spec_file, load_module
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
def get_integration_ocean_app(integration_path: str) -> Ocean:
|
|
16
|
+
spec_file = get_spec_file(Path(integration_path))
|
|
17
|
+
|
|
18
|
+
config_factory = None if not spec_file else spec_file.get("configurations", [])
|
|
19
|
+
|
|
15
20
|
default_app = create_default_app(
|
|
16
21
|
integration_path,
|
|
17
|
-
|
|
22
|
+
config_factory,
|
|
18
23
|
{
|
|
19
24
|
"port": {
|
|
20
25
|
"client_id": "bla",
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
ACTIVATE := . .venv/bin/activate
|
|
2
|
-
|
|
3
|
-
define run_checks
|
|
4
|
-
exit_code=0; \
|
|
5
|
-
cd $1; \
|
|
6
|
-
poetry check || exit_code=$$?;\
|
|
7
|
-
mypy . || exit_code=$$?; \
|
|
8
|
-
ruff check . || exit_code=$$?; \
|
|
9
|
-
black --check . || exit_code=$$?; \
|
|
10
|
-
if [ $$exit_code -eq 1 ]; then \
|
|
11
|
-
echo "\033[0;31mOne or more checks failed with exit code $$exit_code\033[0m"; \
|
|
12
|
-
else \
|
|
13
|
-
echo "\033[0;32mAll checks executed successfully.\033[0m"; \
|
|
14
|
-
fi; \
|
|
15
|
-
exit $$exit_code
|
|
16
|
-
endef
|
|
17
|
-
|
|
18
|
-
define install_poetry
|
|
19
|
-
if ! command -v poetry &> /dev/null; then \
|
|
20
|
-
pip install --upgrade pip; \
|
|
21
|
-
pip install poetry; \
|
|
22
|
-
else \
|
|
23
|
-
echo "Poetry is already installed."; \
|
|
24
|
-
fi
|
|
25
|
-
endef
|
|
26
|
-
|
|
27
|
-
define deactivate_virtualenv
|
|
28
|
-
if [ -n "$$VIRTUAL_ENV" ]; then \
|
|
29
|
-
unset VIRTUAL_ENV; \
|
|
30
|
-
unset PYTHONHOME; \
|
|
31
|
-
unset -f pydoc >/dev/null 2>&1; \
|
|
32
|
-
OLD_PATH="$$PATH"; \
|
|
33
|
-
PATH=$$(echo -n "$$PATH" | awk -v RS=: -v ORS=: '/\/virtualenv\/bin$$/ {next} {print}'); \
|
|
34
|
-
export PATH; \
|
|
35
|
-
hash -r; \
|
|
36
|
-
echo "Deactivated the virtual environment."; \
|
|
37
|
-
fi
|
|
38
|
-
endef
|
|
39
|
-
|
|
40
|
-
.SILENT: install install/prod lint run test clean
|
|
41
|
-
|
|
42
|
-
install:
|
|
43
|
-
$(call deactivate_virtualenv) && \
|
|
44
|
-
$(call install_poetry) && \
|
|
45
|
-
poetry install --with dev
|
|
46
|
-
|
|
47
|
-
install/prod:
|
|
48
|
-
$(call install_poetry) && \
|
|
49
|
-
poetry install --without dev --no-root --no-interaction --no-ansi --no-cache
|
|
50
|
-
|
|
51
|
-
lint:
|
|
52
|
-
$(ACTIVATE) && \
|
|
53
|
-
$(call run_checks,.)
|
|
54
|
-
|
|
55
|
-
run:
|
|
56
|
-
$(ACTIVATE) && ocean sail
|
|
57
|
-
|
|
58
|
-
test:
|
|
59
|
-
$(ACTIVATE) && poetry run pytest -n auto
|
|
60
|
-
|
|
61
|
-
clean:
|
|
62
|
-
@find . -name '.venv' -type d -exec rm -rf {} \;
|
|
63
|
-
@find . -name '*.pyc' -exec rm -rf {} \;
|
|
64
|
-
@find . -name '__pycache__' -exec rm -rf {} \;
|
|
65
|
-
@find . -name 'Thumbs.db' -exec rm -rf {} \;
|
|
66
|
-
@find . -name '*~' -exec rm -rf {} \;
|
|
67
|
-
rm -rf .cache
|
|
68
|
-
rm -rf build
|
|
69
|
-
rm -rf dist
|
|
70
|
-
rm -rf *.egg-info
|
|
71
|
-
rm -rf htmlcov
|
|
72
|
-
rm -rf .tox/
|
|
73
|
-
rm -rf docs/_build
|
|
74
|
-
rm -rf dist/
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/entities_state_applier/__init__.py
RENAMED
|
File without changes
|
{port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/entities_state_applier/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/entity_processor/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/port_app_config/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/resync_state_updater/__init__.py
RENAMED
|
File without changes
|
{port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/core/handlers/resync_state_updater/updater.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.10.8 → port_ocean-0.10.10}/port_ocean/tests/clients/port/mixins/test_entities.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|