Search in sources :

Example 1 with CheckpointService

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());
    });
}
Also used : Context(com.walmartlabs.concord.runtime.v2.sdk.Context) SynchronizationService(com.walmartlabs.concord.runtime.v2.runner.SynchronizationService) CheckpointService(com.walmartlabs.concord.runtime.v2.runner.checkpoints.CheckpointService) ProcessDefinition(com.walmartlabs.concord.runtime.v2.model.ProcessDefinition) ExpressionEvaluator(com.walmartlabs.concord.runtime.v2.runner.el.ExpressionEvaluator)

Example 2 with CheckpointService

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;
}
Also used : Path(java.nio.file.Path) DefaultCheckpointService(com.walmartlabs.concord.runtime.v2.runner.checkpoints.DefaultCheckpointService) Multibinder(com.google.inject.multibindings.Multibinder) TaskV2Provider(com.walmartlabs.concord.runtime.v2.runner.tasks.TaskV2Provider) FormService(com.walmartlabs.concord.runtime.common.FormService) TaskCallListener(com.walmartlabs.concord.runtime.v2.runner.tasks.TaskCallListener) TaskResultListener(com.walmartlabs.concord.runtime.v2.runner.tasks.TaskResultListener) AbstractModule(com.google.inject.AbstractModule) BaseRunnerModule(com.walmartlabs.concord.runtime.v2.runner.guice.BaseRunnerModule) ExecutionListener(com.walmartlabs.concord.svm.ExecutionListener) TaskCallPolicyChecker(com.walmartlabs.concord.runtime.v2.runner.tasks.TaskCallPolicyChecker) BeforeEach(org.junit.jupiter.api.BeforeEach)

Aggregations

AbstractModule (com.google.inject.AbstractModule)1 Multibinder (com.google.inject.multibindings.Multibinder)1 FormService (com.walmartlabs.concord.runtime.common.FormService)1 ProcessDefinition (com.walmartlabs.concord.runtime.v2.model.ProcessDefinition)1 SynchronizationService (com.walmartlabs.concord.runtime.v2.runner.SynchronizationService)1 CheckpointService (com.walmartlabs.concord.runtime.v2.runner.checkpoints.CheckpointService)1 DefaultCheckpointService (com.walmartlabs.concord.runtime.v2.runner.checkpoints.DefaultCheckpointService)1 ExpressionEvaluator (com.walmartlabs.concord.runtime.v2.runner.el.ExpressionEvaluator)1 BaseRunnerModule (com.walmartlabs.concord.runtime.v2.runner.guice.BaseRunnerModule)1 TaskCallListener (com.walmartlabs.concord.runtime.v2.runner.tasks.TaskCallListener)1 TaskCallPolicyChecker (com.walmartlabs.concord.runtime.v2.runner.tasks.TaskCallPolicyChecker)1 TaskResultListener (com.walmartlabs.concord.runtime.v2.runner.tasks.TaskResultListener)1 TaskV2Provider (com.walmartlabs.concord.runtime.v2.runner.tasks.TaskV2Provider)1 Context (com.walmartlabs.concord.runtime.v2.sdk.Context)1 ExecutionListener (com.walmartlabs.concord.svm.ExecutionListener)1 Path (java.nio.file.Path)1 BeforeEach (org.junit.jupiter.api.BeforeEach)1