diff --git a/gooddata-pipelines/gooddata_pipelines/__init__.py b/gooddata-pipelines/gooddata_pipelines/__init__.py index 26c8a5eff..c7a1bbed8 100644 --- a/gooddata-pipelines/gooddata_pipelines/__init__.py +++ b/gooddata-pipelines/gooddata_pipelines/__init__.py @@ -6,6 +6,8 @@ from .backup_and_restore.backup_manager import BackupManager from .backup_and_restore.models.storage import ( BackupRestoreConfig, + LocalStorageConfig, + S3StorageConfig, StorageType, ) from .backup_and_restore.storage.local_storage import LocalStorage @@ -51,6 +53,8 @@ "UserIncrementalLoad", "UserGroupIncrementalLoad", "PermissionFullLoad", + "LocalStorageConfig", + "S3StorageConfig", "PermissionIncrementalLoad", "UserFullLoad", "UserGroupFullLoad", diff --git a/gooddata-pipelines/gooddata_pipelines/provisioning/provisioning.py b/gooddata-pipelines/gooddata_pipelines/provisioning/provisioning.py index 75b34229d..8a6aa7d20 100644 --- a/gooddata-pipelines/gooddata_pipelines/provisioning/provisioning.py +++ b/gooddata-pipelines/gooddata_pipelines/provisioning/provisioning.py @@ -50,7 +50,7 @@ def create_from_profile( ) -> TProvisioning: """Creates a provisioner instance using a GoodData profile file.""" content = profile_content(profile, profiles_path) - return cls(**content) + return cls(host=content["host"], token=content["token"]) @staticmethod def _validate_credentials(host: str, token: str) -> None: @@ -165,5 +165,4 @@ def _handle_fatal_exception(self, e: Exception) -> None: self.logger.error(exception_message) - if not self.logger.subscribers: - raise Exception(exception_message) + raise Exception(exception_message) diff --git a/gooddata-pipelines/tests/data/profiles.yaml b/gooddata-pipelines/tests/data/profiles.yaml new file mode 100644 index 000000000..63349e3e6 --- /dev/null +++ b/gooddata-pipelines/tests/data/profiles.yaml @@ -0,0 +1,4 @@ +# (C) 2025 GoodData Corporation +mock_profile: + host: http://localhost:3000 + token: some_user_token diff --git a/gooddata-pipelines/tests/provisioning/test_provisioning.py b/gooddata-pipelines/tests/provisioning/test_provisioning.py index 6ae79a657..aaaf423ab 100644 --- a/gooddata-pipelines/tests/provisioning/test_provisioning.py +++ b/gooddata-pipelines/tests/provisioning/test_provisioning.py @@ -1,4 +1,6 @@ # (C) 2025 GoodData Corporation +from pathlib import Path + import pytest from gooddata_pipelines import ( @@ -14,6 +16,8 @@ from gooddata_pipelines.provisioning.entities.workspaces.models import ( WorkspaceIncrementalLoad, ) +from gooddata_pipelines.provisioning.provisioning import Provisioning +from tests.conftest import TEST_DATA_DIR WORKSPACE_DATA_TO_FAIL = [ WorkspaceFullLoad( @@ -102,3 +106,13 @@ def test_fail_type_validation( ) assert "Not all elements in source data are instances of" in str(e) + + +def test_create_from_profile() -> None: + """Test creating a provisioner from a profile.""" + provisioner: Provisioning = Provisioning.create_from_profile( + profile="mock_profile", + profiles_path=Path(f"{TEST_DATA_DIR}/profiles.yaml"), + ) + assert provisioner._api._domain == "http://localhost:3000" + assert provisioner._api._token == "some_user_token"