use of io.fabric8.common.util.Filter in project che by eclipse.
the class OpenShiftConnector method getImageStreamTagFromRepo.
/**
* Gets the ImageStreamTag corresponding to a given tag name (i.e. without the repository)
* @param imageStreamTagName the tag name to search for
* @return
* @throws IOException if either no matching tag is found, or there are multiple matches.
*/
private ImageStreamTag getImageStreamTagFromRepo(String imageStreamTagName) throws IOException {
// Since repository + tag are limited to 63 chars, it's possible that the entire
// tag name did not fit, so we have to match a substring.
String imageTagTrimmed = imageStreamTagName.length() > 30 ? imageStreamTagName.substring(0, 30) : imageStreamTagName;
// Note: ideally, ImageStreamTags could be identified with a label, but it seems like
// ImageStreamTags do not support labels.
List<ImageStreamTag> imageStreams = openShiftClient.imageStreamTags().inNamespace(openShiftCheProjectName).list().getItems();
// We only get ImageStreamTag names here, since these ImageStreamTags do not include
// Docker metadata, for some reason.
List<String> imageStreamTags = imageStreams.stream().filter(e -> e.getMetadata().getName().contains(imageTagTrimmed)).map(e -> e.getMetadata().getName()).collect(Collectors.toList());
if (imageStreamTags.size() < 1) {
throw new OpenShiftException(String.format("ImageStreamTag %s not found!", imageStreamTagName));
} else if (imageStreamTags.size() > 1) {
throw new OpenShiftException(String.format("Multiple ImageStreamTags found for name %s", imageStreamTagName));
}
String imageStreamTag = imageStreamTags.get(0);
// Finally, get the ImageStreamTag, with Docker metadata.
return openShiftClient.imageStreamTags().inNamespace(openShiftCheProjectName).withName(imageStreamTag).get();
}
use of io.fabric8.common.util.Filter in project che by eclipse.
the class OpenShiftConnector method getCheServiceBySelector.
private Service getCheServiceBySelector(String selectorKey, String selectorValue) {
ServiceList svcs = openShiftClient.services().inNamespace(this.openShiftCheProjectName).list();
Service svc = svcs.getItems().stream().filter(s -> s.getSpec().getSelector().containsKey(selectorKey)).filter(s -> s.getSpec().getSelector().get(selectorKey).equals(selectorValue)).findAny().orElse(null);
if (svc == null) {
LOG.warn("No Service with selector {}={} could be found", selectorKey, selectorValue);
}
return svc;
}
use of io.fabric8.common.util.Filter in project syndesis-qe by syndesisio.
the class CommonSteps method verifyBuild.
@Then("^verify s2i build of integration \"([^\"]*)\" was finished in duration (\\d+) min$")
public void verifyBuild(String integrationName, int duration) {
String sanitizedName = integrationName.toLowerCase().replaceAll(" ", "-");
Optional<Build> s2iBuild = OpenShiftUtils.getInstance().getBuilds().stream().filter(b -> b.getMetadata().getName().contains(sanitizedName)).findFirst();
if (s2iBuild.isPresent()) {
Build build = s2iBuild.get();
String buildPodName = build.getMetadata().getAnnotations().get("openshift.io/build.pod-name");
Optional<Pod> buildPod = OpenShiftUtils.getInstance().getPods().stream().filter(p -> p.getMetadata().getName().equals(buildPodName)).findFirst();
if (buildPod.isPresent()) {
try {
boolean[] patternsInLogs = LogCheckerUtils.findPatternsInLogs(buildPod.get(), Pattern.compile(".*Downloading: \\b.*"));
Assertions.assertThat(patternsInLogs).containsOnly(false);
} catch (IOException e) {
e.printStackTrace();
}
}
Assertions.assertThat(build.getStatus().getPhase()).isEqualTo("Complete");
// % 1_000L is there to parse OpenShift ms format
Assertions.assertThat(build.getStatus().getDuration() % 1_000L).isLessThan(duration * 60 * 1000);
} else {
Assertions.fail("No build found for integration with name " + sanitizedName);
}
}
use of io.fabric8.common.util.Filter in project syndesis-qe by syndesisio.
the class CommonValidationSteps method waitForIntegrationToBeActive.
@Then("^wait for integration with name: \"([^\"]*)\" to become active")
public void waitForIntegrationToBeActive(String integrationName) {
final List<Integration> integrations = integrationsEndpoint.list().stream().filter(item -> item.getName().equals(integrationName)).collect(Collectors.toList());
final long start = System.currentTimeMillis();
// wait for activation
log.info("Waiting until integration \"{}\" becomes active. This may take a while...", integrationName);
String integrationId = integrationsEndpoint.getIntegrationId(integrationName).get();
integrationOverviewEndpoint = new IntegrationOverviewEndpoint(integrationId);
final IntegrationOverview integrationOverview = integrationOverviewEndpoint.getOverview();
final boolean activated = TestUtils.waitForPublishing(integrationOverviewEndpoint, integrationOverview, TimeUnit.MINUTES, 10);
Assertions.assertThat(activated).isEqualTo(true);
log.info("Integration pod has been started. It took {}s to build the integration.", TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis() - start));
}
use of io.fabric8.common.util.Filter in project docker-maven-plugin by fabric8io.
the class ConfigHelperTest method filter.
@Test
public void filter() throws Exception {
List<ImageConfiguration> configs = Arrays.asList(new ImageConfiguration.Builder().name("test").build());
CatchingLog logCatcher = new CatchingLog();
List<ImageConfiguration> result = ConfigHelper.resolveImages(new AnsiLogger(logCatcher, true, true), configs, createResolver(), "bla", createCustomizer());
assertEquals(0, result.size());
assertTrue(resolverCalled);
assertTrue(customizerCalled);
assertTrue(logCatcher.getWarnMessage().contains("test"));
assertTrue(logCatcher.getWarnMessage().contains("bla"));
}
Aggregations