use of io.cucumber.java.en.When in project syndesis-qe by syndesisio.
the class OperatorValidationSteps method createPullSecretForBackup.
@When("create pull secret for backup")
public void createPullSecretForBackup() {
Account aws = AccountsDirectory.getInstance().get(Account.Name.AWS);
OpenShiftUtils.getInstance().createSecret(new SecretBuilder().withNewMetadata().withName(SYNDESIS_BACKUP_SECRET_NAME).endMetadata().withStringData(TestUtils.map("secret-key-id", aws.getProperty("accessKey"), "secret-access-key", aws.getProperty("secretKey"), "region", aws.getProperty("region").toLowerCase().replaceAll("_", "-"), "bucket-name", S3BucketNameBuilder.getBucketName(SYNDESIS_BACKUP_BUCKET_PREFIX))).build());
}
use of io.cucumber.java.en.When in project syndesis-qe by syndesisio.
the class OperatorValidationSteps method checkAffinity.
@When("^check (affinity|tolerations)( not set)? for (infra|integration) pods$")
public void checkAffinity(String test, String notSet, String method) {
List<Pod> pods = "infra".equals(method) ? ComponentUtils.getComponentPods().stream().filter(p -> !p.getMetadata().getName().contains("operator")).collect(Collectors.toList()) : OpenShiftUtils.findPodsByPredicates(p -> "integration".equals(p.getMetadata().getLabels().get("syndesis.io/type")));
for (Pod p : pods) {
String name = p.getMetadata().getName();
if ("affinity".equals(test)) {
Affinity podAffinity = p.getSpec().getAffinity();
if (notSet == null) {
assertThat(podAffinity).as(name + ": affinity is null").isNotNull();
NodeAffinity nodeAffinity = podAffinity.getNodeAffinity();
assertThat(nodeAffinity).as(name + ": node affinity is null").isNotNull();
NodeSelector selector = nodeAffinity.getRequiredDuringSchedulingIgnoredDuringExecution();
assertThat(selector).as(name + ": required is null").isNotNull();
List<NodeSelectorTerm> terms = selector.getNodeSelectorTerms();
assertThat(terms).as(name + ": node selector is null").isNotNull();
assertThat(terms).as(name + ": node selector size isn't 1").hasSize(1);
} else {
assertThat(podAffinity).isNull();
}
} else {
Optional<Toleration> toleration = p.getSpec().getTolerations().stream().filter(t -> "node.kubernetes.io/network-unavailable".equals(t.getKey())).findAny();
if (notSet == null) {
assertThat(toleration).as(name + ": Expected toleration setting is not present").isPresent();
} else {
assertThat(toleration).as(name + ": Toleration shouldn't be present").isNotPresent();
}
}
}
}
use of io.cucumber.java.en.When in project syndesis-qe by syndesisio.
the class OperatorValidationSteps method deployCrFromFile.
@When("^deploy Syndesis CR( from file \"([^\"]*)\")?")
public void deployCrFromFile(String file) {
Syndesis syndesis = ResourceFactory.get(Syndesis.class);
try {
if (file == null) {
syndesis.deploySyndesisViaOperator();
// don't do workarounds for external Jaeger
if (syndesis.isAddonEnabled(Addon.JAEGER) && !syndesis.containsAddonProperty(Addon.JAEGER, "collectorUri")) {
syndesis.jaegerWorkarounds();
}
} else {
String content = getCrFromFileAsString(file);
syndesis.getSyndesisCrClient().create(TestConfiguration.openShiftNamespace(), content);
// don't do workarounds for external Jaeger
if (syndesis.isAddonEnabled(Addon.JAEGER) && !syndesis.containsAddonProperty(Addon.JAEGER, "collectorUri")) {
syndesis.jaegerWorkarounds();
}
}
} catch (IOException e) {
fail("Couldn't create CR from provided file", e);
}
}
use of io.cucumber.java.en.When in project syndesis-qe by syndesisio.
the class OperatorValidationSteps method prepareBackupFolder.
@When("prepare backup folder")
public void prepareBackupFolder() {
try {
// There is some mess with access rights in docker when using createTempDirectory, so create temp directory manually
backupTempDir = Files.createDirectory(Paths.get("/tmp", "syndesis-backup-" + new Random(new Date().getTime()).nextInt()));
backupTempDir.toFile().setReadable(true, false);
log.info("Created backup dir: " + backupTempDir.toString());
} catch (IOException e) {
fail("Unable to create local backup folder: ", e);
}
ZipFile zipFile = null;
try {
zipFile = new ZipFile(backupTempFile.toFile());
} catch (IOException e) {
fail("Unable to open zip file: ", e);
}
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
File entryDestination = new File(backupTempDir.toFile(), entry.getName());
if (entry.isDirectory()) {
entryDestination.mkdirs();
} else {
entryDestination.getParentFile().mkdirs();
try (InputStream in = zipFile.getInputStream(entry)) {
try (OutputStream out = new FileOutputStream(entryDestination)) {
IOUtils.copy(in, out);
}
} catch (IOException e) {
fail("Unable to unzip backup file: ", e);
}
}
}
}
use of io.cucumber.java.en.When in project syndesis-qe by syndesisio.
the class IntegrationHandler method processMapperSteps.
/**
* This should be updated for more than two steps, when it will work correctly in near future.
*/
private void processMapperSteps() {
List<StepDefinition> mappers = steps.getStepDefinitions().stream().filter(s -> s.getStep().getStepKind().equals(StepKind.mapper)).collect(Collectors.toList());
if (mappers.isEmpty()) {
log.debug("There are no mappers in this integration, proceeding...");
} else {
// mapping can be done on steps that preceed mapper step and the single step, which follows the mapper step.
log.info("Found mapper step, creating new atlas mapping.");
for (StepDefinition mapper : mappers) {
List<StepDefinition> precedingSteps = steps.getStepDefinitions().subList(0, steps.getStepDefinitions().indexOf(mapper));
StepDefinition followingStep = steps.getStepDefinitions().get(steps.getStepDefinitions().indexOf(mapper) + 1);
if (!mapper.getStep().getConfiguredProperties().containsKey("atlasmapping")) {
// TODO(tplevko): fix for more than one preceding step.
amg.setSteps(mapper, precedingSteps, followingStep);
mapper.setStep(amg.getAtlasMappingStep());
}
}
}
}
Aggregations