diff --git a/clusterless-main-common/src/main/java/clusterless/command/LocalCommandOptions.java b/clusterless-main-common/src/main/java/clusterless/command/LocalCommandOptions.java index ca5d4eed..45c622fc 100644 --- a/clusterless-main-common/src/main/java/clusterless/command/LocalCommandOptions.java +++ b/clusterless-main-common/src/main/java/clusterless/command/LocalCommandOptions.java @@ -8,6 +8,7 @@ package clusterless.command; +import clusterless.model.manifest.ManifestState; import picocli.CommandLine; /** @@ -37,6 +38,12 @@ public class LocalCommandOptions extends ProjectCommandOptions { ) String role; + @CommandLine.Option( + names = {"-s", "--manifest-state"}, + description = "manifest state" + ) + ManifestState manifestState = ManifestState.complete; + public String arc() { return arc; } @@ -48,4 +55,8 @@ public String lotId() { public String role() { return role; } + + public ManifestState manifestState() { + return manifestState; + } } diff --git a/clusterless-model/src/main/java/clusterless/managed/component/ArcLocalExecutor.java b/clusterless-model/src/main/java/clusterless/managed/component/ArcLocalExecutor.java index c3dc4b5b..f2769a12 100644 --- a/clusterless-model/src/main/java/clusterless/managed/component/ArcLocalExecutor.java +++ b/clusterless-model/src/main/java/clusterless/managed/component/ArcLocalExecutor.java @@ -8,6 +8,8 @@ package clusterless.managed.component; +import clusterless.model.manifest.ManifestState; + import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; @@ -97,5 +99,5 @@ public Command build() { } } - List commands(String role, String lotId); + List commands(String role, String lotId, ManifestState manifestState); } diff --git a/clusterless-substrate-aws-construct-core/src/main/java/clusterless/substrate/aws/arc/batch/BatchExecArcLocalExecutor.java b/clusterless-substrate-aws-construct-core/src/main/java/clusterless/substrate/aws/arc/batch/BatchExecArcLocalExecutor.java index e40289f0..32c9ce07 100644 --- a/clusterless-substrate-aws-construct-core/src/main/java/clusterless/substrate/aws/arc/batch/BatchExecArcLocalExecutor.java +++ b/clusterless-substrate-aws-construct-core/src/main/java/clusterless/substrate/aws/arc/batch/BatchExecArcLocalExecutor.java @@ -11,6 +11,7 @@ import clusterless.json.JSONUtil; import clusterless.managed.component.ArcLocalExecutor; import clusterless.model.deploy.Placement; +import clusterless.model.manifest.ManifestState; import clusterless.substrate.aws.arc.props.ArcEnvBuilder; import clusterless.substrate.aws.event.ArcWorkloadContext; @@ -56,10 +57,10 @@ public BatchExecArcLocalExecutor(Placement placement, BatchExecArc arc) { } @Override - public List commands(String role, String lotId) { + public List commands(String role, String lotId, ManifestState manifestState) { ArcEnvBuilder arcEnvBuilder = new ArcEnvBuilder(placement, arc); Map arcEnvironment = arcEnvBuilder.asEnvironment(); - ArcWorkloadContext arcWorkloadContext = arcEnvBuilder.execContext(role, lotId); + ArcWorkloadContext arcWorkloadContext = arcEnvBuilder.execContext(role, lotId, manifestState); Map localComments = new LinkedHashMap<>(); Map localEnvironment = new LinkedHashMap<>(arcEnvironment); diff --git a/clusterless-substrate-aws-construct-core/src/main/java/clusterless/substrate/aws/arc/props/ArcEnvBuilder.java b/clusterless-substrate-aws-construct-core/src/main/java/clusterless/substrate/aws/arc/props/ArcEnvBuilder.java index 15347be5..975f8b0f 100644 --- a/clusterless-substrate-aws-construct-core/src/main/java/clusterless/substrate/aws/arc/props/ArcEnvBuilder.java +++ b/clusterless-substrate-aws-construct-core/src/main/java/clusterless/substrate/aws/arc/props/ArcEnvBuilder.java @@ -78,10 +78,10 @@ public Map asEnvironment() { } @NotNull - public ArcWorkloadContext execContext(String role, String lotId) { + public ArcWorkloadContext execContext(String role, String lotId, ManifestState manifestState) { URI manifest = arcProps.sourceManifestPaths() .get(role) - .withState(ManifestState.complete) + .withState(manifestState) .withLot(lotId) .uri(); diff --git a/clusterless-substrate-aws-kernel/src/main/java/clusterless/substrate/aws/local/Local.java b/clusterless-substrate-aws-kernel/src/main/java/clusterless/substrate/aws/local/Local.java index 439c0a65..c68cc077 100644 --- a/clusterless-substrate-aws-kernel/src/main/java/clusterless/substrate/aws/local/Local.java +++ b/clusterless-substrate-aws-kernel/src/main/java/clusterless/substrate/aws/local/Local.java @@ -82,7 +82,7 @@ public Integer call() throws Exception { ArcLocalExecutor executor = executorFor(deployable.placement(), arc); - List commands = executor.commands(commandOptions.role(), commandOptions.lotId()); + List commands = executor.commands(commandOptions.role(), commandOptions.lotId(), commandOptions.manifestState()); ShellWriter shellWriter = new ShellWriter(Runtimes.current());