port-ocean 0.8.0__tar.gz → 0.9.1__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.8.0 → port_ocean-0.9.1}/PKG-INFO +1 -1
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/commands/sail.py +7 -1
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/config/settings.py +20 -2
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/defaults/initialize.py +2 -2
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +9 -5
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/models.py +4 -1
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/utils.py +19 -2
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/exceptions/core.py +4 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/run.py +7 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/pyproject.toml +1 -1
- {port_ocean-0.8.0 → port_ocean-0.9.1}/LICENSE.md +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/README.md +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/bootstrap.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cli.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/commands/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/commands/defaults/__init___.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/commands/defaults/clean.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/commands/defaults/dock.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/commands/defaults/group.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/commands/list_integrations.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/commands/main.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/commands/new.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/commands/pull.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/commands/version.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/extensions.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.dockerignore +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/Dockerfile +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/Makefile +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/sonar-project.properties +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/cli/utils.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/clients/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/clients/port/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/clients/port/authentication.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/clients/port/client.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/clients/port/mixins/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/clients/port/mixins/blueprints.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/clients/port/mixins/entities.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/clients/port/mixins/integrations.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/clients/port/mixins/migrations.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/clients/port/retry_transport.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/clients/port/types.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/clients/port/utils.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/config/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/config/base.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/config/dynamic.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/consumers/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/consumers/kafka_consumer.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/context/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/context/event.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/context/ocean.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/context/resource.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/defaults/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/defaults/clean.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/defaults/common.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/event_listener/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/event_listener/base.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/event_listener/factory.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/event_listener/http.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/event_listener/kafka.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/event_listener/once.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/event_listener/polling.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/base.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/entity_processor/base.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/port_app_config/api.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/port_app_config/base.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/port_app_config/models.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/integrations/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/integrations/base.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/integrations/mixins/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/integrations/mixins/events.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/integrations/mixins/handler.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/integrations/mixins/sync.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/integrations/mixins/sync_raw.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/integrations/mixins/utils.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/core/ocean_types.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/exceptions/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/exceptions/api.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/exceptions/base.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/exceptions/clients.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/exceptions/context.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/exceptions/port_defaults.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/exceptions/utils.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/helpers/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/helpers/async_client.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/helpers/retry.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/log/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/log/handlers.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/log/logger_setup.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/log/sensetive.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/middlewares.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/ocean.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/py.typed +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/sonar-project.properties +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/utils/__init__.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/utils/async_http.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/utils/async_iterators.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/utils/cache.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/utils/misc.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/utils/queue_utils.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/utils/repeat.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/utils/signal.py +0 -0
- {port_ocean-0.8.0 → port_ocean-0.9.1}/port_ocean/version.py +0 -0
|
@@ -71,4 +71,10 @@ def sail(
|
|
|
71
71
|
console.print("Setting event listener to Once")
|
|
72
72
|
override["event_listener"] = {"type": "ONCE"}
|
|
73
73
|
|
|
74
|
-
run(
|
|
74
|
+
run(
|
|
75
|
+
path,
|
|
76
|
+
log_level,
|
|
77
|
+
port,
|
|
78
|
+
initialize_port_resources=initialize_port_resources,
|
|
79
|
+
config_override=override,
|
|
80
|
+
)
|
|
@@ -2,9 +2,10 @@ from typing import Any, Literal
|
|
|
2
2
|
|
|
3
3
|
from port_ocean.config.base import BaseOceanSettings, BaseOceanModel
|
|
4
4
|
from port_ocean.core.event_listener import EventListenerSettingsType
|
|
5
|
-
from port_ocean.
|
|
5
|
+
from port_ocean.core.models import Runtime
|
|
6
|
+
from port_ocean.utils.misc import get_integration_name, get_spec_file
|
|
6
7
|
from pydantic import Extra, AnyHttpUrl, parse_obj_as
|
|
7
|
-
from pydantic.class_validators import root_validator
|
|
8
|
+
from pydantic.class_validators import root_validator, validator
|
|
8
9
|
from pydantic.env_settings import InitSettingsSource, EnvSettingsSource, BaseSettings
|
|
9
10
|
from pydantic.fields import Field
|
|
10
11
|
from pydantic.main import BaseModel
|
|
@@ -69,3 +70,20 @@ class IntegrationConfiguration(BaseOceanSettings, extra=Extra.allow):
|
|
|
69
70
|
event_listener: EventListenerSettingsType
|
|
70
71
|
# If an identifier or type is not provided, it will be generated based on the integration name
|
|
71
72
|
integration: IntegrationSettings = IntegrationSettings(type="", identifier="")
|
|
73
|
+
runtime: Runtime = "OnPrem"
|
|
74
|
+
|
|
75
|
+
@validator("runtime")
|
|
76
|
+
def validate_runtime(cls, runtime: Literal["OnPrem", "Saas"]) -> Runtime:
|
|
77
|
+
if runtime == "Saas":
|
|
78
|
+
spec = get_spec_file()
|
|
79
|
+
if spec is None:
|
|
80
|
+
raise ValueError(
|
|
81
|
+
"Could not determine whether it's safe to run "
|
|
82
|
+
"the integration due to not found spec.yaml."
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
saas_config = spec.get("saas")
|
|
86
|
+
if saas_config and not saas_config["enabled"]:
|
|
87
|
+
raise ValueError("This integration can't be ran as Saas")
|
|
88
|
+
|
|
89
|
+
return runtime
|
|
@@ -89,8 +89,8 @@ async def _initialize_required_integration_settings(
|
|
|
89
89
|
"changelog_destination"
|
|
90
90
|
)
|
|
91
91
|
if (
|
|
92
|
-
integration
|
|
93
|
-
or integration
|
|
92
|
+
integration.get("changelogDestination") != changelog_destination
|
|
93
|
+
or integration.get("installationAppType") != integration_config.integration.type
|
|
94
94
|
or integration.get("version") != port_client.integration_version
|
|
95
95
|
):
|
|
96
96
|
await port_client.patch_integration(
|
|
@@ -71,11 +71,15 @@ class JQEntityProcessor(BaseEntityProcessor):
|
|
|
71
71
|
async def _search_as_object(
|
|
72
72
|
self, data: dict[str, Any], obj: dict[str, Any]
|
|
73
73
|
) -> dict[str, Any | None]:
|
|
74
|
-
search_tasks: dict[
|
|
74
|
+
search_tasks: dict[
|
|
75
|
+
str, Task[dict[str, Any | None]] | list[Task[dict[str, Any | None]]]
|
|
76
|
+
] = {}
|
|
75
77
|
for key, value in obj.items():
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
if isinstance(value, list):
|
|
79
|
+
search_tasks[key] = [
|
|
80
|
+
asyncio.create_task(self._search_as_object(data, obj))
|
|
81
|
+
for obj in value
|
|
82
|
+
]
|
|
79
83
|
|
|
80
84
|
elif isinstance(value, dict):
|
|
81
85
|
search_tasks[key] = asyncio.create_task(
|
|
@@ -87,7 +91,7 @@ class JQEntityProcessor(BaseEntityProcessor):
|
|
|
87
91
|
result: dict[str, Any | None] = {}
|
|
88
92
|
for key, task in search_tasks.items():
|
|
89
93
|
try:
|
|
90
|
-
if isinstance(task,list):
|
|
94
|
+
if isinstance(task, list):
|
|
91
95
|
result[key] = [await task for task in task]
|
|
92
96
|
else:
|
|
93
97
|
result[key] = await task
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
from dataclasses import dataclass, field
|
|
2
|
-
from typing import Any
|
|
2
|
+
from typing import Any, Literal
|
|
3
3
|
|
|
4
4
|
from pydantic import BaseModel
|
|
5
5
|
from pydantic.fields import Field
|
|
6
6
|
|
|
7
7
|
|
|
8
|
+
Runtime = Literal["OnPrem", "Saas"]
|
|
9
|
+
|
|
10
|
+
|
|
8
11
|
class Entity(BaseModel):
|
|
9
12
|
identifier: Any
|
|
10
13
|
blueprint: Any
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
from typing import Iterable, Any, TypeVar, Callable, Awaitable
|
|
3
3
|
|
|
4
|
+
from loguru import logger
|
|
4
5
|
from pydantic import parse_obj_as, ValidationError
|
|
5
6
|
|
|
6
|
-
from port_ocean.
|
|
7
|
+
from port_ocean.clients.port.client import PortClient
|
|
8
|
+
from port_ocean.core.models import Entity, Runtime
|
|
7
9
|
from port_ocean.core.models import EntityPortDiff
|
|
8
10
|
from port_ocean.core.ocean_types import RAW_RESULT
|
|
9
|
-
from port_ocean.exceptions.core import
|
|
11
|
+
from port_ocean.exceptions.core import (
|
|
12
|
+
RawObjectValidationException,
|
|
13
|
+
IntegrationRuntimeException,
|
|
14
|
+
)
|
|
10
15
|
|
|
11
16
|
T = TypeVar("T", bound=tuple[list[Any], ...])
|
|
12
17
|
|
|
@@ -29,6 +34,18 @@ def is_same_entity(first_entity: Entity, second_entity: Entity) -> bool:
|
|
|
29
34
|
)
|
|
30
35
|
|
|
31
36
|
|
|
37
|
+
async def validate_integration_runtime(
|
|
38
|
+
port_client: PortClient, requested_runtime: Runtime
|
|
39
|
+
) -> None:
|
|
40
|
+
logger.debug("Validating integration runtime")
|
|
41
|
+
current_integration = await port_client.get_current_integration(should_raise=False)
|
|
42
|
+
current_runtime = current_integration.get("installationType", "OnPrem")
|
|
43
|
+
if current_integration and current_runtime != requested_runtime:
|
|
44
|
+
raise IntegrationRuntimeException(
|
|
45
|
+
f"Invalid Runtime! Requested to run existing {current_runtime} integration in {requested_runtime} runtime."
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
|
|
32
49
|
Q = TypeVar("Q")
|
|
33
50
|
|
|
34
51
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import asyncio
|
|
1
2
|
from inspect import getmembers
|
|
2
3
|
from typing import Dict, Any, Type
|
|
3
4
|
|
|
@@ -8,6 +9,7 @@ from port_ocean.bootstrap import create_default_app
|
|
|
8
9
|
from port_ocean.config.dynamic import default_config_factory
|
|
9
10
|
from port_ocean.config.settings import ApplicationSettings, LogLevelType
|
|
10
11
|
from port_ocean.core.defaults.initialize import initialize_defaults
|
|
12
|
+
from port_ocean.core.utils import validate_integration_runtime
|
|
11
13
|
from port_ocean.log.logger_setup import setup_logger
|
|
12
14
|
from port_ocean.ocean import Ocean
|
|
13
15
|
from port_ocean.utils.misc import get_spec_file, load_module
|
|
@@ -45,6 +47,11 @@ def run(
|
|
|
45
47
|
"app", default_app
|
|
46
48
|
)
|
|
47
49
|
|
|
50
|
+
# Validate that the current integration's runtime matches the execution parameters
|
|
51
|
+
asyncio.get_event_loop().run_until_complete(
|
|
52
|
+
validate_integration_runtime(app.port_client, app.config.runtime)
|
|
53
|
+
)
|
|
54
|
+
|
|
48
55
|
# Override config with arguments
|
|
49
56
|
if initialize_port_resources is not None:
|
|
50
57
|
app.config.initialize_port_resources = initialize_port_resources
|
|
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
|
|
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.8.0 → port_ocean-0.9.1}/port_ocean/core/handlers/entities_state_applier/__init__.py
RENAMED
|
File without changes
|
{port_ocean-0.8.0 → port_ocean-0.9.1}/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
|
|
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
|