diff --git a/src/main/java/com/litoralregas/openvpn/router/RouterController.java b/src/main/java/com/litoralregas/openvpn/router/RouterController.java index 6930d52..85cf988 100644 --- a/src/main/java/com/litoralregas/openvpn/router/RouterController.java +++ b/src/main/java/com/litoralregas/openvpn/router/RouterController.java @@ -74,7 +74,7 @@ public class RouterController { result.stdout() ); - service.forceStatus(id, RouterStatus.PROVISIONED); + service.forceStatus(id, RouterStatus.REMOVING); return DeploymentResponse.from(finishedDeployment); } catch (Exception exception) { diff --git a/src/main/java/com/litoralregas/openvpn/router/RouterService.java b/src/main/java/com/litoralregas/openvpn/router/RouterService.java index 36d349d..6741e3c 100644 --- a/src/main/java/com/litoralregas/openvpn/router/RouterService.java +++ b/src/main/java/com/litoralregas/openvpn/router/RouterService.java @@ -69,9 +69,18 @@ public class RouterService { private boolean isValidTransition(RouterStatus current, RouterStatus next) { return switch (current) { - case PENDING, FAILED -> next == RouterStatus.PROVISIONING || next == RouterStatus.REMOVED; - case PROVISIONING -> next == RouterStatus.PROVISIONED || next == RouterStatus.FAILED; - case PROVISIONED -> next == RouterStatus.REMOVED; + case PENDING, FAILED -> + next == RouterStatus.PROVISIONING || next == RouterStatus.REMOVING; + + case PROVISIONING -> + next == RouterStatus.PROVISIONED || next == RouterStatus.FAILED; + + case PROVISIONED -> + next == RouterStatus.REMOVING; + + case REMOVING -> + next == RouterStatus.REMOVED || next == RouterStatus.FAILED; + case REMOVED -> false; }; } diff --git a/src/main/java/com/litoralregas/openvpn/router/RouterStatus.java b/src/main/java/com/litoralregas/openvpn/router/RouterStatus.java index 8e465e9..db74975 100644 --- a/src/main/java/com/litoralregas/openvpn/router/RouterStatus.java +++ b/src/main/java/com/litoralregas/openvpn/router/RouterStatus.java @@ -5,5 +5,6 @@ public enum RouterStatus { PROVISIONING, PROVISIONED, FAILED, + REMOVING, REMOVED } \ No newline at end of file