use of org.jboss.tools.openshift.internal.ui.wizard.common.EnvironmentVariable in project jbosstools-openshift by jbosstools.
the class ManageEnvironmentVariablesWizard method performFinish.
@Override
public boolean performFinish() {
new Job("Updating environment variables for deployment config " + dc.getName()) {
@Override
protected IStatus run(IProgressMonitor monitor) {
try {
List<EnvironmentVariable> vars = model.getEnvironmentVariables();
boolean modified = false;
for (EnvironmentVariable var : vars) {
if (model.isEnvironmentVariableModified(var)) {
modified = true;
String value = var.getValue();
if (IEnvironmentVariablesPageModel.DELETED.equals(value)) {
dc.removeEnvironmentVariable(var.getKey());
} else {
dc.setEnvironmentVariable(var.getKey(), var.getValue());
}
}
}
if (modified) {
Connection conn = ConnectionsRegistryUtil.getConnectionFor(dc);
conn.updateResource(dc);
}
} catch (Exception e) {
String message = "Unable to update environment variables for deployment config " + dc.getName();
OpenShiftUIActivator.getDefault().getLogger().logError(message, e);
return new Status(Status.ERROR, OpenShiftUIActivator.PLUGIN_ID, message, e);
}
return Status.OK_STATUS;
}
}.schedule();
return true;
}
use of org.jboss.tools.openshift.internal.ui.wizard.common.EnvironmentVariable in project jbosstools-openshift by jbosstools.
the class DeployImageWizardModelTest method shouldInitializeContainerInfoFromRemoteDockerImage.
@Test
public void shouldInitializeContainerInfoFromRemoteDockerImage() throws IOException {
// no Docker image on local
when(dockerConnection.hasImage(JBOSS_INFINISPAN_SERVER_IMAGE, LATEST_TAG)).thenReturn(false);
final IImageStreamImportCapability cap = Mockito.mock(IImageStreamImportCapability.class);
when(project.supports(IImageStreamImportCapability.class)).thenReturn(true);
when(project.getCapability(IImageStreamImportCapability.class)).thenReturn(cap);
final IStatus status = Mockito.mock(IStatus.class);
final IImageStreamImport streamImport = Mockito.mock(IImageStreamImport.class);
final DockerImageURI dockerImageURI = new DockerImageURI(JBOSS_INFINISPAN_SERVER_URI);
when(status.isSuccess()).thenReturn(true);
when(cap.importImageMetadata(dockerImageURI)).thenReturn(streamImport);
when(streamImport.getImageJsonFor(dockerImageURI.getTag())).thenReturn(getImageStreamImport("/resources/jboss_infinispan-server_ImageStreamImport.json"));
when(streamImport.getImageStatus()).thenReturn(Arrays.asList(status));
// when
model.setImageName(JBOSS_INFINISPAN_SERVER_URI);
final boolean result = model.initializeContainerInfo();
// then
assertThat(result).isTrue();
assertThat(model.getEnvironmentVariables()).contains(new EnvironmentVariable("PATH", "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"), new EnvironmentVariable("JAVA_HOME", "/usr/lib/jvm/java"), new EnvironmentVariable("INFINISPAN_SERVER_HOME", "/opt/jboss/infinispan-server"), new EnvironmentVariable("INFINISPAN_VERSION", "8.2.0.Final"));
assertThat(model.getPortSpecs()).isEmpty();
assertThat(model.getVolumes()).isEmpty();
}
use of org.jboss.tools.openshift.internal.ui.wizard.common.EnvironmentVariable in project jbosstools-openshift by jbosstools.
the class DeployImageWizardModelTest method shouldInitializeContainerInfoFromRemoteDockerImageWithVolumes.
@Test
public void shouldInitializeContainerInfoFromRemoteDockerImageWithVolumes() throws IOException {
// no Docker image on local
when(dockerConnection.hasImage(JENKINS_IMAGE, LATEST_TAG)).thenReturn(false);
final IImageStreamImportCapability cap = Mockito.mock(IImageStreamImportCapability.class);
when(project.supports(IImageStreamImportCapability.class)).thenReturn(true);
when(project.getCapability(IImageStreamImportCapability.class)).thenReturn(cap);
final IStatus status = Mockito.mock(IStatus.class);
final IImageStreamImport streamImport = Mockito.mock(IImageStreamImport.class);
final DockerImageURI dockerImageURI = new DockerImageURI(JENKINS_IMAGE_URI);
when(status.isSuccess()).thenReturn(true);
when(cap.importImageMetadata(dockerImageURI)).thenReturn(streamImport);
when(streamImport.getImageJsonFor(dockerImageURI.getTag())).thenReturn(getImageStreamImport("/resources/openshift3_jenkins_1_rhel7_ImageStreamImport.json"));
when(streamImport.getImageStatus()).thenReturn(Arrays.asList(status));
// when
model.setImageName(JENKINS_IMAGE_URI);
final boolean result = model.initializeContainerInfo();
// then
assertThat(result).isTrue();
assertThat(model.getEnvironmentVariables()).contains(new EnvironmentVariable("PATH", "/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin"), new EnvironmentVariable("JENKINS_VERSION", "1.642"), new EnvironmentVariable("HOME", "/var/lib/jenkins"), new EnvironmentVariable("JENKINS_HOME", "/var/lib/jenkins"));
assertThat(model.getPortSpecs()).contains(new PortSpecAdapter("50000-tcp", "TCP", 50000), new PortSpecAdapter("8080-tcp", "TCP", 8080));
assertThat(model.getVolumes()).contains("/var/lib/jenkins");
}
use of org.jboss.tools.openshift.internal.ui.wizard.common.EnvironmentVariable in project jbosstools-openshift by jbosstools.
the class DeployImageWizardModelTest method shouldInitializeContainerInfoFromLocalDockerImage.
@Test
public void shouldInitializeContainerInfoFromLocalDockerImage() {
// assume Docker image is on local
final IDockerImageInfo dockerImageInfo = Mockito.mock(IDockerImageInfo.class, Mockito.RETURNS_DEEP_STUBS);
when(dockerConnection.hasImage(WILDFLY_IMAGE, LATEST_TAG)).thenReturn(true);
when(dockerConnection.getImageInfo(WILDFLY_IMAGE_URI)).thenReturn(dockerImageInfo);
when(dockerImageInfo.config().env()).thenReturn(Arrays.asList("foo1=bar1", "foo2=bar2"));
when(dockerImageInfo.config().exposedPorts()).thenReturn(new HashSet<>(Arrays.asList("8080/tcp", "9990/tcp")));
when(dockerImageInfo.config().volumes()).thenReturn(Collections.emptySet());
when(dockerImageInfo.containerConfig()).thenReturn(null);
mockSingleImage(dockerConnection, WILDFLY_IMAGE, LATEST_TAG);
// when
model.setImageName(WILDFLY_IMAGE_URI);
final boolean result = model.initializeContainerInfo();
// then
assertThat(result).isTrue();
assertThat(model.getEnvironmentVariables()).contains(new EnvironmentVariable("foo1", "bar1"), new EnvironmentVariable("foo2", "bar2"));
assertThat(model.getPortSpecs()).contains(new PortSpecAdapter("8080/tcp"), new PortSpecAdapter("9990/tcp"));
}
use of org.jboss.tools.openshift.internal.ui.wizard.common.EnvironmentVariable in project jbosstools-openshift by jbosstools.
the class DeployImageWizardModelTest method checkThatRemoveANonExistingEnvironmentVariableIsNotEffective.
@Test
public void checkThatRemoveANonExistingEnvironmentVariableIsNotEffective() {
// assume Docker image is on local
final IDockerImageInfo dockerImageInfo = Mockito.mock(IDockerImageInfo.class, Mockito.RETURNS_DEEP_STUBS);
when(dockerConnection.hasImage(WILDFLY_IMAGE, LATEST_TAG)).thenReturn(true);
when(dockerConnection.getImageInfo(WILDFLY_IMAGE_URI)).thenReturn(dockerImageInfo);
when(dockerImageInfo.config().env()).thenReturn(Arrays.asList("V1=value1", "V2=value2"));
when(dockerImageInfo.config().exposedPorts()).thenReturn(Collections.emptySet());
when(dockerImageInfo.config().volumes()).thenReturn(Collections.emptySet());
when(dockerImageInfo.containerConfig()).thenReturn(null);
mockSingleImage(dockerConnection, WILDFLY_IMAGE, LATEST_TAG);
// when
model.setImageName(WILDFLY_IMAGE_URI);
final boolean result = model.initializeContainerInfo();
// then
assertThat(result).isTrue();
model.removeEnvironmentVariable(new EnvironmentVariable("V3", "value3"));
assertThat(model.getEnvironmentVariables()).hasSize(2);
assertThat(model.getEnvironmentVariables()).isEqualTo(Arrays.asList(new EnvironmentVariable("V1", "value1"), new EnvironmentVariable("V2", "value2")));
}
Aggregations