Search in sources :

Example 66 with When

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());
}
Also used : SecretBuilder(io.fabric8.kubernetes.api.model.SecretBuilder) Account(io.syndesis.qe.account.Account) When(io.cucumber.java.en.When)

Example 67 with When

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();
            }
        }
    }
}
Also used : Quantity(io.fabric8.kubernetes.api.model.Quantity) Arrays(java.util.Arrays) Enumeration(java.util.Enumeration) Date(java.util.Date) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Autowired(org.springframework.beans.factory.annotation.Autowired) TimeoutException(java.util.concurrent.TimeoutException) Random(java.util.Random) StringUtils(org.apache.commons.lang3.StringUtils) JSONObject(org.json.JSONObject) Matcher(java.util.regex.Matcher) IntegrationsEndpoint(io.syndesis.qe.endpoint.IntegrationsEndpoint) Map(java.util.Map) Addon(io.syndesis.qe.addon.Addon) ZipFile(java.util.zip.ZipFile) Syndesis(io.syndesis.qe.resource.impl.Syndesis) Path(java.nio.file.Path) ZipEntry(java.util.zip.ZipEntry) Affinity(io.fabric8.kubernetes.api.model.Affinity) AccountsDirectory(io.syndesis.qe.account.AccountsDirectory) Set(java.util.Set) DeploymentConfig(io.fabric8.openshift.api.model.DeploymentConfig) Jaeger(io.syndesis.qe.resource.impl.Jaeger) DoneablePersistentVolume(io.fabric8.kubernetes.api.model.DoneablePersistentVolume) Collectors(java.util.stream.Collectors) IOUtils(org.apache.commons.io.IOUtils) List(java.util.List) Slf4j(lombok.extern.slf4j.Slf4j) Assertions.fail(org.assertj.core.api.Assertions.fail) S3BucketNameBuilder(io.syndesis.qe.utils.aws.S3BucketNameBuilder) ResourceFactory(io.syndesis.qe.resource.ResourceFactory) Optional(java.util.Optional) Lazy(org.springframework.context.annotation.Lazy) Pattern(java.util.regex.Pattern) Component(io.syndesis.qe.component.Component) OpenShiftWaitUtils(io.syndesis.qe.wait.OpenShiftWaitUtils) SoftAssertions(org.assertj.core.api.SoftAssertions) NodeSelectorTerm(io.fabric8.kubernetes.api.model.NodeSelectorTerm) Then(io.cucumber.java.en.Then) ComponentUtils(io.syndesis.qe.component.ComponentUtils) LocalPortForward(io.fabric8.kubernetes.client.LocalPortForward) HashMap(java.util.HashMap) Yaml(org.yaml.snakeyaml.Yaml) Given(io.cucumber.java.en.Given) DataTable(io.cucumber.datatable.DataTable) Node(io.fabric8.kubernetes.api.model.Node) OutputStream(java.io.OutputStream) PersistentVolumeFluent(io.fabric8.kubernetes.api.model.PersistentVolumeFluent) Endpoints(io.fabric8.kubernetes.api.model.Endpoints) Files(java.nio.file.Files) When(io.cucumber.java.en.When) S3Utils(io.syndesis.qe.utils.aws.S3Utils) FileOutputStream(java.io.FileOutputStream) Pod(io.fabric8.kubernetes.api.model.Pod) FileUtils(org.apache.commons.io.FileUtils) IOException(java.io.IOException) NodeSelector(io.fabric8.kubernetes.api.model.NodeSelector) Toleration(io.fabric8.kubernetes.api.model.Toleration) OpenShiftUtils(io.syndesis.qe.utils.OpenShiftUtils) FileInputStream(java.io.FileInputStream) Account(io.syndesis.qe.account.Account) File(java.io.File) NodeAffinity(io.fabric8.kubernetes.api.model.NodeAffinity) HTTPUtils(io.syndesis.qe.utils.http.HTTPUtils) TestUtils(io.syndesis.qe.utils.TestUtils) Paths(java.nio.file.Paths) SecretBuilder(io.fabric8.kubernetes.api.model.SecretBuilder) ExternalDatabase(io.syndesis.qe.resource.impl.ExternalDatabase) JSONArray(org.json.JSONArray) InputStream(java.io.InputStream) NodeAffinity(io.fabric8.kubernetes.api.model.NodeAffinity) Pod(io.fabric8.kubernetes.api.model.Pod) Toleration(io.fabric8.kubernetes.api.model.Toleration) Affinity(io.fabric8.kubernetes.api.model.Affinity) NodeAffinity(io.fabric8.kubernetes.api.model.NodeAffinity) NodeSelector(io.fabric8.kubernetes.api.model.NodeSelector) NodeSelectorTerm(io.fabric8.kubernetes.api.model.NodeSelectorTerm) When(io.cucumber.java.en.When)

