Remove parsing of user's PVCs for OpenShift recipe

6.19.x
Anton Korneta 2017-09-19 14:03:01 +03:00
parent c04314da1a
commit 8af134edbf
2 changed files with 29 additions and 7 deletions

View File

@ -57,6 +57,10 @@ public class OpenShiftEnvironmentParser {
"Routes specified in OpenShift recipe are ignored. "
+ "To expose ports please define servers in machine configuration.";
static final int PVC_IGNORED_WARNING_CODE = 4101;
static final String PVC_IGNORED_WARNING_MESSAGE =
"Persistent volume claims specified in OpenShift recipe are ignored.";
static final String DEFAULT_RESTART_POLICY = "Never";
private final OpenShiftClientFactory clientFactory;
@ -101,6 +105,7 @@ public class OpenShiftEnvironmentParser {
Map<String, Service> services = new HashMap<>();
Map<String, PersistentVolumeClaim> pvcs = new HashMap<>();
boolean isAnyRoutePresent = false;
boolean isAnyPVCPresent = false;
for (HasMetadata object : list.getItems()) {
if (object instanceof DeploymentConfig) {
throw new ValidationException("Supporting of deployment configs is not implemented yet.");
@ -113,8 +118,7 @@ public class OpenShiftEnvironmentParser {
} else if (object instanceof Route) {
isAnyRoutePresent = true;
} else if (object instanceof PersistentVolumeClaim) {
PersistentVolumeClaim pvc = (PersistentVolumeClaim) object;
pvcs.put(pvc.getMetadata().getName(), pvc);
isAnyPVCPresent = true;
} else {
throw new ValidationException(
format("Found unknown object type '%s'", object.getMetadata()));
@ -132,6 +136,11 @@ public class OpenShiftEnvironmentParser {
new WarningImpl(ROUTE_IGNORED_WARNING_CODE, ROUTES_IGNORED_WARNING_MESSAGE));
}
if (isAnyPVCPresent) {
environment.addWarning(
new WarningImpl(PVC_IGNORED_WARNING_CODE, PVC_IGNORED_WARNING_MESSAGE));
}
OpenShiftEnvironment openShiftEnv = openShiftEnvBuilder.build();
normalizeEnvironment(openShiftEnv, environment);

View File

@ -11,9 +11,13 @@
package org.eclipse.che.workspace.infrastructure.openshift.environment;
import static java.lang.String.format;
import static java.util.Arrays.*;
import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;
import static org.eclipse.che.workspace.infrastructure.openshift.environment.OpenShiftEnvironmentParser.DEFAULT_RESTART_POLICY;
import static org.eclipse.che.workspace.infrastructure.openshift.environment.OpenShiftEnvironmentParser.PVC_IGNORED_WARNING_CODE;
import static org.eclipse.che.workspace.infrastructure.openshift.environment.OpenShiftEnvironmentParser.PVC_IGNORED_WARNING_MESSAGE;
import static org.eclipse.che.workspace.infrastructure.openshift.environment.OpenShiftEnvironmentParser.ROUTES_IGNORED_WARNING_MESSAGE;
import static org.eclipse.che.workspace.infrastructure.openshift.environment.OpenShiftEnvironmentParser.ROUTE_IGNORED_WARNING_CODE;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.verify;
@ -28,6 +32,7 @@ import io.fabric8.kubernetes.api.model.HasMetadata;
import io.fabric8.kubernetes.api.model.KubernetesList;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
import io.fabric8.kubernetes.api.model.PersistentVolumeClaim;
import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.PodBuilder;
import io.fabric8.kubernetes.api.model.PodSpec;
@ -115,10 +120,18 @@ public class OpenShiftEnvironmentParserTest {
final OpenShiftEnvironment parsed = osEnvironmentParser.parse(internalEnvironment);
assertTrue(parsed.getRoutes().isEmpty());
verifyWarnings(
new WarningImpl(
OpenShiftEnvironmentParser.ROUTE_IGNORED_WARNING_CODE,
OpenShiftEnvironmentParser.ROUTES_IGNORED_WARNING_MESSAGE));
verifyWarnings(new WarningImpl(ROUTE_IGNORED_WARNING_CODE, ROUTES_IGNORED_WARNING_MESSAGE));
}
@Test
public void ignorePVCsWhenRecipeContainsThem() throws Exception {
final List<HasMetadata> pvc = singletonList(new PersistentVolumeClaim());
when(validatedObjects.getItems()).thenReturn(pvc);
final OpenShiftEnvironment parsed = osEnvironmentParser.parse(internalEnvironment);
assertTrue(parsed.getRoutes().isEmpty());
verifyWarnings(new WarningImpl(PVC_IGNORED_WARNING_CODE, PVC_IGNORED_WARNING_MESSAGE));
}
private void verifyWarnings(Warning... expectedWarnings) {