use of com.openshift.restclient.model.IDeploymentConfig in project jbosstools-openshift by jbosstools.
the class DeployImageJob method updateTriggerIfUpdate.
protected boolean updateTriggerIfUpdate(Connection connection, String project, String name) {
try {
IDeploymentConfig dc = connection.getResource(ResourceKind.DEPLOYMENT_CONFIG, project, name);
IDeploymentImageChangeTrigger trigger = (IDeploymentImageChangeTrigger) dc.getTriggers().stream().filter(t -> DeploymentTriggerType.IMAGE_CHANGE.equals(t.getType())).findFirst().orElse(null);
if (trigger == null || !ResourceKind.IMAGE_STREAM_TAG.equals(trigger.getKind()) || StringUtils.isBlank(trigger.getNamespace()) || connection.getResource(ResourceKind.IMAGE_STREAM, trigger.getNamespace(), trigger.getFrom().getName()) == null) {
return false;
}
DockerImageURI sourceImage = getSourceImage();
if (sourceImage.getName().equals(trigger.getFrom().getName()) && !sourceImage.getTag().equals(trigger.getFrom().getTag())) {
trigger.setFrom(new DockerImageURI(null, null, sourceImage.getName(), sourceImage.getTag()));
connection.updateResource(dc);
}
return true;
} catch (NotFoundException e) {
return false;
} catch (OpenShiftException e) {
if (e.getStatus() != null && e.getStatus().getCode() == IHttpConstants.STATUS_NOT_FOUND) {
return false;
}
throw e;
}
}
use of com.openshift.restclient.model.IDeploymentConfig in project jbosstools-openshift by jbosstools.
the class DeployImageJob method stubDeploymentConfig.
protected IResource stubDeploymentConfig(IResourceFactory factory, final String name, DockerImageURI imageUri, IImageStream is) {
IDeploymentConfig dc = factory.stub(ResourceKind.DEPLOYMENT_CONFIG, name, parameters.getProject().getName());
dc.addLabel(SELECTOR_KEY, name);
dc.addTemplateLabel(SELECTOR_KEY, name);
for (Label label : parameters.getLabels()) {
dc.addTemplateLabel(label.getName(), label.getValue());
}
dc.setReplicas(parameters.getReplicas());
dc.setReplicaSelector(SELECTOR_KEY, name);
Map<String, String> envs = getModifiedEnvVars(parameters.getEnvironmentVariables(), parameters.getImageEnvVars());
dc.addContainer(dc.getName(), imageUri, new HashSet<>(parameters.getPortSpecs()), envs, parameters.getVolumes());
dc.addTrigger(DeploymentTriggerType.CONFIG_CHANGE);
if (is != null) {
IDeploymentImageChangeTrigger imageChangeTrigger = (IDeploymentImageChangeTrigger) dc.addTrigger(DeploymentTriggerType.IMAGE_CHANGE);
imageChangeTrigger.setAutomatic(true);
imageChangeTrigger.setContainerName(name);
imageChangeTrigger.setFrom(new DockerImageURI(null, null, is.getName(), imageUri.getTag()));
imageChangeTrigger.setKind(ResourceKind.IMAGE_STREAM_TAG);
imageChangeTrigger.setNamespace(is.getNamespaceName());
}
return dc;
}
use of com.openshift.restclient.model.IDeploymentConfig in project jbosstools-openshift by jbosstools.
the class DeployImageJobTest method testStubDeploymentConfig.
@Test
public void testStubDeploymentConfig() {
IImageStream is = givenAnImageStreamTo(project.getName(), DOCKER_TAG);
IResource resource = job.stubDeploymentConfig(factory, RESOURCE_NAME, DOCKER_TAG, is);
assertTrue(resource instanceof IDeploymentConfig);
IDeploymentConfig dc = (IDeploymentConfig) resource;
assertEquals("Exp. replicas to match incoming params", parameters.getReplicas(), dc.getReplicas());
assertEquals("Exp. the selector key to be the resourceName", RESOURCE_NAME, dc.getReplicaSelector().get(DeployImageJob.SELECTOR_KEY));
IContainer container = dc.getContainer(RESOURCE_NAME);
assertNotNull("Exp. to find a container with the resource name", container);
Collection<IDeploymentTrigger> triggers = dc.getTriggers();
assertTrue("Exp. a config change trigger", triggers.stream().filter(t -> DeploymentTriggerType.CONFIG_CHANGE.equals(t.getType())).findFirst().isPresent());
// assert ict matches container spec
Optional<IDeploymentTrigger> icTrigger = triggers.stream().filter(t -> DeploymentTriggerType.IMAGE_CHANGE.equals(t.getType())).findFirst();
assertTrue(icTrigger.isPresent());
IDeploymentImageChangeTrigger imageChangeTrigger = (IDeploymentImageChangeTrigger) icTrigger.get();
Collection<String> names = imageChangeTrigger.getContainerNames();
assertEquals(1, names.size());
assertEquals("Exp. the container and trigger names to match", container.getName(), names.iterator().next());
assertTrue(imageChangeTrigger.isAutomatic());
assertEquals(ResourceKind.IMAGE_STREAM_TAG, imageChangeTrigger.getKind());
assertEquals("Exp. the trigger to point to the imagestream name", new DockerImageURI(null, null, is.getName(), DOCKER_TAG.getTag()), imageChangeTrigger.getFrom());
assertEquals("Exp. the trigger to point to the imagestream name", is.getNamespaceName(), imageChangeTrigger.getNamespace());
}
use of com.openshift.restclient.model.IDeploymentConfig in project jbosstools-openshift by jbosstools.
the class CreateApplicationFromImageJobTest method testStubDeploymentConfig.
@SuppressWarnings("unchecked")
@Test
public void testStubDeploymentConfig() {
IImageStream is = mock(IImageStream.class);
when(is.getName()).thenReturn("aISname");
when(is.getNamespaceName()).thenReturn("anamespace");
IDeploymentConfig stub = mock(IDeploymentConfig.class);
when(stub.getName()).thenReturn(APP_NAME);
when(stub.addTrigger(anyString())).thenReturn(mock(IDeploymentImageChangeTrigger.class));
when(factory.stub(anyString(), anyString(), anyString())).thenReturn(stub);
when(deployImageModel.getProject()).thenReturn(project);
when(deployImageModel.getLabels()).thenReturn(Collections.emptyList());
when(deployImageModel.getVolumes()).thenReturn(Collections.emptyList());
when(deployImageModel.getPortSpecs()).thenReturn(Collections.emptyList());
when(deployImageModel.getReplicas()).thenReturn(1);
when(deployImageModel.getEnvironmentVariables()).thenReturn(Collections.emptyList());
job.stubDeploymentConfig(factory, APP_NAME, new DockerImageURI("foo:bar"), is);
verify(stub).addContainer(eq(APP_NAME), eq(new DockerImageURI(APP_NAME)), anySet(), anyMap(), anyList());
}
use of com.openshift.restclient.model.IDeploymentConfig in project jbosstools-openshift by jbosstools.
the class OpenShiftExplorerLabelProviderTest method getStyledTextForADeploymentConfigWithLongNames.
@Test
public void getStyledTextForADeploymentConfigWithLongNames() {
provider.setLabelLimit(120);
IDeploymentConfig config = givenAResource(IDeploymentConfig.class, ResourceKind.DEPLOYMENT_CONFIG);
Map<String, String> selector = new HashMap<>();
String name = "foo01234567890123456789012345678901234567890123456789";
selector.put("name", name);
String deployment = "bar01234567890123456789012345678901234567890123456789";
selector.put("deployment", deployment);
when(config.getReplicaSelector()).thenReturn(selector);
assertEquals("someName selector: deployment=bar0123456789012345678901234567890...=foo01234567890123456789012345678901234567890123456789", provider.getStyledText(config).getString());
// test description
assertEquals("someName selector: deployment=" + deployment + ",name=" + name, provider.getDescription(config));
}
Aggregations