Search in sources :

Example 21 with Semver

use of com.vdurmont.semver4j.Semver in project graylog2-server by Graylog2.

the class PluginVersionConstraintChecker method ensureConstraints.

@Override
public Set<Constraint> ensureConstraints(Collection<Constraint> requestedConstraints) {
    final ImmutableSet.Builder<Constraint> fulfilledConstraints = ImmutableSet.builder();
    for (Constraint constraint : requestedConstraints) {
        if (constraint instanceof PluginVersionConstraint) {
            final PluginVersionConstraint versionConstraint = (PluginVersionConstraint) constraint;
            final Requirement requiredVersion = versionConstraint.version();
            for (Semver pluginVersion : pluginVersions) {
                if (requiredVersion.isSatisfiedBy(pluginVersion)) {
                    fulfilledConstraints.add(constraint);
                }
            }
        }
    }
    return fulfilledConstraints.build();
}
Also used : Requirement(com.vdurmont.semver4j.Requirement) ImmutableSet(com.google.common.collect.ImmutableSet) PluginVersionConstraint(org.graylog2.contentpacks.model.constraints.PluginVersionConstraint) Constraint(org.graylog2.contentpacks.model.constraints.Constraint) PluginVersionConstraint(org.graylog2.contentpacks.model.constraints.PluginVersionConstraint) Semver(com.vdurmont.semver4j.Semver)

Example 22 with Semver

use of com.vdurmont.semver4j.Semver in project TOSCAna by StuPro-TOSCAna.

the class MapperEngine method lookForPossibleTag.

/**
 *     This method looks for a possible tag for the given version and Docker Image, Throws a unsupported operation
 *     exception if it fails
 */
private String lookForPossibleTag(String version, DockerImage img) {
    // Check if the Version definition is too specific e.g. ubuntu 16.04.3 that is non existant on dockerhub
    String tag;
    Semver semVer = new Semver(version, Semver.SemverType.LOOSE);
    List<DockerImageTag> eqMayorVersionTags = getTagsWithEqualMayorVersion(img, semVer.getMajor());
    List<DockerImageTag> possibleMinorImageTags = getPossibleMinorImageTags(semVer, eqMayorVersionTags);
    // If there is only one possibility return it.
    if (possibleMinorImageTags.size() == 1) {
        tag = possibleMinorImageTags.get(0).getName();
    } else {
        tag = determineTagFromMinorVersion(possibleMinorImageTags, semVer);
    }
    return tag;
}
Also used : Semver(com.vdurmont.semver4j.Semver) DockerImageTag(org.opentosca.toscana.plugins.kubernetes.docker.mapper.model.DockerImageTag)

Aggregations

Semver (com.vdurmont.semver4j.Semver)22 JsonElement (com.google.gson.JsonElement)5 Map (java.util.Map)5 JsonObject (com.google.gson.JsonObject)4 Test (org.junit.Test)4 GHRelease (org.kohsuke.github.GHRelease)4 GHRepository (org.kohsuke.github.GHRepository)4 GitHub (org.kohsuke.github.GitHub)4 URL (java.net.URL)3 ArrayList (java.util.ArrayList)3 Test (org.junit.jupiter.api.Test)3 ImmutableSet (com.google.common.collect.ImmutableSet)2 JsonArray (com.google.gson.JsonArray)2 Requirement (com.vdurmont.semver4j.Requirement)2 File (java.io.File)2 FileInputStream (java.io.FileInputStream)2 IOException (java.io.IOException)2 HashMap (java.util.HashMap)2 List (java.util.List)2 TreeMap (java.util.TreeMap)2