Example 68 with When

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);
    }
}
Also used : IOException(java.io.IOException) Syndesis(io.syndesis.qe.resource.impl.Syndesis) When(io.cucumber.java.en.When)

Example 69 with When

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);
            }
        }
    }
}
Also used : Random(java.util.Random) ZipFile(java.util.zip.ZipFile) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) ZipEntry(java.util.zip.ZipEntry) OutputStream(java.io.OutputStream) FileOutputStream(java.io.FileOutputStream) FileOutputStream(java.io.FileOutputStream) IOException(java.io.IOException) ZipFile(java.util.zip.ZipFile) File(java.io.File) Date(java.util.Date) When(io.cucumber.java.en.When)

Example 70 with When

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());
            }
        }
    }
}
Also used : Step(io.syndesis.common.model.integration.Step) Then(io.cucumber.java.en.Then) Autowired(org.springframework.beans.factory.annotation.Autowired) HashSet(java.util.HashSet) MediaType(javax.ws.rs.core.MediaType) IntegrationsEndpoint(io.syndesis.qe.endpoint.IntegrationsEndpoint) Verifier(io.syndesis.qe.endpoint.Verifier) Assertions(org.assertj.core.api.Assertions) StepKind(io.syndesis.common.model.integration.StepKind) JsonNode(com.fasterxml.jackson.databind.JsonNode) BadRequestException(javax.ws.rs.BadRequestException) Integration(io.syndesis.common.model.integration.Integration) StepDefinition(io.syndesis.qe.entities.StepDefinition) AtlasMapperGenerator(io.syndesis.qe.datamapper.AtlasMapperGenerator) EndpointClient(io.syndesis.qe.endpoint.client.EndpointClient) When(io.cucumber.java.en.When) StepsStorage(io.syndesis.qe.storage.StepsStorage) Set(java.util.Set) UUID(java.util.UUID) Flow(io.syndesis.common.model.integration.Flow) Entity(javax.ws.rs.client.Entity) Collectors(java.util.stream.Collectors) List(java.util.List) Slf4j(lombok.extern.slf4j.Slf4j) TestUtils(io.syndesis.qe.utils.TestUtils) Exposure(io.syndesis.server.openshift.Exposure) RestTestsUtils(io.syndesis.qe.util.RestTestsUtils) StepDefinition(io.syndesis.qe.entities.StepDefinition)

Aggregations

When (io.cucumber.java.en.When)111 SelenideElement (com.codeborne.selenide.SelenideElement)23 Map (java.util.Map)10 File (java.io.File)8 AttributeType (com.vaticle.typedb.core.concept.type.AttributeType)7 ModalDialogPage (io.syndesis.qe.pages.ModalDialogPage)7 Attribute (com.vaticle.typedb.core.concept.thing.Attribute)6 Account (io.syndesis.qe.account.Account)6 Form (io.syndesis.qe.fragments.common.form.Form)6 Syndesis (io.syndesis.qe.resource.impl.Syndesis)6 TimeoutException (java.util.concurrent.TimeoutException)6 RoleType (com.vaticle.typedb.core.concept.type.RoleType)5 IOException (java.io.IOException)5 HashMap (java.util.HashMap)5 Slf4j (lombok.extern.slf4j.Slf4j)5 ElementsCollection (com.codeborne.selenide.ElementsCollection)4 DataTable (io.cucumber.datatable.DataTable)4 IntegrationsEndpoint (io.syndesis.qe.endpoint.IntegrationsEndpoint)4 SyndesisRootPage (io.syndesis.qe.pages.SyndesisRootPage)4 List (java.util.List)4