diff --git a/build.gradle.kts b/build.gradle.kts index 093a0d72b..4dd9d65d7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -18,7 +18,7 @@ allprojects { group = "io.flamingock" version = "1.3.0-SNAPSHOT" - extra["generalUtilVersion"] = "1.5.1" + extra["generalUtilVersion"] = "1.5.2" extra["templateApiVersion"] = "1.3.2" extra["coreApiVersion"] = "1.3.1" extra["sqlVersion"] = "1.2.0" diff --git a/cloud/flamingock-cloud-api/build.gradle.kts b/cloud/flamingock-cloud-api/build.gradle.kts index 915f06ea2..7edb2d7cf 100644 --- a/cloud/flamingock-cloud-api/build.gradle.kts +++ b/cloud/flamingock-cloud-api/build.gradle.kts @@ -3,6 +3,11 @@ dependencies { description = "Cloud Edition public API definitions" +val coreApiVersion: String by extra +dependencies { + api("io.flamingock:flamingock-core-api:${coreApiVersion}") +} + java { toolchain { languageVersion.set(JavaLanguageVersion.of(8)) diff --git a/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/error/FlamingockError.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/error/FlamingockError.java new file mode 100644 index 000000000..f9cd1414e --- /dev/null +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/error/FlamingockError.java @@ -0,0 +1,31 @@ +/* + * Copyright 2026 Flamingock (https://www.flamingock.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.flamingock.cloud.api.error; + +import java.util.Map; + +public interface FlamingockError { + + String getCode(); + + boolean getRecoverable(); + + String getPublicMessage(); + + String getInternalMessage(); + + Map getParameters(); +} diff --git a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/cloud/audit/AuditEntryRequest.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/AuditEntryRequest.java similarity index 79% rename from core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/cloud/audit/AuditEntryRequest.java rename to cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/AuditEntryRequest.java index dad3191e0..40aee86c7 100644 --- a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/cloud/audit/AuditEntryRequest.java +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/AuditEntryRequest.java @@ -13,37 +13,39 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.flamingock.internal.common.cloud.audit; +package io.flamingock.cloud.api.request; import io.flamingock.api.RecoveryStrategy; -import io.flamingock.internal.common.core.audit.AuditTxType; public class AuditEntryRequest { - private final String stageId; - private final String taskId; - private final String author; - private final long appliedAtEpochMillis; - private final Status state; - private final String className; - private final String methodName; - private final Object metadata; - private final long executionMillis; - private final String executionHostname; - private final String errorTrace; - private final ChangeType type; - private final AuditTxType txStrategy; - private final String targetSystemId; - private final String order; - private final RecoveryStrategy recoveryStrategy; - private final Boolean transactionFlag; + private String stageId; + private String taskId; + private String author; + private long appliedAtEpochMillis; + private AuditEntryStatus state; + private String className; + private String methodName; + private Object metadata; + private long executionMillis; + private String executionHostname; + private String errorTrace; + private ChangeType type; + private CloudAuditTxType txStrategy; + private String targetSystemId; + private String order; + private RecoveryStrategy recoveryStrategy; + private Boolean transactionFlag; protected Boolean systemChange;//TODO not in server + public AuditEntryRequest() { + } + public AuditEntryRequest(String stageId, String taskId, String author, long appliedAtEpochMillis, - Status state, + AuditEntryStatus state, ChangeType type, String className, String methodName, @@ -52,7 +54,7 @@ public AuditEntryRequest(String stageId, Object metadata, boolean systemChange, String errorTrace, - AuditTxType txStrategy, + CloudAuditTxType txStrategy, String targetSystemId, String order, RecoveryStrategy recoveryStrategy, @@ -94,7 +96,7 @@ public long getAppliedAtEpochMillis() { return appliedAtEpochMillis; } - public Status getState() { + public AuditEntryStatus getState() { return state; } @@ -130,7 +132,7 @@ public ChangeType getType() { return type; } - public AuditTxType getTxStrategy() { + public CloudAuditTxType getTxStrategy() { return txStrategy; } @@ -152,7 +154,7 @@ public Boolean getTransactionFlag() { public enum ChangeType {STANDARD_CODE, STANDARD_TEMPLATE, MONGOCK_EXECUTION, MONGOCK_BEFORE} - public enum Status { + public enum AuditEntryStatus { STARTED, APPLIED, FAILED, diff --git a/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/CloudAuditTxType.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/CloudAuditTxType.java new file mode 100644 index 000000000..e299a1dad --- /dev/null +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/CloudAuditTxType.java @@ -0,0 +1,24 @@ +/* + * Copyright 2025 Flamingock (https://www.flamingock.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.flamingock.cloud.api.request; + +public enum CloudAuditTxType { + NON_TX, + TX_SHARED, // SharedTx (Target system the same as the audit store) + TX_SEPARATE_WITH_MARKER, // SimpleTx (Target system is not the audit store). With marker + TX_SEPARATE_NO_MARKER; // SimpleTx (Target system is not the audit store). Without marker + +} \ No newline at end of file diff --git a/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/LockAcquisitionRequest.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/LockAcquisitionRequest.java new file mode 100644 index 000000000..e0390e38d --- /dev/null +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/LockAcquisitionRequest.java @@ -0,0 +1,56 @@ +/* + * Copyright 2026 Flamingock (https://www.flamingock.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.flamingock.cloud.api.request; + +public class LockAcquisitionRequest { + + private long acquiredForMillis; + private String lastAcquisitionId; + private Long elapsedMillis; + + public LockAcquisitionRequest() { + } + + public LockAcquisitionRequest(long acquiredForMillis, String lastAcquisitionId, Long elapsedMillis) { + this.acquiredForMillis = acquiredForMillis; + this.lastAcquisitionId = lastAcquisitionId; + this.elapsedMillis = elapsedMillis; + } + + public long getAcquiredForMillis() { + return acquiredForMillis; + } + + public void setAcquiredForMillis(long acquiredForMillis) { + this.acquiredForMillis = acquiredForMillis; + } + + public String getLastAcquisitionId() { + return lastAcquisitionId; + } + + public void setLastAcquisitionId(String lastAcquisitionId) { + this.lastAcquisitionId = lastAcquisitionId; + } + + public Long getElapsedMillis() { + return elapsedMillis; + } + + public void setElapsedMillis(Long elapsedMillis) { + this.elapsedMillis = elapsedMillis; + } +} diff --git a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/cloud/lock/LockExtensionRequest.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/LockExtensionRequest.java similarity index 95% rename from core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/cloud/lock/LockExtensionRequest.java rename to cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/LockExtensionRequest.java index dc0f4cf23..e8b648c09 100644 --- a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/cloud/lock/LockExtensionRequest.java +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/LockExtensionRequest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.flamingock.internal.common.cloud.lock; +package io.flamingock.cloud.api.request; public class LockExtensionRequest { diff --git a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/cloud/auth/AuthRequest.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/TokenExchangeRequest.java similarity index 61% rename from core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/cloud/auth/AuthRequest.java rename to cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/TokenExchangeRequest.java index 6f4d7172e..bd876bd83 100644 --- a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/cloud/auth/AuthRequest.java +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/TokenExchangeRequest.java @@ -13,20 +13,35 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.flamingock.internal.common.cloud.auth; +package io.flamingock.cloud.api.request; -public class AuthRequest { +public class TokenExchangeRequest { - private final String apiToken; - private final String serviceName; - private final String environmentName; + private String apiToken; + private String serviceName; + private String environmentName; - public AuthRequest(String apiToken, String serviceName, String environmentName) { + public TokenExchangeRequest() { + } + + public TokenExchangeRequest(String apiToken, String serviceName, String environmentName) { this.apiToken = apiToken; this.serviceName = serviceName; this.environmentName = environmentName; } + public void setApiToken(String apiToken) { + this.apiToken = apiToken; + } + + public void setServiceName(String serviceName) { + this.serviceName = serviceName; + } + + public void setEnvironmentName(String environmentName) { + this.environmentName = environmentName; + } + public String getApiToken() { return apiToken; } diff --git a/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/ExecutionFullResponse.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/ExecutionFullResponse.java new file mode 100644 index 000000000..00f29586c --- /dev/null +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/ExecutionFullResponse.java @@ -0,0 +1,84 @@ +/* + * Copyright 2026 Flamingock (https://www.flamingock.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.flamingock.cloud.api.response; + +import io.flamingock.cloud.api.request.ClientSubmission; + +import java.time.Instant; + +public class ExecutionFullResponse { + + private String executionId; + private long environmentId; + private long serviceId; + private String runnerId; + private Instant startedAt; + private ClientSubmission clientSubmission; + private PipelineResponse pipeline; + + public ExecutionFullResponse() { + } + + public ExecutionFullResponse(String executionId, long environmentId, long serviceId, String runnerId, + Instant startedAt, ClientSubmission clientSubmission, PipelineResponse pipeline) { + this.executionId = executionId; + this.environmentId = environmentId; + this.serviceId = serviceId; + this.runnerId = runnerId; + this.startedAt = startedAt; + this.clientSubmission = clientSubmission; + this.pipeline = pipeline; + } + + public String getExecutionId() { return executionId; } + public void setExecutionId(String executionId) { this.executionId = executionId; } + + public long getEnvironmentId() { return environmentId; } + public void setEnvironmentId(long environmentId) { this.environmentId = environmentId; } + + public long getServiceId() { return serviceId; } + public void setServiceId(long serviceId) { this.serviceId = serviceId; } + + public String getRunnerId() { return runnerId; } + public void setRunnerId(String runnerId) { this.runnerId = runnerId; } + + public Instant getStartedAt() { return startedAt; } + public void setStartedAt(Instant startedAt) { this.startedAt = startedAt; } + + public ClientSubmission getClientSubmission() { return clientSubmission; } + public void setClientSubmission(ClientSubmission clientSubmission) { this.clientSubmission = clientSubmission; } + + public PipelineResponse getPipeline() { return pipeline; } + public void setPipeline(PipelineResponse pipeline) { this.pipeline = pipeline; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ExecutionFullResponse that = (ExecutionFullResponse) o; + return environmentId == that.environmentId && serviceId == that.serviceId + && java.util.Objects.equals(executionId, that.executionId) + && java.util.Objects.equals(runnerId, that.runnerId) + && java.util.Objects.equals(startedAt, that.startedAt) + && java.util.Objects.equals(clientSubmission, that.clientSubmission) + && java.util.Objects.equals(pipeline, that.pipeline); + } + + @Override + public int hashCode() { + return java.util.Objects.hash(executionId, environmentId, serviceId, runnerId, startedAt, clientSubmission, pipeline); + } +} diff --git a/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/ExecutionResponse.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/ExecutionResponse.java new file mode 100644 index 000000000..06e807d45 --- /dev/null +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/ExecutionResponse.java @@ -0,0 +1,69 @@ +/* + * Copyright 2026 Flamingock (https://www.flamingock.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.flamingock.cloud.api.response; + +import java.time.Instant; + +public class ExecutionResponse { + + private String executionId; + private long environmentId; + private long serviceId; + private String runnerId; + private Instant startedAt; + + public ExecutionResponse() { + } + + public ExecutionResponse(String executionId, long environmentId, long serviceId, String runnerId, Instant startedAt) { + this.executionId = executionId; + this.environmentId = environmentId; + this.serviceId = serviceId; + this.runnerId = runnerId; + this.startedAt = startedAt; + } + + public String getExecutionId() { return executionId; } + public void setExecutionId(String executionId) { this.executionId = executionId; } + + public long getEnvironmentId() { return environmentId; } + public void setEnvironmentId(long environmentId) { this.environmentId = environmentId; } + + public long getServiceId() { return serviceId; } + public void setServiceId(long serviceId) { this.serviceId = serviceId; } + + public String getRunnerId() { return runnerId; } + public void setRunnerId(String runnerId) { this.runnerId = runnerId; } + + public Instant getStartedAt() { return startedAt; } + public void setStartedAt(Instant startedAt) { this.startedAt = startedAt; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ExecutionResponse that = (ExecutionResponse) o; + return environmentId == that.environmentId && serviceId == that.serviceId + && java.util.Objects.equals(executionId, that.executionId) + && java.util.Objects.equals(runnerId, that.runnerId) + && java.util.Objects.equals(startedAt, that.startedAt); + } + + @Override + public int hashCode() { + return java.util.Objects.hash(executionId, environmentId, serviceId, runnerId, startedAt); + } +} diff --git a/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LockInfo.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LockInfo.java index 000c00c88..978f365b8 100644 --- a/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LockInfo.java +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LockInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Flamingock (https://www.flamingock.io) + * Copyright 2023 Flamingock (https://www.flamingock.io) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,6 @@ public class LockInfo { private long acquiredForMillis; - public LockInfo() { } @@ -60,4 +59,5 @@ public long getAcquiredForMillis() { public void setAcquiredForMillis(long acquiredForMillis) { this.acquiredForMillis = acquiredForMillis; } + } diff --git a/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LockResponse.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LockResponse.java new file mode 100644 index 000000000..60f8491ff --- /dev/null +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LockResponse.java @@ -0,0 +1,48 @@ +/* + * Copyright 2026 Flamingock (https://www.flamingock.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.flamingock.cloud.api.response; + +import io.flamingock.cloud.api.vo.LockStatus; + +public class LockResponse { + + private LockInfo lock; + private LockStatus status; + + public LockResponse() { + } + + public LockResponse(LockStatus status, LockInfo lock) { + this.lock = lock; + this.status = status; + } + + public LockInfo getLock() { + return lock; + } + + public void setLock(LockInfo lock) { + this.lock = lock; + } + + public LockStatus getStatus() { + return status; + } + + public void setStatus(LockStatus status) { + this.status = status; + } +} diff --git a/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LogAuditEntryAlreadyCreatedResponse.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LogAuditEntryAlreadyCreatedResponse.java new file mode 100644 index 000000000..c528a68f2 --- /dev/null +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LogAuditEntryAlreadyCreatedResponse.java @@ -0,0 +1,26 @@ +/* + * Copyright 2026 Flamingock (https://www.flamingock.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.flamingock.cloud.api.response; + +public class LogAuditEntryAlreadyCreatedResponse extends LogAuditEntryResponse { + + public LogAuditEntryAlreadyCreatedResponse() { + } + + public LogAuditEntryAlreadyCreatedResponse(LockInfo lock) { + super(lock); + } +} diff --git a/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LogAuditEntryCreatedResponse.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LogAuditEntryCreatedResponse.java new file mode 100644 index 000000000..cea908ca2 --- /dev/null +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LogAuditEntryCreatedResponse.java @@ -0,0 +1,26 @@ +/* + * Copyright 2026 Flamingock (https://www.flamingock.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.flamingock.cloud.api.response; + +public class LogAuditEntryCreatedResponse extends LogAuditEntryResponse { + + public LogAuditEntryCreatedResponse() { + } + + public LogAuditEntryCreatedResponse(LockInfo lock) { + super(lock); + } +} diff --git a/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LogAuditEntryResponse.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LogAuditEntryResponse.java new file mode 100644 index 000000000..96fbe230b --- /dev/null +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/LogAuditEntryResponse.java @@ -0,0 +1,36 @@ +/* + * Copyright 2026 Flamingock (https://www.flamingock.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.flamingock.cloud.api.response; + +public abstract class LogAuditEntryResponse { + + private LockInfo lock; + + public LogAuditEntryResponse() { + } + + public LogAuditEntryResponse(LockInfo lock) { + this.lock = lock; + } + + public LockInfo getLock() { + return lock; + } + + public void setLock(LockInfo lock) { + this.lock = lock; + } +} diff --git a/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/PipelineResponse.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/PipelineResponse.java new file mode 100644 index 000000000..240902e3c --- /dev/null +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/PipelineResponse.java @@ -0,0 +1,46 @@ +/* + * Copyright 2026 Flamingock (https://www.flamingock.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.flamingock.cloud.api.response; + +import java.util.List; + +public class PipelineResponse { + + private List stages; + + public PipelineResponse() { + } + + public PipelineResponse(List stages) { + this.stages = stages; + } + + public List getStages() { return stages; } + public void setStages(List stages) { this.stages = stages; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PipelineResponse that = (PipelineResponse) o; + return java.util.Objects.equals(stages, that.stages); + } + + @Override + public int hashCode() { + return java.util.Objects.hash(stages); + } +} diff --git a/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/TokenExchangeResponse.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/TokenExchangeResponse.java new file mode 100644 index 000000000..708c3db16 --- /dev/null +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/response/TokenExchangeResponse.java @@ -0,0 +1,83 @@ +/* + * Copyright 2026 Flamingock (https://www.flamingock.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.flamingock.cloud.api.response; + +public class TokenExchangeResponse { + + private String jwt; + + private long organisationId; + private String organisationName; + + private long projectId; + private String projectName; + + private long environmentId; + private String environmentName; + + private long serviceId; + private String serviceName; + + private long credentialId; + + public TokenExchangeResponse() { + } + + public TokenExchangeResponse(long organisationId, String organisationName, long projectId, String projectName, + long environmentId, String environmentName, long serviceId, String serviceName, + long credentialId, String jwt) { + this.organisationId = organisationId; + this.organisationName = organisationName; + this.projectId = projectId; + this.projectName = projectName; + this.environmentId = environmentId; + this.environmentName = environmentName; + this.serviceId = serviceId; + this.serviceName = serviceName; + this.credentialId = credentialId; + this.jwt = jwt; + } + + public long getOrganisationId() { return organisationId; } + public void setOrganisationId(long organisationId) { this.organisationId = organisationId; } + + public String getOrganisationName() { return organisationName; } + public void setOrganisationName(String organisationName) { this.organisationName = organisationName; } + + public long getProjectId() { return projectId; } + public void setProjectId(long projectId) { this.projectId = projectId; } + + public String getProjectName() { return projectName; } + public void setProjectName(String projectName) { this.projectName = projectName; } + + public long getEnvironmentId() { return environmentId; } + public void setEnvironmentId(long environmentId) { this.environmentId = environmentId; } + + public String getEnvironmentName() { return environmentName; } + public void setEnvironmentName(String environmentName) { this.environmentName = environmentName; } + + public long getServiceId() { return serviceId; } + public void setServiceId(long serviceId) { this.serviceId = serviceId; } + + public String getServiceName() { return serviceName; } + public void setServiceName(String serviceName) { this.serviceName = serviceName; } + + public long getCredentialId() { return credentialId; } + public void setCredentialId(long credentialId) { this.credentialId = credentialId; } + + public String getJwt() { return jwt; } + public void setJwt(String jwt) { this.jwt = jwt; } +} diff --git a/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/vo/LockStatus.java b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/vo/LockStatus.java new file mode 100644 index 000000000..30ef85e39 --- /dev/null +++ b/cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/vo/LockStatus.java @@ -0,0 +1,20 @@ +/* + * Copyright 2026 Flamingock (https://www.flamingock.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.flamingock.cloud.api.vo; + +public enum LockStatus { + ACQUIRED, LOCKED_BY_OTHER, EXTENDED +} diff --git a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/CloudAuditStoreImpl.java b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/CloudAuditStoreImpl.java index 96beaa88a..8825d5696 100644 --- a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/CloudAuditStoreImpl.java +++ b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/CloudAuditStoreImpl.java @@ -25,7 +25,7 @@ import io.flamingock.internal.core.configuration.cloud.CloudConfigurable; import io.flamingock.internal.core.configuration.core.CoreConfigurable; import io.flamingock.internal.core.external.store.CloudAuditStore; -import io.flamingock.internal.common.cloud.auth.AuthResponse; +import io.flamingock.cloud.api.response.TokenExchangeResponse; import io.flamingock.cloud.audit.HtttpAuditWriter; import io.flamingock.cloud.auth.AuthManager; import io.flamingock.cloud.auth.HttpAuthClient; @@ -89,10 +89,10 @@ private CloudAuditPersistenceImpl buildPersistence(RunnerId runnerId, cloudConfiguration.getServiceName(), cloudConfiguration.getEnvironmentName(), getAuthClient(cloudConfiguration, requestBuilderFactory)); - AuthResponse authResponse = authManager.authenticate(); + TokenExchangeResponse authResponse = authManager.authenticate(); - EnvironmentId environmentId = EnvironmentId.fromString(authResponse.getEnvironmentId()); - ServiceId serviceId = ServiceId.fromString(authResponse.getServiceId()); + EnvironmentId environmentId = EnvironmentId.fromLong(authResponse.getEnvironmentId()); + ServiceId serviceId = ServiceId.fromLong(authResponse.getServiceId()); LifecycleAuditWriter auditWriter = new HtttpAuditWriter( cloudConfiguration.getHost(), diff --git a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/audit/HtttpAuditWriter.java b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/audit/HtttpAuditWriter.java index 301b5ca2f..f85201d5e 100644 --- a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/audit/HtttpAuditWriter.java +++ b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/audit/HtttpAuditWriter.java @@ -15,8 +15,9 @@ */ package io.flamingock.cloud.audit; -import io.flamingock.internal.common.cloud.audit.AuditEntryRequest; +import io.flamingock.cloud.api.request.AuditEntryRequest; import io.flamingock.cloud.auth.AuthManager; +import io.flamingock.cloud.api.request.CloudAuditTxType; import io.flamingock.internal.util.id.EnvironmentId; import io.flamingock.internal.util.id.ServiceId; import io.flamingock.internal.common.core.audit.AuditEntry; @@ -85,6 +86,7 @@ public Result writeEntry(AuditEntry auditEntry) { private AuditEntryRequest buildRequest(AuditEntry auditEntry) { long appliedAtEpochMillis = ZonedDateTime.of(auditEntry.getCreatedAt(), ZoneId.systemDefault()).toInstant().toEpochMilli(); + CloudAuditTxType txType = auditEntry.getTxType() != null ? auditEntry.getTxType().toCloud() : null; return new AuditEntryRequest( auditEntry.getStageId(), auditEntry.getTaskId(), @@ -99,7 +101,7 @@ private AuditEntryRequest buildRequest(AuditEntry auditEntry) { auditEntry.getMetadata(), auditEntry.getSystemChange() != null ? auditEntry.getSystemChange() : false, auditEntry.getErrorTrace(), - auditEntry.getTxType(), + txType, auditEntry.getTargetSystemId(), auditEntry.getOrder(), auditEntry.getRecoveryStrategy(), diff --git a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/auth/AuthClient.java b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/auth/AuthClient.java index 0ea3ab314..959539f9c 100644 --- a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/auth/AuthClient.java +++ b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/auth/AuthClient.java @@ -16,9 +16,9 @@ package io.flamingock.cloud.auth; -import io.flamingock.internal.common.cloud.auth.AuthRequest; -import io.flamingock.internal.common.cloud.auth.AuthResponse; +import io.flamingock.cloud.api.request.TokenExchangeRequest; +import io.flamingock.cloud.api.response.TokenExchangeResponse; public interface AuthClient { - AuthResponse getToken(AuthRequest request); + TokenExchangeResponse getToken(TokenExchangeRequest request); } diff --git a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/auth/AuthManager.java b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/auth/AuthManager.java index 9aeeee41c..dd5a4e13b 100644 --- a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/auth/AuthManager.java +++ b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/auth/AuthManager.java @@ -15,14 +15,14 @@ */ package io.flamingock.cloud.auth; -import io.flamingock.internal.common.cloud.auth.AuthRequest; -import io.flamingock.internal.common.cloud.auth.AuthResponse; +import io.flamingock.cloud.api.request.TokenExchangeRequest; +import io.flamingock.cloud.api.response.TokenExchangeResponse; public class AuthManager { private final AuthClient authClient; - private final AuthRequest tokenRequest; + private final TokenExchangeRequest tokenRequest; private String jwtToken; @@ -31,14 +31,14 @@ public AuthManager(String apiToken, String environmentName, AuthClient authClient) { this.authClient = authClient; - this.tokenRequest = new AuthRequest( + this.tokenRequest = new TokenExchangeRequest( apiToken, serviceName, environmentName); } - public AuthResponse authenticate() { - AuthResponse token = authClient.getToken(tokenRequest); + public TokenExchangeResponse authenticate() { + TokenExchangeResponse token = authClient.getToken(tokenRequest); jwtToken = token.getJwt(); return token; } diff --git a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/auth/HttpAuthClient.java b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/auth/HttpAuthClient.java index 16f5b6458..a458adadd 100644 --- a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/auth/HttpAuthClient.java +++ b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/auth/HttpAuthClient.java @@ -16,8 +16,8 @@ package io.flamingock.cloud.auth; import io.flamingock.internal.util.http.Http; -import io.flamingock.internal.common.cloud.auth.AuthRequest; -import io.flamingock.internal.common.cloud.auth.AuthResponse; +import io.flamingock.cloud.api.request.TokenExchangeRequest; +import io.flamingock.cloud.api.response.TokenExchangeResponse; public class HttpAuthClient implements AuthClient { @@ -34,10 +34,10 @@ public HttpAuthClient(String host, } @Override - public AuthResponse getToken(AuthRequest request) { + public TokenExchangeResponse getToken(TokenExchangeRequest request) { return requestBuilder .POST(pathTemplate) .setBody(request) - .execute(AuthResponse.class); + .execute(TokenExchangeResponse.class); } } diff --git a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/lock/CloudLockService.java b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/lock/CloudLockService.java index c64219139..d18f9f17a 100644 --- a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/lock/CloudLockService.java +++ b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/lock/CloudLockService.java @@ -15,8 +15,8 @@ */ package io.flamingock.cloud.lock; -import io.flamingock.internal.common.cloud.lock.LockExtensionRequest; -import io.flamingock.internal.common.cloud.lock.LockResponse; +import io.flamingock.cloud.api.request.LockExtensionRequest; +import io.flamingock.cloud.api.response.LockInfo; import io.flamingock.cloud.lock.client.LockServiceClient; import io.flamingock.internal.core.external.store.lock.LockAcquisition; import io.flamingock.internal.core.external.store.lock.LockKey; @@ -40,8 +40,8 @@ public CloudLockService(LockServiceClient client) { @Override public LockAcquisition extendLock(LockKey key, RunnerId owner, long leaseMillis) throws LockServiceException { try { - LockResponse lockExtension = client.extendLock(key, owner, new LockExtensionRequest(leaseMillis)); - return new LockAcquisition(RunnerId.fromString(lockExtension.getOwner()), lockExtension.getLockAcquiredForMillis()); + LockInfo lockExtension = client.extendLock(key, owner, new LockExtensionRequest(leaseMillis)); + return new LockAcquisition(RunnerId.fromString(lockExtension.getOwner()), lockExtension.getAcquiredForMillis()); } catch (ServerException ex) { throw new LockServiceException( @@ -61,8 +61,8 @@ public LockAcquisition extendLock(LockKey key, RunnerId owner, long leaseMillis) @Override public LockAcquisition getLock(LockKey lockKey) { try { - LockResponse response = client.getLock(lockKey); - return new LockAcquisition(RunnerId.fromString(response.getOwner()), response.getLockAcquiredForMillis()); + LockInfo response = client.getLock(lockKey); + return new LockAcquisition(RunnerId.fromString(response.getOwner()), response.getAcquiredForMillis()); } catch (ServerException ex) { throw new LockServiceException( diff --git a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/lock/client/HttpLockServiceClient.java b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/lock/client/HttpLockServiceClient.java index 044396ffe..9a0b8166f 100644 --- a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/lock/client/HttpLockServiceClient.java +++ b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/lock/client/HttpLockServiceClient.java @@ -16,8 +16,8 @@ package io.flamingock.cloud.lock.client; import io.flamingock.cloud.auth.AuthManager; -import io.flamingock.internal.common.cloud.lock.LockExtensionRequest; -import io.flamingock.internal.common.cloud.lock.LockResponse; +import io.flamingock.cloud.api.request.LockExtensionRequest; +import io.flamingock.cloud.api.response.LockInfo; import io.flamingock.internal.core.external.store.lock.LockKey; import io.flamingock.internal.util.id.RunnerId; import io.flamingock.internal.util.http.Http; @@ -42,25 +42,25 @@ public HttpLockServiceClient(String host, } @Override - public LockResponse extendLock(LockKey lockKey, - RunnerId runnerId, - LockExtensionRequest extensionRequest) { + public LockInfo extendLock(LockKey lockKey, + RunnerId runnerId, + LockExtensionRequest extensionRequest) { return httpFactory .POST(pathTemplate + "/extension") .withBearerToken(authManager.getJwtToken()) .addPathParameter(SERVICE_PARAM, lockKey.toString()) .withRunnerId(runnerId) .setBody(extensionRequest) - .execute(LockResponse.class); + .execute(LockInfo.class); } @Override - public LockResponse getLock(LockKey lockKey) { + public LockInfo getLock(LockKey lockKey) { return httpFactory .GET(pathTemplate) .withBearerToken(authManager.getJwtToken()) .addPathParameter(SERVICE_PARAM, lockKey.toString()) - .execute(LockResponse.class); + .execute(LockInfo.class); } @Override diff --git a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/lock/client/LockServiceClient.java b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/lock/client/LockServiceClient.java index fce5074bc..296a9b248 100644 --- a/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/lock/client/LockServiceClient.java +++ b/cloud/flamingock-cloud/src/main/java/io/flamingock/cloud/lock/client/LockServiceClient.java @@ -15,18 +15,18 @@ */ package io.flamingock.cloud.lock.client; -import io.flamingock.internal.common.cloud.lock.LockExtensionRequest; -import io.flamingock.internal.common.cloud.lock.LockResponse; +import io.flamingock.cloud.api.request.LockExtensionRequest; +import io.flamingock.cloud.api.response.LockInfo; import io.flamingock.internal.core.external.store.lock.LockKey; import io.flamingock.internal.util.id.RunnerId; public interface LockServiceClient { - LockResponse extendLock(LockKey lockKey, - RunnerId runnerId, - LockExtensionRequest lockRequest); + LockInfo extendLock(LockKey lockKey, + RunnerId runnerId, + LockExtensionRequest lockRequest); - LockResponse getLock(LockKey lockKey); + LockInfo getLock(LockKey lockKey); void releaseLock(LockKey lockKey, RunnerId runnerId); } diff --git a/cloud/flamingock-cloud/src/test/java/io/flamingock/cloud/audit/HttpAuditWriterMapperTest.java b/cloud/flamingock-cloud/src/test/java/io/flamingock/cloud/audit/HttpAuditWriterMapperTest.java index f49358b82..e2d25c3dc 100644 --- a/cloud/flamingock-cloud/src/test/java/io/flamingock/cloud/audit/HttpAuditWriterMapperTest.java +++ b/cloud/flamingock-cloud/src/test/java/io/flamingock/cloud/audit/HttpAuditWriterMapperTest.java @@ -16,7 +16,8 @@ package io.flamingock.cloud.audit; import io.flamingock.core.kit.audit.AuditEntryTestFactory; -import io.flamingock.internal.common.cloud.audit.AuditEntryRequest; +import io.flamingock.cloud.api.request.AuditEntryRequest; +import io.flamingock.cloud.api.request.CloudAuditTxType; import io.flamingock.internal.common.core.audit.AuditEntry; import io.flamingock.internal.common.core.audit.AuditTxType; import org.junit.jupiter.api.Test; @@ -38,6 +39,7 @@ public void apply() {} void shouldIncludeTxTypeInRequest() { // Given AuditEntry auditEntry = AuditEntryTestFactory.createTestAuditEntry("test-change", AuditEntry.Status.APPLIED, AuditTxType.TX_SHARED, _001__TestManualInterventionChange.class); + CloudAuditTxType txType = auditEntry.getTxType() != null ? auditEntry.getTxType().toCloud() : null; // When AuditEntryRequest request = new AuditEntryRequest( @@ -54,7 +56,7 @@ void shouldIncludeTxTypeInRequest() { auditEntry.getMetadata(), auditEntry.getSystemChange() != null ? auditEntry.getSystemChange() : false, auditEntry.getErrorTrace(), - auditEntry.getTxType(), + txType, auditEntry.getTargetSystemId(), auditEntry.getOrder(), auditEntry.getRecoveryStrategy(), @@ -62,13 +64,14 @@ void shouldIncludeTxTypeInRequest() { ); // Then - assertEquals(AuditTxType.TX_SHARED, request.getTxStrategy()); + assertEquals(CloudAuditTxType.TX_SHARED, request.getTxStrategy()); } @Test void shouldHandleNullTxType() { // Given AuditEntry auditEntry = AuditEntryTestFactory.createTestAuditEntry("test-change", AuditEntry.Status.APPLIED, null, _001__TestDefaultRecoveryChange.class); + CloudAuditTxType txType = auditEntry.getTxType() != null ? auditEntry.getTxType().toCloud() : null; // When AuditEntryRequest request = new AuditEntryRequest( @@ -85,7 +88,7 @@ void shouldHandleNullTxType() { auditEntry.getMetadata(), auditEntry.getSystemChange() != null ? auditEntry.getSystemChange() : false, auditEntry.getErrorTrace(), - auditEntry.getTxType(), + txType, auditEntry.getTargetSystemId(), auditEntry.getOrder(), auditEntry.getRecoveryStrategy(), @@ -93,6 +96,6 @@ void shouldHandleNullTxType() { ); // Then - assertEquals(AuditTxType.NON_TX, request.getTxStrategy()); + assertEquals(CloudAuditTxType.NON_TX, request.getTxStrategy()); } } \ No newline at end of file diff --git a/cloud/flamingock-cloud/src/test/java/io/flamingock/core/cloud/CloudAuditPersistenceTest.java b/cloud/flamingock-cloud/src/test/java/io/flamingock/core/cloud/CloudAuditPersistenceTest.java index b10e2daad..5ade85ff1 100644 --- a/cloud/flamingock-cloud/src/test/java/io/flamingock/core/cloud/CloudAuditPersistenceTest.java +++ b/cloud/flamingock-cloud/src/test/java/io/flamingock/core/cloud/CloudAuditPersistenceTest.java @@ -26,7 +26,7 @@ import io.flamingock.internal.common.core.error.FlamingockException; import io.flamingock.internal.core.builder.CloudChangeRunnerBuilder; import io.flamingock.internal.core.builder.FlamingockFactory; -import io.flamingock.internal.common.cloud.audit.AuditEntryRequest; +import io.flamingock.cloud.api.request.AuditEntryRequest; import io.flamingock.internal.core.external.store.lock.LockException; import io.flamingock.internal.core.builder.runner.Runner; import org.junit.jupiter.api.AfterEach; @@ -55,17 +55,17 @@ public class CloudAuditPersistenceTest { private final String apiToken = "FAKE_API_TOKEN"; - private final String organisationId = UUID.randomUUID().toString(); + private final long organisationId = 1L; private final String organisationName = "MyOrganisation"; - private final String projectId = UUID.randomUUID().toString(); + private final long projectId = 2L; private final String projectName = "MyOrganisation"; private final String serviceName = "clients-service"; private final String environmentName = "development"; - private final String serviceId = "clients-service-id"; - private final String environmentId = "development-env-id"; - private final String credentialId = UUID.randomUUID().toString(); + private final long serviceId = 3L; + private final long environmentId = 4L; + private final long credentialId = 5L; private final int runnerServerPort = 8888; private final String jwt = "fake_jwt"; @@ -80,7 +80,7 @@ static void beforeAll() { AuditEntryMatcher( "create-persons-table-from-template", - AuditEntryRequest.Status.APPLIED, + AuditEntryRequest.AuditEntryStatus.APPLIED, _001__CloudChange1.class.getName(), "apply" )); @@ -88,7 +88,7 @@ static void beforeAll() { AuditEntryMatcher( "create-persons-table-from-template-2", - AuditEntryRequest.Status.APPLIED, + AuditEntryRequest.AuditEntryStatus.APPLIED, _002__CloudChange2.class.getName(), "apply" )); diff --git a/cloud/flamingock-cloud/src/test/java/io/flamingock/core/cloud/CloudTransactionTest.java b/cloud/flamingock-cloud/src/test/java/io/flamingock/core/cloud/CloudTransactionTest.java index 50970096e..72e181ac6 100644 --- a/cloud/flamingock-cloud/src/test/java/io/flamingock/core/cloud/CloudTransactionTest.java +++ b/cloud/flamingock-cloud/src/test/java/io/flamingock/core/cloud/CloudTransactionTest.java @@ -22,7 +22,7 @@ import io.flamingock.common.test.cloud.deprecated.MockRunnerServerOld; import io.flamingock.internal.core.builder.CloudChangeRunnerBuilder; import io.flamingock.internal.core.builder.FlamingockFactory; -import io.flamingock.internal.common.cloud.audit.AuditEntryRequest; +import io.flamingock.cloud.api.request.AuditEntryRequest; import io.flamingock.cloud.api.vo.TargetSystemAuditMarkType; import io.flamingock.internal.core.external.targets.mark.TargetSystemAuditMark; import io.flamingock.internal.core.builder.runner.Runner; @@ -48,17 +48,17 @@ public class CloudTransactionTest { private final String apiToken = "FAKE_API_TOKEN"; - private final String organisationId = UUID.randomUUID().toString(); + private final long organisationId = 1L; private final String organisationName = "MyOrganisation"; - private final String projectId = UUID.randomUUID().toString(); + private final long projectId = 2L; private final String projectName = "MyOrganisation"; private final String serviceName = "clients-service"; private final String environmentName = "development"; - private final String serviceId = "clients-service-id"; - private final String environmentId = "development-env-id"; - private final String credentialId = UUID.randomUUID().toString(); + private final long serviceId = 3L; + private final long environmentId = 4L; + private final long credentialId = 5L; private final int runnerServerPort = 8888; private final String jwt = "fake_jwt"; @@ -73,7 +73,7 @@ static void beforeAll() { AuditEntryMatcher( "create-persons-table-from-template", - AuditEntryRequest.Status.APPLIED, + AuditEntryRequest.AuditEntryStatus.APPLIED, _001__CloudChange1.class.getName(), "apply" )); @@ -81,7 +81,7 @@ static void beforeAll() { AuditEntryMatcher( "create-persons-table-from-template-2", - AuditEntryRequest.Status.APPLIED, + AuditEntryRequest.AuditEntryStatus.APPLIED, _002__CloudChange2.class.getName(), "apply" )); diff --git a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/cloud/auth/AuthResponse.java b/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/cloud/auth/AuthResponse.java deleted file mode 100644 index 2427a5bc1..000000000 --- a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/cloud/auth/AuthResponse.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright 2023 Flamingock (https://www.flamingock.io) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.flamingock.internal.common.cloud.auth; - -public class AuthResponse { - private String jwt; - - private String organisationId; - private String organisationName; - - private String projectId; - private String projectName; - - private String serviceId; - private String serviceName; - - private String environmentId; - private String environmentName; - - private String credentialId; - - - public String getJwt() { - return jwt; - } - - public void setJwt(String jwt) { - this.jwt = jwt; - } - - public String getOrganisationId() { - return organisationId; - } - - public void setOrganisationId(String organisationId) { - this.organisationId = organisationId; - } - - public String getOrganisationName() { - return organisationName; - } - - public void setOrganisationName(String organisationName) { - this.organisationName = organisationName; - } - - public String getProjectId() { - return projectId; - } - - public void setProjectId(String projectId) { - this.projectId = projectId; - } - - public String getProjectName() { - return projectName; - } - - public void setProjectName(String projectName) { - this.projectName = projectName; - } - - public String getServiceId() { - return serviceId; - } - - public void setServiceId(String serviceId) { - this.serviceId = serviceId; - } - - public String getServiceName() { - return serviceName; - } - - public void setServiceName(String serviceName) { - this.serviceName = serviceName; - } - - public String getEnvironmentId() { - return environmentId; - } - - public void setEnvironmentId(String environmentId) { - this.environmentId = environmentId; - } - - public String getEnvironmentName() { - return environmentName; - } - - public void setEnvironmentName(String environmentName) { - this.environmentName = environmentName; - } - - public String getCredentialId() { - return credentialId; - } - - public void setCredentialId(String credentialId) { - this.credentialId = credentialId; - } -} diff --git a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/cloud/lock/LockResponse.java b/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/cloud/lock/LockResponse.java deleted file mode 100644 index 72a1cb5dc..000000000 --- a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/cloud/lock/LockResponse.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2023 Flamingock (https://www.flamingock.io) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.flamingock.internal.common.cloud.lock; - -public class LockResponse { - - private String key; - - private String owner; - - private String guid; - - private long lockAcquiredForMillis; - - public LockResponse() { - } - - public String getKey() { - return key; - } - - public void setKey(String key) { - this.key = key; - } - - public String getOwner() { - return owner; - } - - public void setOwner(String owner) { - this.owner = owner; - } - - public String getGuid() { - return guid; - } - - public void setGuid(String guid) { - this.guid = guid; - } - - public long getLockAcquiredForMillis() { - return lockAcquiredForMillis; - } - - public void setLockAcquiredForMillis(long lockAcquiredForMillis) { - this.lockAcquiredForMillis = lockAcquiredForMillis; - } - -} diff --git a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/audit/AuditEntry.java b/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/audit/AuditEntry.java index 5a88bdda2..c8121e361 100644 --- a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/audit/AuditEntry.java +++ b/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/audit/AuditEntry.java @@ -17,7 +17,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import io.flamingock.api.RecoveryStrategy; -import io.flamingock.internal.common.cloud.audit.AuditEntryRequest; +import io.flamingock.cloud.api.request.AuditEntryRequest; import java.time.LocalDateTime; @@ -314,8 +314,8 @@ public boolean hasHigherPriorityThan(Status other) { return this.priority > other.priority; } - public AuditEntryRequest.Status toRequestStatus() { - return AuditEntryRequest.Status.valueOf(name()); + public AuditEntryRequest.AuditEntryStatus toRequestStatus() { + return AuditEntryRequest.AuditEntryStatus.valueOf(name()); } } diff --git a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/audit/AuditTxType.java b/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/audit/AuditTxType.java index 198cdf357..4057cfa76 100644 --- a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/audit/AuditTxType.java +++ b/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/audit/AuditTxType.java @@ -15,6 +15,8 @@ */ package io.flamingock.internal.common.core.audit; +import io.flamingock.cloud.api.request.CloudAuditTxType; + public enum AuditTxType { NON_TX, TX_SHARED, // SharedTx (Target system the same as the audit store) @@ -44,4 +46,8 @@ public static String safeString(AuditTxType strategy) { } return strategy.name(); } + + public CloudAuditTxType toCloud() { + return CloudAuditTxType.valueOf(this.name()); + } } \ No newline at end of file diff --git a/core/flamingock-core/src/main/java/io/flamingock/internal/core/external/store/lock/LockKey.java b/core/flamingock-core/src/main/java/io/flamingock/internal/core/external/store/lock/LockKey.java index f72ed6ad5..a6b955bf2 100644 --- a/core/flamingock-core/src/main/java/io/flamingock/internal/core/external/store/lock/LockKey.java +++ b/core/flamingock-core/src/main/java/io/flamingock/internal/core/external/store/lock/LockKey.java @@ -16,9 +16,9 @@ package io.flamingock.internal.core.external.store.lock; -import io.flamingock.internal.util.id.Id; +import io.flamingock.internal.util.id.StringId; -public class LockKey extends Id { +public class LockKey extends StringId { public static LockKey fromString(String value) { return new LockKey(value); diff --git a/core/flamingock-core/src/test/java/io/flamingock/core/ConversionsTest.java b/core/flamingock-core/src/test/java/io/flamingock/core/ConversionsTest.java index 376da20bb..ea4bc4076 100644 --- a/core/flamingock-core/src/test/java/io/flamingock/core/ConversionsTest.java +++ b/core/flamingock-core/src/test/java/io/flamingock/core/ConversionsTest.java @@ -15,7 +15,7 @@ */ package io.flamingock.core; -import io.flamingock.internal.common.cloud.audit.AuditEntryRequest; +import io.flamingock.cloud.api.request.AuditEntryRequest; import io.flamingock.internal.common.core.audit.AuditEntry; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -53,8 +53,8 @@ void auditEntryExecutionTypeShouldAuditEntryRequestExecutionType() { @DisplayName("AuditEntryRequest.Status should match AuditEntry.Status") void auditEntryStateShouldAuditEntryRequestState() { Set auditEntryRequestExecutionTypeValues = Arrays - .stream(AuditEntryRequest.Status.values()) - .map(AuditEntryRequest.Status::name) + .stream(AuditEntryRequest.AuditEntryStatus.values()) + .map(AuditEntryRequest.AuditEntryStatus::name) .collect(Collectors.toSet()); List auditEntryExecutionTypeValues = Arrays.stream(AuditEntry.Status.values()) .map(AuditEntry.Status::name) diff --git a/core/target-systems/flamingock-couchbase-targetsystem/src/test/java/io/flamingock/targetsystem/couchbase/CouchbaseTargetSystemTest.java b/core/target-systems/flamingock-couchbase-targetsystem/src/test/java/io/flamingock/targetsystem/couchbase/CouchbaseTargetSystemTest.java index 4e996d035..dd75d979f 100644 --- a/core/target-systems/flamingock-couchbase-targetsystem/src/test/java/io/flamingock/targetsystem/couchbase/CouchbaseTargetSystemTest.java +++ b/core/target-systems/flamingock-couchbase-targetsystem/src/test/java/io/flamingock/targetsystem/couchbase/CouchbaseTargetSystemTest.java @@ -59,9 +59,9 @@ import java.util.Collections; import java.util.UUID; -import static io.flamingock.internal.common.cloud.audit.AuditEntryRequest.Status.APPLIED; -import static io.flamingock.internal.common.cloud.audit.AuditEntryRequest.Status.FAILED; -import static io.flamingock.internal.common.cloud.audit.AuditEntryRequest.Status.ROLLED_BACK; +import static io.flamingock.cloud.api.request.AuditEntryRequest.AuditEntryStatus.APPLIED; +import static io.flamingock.cloud.api.request.AuditEntryRequest.AuditEntryStatus.FAILED; +import static io.flamingock.cloud.api.request.AuditEntryRequest.AuditEntryStatus.ROLLED_BACK; @Testcontainers public class CouchbaseTargetSystemTest { @@ -77,15 +77,15 @@ public class CouchbaseTargetSystemTest { private static CouchbaseTestHelper couchbaseTestHelper; private final String apiToken = "FAKE_API_TOKEN"; - private final String organisationId = UUID.randomUUID().toString(); + private final long organisationId = 1L; private final String organisationName = "MyOrganisation"; - private final String projectId = UUID.randomUUID().toString(); + private final long projectId = 2L; private final String projectName = "MyOrganisation"; private final String serviceName = "clients-service"; private final String environmentName = "development"; - private final String serviceId = "clients-service-id"; - private final String environmentId = "development-env-id"; - private final String credentialId = UUID.randomUUID().toString(); + private final long serviceId = 3L; + private final long environmentId = 4L; + private final long credentialId = 5L; private final int runnerServerPort = 8888; private final String jwt = "fake_jwt"; diff --git a/core/target-systems/flamingock-dynamodb-targetsystem/src/test/java/io/flamingock/targetsystem/dynamodb/DynamoDBCloudTargetSystemTest.java b/core/target-systems/flamingock-dynamodb-targetsystem/src/test/java/io/flamingock/targetsystem/dynamodb/DynamoDBCloudTargetSystemTest.java index 87d59f315..638d4c484 100644 --- a/core/target-systems/flamingock-dynamodb-targetsystem/src/test/java/io/flamingock/targetsystem/dynamodb/DynamoDBCloudTargetSystemTest.java +++ b/core/target-systems/flamingock-dynamodb-targetsystem/src/test/java/io/flamingock/targetsystem/dynamodb/DynamoDBCloudTargetSystemTest.java @@ -50,9 +50,9 @@ import java.util.Collections; import java.util.UUID; -import static io.flamingock.internal.common.cloud.audit.AuditEntryRequest.Status.APPLIED; -import static io.flamingock.internal.common.cloud.audit.AuditEntryRequest.Status.FAILED; -import static io.flamingock.internal.common.cloud.audit.AuditEntryRequest.Status.ROLLED_BACK; +import static io.flamingock.cloud.api.request.AuditEntryRequest.AuditEntryStatus.APPLIED; +import static io.flamingock.cloud.api.request.AuditEntryRequest.AuditEntryStatus.FAILED; +import static io.flamingock.cloud.api.request.AuditEntryRequest.AuditEntryStatus.ROLLED_BACK; @Testcontainers public class DynamoDBCloudTargetSystemTest { @@ -66,15 +66,15 @@ public class DynamoDBCloudTargetSystemTest { private static DynamoDBTestHelper dynamoDBTestHelper; private final String apiToken = "FAKE_API_TOKEN"; - private final String organisationId = UUID.randomUUID().toString(); + private final long organisationId = 1L; private final String organisationName = "MyOrganisation"; - private final String projectId = UUID.randomUUID().toString(); + private final long projectId = 2L; private final String projectName = "MyOrganisation"; private final String serviceName = "clients-service"; private final String environmentName = "development"; - private final String serviceId = "clients-service-id"; - private final String environmentId = "development-env-id"; - private final String credentialId = UUID.randomUUID().toString(); + private final long serviceId = 3L; + private final long environmentId = 4L; + private final long credentialId = 5L; private final int runnerServerPort = 8888; private final String jwt = "fake_jwt"; diff --git a/core/target-systems/flamingock-mongodb-springdata-targetsystem/src/test/java/io/flamingock/targetsystem/mongodb/springdata/MongoDBSpringDataTargetSystemTest.java b/core/target-systems/flamingock-mongodb-springdata-targetsystem/src/test/java/io/flamingock/targetsystem/mongodb/springdata/MongoDBSpringDataTargetSystemTest.java index d6b363720..a96cf7929 100644 --- a/core/target-systems/flamingock-mongodb-springdata-targetsystem/src/test/java/io/flamingock/targetsystem/mongodb/springdata/MongoDBSpringDataTargetSystemTest.java +++ b/core/target-systems/flamingock-mongodb-springdata-targetsystem/src/test/java/io/flamingock/targetsystem/mongodb/springdata/MongoDBSpringDataTargetSystemTest.java @@ -53,9 +53,9 @@ import java.util.Collections; import java.util.UUID; -import static io.flamingock.internal.common.cloud.audit.AuditEntryRequest.Status.APPLIED; -import static io.flamingock.internal.common.cloud.audit.AuditEntryRequest.Status.FAILED; -import static io.flamingock.internal.common.cloud.audit.AuditEntryRequest.Status.ROLLED_BACK; +import static io.flamingock.cloud.api.request.AuditEntryRequest.AuditEntryStatus.APPLIED; +import static io.flamingock.cloud.api.request.AuditEntryRequest.AuditEntryStatus.FAILED; +import static io.flamingock.cloud.api.request.AuditEntryRequest.AuditEntryStatus.ROLLED_BACK; @Testcontainers public class MongoDBSpringDataTargetSystemTest { @@ -70,15 +70,15 @@ public class MongoDBSpringDataTargetSystemTest { private static MongoDBTestHelper mongoDBTestHelper; private final String apiToken = "FAKE_API_TOKEN"; - private final String organisationId = UUID.randomUUID().toString(); + private final long organisationId = 1L; private final String organisationName = "MyOrganisation"; - private final String projectId = UUID.randomUUID().toString(); + private final long projectId = 2L; private final String projectName = "MyOrganisation"; private final String serviceName = "clients-service"; private final String environmentName = "development"; - private final String serviceId = "clients-service-id"; - private final String environmentId = "development-env-id"; - private final String credentialId = UUID.randomUUID().toString(); + private final long serviceId = 3L; + private final long environmentId = 4L; + private final long credentialId = 5L; private final int runnerServerPort = 8888; private final String jwt = "fake_jwt"; diff --git a/core/target-systems/flamingock-mongodb-sync-targetsystem/src/test/java/io/flamingock/targetsystem/mongodb/sync/MongoDBSyncTargetSystemTest.java b/core/target-systems/flamingock-mongodb-sync-targetsystem/src/test/java/io/flamingock/targetsystem/mongodb/sync/MongoDBSyncTargetSystemTest.java index 14acf40bc..9f83cb3d1 100644 --- a/core/target-systems/flamingock-mongodb-sync-targetsystem/src/test/java/io/flamingock/targetsystem/mongodb/sync/MongoDBSyncTargetSystemTest.java +++ b/core/target-systems/flamingock-mongodb-sync-targetsystem/src/test/java/io/flamingock/targetsystem/mongodb/sync/MongoDBSyncTargetSystemTest.java @@ -52,9 +52,9 @@ import java.util.Collections; import java.util.UUID; -import static io.flamingock.internal.common.cloud.audit.AuditEntryRequest.Status.APPLIED; -import static io.flamingock.internal.common.cloud.audit.AuditEntryRequest.Status.FAILED; -import static io.flamingock.internal.common.cloud.audit.AuditEntryRequest.Status.ROLLED_BACK; +import static io.flamingock.cloud.api.request.AuditEntryRequest.AuditEntryStatus.APPLIED; +import static io.flamingock.cloud.api.request.AuditEntryRequest.AuditEntryStatus.FAILED; +import static io.flamingock.cloud.api.request.AuditEntryRequest.AuditEntryStatus.ROLLED_BACK; @Testcontainers public class MongoDBSyncTargetSystemTest { @@ -69,15 +69,15 @@ public class MongoDBSyncTargetSystemTest { private static MongoDBTestHelper mongoDBTestHelper; private final String apiToken = "FAKE_API_TOKEN"; - private final String organisationId = UUID.randomUUID().toString(); + private final long organisationId = 1L; private final String organisationName = "MyOrganisation"; - private final String projectId = UUID.randomUUID().toString(); + private final long projectId = 2L; private final String projectName = "MyOrganisation"; private final String serviceName = "clients-service"; private final String environmentName = "development"; - private final String serviceId = "clients-service-id"; - private final String environmentId = "development-env-id"; - private final String credentialId = UUID.randomUUID().toString(); + private final long serviceId = 3L; + private final long environmentId = 4L; + private final long credentialId = 5L; private final int runnerServerPort = 8888; private final String jwt = "fake_jwt"; diff --git a/core/target-systems/flamingock-sql-targetsystem/src/test/java/io/flamingock/targetsystem/sql/SqlTargetSystemTest.java b/core/target-systems/flamingock-sql-targetsystem/src/test/java/io/flamingock/targetsystem/sql/SqlTargetSystemTest.java index cd2fb1321..cff980104 100644 --- a/core/target-systems/flamingock-sql-targetsystem/src/test/java/io/flamingock/targetsystem/sql/SqlTargetSystemTest.java +++ b/core/target-systems/flamingock-sql-targetsystem/src/test/java/io/flamingock/targetsystem/sql/SqlTargetSystemTest.java @@ -48,9 +48,9 @@ import java.util.Collections; import java.util.UUID; -import static io.flamingock.internal.common.cloud.audit.AuditEntryRequest.Status.APPLIED; -import static io.flamingock.internal.common.cloud.audit.AuditEntryRequest.Status.FAILED; -import static io.flamingock.internal.common.cloud.audit.AuditEntryRequest.Status.ROLLED_BACK; +import static io.flamingock.cloud.api.request.AuditEntryRequest.AuditEntryStatus.APPLIED; +import static io.flamingock.cloud.api.request.AuditEntryRequest.AuditEntryStatus.FAILED; +import static io.flamingock.cloud.api.request.AuditEntryRequest.AuditEntryStatus.ROLLED_BACK; @Testcontainers @@ -63,15 +63,15 @@ public class SqlTargetSystemTest { private static MySQLTestHelper mysqlTestHelper; private final String apiToken = "FAKE_API_TOKEN"; - private final String organisationId = UUID.randomUUID().toString(); + private final long organisationId = 1L; private final String organisationName = "MyOrganisation"; - private final String projectId = UUID.randomUUID().toString(); + private final long projectId = 2L; private final String projectName = "MyOrganisation"; private final String serviceName = "clients-service"; private final String environmentName = "development"; - private final String serviceId = "clients-service-id"; - private final String environmentId = "development-env-id"; - private final String credentialId = UUID.randomUUID().toString(); + private final long serviceId = 3L; + private final long environmentId = 4L; + private final long credentialId = 5L; private final int runnerServerPort = 8888; private final String jwt = "fake_jwt"; diff --git a/utils/test-util/src/main/java/io/flamingock/common/test/cloud/AuditRequestExpectation.java b/utils/test-util/src/main/java/io/flamingock/common/test/cloud/AuditRequestExpectation.java index da3c20919..54bfd8d1c 100644 --- a/utils/test-util/src/main/java/io/flamingock/common/test/cloud/AuditRequestExpectation.java +++ b/utils/test-util/src/main/java/io/flamingock/common/test/cloud/AuditRequestExpectation.java @@ -15,14 +15,14 @@ */ package io.flamingock.common.test.cloud; -import io.flamingock.internal.common.cloud.audit.AuditEntryRequest; +import io.flamingock.cloud.api.request.AuditEntryRequest; public class AuditRequestExpectation { private final String taskId; - private final AuditEntryRequest.Status state; + private final AuditEntryRequest.AuditEntryStatus state; private final String executionId; - public AuditRequestExpectation(String executionId, String taskId, AuditEntryRequest.Status state) { + public AuditRequestExpectation(String executionId, String taskId, AuditEntryRequest.AuditEntryStatus state) { this.executionId = executionId; this.taskId = taskId; this.state = state; @@ -32,7 +32,7 @@ public String getTaskId() { return taskId; } - public AuditEntryRequest.Status getState() { + public AuditEntryRequest.AuditEntryStatus getState() { return state; } diff --git a/utils/test-util/src/main/java/io/flamingock/common/test/cloud/MockRunnerServer.java b/utils/test-util/src/main/java/io/flamingock/common/test/cloud/MockRunnerServer.java index 1f85596c8..8d561e0da 100644 --- a/utils/test-util/src/main/java/io/flamingock/common/test/cloud/MockRunnerServer.java +++ b/utils/test-util/src/main/java/io/flamingock/common/test/cloud/MockRunnerServer.java @@ -25,8 +25,8 @@ import io.flamingock.common.test.cloud.prototype.PrototypeClientSubmission; import io.flamingock.common.test.cloud.prototype.PrototypeStage; import io.flamingock.common.test.cloud.prototype.PrototypeTask; -import io.flamingock.internal.common.cloud.auth.AuthRequest; -import io.flamingock.internal.common.cloud.auth.AuthResponse; +import io.flamingock.cloud.api.request.TokenExchangeRequest; +import io.flamingock.cloud.api.response.TokenExchangeResponse; import io.flamingock.cloud.api.request.StageRequest; import io.flamingock.cloud.api.response.ExecutionPlanResponse; import io.flamingock.cloud.api.response.StageResponse; @@ -54,18 +54,18 @@ public final class MockRunnerServer { private WireMockServer wireMockServer; private int serverPort = 8888; - private String organisationId = "default-organisation-id"; + private long organisationId = 1L; private String organisationName = "default-organisation-name"; - private String projectId = "default-project-id"; + private long projectId = 2L; private String projectName = "default-project-name"; - private String serviceId = "default-service-id"; + private long serviceId = 3L; private String serviceName = "default-service-name"; - private String environmentId = "default-environment-name"; + private long environmentId = 4L; private String environmentName = "default-environment-name"; private String runnerId = "default-runner-name"; private String jwt = "default-jwt"; private String apiToken = "default-api-token"; - private String credentialId = "default-credential-id"; + private long credentialId = 5L; private boolean importerCall = false; private static StageResponse toStageResponse(StageRequest stageRequest) { @@ -92,7 +92,7 @@ public MockRunnerServer setApiToken(String apiToken) { return this; } - public MockRunnerServer setOrganisationId(String organisationId) { + public MockRunnerServer setOrganisationId(long organisationId) { this.organisationId = organisationId; return this; } @@ -102,7 +102,7 @@ public MockRunnerServer setOrganisationName(String organisationName) { return this; } - public MockRunnerServer setProjectId(String projectId) { + public MockRunnerServer setProjectId(long projectId) { this.projectId = projectId; return this; } @@ -112,12 +112,12 @@ public MockRunnerServer setProjectName(String projectName) { return this; } - public MockRunnerServer setCredentialId(String credentialId) { + public MockRunnerServer setCredentialId(long credentialId) { this.credentialId = credentialId; return this; } - public MockRunnerServer setServiceId(String serviceId) { + public MockRunnerServer setServiceId(long serviceId) { this.serviceId = serviceId; return this; } @@ -127,7 +127,7 @@ public MockRunnerServer setServiceName(String serviceName) { return this; } - public MockRunnerServer setEnvironmentId(String environmentId) { + public MockRunnerServer setEnvironmentId(long environmentId) { this.environmentId = environmentId; return this; } @@ -200,9 +200,9 @@ public void stop() { private void mockAuthEndpoint() { - AuthRequest authRequest = new AuthRequest(apiToken, serviceName, environmentName); + TokenExchangeRequest authRequest = new TokenExchangeRequest(apiToken, serviceName, environmentName); - AuthResponse tokenResponse = new AuthResponse(); + TokenExchangeResponse tokenResponse = new TokenExchangeResponse(); tokenResponse.setJwt(jwt); tokenResponse.setCredentialId(credentialId); tokenResponse.setOrganisationId(organisationId); @@ -221,13 +221,13 @@ private void mockAuthEndpoint() { private void mockExecutionEndpoint() { String executionUrl = "/api/v1/environment/{environmentId}/service/{serviceId}/execution"//?elapsedMillis={elapsedMillis}" - .replace("{environmentId}", environmentId).replace("{serviceId}", serviceId) + .replace("{environmentId}", String.valueOf(environmentId)).replace("{serviceId}", String.valueOf(serviceId)) // .replace("{elapsedMillis}", String.valueOf(executionExpectation.getElapsedMillis())) ; MockExecutionPlanBuilder executionPlanBuilder = new MockExecutionPlanBuilder( runnerId, - serviceId, + String.valueOf(serviceId), clientSubmission); if (requestResponseList.size() == 1) { @@ -280,8 +280,8 @@ private void mockAuditWriteEndpoint() { //TODO should we add the stage to the url too String auditUrlTemplate = "/api/v1/environment/{environmentId}/service/{serviceId}/execution/{executionId}/task/{taskId}/audit"///{auditId}" - .replace("{environmentId}", environmentId) - .replace("{serviceId}", serviceId) + .replace("{environmentId}", String.valueOf(environmentId)) + .replace("{serviceId}", String.valueOf(serviceId)) .replace("{executionId}", auditWrite.getExecutionId()); PrototypeTask taskPrototype = getTaskPrototype(auditWrite.getTaskId()); @@ -328,7 +328,7 @@ private void mockAuditWriteEndpoint() { private void importerCall() { String executionUrl = "/api/v1/environment/{environmentId}/service/{serviceId}/execution/import"//?elapsedMillis={elapsedMillis}" - .replace("{environmentId}", environmentId).replace("{serviceId}", serviceId); + .replace("{environmentId}", String.valueOf(environmentId)).replace("{serviceId}", String.valueOf(serviceId)); wireMockServer.stubFor(post(urlPathEqualTo(executionUrl)) .withRequestBody(equalToJson(toJson(importerExecutionRequest))) @@ -343,7 +343,7 @@ private void mockReleaseLockEndpoint() { .withStatus(200) .withHeader("Content-Type", "application/json"); wireMockServer - .stubFor(delete(urlPathEqualTo("/api/v1/{key}/lock".replace("{key}", serviceId))) + .stubFor(delete(urlPathEqualTo("/api/v1/{key}/lock".replace("{key}", String.valueOf(serviceId)))) .willReturn(responseDefBuilder)); } diff --git a/utils/test-util/src/main/java/io/flamingock/common/test/cloud/deprecated/AuditEntryMatcher.java b/utils/test-util/src/main/java/io/flamingock/common/test/cloud/deprecated/AuditEntryMatcher.java index 452df1cc1..ff3ada127 100644 --- a/utils/test-util/src/main/java/io/flamingock/common/test/cloud/deprecated/AuditEntryMatcher.java +++ b/utils/test-util/src/main/java/io/flamingock/common/test/cloud/deprecated/AuditEntryMatcher.java @@ -16,23 +16,23 @@ package io.flamingock.common.test.cloud.deprecated; -import io.flamingock.internal.common.cloud.audit.AuditEntryRequest; +import io.flamingock.cloud.api.request.AuditEntryRequest; import java.beans.Transient; @Deprecated public class AuditEntryMatcher { private final String taskId; - private final AuditEntryRequest.Status state; + private final AuditEntryRequest.AuditEntryStatus state; private final String className; private final String methodName; private final boolean transactional; - public AuditEntryMatcher(String taskId, AuditEntryRequest.Status state, String className, String methodName) { + public AuditEntryMatcher(String taskId, AuditEntryRequest.AuditEntryStatus state, String className, String methodName) { this(taskId, state, className, methodName, true); } - public AuditEntryMatcher(String taskId, AuditEntryRequest.Status state, String className, String methodName, boolean transactional) { + public AuditEntryMatcher(String taskId, AuditEntryRequest.AuditEntryStatus state, String className, String methodName, boolean transactional) { this.taskId = taskId; this.state = state; this.className = className; @@ -44,7 +44,7 @@ public String getTaskId() { return taskId; } - public AuditEntryRequest.Status getState() { + public AuditEntryRequest.AuditEntryStatus getState() { return state; } diff --git a/utils/test-util/src/main/java/io/flamingock/common/test/cloud/deprecated/MockRunnerServerOld.java b/utils/test-util/src/main/java/io/flamingock/common/test/cloud/deprecated/MockRunnerServerOld.java index 94cdee4bf..883e3c618 100644 --- a/utils/test-util/src/main/java/io/flamingock/common/test/cloud/deprecated/MockRunnerServerOld.java +++ b/utils/test-util/src/main/java/io/flamingock/common/test/cloud/deprecated/MockRunnerServerOld.java @@ -25,8 +25,8 @@ import com.github.tomakehurst.wiremock.client.ScenarioMappingBuilder; import com.github.tomakehurst.wiremock.core.WireMockConfiguration; import com.github.tomakehurst.wiremock.stubbing.Scenario; -import io.flamingock.internal.common.cloud.auth.AuthRequest; -import io.flamingock.internal.common.cloud.auth.AuthResponse; +import io.flamingock.cloud.api.request.TokenExchangeRequest; +import io.flamingock.cloud.api.response.TokenExchangeResponse; import io.flamingock.cloud.api.request.ExecutionPlanRequest; import io.flamingock.cloud.api.response.ExecutionPlanResponse; import io.flamingock.cloud.api.request.StageRequest; import io.flamingock.cloud.api.request.TaskRequest; @@ -57,16 +57,16 @@ public final class MockRunnerServerOld { private int serverPort = 8888; - private String organisationId = "default-organisation-id"; + private long organisationId = 1L; private String organisationName = "default-organisation-name"; - private String projectId = "default-project-id"; + private long projectId = 2L; private String projectName = "default-project-name"; - private String serviceId = "default-service-id"; + private long serviceId = 3L; private String serviceName = "default-service-name"; - private String environmentId = "default-environment-name"; + private long environmentId = 4L; private String environmentName = "default-environment-name"; private String runnerId = "default-runner-name"; @@ -75,7 +75,7 @@ public final class MockRunnerServerOld { private String apiToken = "default-api-token"; - private String credentialId = "default-credential-id"; + private long credentialId = 5L; public MockRunnerServerOld setServerPort(int serverPort) { this.serverPort = serverPort; @@ -87,7 +87,7 @@ public MockRunnerServerOld setApiToken(String apiToken) { return this; } - public MockRunnerServerOld setOrganisationId(String organisationId) { + public MockRunnerServerOld setOrganisationId(long organisationId) { this.organisationId = organisationId; return this; } @@ -97,7 +97,7 @@ public MockRunnerServerOld setOrganisationName(String organisationName) { return this; } - public MockRunnerServerOld setProjectId(String projectId) { + public MockRunnerServerOld setProjectId(long projectId) { this.projectId = projectId; return this; } @@ -107,12 +107,12 @@ public MockRunnerServerOld setProjectName(String projectName) { return this; } - public MockRunnerServerOld setCredentialId(String credentialId) { + public MockRunnerServerOld setCredentialId(long credentialId) { this.credentialId = credentialId; return this; } - public MockRunnerServerOld setServiceId(String serviceId) { + public MockRunnerServerOld setServiceId(long serviceId) { this.serviceId = serviceId; return this; } @@ -122,7 +122,7 @@ public MockRunnerServerOld setServiceName(String serviceName) { return this; } - public MockRunnerServerOld setEnvironmentId(String environmentId) { + public MockRunnerServerOld setEnvironmentId(long environmentId) { this.environmentId = environmentId; return this; } @@ -251,7 +251,7 @@ public MockRunnerServerOld addFailureImporterCall(List legacyAuditEn private void importerCall() { String executionUrl = "/api/v1/environment/{environmentId}/service/{serviceId}/execution/import"//?elapsedMillis={elapsedMillis}" - .replace("{environmentId}", environmentId).replace("{serviceId}", serviceId); + .replace("{environmentId}", String.valueOf(environmentId)).replace("{serviceId}", String.valueOf(serviceId)); wireMockServer.stubFor(post(urlPathEqualTo(executionUrl)) .withRequestBody(equalToJson(toJson(importerExecutionRequest))) @@ -290,9 +290,9 @@ public void stop() { private void mockAuthEndpoint() { - AuthRequest authRequest = new AuthRequest(apiToken, serviceName, environmentName); + TokenExchangeRequest authRequest = new TokenExchangeRequest(apiToken, serviceName, environmentName); - AuthResponse tokenResponse = new AuthResponse(); + TokenExchangeResponse tokenResponse = new TokenExchangeResponse(); tokenResponse.setJwt(jwt); tokenResponse.setCredentialId(credentialId); tokenResponse.setOrganisationId(organisationId); @@ -312,7 +312,7 @@ private void mockAuthEndpoint() { private void mockExecutionEndpoint() { String executionUrl = "/api/v1/environment/{environmentId}/service/{serviceId}/execution"//?elapsedMillis={elapsedMillis}" - .replace("{environmentId}", environmentId).replace("{serviceId}", serviceId) + .replace("{environmentId}", String.valueOf(environmentId)).replace("{serviceId}", String.valueOf(serviceId)) // .replace("{elapsedMillis}", String.valueOf(executionExpectation.getElapsedMillis())) ; @@ -347,8 +347,8 @@ private void mockAuditWriteEndpoint() { if(executionExpectation != null) { String executionUrl = "/api/v1/environment/{environmentId}/service/{serviceId}/execution/{executionId}/task/{taskId}/audit" - .replace("{environmentId}", environmentId) - .replace("{serviceId}", serviceId) + .replace("{environmentId}", String.valueOf(environmentId)) + .replace("{serviceId}", String.valueOf(serviceId)) .replace("{executionId}", executionExpectation.getExecutionId()); List auditEntryExpectations = executionExpectation.getAuditEntryExpectations(); @@ -392,14 +392,14 @@ private void mockAuditWriteEndpoint() { private void mockReleaseLockEndpoint() { LockInfo lockResponse = new LockInfo(); - lockResponse.setKey(serviceId); + lockResponse.setKey(String.valueOf(serviceId)); lockResponse.setOwner(runnerId); if(executionExpectation != null) { lockResponse.setAcquiredForMillis(executionExpectation.getAcquiredForMillis()); } lockResponse.setAcquisitionId(DEFAULT_LOCK_ACQUISITION_ID); - String url = "/api/v1/{key}/lock".replace("{key}", serviceId); + String url = "/api/v1/{key}/lock".replace("{key}", String.valueOf(serviceId)); wireMockServer.stubFor(delete(urlPathEqualTo(url)).willReturn(aResponse().withStatus(200).withHeader("Content-Type", "application/json").withBody(toJson(lockResponse)))); } @@ -417,7 +417,7 @@ private ExecutionPlanResponse getExecutionPlanResponse(int index) { executionPlanResponse.setAction(ExecutionAction.EXECUTE); LockInfo lockMock = new LockInfo(); - lockMock.setKey(serviceId); + lockMock.setKey(String.valueOf(serviceId)); lockMock.setOwner(runnerId); lockMock.setAcquiredForMillis(requestResponse.getAcquiredForMillis()); lockMock.setAcquisitionId(requestResponse.getAcquisitionId()); diff --git a/utils/test-util/src/main/java/io/flamingock/common/test/cloud/prototype/PrototypeTask.java b/utils/test-util/src/main/java/io/flamingock/common/test/cloud/prototype/PrototypeTask.java index 4fcd7d715..0de6e89a7 100644 --- a/utils/test-util/src/main/java/io/flamingock/common/test/cloud/prototype/PrototypeTask.java +++ b/utils/test-util/src/main/java/io/flamingock/common/test/cloud/prototype/PrototypeTask.java @@ -16,7 +16,7 @@ package io.flamingock.common.test.cloud.prototype; import io.flamingock.common.test.cloud.deprecated.AuditEntryMatcher; -import io.flamingock.internal.common.cloud.audit.AuditEntryRequest; +import io.flamingock.cloud.api.request.AuditEntryRequest; import io.flamingock.cloud.api.request.TaskRequest; import io.flamingock.cloud.api.vo.CloudChangeAction; import io.flamingock.cloud.api.response.TaskResponse; @@ -71,7 +71,7 @@ public TaskResponse toResponse() { return new TaskResponse(taskId, CloudChangeAction.APPLY); } - public AuditEntryMatcher toAuditExpectation(AuditEntryRequest.Status status) { + public AuditEntryMatcher toAuditExpectation(AuditEntryRequest.AuditEntryStatus status) { return new AuditEntryMatcher( taskId, status,