Search in sources :

Example 51 with Profile

use of io.fabric8.api.Profile in project fabric8 by jboss-fuse.

the class BeanUtils method getFields.

public static List<String> getFields(Class clazz) {
    List<String> answer = new ArrayList<String>();
    try {
        for (PropertyDescriptor desc : PropertyUtils.getPropertyDescriptors(clazz)) {
            if (desc.getReadMethod() != null) {
                answer.add(desc.getName());
            }
        }
    } catch (Exception e) {
        throw new FabricException("Failed to get property descriptors for " + clazz.toString(), e);
    }
    // few tweaks to maintain compatibility with existing views for now...
    if (clazz.getSimpleName().equals("Container")) {
        answer.add("parentId");
        answer.add("versionId");
        answer.add("profileIds");
        answer.add("childrenIds");
        answer.remove("fabricService");
    } else if (clazz.getSimpleName().equals("Profile")) {
        answer.add("id");
        answer.add("parentIds");
        answer.add("childIds");
        answer.add("containerCount");
        answer.add("containers");
        answer.add("fileConfigurations");
    } else if (clazz.getSimpleName().equals("Version")) {
        answer.add("id");
        answer.add("defaultVersion");
    }
    return answer;
}
Also used : PropertyDescriptor(java.beans.PropertyDescriptor) ArrayList(java.util.ArrayList) FabricException(io.fabric8.api.FabricException) FabricException(io.fabric8.api.FabricException)

Example 52 with Profile

use of io.fabric8.api.Profile in project fabric8 by jboss-fuse.

the class FabricManager method applyVersionToContainers.

@Override
public void applyVersionToContainers(String targetVersion, List<String> containerIds) {
    Version version = profileService.getVersion(targetVersion);
    for (String containerId : containerIds) {
        Container container = fabricService.getContainer(containerId);
        List<Profile> profiles = Arrays.asList(container.getProfiles());
        for (Profile profile : profiles) {
            if (!profileService.hasProfile(version.getId(), profile.getId())) {
                String noVersionForProfile = String.format("Can't upgrade container %s since profile %s does not have version %s", containerId, profile.getId(), version.getId());
                throw new IllegalStateException(noVersionForProfile);
            }
        }
        container.setVersion(version);
    }
}
Also used : Container(io.fabric8.api.Container) GitVersion(io.fabric8.api.commands.GitVersion) Version(io.fabric8.api.Version) Profile(io.fabric8.api.Profile)

Example 53 with Profile

use of io.fabric8.api.Profile in project fabric8 by jboss-fuse.

the class FabricManager method doGetProfile.

Map<String, Object> doGetProfile(Version version, String profileId, List<String> fields, boolean mandatory) {
    Profile profile;
    if (mandatory) {
        profile = version.getRequiredProfile(profileId);
    } else {
        profile = version.getProfile(profileId);
    }
    if (profile == null) {
        return null;
    }
    Map<String, Object> answer = BeanUtils.convertProfileToMap(fabricService, profile, fields);
    String iconURLField = "iconURL";
    if (fields.contains(iconURLField) && !profile.isOverlay()) {
        // TODO this could move to Profile.getIconURL() but that would require
        // introducing profileService into ProfileImpl and the ProfileBuilder stuff
        String restApi = restApiUrl();
        if (restApi != null && restApi.length() > 0) {
            // turn REST into relative URI so it works with docker containers etc (avoids local ports etc)
            try {
                URL url = new URL(restApi);
                restApi = url.getPath();
            } catch (MalformedURLException e) {
            // Ignore
            }
            String icon = getIconURL(version, version.getId(), profile, profileId, restApi);
            answer.put(iconURLField, icon);
        }
    }
    return answer;
}
Also used : MalformedURLException(java.net.MalformedURLException) Profile(io.fabric8.api.Profile) URL(java.net.URL)

Example 54 with Profile

use of io.fabric8.api.Profile in project fabric8 by jboss-fuse.

the class FabricManager method setProfileTags.

@Override
public void setProfileTags(String versionId, String profileId, List<String> tags) {
    Profile profile = profileService.getRequiredProfile(versionId, profileId);
    ProfileBuilder builder = ProfileBuilder.Factory.createFrom(profile);
    builder.setTags(tags);
    profileService.updateProfile(builder.getProfile());
}
Also used : ProfileBuilder(io.fabric8.api.ProfileBuilder) Profile(io.fabric8.api.Profile)

Example 55 with Profile

use of io.fabric8.api.Profile in project fabric8 by jboss-fuse.

the class FabricManager method changeProfileParents.

@Override
public Map<String, Object> changeProfileParents(String versionId, String profileId, List<String> parents) {
    Profile profile = profileService.getRequiredProfile(versionId, profileId);
    ProfileBuilder builder = ProfileBuilder.Factory.createFrom(profile).setParents(parents);
    profile = profileService.updateProfile(builder.getProfile());
    return getProfile(versionId, profile.getId());
}
Also used : ProfileBuilder(io.fabric8.api.ProfileBuilder) Profile(io.fabric8.api.Profile)

Aggregations

Profile (io.fabric8.api.Profile)125 Version (io.fabric8.api.Version)50 Container (io.fabric8.api.Container)49 ArrayList (java.util.ArrayList)37 ProfileBuilder (io.fabric8.api.ProfileBuilder)34 Test (org.junit.Test)32 FabricService (io.fabric8.api.FabricService)28 HashMap (java.util.HashMap)25 File (java.io.File)24 ProfileService (io.fabric8.api.ProfileService)23 Map (java.util.Map)22 IOException (java.io.IOException)19 ProfileRequirements (io.fabric8.api.ProfileRequirements)13 HashSet (java.util.HashSet)12 GitVersion (io.fabric8.api.commands.GitVersion)11 FabricRequirements (io.fabric8.api.FabricRequirements)10 LinkedList (java.util.LinkedList)9 TreeMap (java.util.TreeMap)9 LockHandle (io.fabric8.api.LockHandle)8 Parser (io.fabric8.maven.util.Parser)8