use of com.openshift.restclient.model.IContainer in project jbosstools-openshift by jbosstools.
the class ResourceMocks method createContainer.
public static IContainer createContainer(String name, Set<IPort> ports, IProbe livenessProbe, IProbe readinessProbe) {
IContainer container = mock(IContainer.class);
doReturn(name).when(container).getName();
doReturn(ports).when(container).getPorts();
doReturn(livenessProbe).when(container).getLivenessProbe();
doReturn(readinessProbe).when(container).getReadinessProbe();
return container;
}
use of com.openshift.restclient.model.IContainer 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.IContainer in project jbosstools-openshift by jbosstools.
the class OpenShiftDebugMode method updateContainerDebugPort.
private void updateContainerDebugPort(IDeploymentConfig dc, DebugContext context) {
Collection<IContainer> containers = dc.getContainers();
if (CollectionUtils.isEmpty(containers)) {
return;
}
// TODO: support multiple containers
IContainer firstContainer = containers.iterator().next();
IPort currentContainerPort = getCurrentContainerPort(firstContainer.getPorts());
boolean modified = false;
Set<IPort> ports = new HashSet<>(firstContainer.getPorts());
if (context.isDebugEnabled()) {
modified = addReplaceDebugPort(context.getDebugPort(), currentContainerPort, ports);
} else {
modified = removeDebugPort(currentContainerPort, ports);
}
if (modified) {
firstContainer.setPorts(ports);
}
}
use of com.openshift.restclient.model.IContainer in project jbosstools-openshift by jbosstools.
the class LivenessProbe method getLivenessProbe.
private IProbe getLivenessProbe(IDeploymentConfig dc) {
Collection<IContainer> containers = dc.getContainers();
if (null == containers) {
return null;
}
IContainer container = containers.stream().findFirst().orElse(null);
if (container == null) {
return null;
}
return container.getLivenessProbe();
}
use of com.openshift.restclient.model.IContainer in project jbosstools-openshift by jbosstools.
the class PodLogsHandler method showLogs.
protected void showLogs(IPod pod, ExecutionEvent event) {
if (pod == null) {
showDialog(event, "No pod selected", "No pod was selected to retrieve a log.");
return;
}
if (!ArrayUtils.contains(STATES, pod.getStatus())) {
showDialog(event, "Logs Unavailable", NLS.bind(INVALID_POD_STATUS_MESSAGE, pod.getStatus()));
return;
}
Collection<IContainer> containers = pod.getContainers();
if (containers.isEmpty()) {
showDialog(event, "Logs Unavailable", "There are no containers from which to retrieve logs");
return;
}
String containerName = null;
if (containers.size() > 1) {
List<String> names = containers.stream().map(c -> c.getName()).collect(Collectors.toList());
Collections.sort(names);
ElementListSelectionDialog dialog = new ElementListSelectionDialog(HandlerUtil.getActiveShell(event), new LabelProvider());
dialog.setElements(names.toArray());
dialog.setTitle("Pod Containers");
dialog.setMessage("Select a pod container");
dialog.setMultipleSelection(false);
int result = dialog.open();
if (Window.CANCEL == result) {
return;
}
containerName = (String) dialog.getFirstResult();
} else if (containers.size() == 1) {
containerName = containers.iterator().next().getName();
}
new PodLogsJob(pod, containerName).schedule();
}
Aggregations