use of org.eclipse.che.workspace.infrastructure.kubernetes.model.KubernetesRuntimeState in project che-server by eclipse-che.
the class OpenShiftRuntimeContext method getRuntime.
@Override
public OpenShiftInternalRuntime getRuntime() throws InfrastructureException {
Optional<KubernetesRuntimeState> runtimeStateOpt = runtimeStatuses.get(getIdentity());
String workspaceId = getIdentity().getWorkspaceId();
if (!runtimeStateOpt.isPresent()) {
// there is no cached runtime, create a new one
return runtimeFactory.create(this, projectFactory.getOrCreate(getIdentity()));
}
// there is cached runtime, restore cached one
KubernetesRuntimeState runtimeState = runtimeStateOpt.get();
RuntimeIdentity runtimeId = runtimeState.getRuntimeId();
LOG.debug("Restoring runtime `{}:{}:{}`", runtimeId.getWorkspaceId(), runtimeId.getEnvName(), runtimeId.getOwnerId());
OpenShiftInternalRuntime runtime = runtimeFactory.create(this, projectFactory.access(workspaceId, runtimeState.getNamespace()));
runtime.scheduleRuntimeStateChecks();
return runtime;
}
use of org.eclipse.che.workspace.infrastructure.kubernetes.model.KubernetesRuntimeState in project che-server by eclipse-che.
the class KubernetesInternalRuntimeTest method shouldNotScheduleServerCheckersIfRuntimeIsNotStartingOrRunning.
@Test(dataProvider = "nonStartingRunningStatuses")
public void shouldNotScheduleServerCheckersIfRuntimeIsNotStartingOrRunning(WorkspaceStatus status) throws Exception {
// given
runtimeStatesCache.putIfAbsent(new KubernetesRuntimeState(internalRuntime.getContext().getIdentity(), status, emptyList()));
// when
internalRuntime.scheduleServersCheckers();
// then
verifyNoMoreInteractions(probesScheduler);
}
use of org.eclipse.che.workspace.infrastructure.kubernetes.model.KubernetesRuntimeState in project che-server by eclipse-che.
the class KubernetesInternalRuntimeTest method shouldThrowExceptionIfRuntimeIsAlreadyStarting.
@Test(expectedExceptions = StateException.class, expectedExceptionsMessageRegExp = "Runtime is already started")
public void shouldThrowExceptionIfRuntimeIsAlreadyStarting() throws Exception {
// given
runtimeStatesCache.putIfAbsent(new KubernetesRuntimeState(internalRuntime.getContext().getIdentity(), WorkspaceStatus.STARTING, emptyList()));
// when
internalRuntime.markStarting();
}
use of org.eclipse.che.workspace.infrastructure.kubernetes.model.KubernetesRuntimeState in project che-server by eclipse-che.
the class KubernetesInternalRuntimeTest method shouldRemoveRuntimeStateOnMarkingRuntimeStopped.
@Test
public void shouldRemoveRuntimeStateOnMarkingRuntimeStopped() throws Exception {
// given
runtimeStatesCache.putIfAbsent(new KubernetesRuntimeState(internalRuntime.getContext().getIdentity(), WorkspaceStatus.STOPPING, emptyList()));
// when
internalRuntime.markStopped();
// then
assertFalse(runtimeStatesCache.get(internalRuntime.getContext().getIdentity()).isPresent());
}
use of org.eclipse.che.workspace.infrastructure.kubernetes.model.KubernetesRuntimeState in project che-server by eclipse-che.
the class KubernetesInternalRuntimeTest method shouldScheduleServerCheckersForRunningRuntime.
@Test
public void shouldScheduleServerCheckersForRunningRuntime() throws Exception {
// given
runtimeStatesCache.putIfAbsent(new KubernetesRuntimeState(internalRuntime.getContext().getIdentity(), WorkspaceStatus.RUNNING, emptyList()));
// when
internalRuntime.scheduleServersCheckers();
// then
verify(probesScheduler).schedule(any(), any());
}
Aggregations