@Override public void deleteConfigurationFiles(String versionId, List<String> profileIds, List<String> fileNames) { if (profileIds.size() != fileNames.size()) { throw new FabricException("Lists of profile IDs and filenames should be the same size"); } for (int i = 0; i < profileIds.size(); i++) { String profileId = profileIds.get(i); String fileName = fileNames.get(i); Profile profile = profileService.getRequiredProfile(versionId, profileId); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(profile); builder.deleteFileConfiguration(fileName); profileService.updateProfile(builder.getProfile()); } }
@Override public String getConfigurationValue(String versionId, String profileId, String pid, String key) { assertValid(); Profile pr = profileService.get().getRequiredProfile(versionId, profileId); Map<String, String> config = pr.getConfiguration(pid); if (config == null) { return null; } return config.get(key); }
@Override public boolean setProfileProperties(String versionId, String profileId, String pid, Map<String, String> properties) { boolean answer = false; Version version = profileService.getVersion(versionId); if (version != null) { Profile profile = profileService.getRequiredProfile(versionId, profileId); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(profile); Map<String, String> existingConfiguration = builder.getConfiguration(pid); for (Iterator<String> iterator = existingConfiguration.keySet().iterator(); iterator.hasNext(); ) { String key = iterator.next(); if (!properties.containsKey(key)) { iterator.remove(); } } existingConfiguration.putAll(properties); builder.addConfiguration(pid, existingConfiguration); profileService.updateProfile(builder.getProfile()); answer = true; } return answer; }
@Override public void setConfigurationFile(String versionId, String profileId, String fileName, String data) { Profile profile = profileService.getRequiredProfile(versionId, profileId); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(profile); builder.addFileConfiguration(fileName, Base64.decodeBase64(data)); // ENTESB-2315: profile equality doesn't consider change of resources contents profileService.updateProfile(builder.getProfile(), true); }
@Override public void setProfileAttribute(String versionId, String profileId, String attributeId, String value) { Profile profile = profileService.getRequiredProfile(versionId, profileId); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(profile); builder.addAttribute(attributeId, value); profileService.updateProfile(builder.getProfile()); }
public static void renameProfile(FabricService fabricService, String versionId, String sourceId, String targetId, boolean force) { ProfileService profileService = fabricService.adapt(ProfileService.class); Profile sourceProfile = profileService.getRequiredProfile(versionId, sourceId); LOGGER.info("renameProfile: {} => {}", sourceProfile, targetId); // [TODO] delete/create profile must be done in an atomic operation maybeDeleteProfile(fabricService, versionId, targetId, force); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(sourceProfile); Profile targetProfile = profileService.createProfile(builder.identity(targetId).getProfile()); // TODO: what about child profiles ? for (Container container : fabricService.getAssociatedContainers(versionId, sourceId)) { Profile[] containerProfiles = container.getProfiles(); Set<Profile> profileSet = new HashSet<Profile>(Arrays.asList(containerProfiles)); profileSet.remove(sourceProfile); profileSet.add(targetProfile); container.setProfiles(profileSet.toArray(new Profile[profileSet.size()])); } maybeDeleteProfile(fabricService, versionId, sourceId, true); }
@Override public Profile getRequiredProfile(String versionId, String profileId) { Permit<ProfileService> permit = permitManager.get().aquirePermit(ProfileService.PERMIT, false); try { ProfileService service = permit.getInstance(); return service.getRequiredProfile(versionId, profileId); } finally { permit.release(); } }
@Override public void setProfileFeatures(String versionId, String profileId, List<String> features) { Profile profile = profileService.getRequiredProfile(versionId, profileId); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(profile); builder.setFeatures(features); profileService.updateProfile(builder.getProfile()); }
@Override public void setProfileFabs(String versionId, String profileId, List<String> fabs) { Profile profile = profileService.getRequiredProfile(versionId, profileId); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(profile); builder.setFabs(fabs); profileService.updateProfile(builder.getProfile()); }
public static void renameProfile(FabricService fabricService, String versionId, String sourceId, String targetId, boolean force) { ProfileService profileService = fabricService.adapt(ProfileService.class); Profile sourceProfile = profileService.getRequiredProfile(versionId, sourceId); LOGGER.info("renameProfile: {} => {}", sourceProfile, targetId); // [TODO] delete/create profile must be done in an atomic operation maybeDeleteProfile(fabricService, versionId, targetId, force); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(sourceProfile); Profile targetProfile = profileService.createProfile(builder.identity(targetId).getProfile()); // TODO: what about child profiles ? for (Container container : fabricService.getAssociatedContainers(versionId, sourceId)) { Profile[] containerProfiles = container.getProfiles(); Set<Profile> profileSet = new HashSet<Profile>(Arrays.asList(containerProfiles)); profileSet.remove(sourceProfile); profileSet.add(targetProfile); container.setProfiles(profileSet.toArray(new Profile[profileSet.size()])); } maybeDeleteProfile(fabricService, versionId, sourceId, true); }
@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()); }
@Override public void deleteConfigurationFile(String versionId, String profileId, String fileName) { Profile profile = profileService.getRequiredProfile(versionId, profileId); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(profile); builder.deleteFileConfiguration(fileName); profileService.updateProfile(builder.getProfile()); }
@Override public void setProfileBundles(String versionId, String profileId, List<String> bundles) { Profile profile = profileService.getRequiredProfile(versionId, profileId); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(profile); builder.setBundles(bundles); profileService.updateProfile(builder.getProfile()); }
@Override public void setProfileRepositories(String versionId, String profileId, List<String> repositories) { Profile profile = profileService.getRequiredProfile(versionId, profileId); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(profile); builder.setRepositories(repositories); profileService.updateProfile(builder.getProfile()); }
@Override public void setProfileOverrides(String versionId, String profileId, List<String> overrides) { Profile profile = profileService.getRequiredProfile(versionId, profileId); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(profile); builder.setOverrides(overrides); profileService.updateProfile(builder.getProfile()); }
@Override public void setProfileOptionals(String versionId, String profileId, List<String> optionals) { Profile profile = profileService.getRequiredProfile(versionId, profileId); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(profile); builder.setOptionals(optionals); profileService.updateProfile(builder.getProfile()); }
public static void copyProfile(FabricService fabricService, String versionId, String sourceId, String targetId, boolean force) { ProfileService profileService = fabricService.adapt(ProfileService.class); Profile sourceProfile = profileService.getRequiredProfile(versionId, sourceId); LOGGER.info("copyProfile: {} => {}", sourceProfile, targetId); // [TODO] delete/create profile must be done in an atomic operation maybeDeleteProfile(fabricService, versionId, targetId, force); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(sourceProfile); profileService.createProfile(builder.identity(targetId).getProfile()); }
public static void copyProfile(FabricService fabricService, String versionId, String sourceId, String targetId, boolean force) { ProfileService profileService = fabricService.adapt(ProfileService.class); Profile sourceProfile = profileService.getRequiredProfile(versionId, sourceId); LOGGER.info("copyProfile: {} => {}", sourceProfile, targetId); // [TODO] delete/create profile must be done in an atomic operation maybeDeleteProfile(fabricService, versionId, targetId, force); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(sourceProfile); profileService.createProfile(builder.identity(targetId).getProfile()); }
@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()); }