use of com.walmartlabs.concord.runtime.v2.runner.checkpoints.CheckpointService in project concord by walmartlabs.
the class CheckpointCommand method execute.
@Override
protected void execute(Runtime runtime, State state, ThreadId threadId) {
state.peekFrame(threadId).pop();
// eval the name in case it contains an expression
Context ctx = runtime.getService(Context.class);
ExpressionEvaluator ee = runtime.getService(ExpressionEvaluator.class);
String name = ee.eval(EvalContextFactory.global(ctx), getStep().getName(), String.class);
runtime.getService(SynchronizationService.class).point(() -> {
CheckpointService checkpointService = runtime.getService(CheckpointService.class);
ProcessDefinition processDefinition = runtime.getService(ProcessDefinition.class);
// cleanup the internal state to reduce the serialized data size
state.gc();
// TODO validate checkpoint name
checkpointService.create(threadId, getCorrelationId(), name, runtime, ProcessSnapshot.builder().vmState(state).processDefinition(processDefinition).build());
});
}
use of com.walmartlabs.concord.runtime.v2.runner.checkpoints.CheckpointService in project concord by walmartlabs.
the class MainTest method setUp.
@BeforeEach
public void setUp() throws IOException {
workDir = Files.createTempDirectory("test");
instanceId = UUID.randomUUID();
Path formsDir = workDir.resolve(Constants.Files.JOB_ATTACHMENTS_DIR_NAME).resolve(Constants.Files.JOB_STATE_DIR_NAME).resolve(Constants.Files.JOB_FORMS_V2_DIR_NAME);
formService = new FormService(formsDir);
processStatusCallback = mock(ProcessStatusCallback.class);
checkpointService = spy(new TestCheckpointUploader());
testServices = new AbstractModule() {
@Override
protected void configure() {
install(new BaseRunnerModule());
bind(ClassLoader.class).annotatedWith(Names.named("runtime")).toInstance(MainTest.class.getClassLoader());
bind(CheckpointUploader.class).toInstance(checkpointService);
bind(CheckpointService.class).to(DefaultCheckpointService.class);
bind(DependencyManager.class).to(DefaultDependencyManager.class);
bind(DockerService.class).to(DefaultDockerService.class);
bind(FileService.class).to(DefaultFileService.class);
bind(LockService.class).to(DefaultLockService.class);
bind(PersistenceService.class).toInstance(mock(PersistenceService.class));
bind(ProcessStatusCallback.class).toInstance(processStatusCallback);
bind(SecretService.class).to(DefaultSecretService.class);
Multibinder<TaskProvider> taskProviders = Multibinder.newSetBinder(binder(), TaskProvider.class);
taskProviders.addBinding().to(TaskV2Provider.class);
Multibinder<TaskCallListener> taskCallListeners = Multibinder.newSetBinder(binder(), TaskCallListener.class);
taskCallListeners.addBinding().to(TaskCallPolicyChecker.class);
taskCallListeners.addBinding().to(TaskResultListener.class);
Multibinder.newSetBinder(binder(), ExecutionListener.class);
}
};
allLogs = null;
}
Aggregations