From a2897614854fd33f4f8d5983a408f61bcc09ee0b Mon Sep 17 00:00:00 2001 From: Parker Mossman Date: Mon, 26 Sep 2022 17:43:17 -0500 Subject: [PATCH] Remove default value from namespaceDefinitionType (#17177) * remove default value from namespaceDefinitionType * fix test * switch some tests to use PATCH-style connection update * add default logic to connection creation Co-authored-by: Michael Siega --- airbyte-api/src/main/openapi/config.yaml | 1 - .../server/handlers/ConnectionsHandler.java | 8 +++++++- .../server/handlers/ConnectionsHandlerTest.java | 1 + .../utils/AirbyteAcceptanceTestHarness.java | 9 +-------- .../test/acceptance/BasicAcceptanceTests.java | 17 +---------------- 5 files changed, 10 insertions(+), 26 deletions(-) diff --git a/airbyte-api/src/main/openapi/config.yaml b/airbyte-api/src/main/openapi/config.yaml index 8dfa1ea69e37..02a91076c5f0 100644 --- a/airbyte-api/src/main/openapi/config.yaml +++ b/airbyte-api/src/main/openapi/config.yaml @@ -3453,7 +3453,6 @@ components: NamespaceDefinitionType: type: string description: Method used for computing final namespace in destination - default: source enum: - source - destination diff --git a/airbyte-server/src/main/java/io/airbyte/server/handlers/ConnectionsHandler.java b/airbyte-server/src/main/java/io/airbyte/server/handlers/ConnectionsHandler.java index 07722d15b8b7..c14b8874c69e 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/handlers/ConnectionsHandler.java +++ b/airbyte-server/src/main/java/io/airbyte/server/handlers/ConnectionsHandler.java @@ -121,11 +121,17 @@ public ConnectionRead createConnection(final ConnectionCreate connectionCreate) final UUID connectionId = uuidGenerator.get(); + // If not specified, default the NamespaceDefinition to 'source' + final NamespaceDefinitionType namespaceDefinitionType = + connectionCreate.getNamespaceDefinition() == null + ? NamespaceDefinitionType.SOURCE + : Enums.convertTo(connectionCreate.getNamespaceDefinition(), NamespaceDefinitionType.class); + // persist sync final StandardSync standardSync = new StandardSync() .withConnectionId(connectionId) .withName(connectionCreate.getName() != null ? connectionCreate.getName() : defaultName) - .withNamespaceDefinition(Enums.convertTo(connectionCreate.getNamespaceDefinition(), NamespaceDefinitionType.class)) + .withNamespaceDefinition(namespaceDefinitionType) .withNamespaceFormat(connectionCreate.getNamespaceFormat()) .withPrefix(connectionCreate.getPrefix()) .withSourceId(connectionCreate.getSourceId()) diff --git a/airbyte-server/src/test/java/io/airbyte/server/handlers/ConnectionsHandlerTest.java b/airbyte-server/src/test/java/io/airbyte/server/handlers/ConnectionsHandlerTest.java index 77c52b8c7f63..02d6fabbe53d 100644 --- a/airbyte-server/src/test/java/io/airbyte/server/handlers/ConnectionsHandlerTest.java +++ b/airbyte-server/src/test/java/io/airbyte/server/handlers/ConnectionsHandlerTest.java @@ -720,6 +720,7 @@ void testSearchConnections() throws JsonValidationException, ConfigNotFoundExcep .thenReturn(destinationDefinition); final ConnectionSearch connectionSearch = new ConnectionSearch(); + connectionSearch.namespaceDefinition(NamespaceDefinitionType.SOURCE); ConnectionReadList actualConnectionReadList = connectionsHandler.searchConnections(connectionSearch); assertEquals(1, actualConnectionReadList.getConnections().size()); assertEquals(connectionRead1, actualConnectionReadList.getConnections().get(0)); diff --git a/airbyte-test-utils/src/main/java/io/airbyte/test/utils/AirbyteAcceptanceTestHarness.java b/airbyte-test-utils/src/main/java/io/airbyte/test/utils/AirbyteAcceptanceTestHarness.java index bbb6c9ddecb5..5f5bd4589fe0 100644 --- a/airbyte-test-utils/src/main/java/io/airbyte/test/utils/AirbyteAcceptanceTestHarness.java +++ b/airbyte-test-utils/src/main/java/io/airbyte/test/utils/AirbyteAcceptanceTestHarness.java @@ -725,15 +725,8 @@ private void clearDestinationDbData() throws SQLException { } private void disableConnection(final UUID connectionId) throws ApiException { - final ConnectionRead connection = apiClient.getConnectionApi().getConnection(new ConnectionIdRequestBody().connectionId(connectionId)); final ConnectionUpdate connectionUpdate = - new ConnectionUpdate() - .prefix(connection.getPrefix()) - .connectionId(connectionId) - .operationIds(connection.getOperationIds()) - .status(ConnectionStatus.DEPRECATED) - .schedule(connection.getSchedule()) - .syncCatalog(connection.getSyncCatalog()); + new ConnectionUpdate().connectionId(connectionId).status(ConnectionStatus.DEPRECATED); apiClient.getConnectionApi().updateConnection(connectionUpdate); } diff --git a/airbyte-tests/src/acceptanceTests/java/io/airbyte/test/acceptance/BasicAcceptanceTests.java b/airbyte-tests/src/acceptanceTests/java/io/airbyte/test/acceptance/BasicAcceptanceTests.java index 50717ff53ada..68b7a9c64f42 100644 --- a/airbyte-tests/src/acceptanceTests/java/io/airbyte/test/acceptance/BasicAcceptanceTests.java +++ b/airbyte-tests/src/acceptanceTests/java/io/airbyte/test/acceptance/BasicAcceptanceTests.java @@ -71,7 +71,6 @@ import io.airbyte.api.client.model.generated.StreamState; import io.airbyte.api.client.model.generated.SyncMode; import io.airbyte.api.client.model.generated.WebBackendConnectionUpdate; -import io.airbyte.api.client.model.generated.WebBackendOperationCreateOrUpdate; import io.airbyte.commons.json.Jsons; import io.airbyte.commons.temporal.scheduling.state.WorkflowState; import io.airbyte.db.Database; @@ -1095,22 +1094,8 @@ void testResetAllWhenSchemaIsModifiedForLegacySource() throws Exception { // Update with refreshed catalog LOGGER.info("Submit the update request"); final WebBackendConnectionUpdate update = new WebBackendConnectionUpdate() - .name(connection.getName()) .connectionId(connection.getConnectionId()) - .namespaceDefinition(connection.getNamespaceDefinition()) - .namespaceFormat(connection.getNamespaceFormat()) - .prefix(connection.getPrefix()) - .operations(List.of( - new WebBackendOperationCreateOrUpdate() - .name(operation.getName()) - .operationId(operation.getOperationId()) - .workspaceId(operation.getWorkspaceId()) - .operatorConfiguration(operation.getOperatorConfiguration()))) - .syncCatalog(updatedCatalog) - .schedule(connection.getSchedule()) - .sourceCatalogId(connection.getSourceCatalogId()) - .status(connection.getStatus()) - .resourceRequirements(connection.getResourceRequirements()); + .syncCatalog(updatedCatalog); webBackendApi.webBackendUpdateConnection(update); LOGGER.info("Inspecting Destination DB after the update request, tables should be empty");