public static void refreshProfile(FabricService fabricService, Profile profile) { LOGGER.info("refreshProfile: {}", profile); ProfileService profileService = fabricService.adapt(ProfileService.class); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(profile); Map<String, String> agentConfiguration = builder.getConfiguration(Constants.AGENT_PID); agentConfiguration.put("lastRefresh." + profile.getId(), String.valueOf(System.currentTimeMillis())); builder.addConfiguration(Constants.AGENT_PID, agentConfiguration); profileService.updateProfile(builder.getProfile()); }
@ConstructorProperties({"version", "id", "fileConfigurations", "profileHash", "overlay"}) public ProfileState(String versionId, String profileId, Map<String, Byte[]> fileConfigs, String lastModified, boolean isOverlay) { ProfileBuilder builder = ProfileBuilder.Factory.create(versionId, profileId); builder.setLastModified(lastModified).setOverlay(isOverlay); if (fileConfigs != null) { for (Entry<String, Byte[]> entry : fileConfigs.entrySet()) { builder.addFileConfiguration(entry.getKey(), toPrimitiveArray(entry.getValue())); } } delegate = builder.getProfile(); }
@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()); }
@Override public ProfileBuilder addOptions(ProfileBuilder builder) { builder.setAttributes(self.getAttributes()); builder.setFileConfigurations(getFileConfigurations()); builder.setConfigurations(getConfigurations()); builder.setLastModified(getLastModified()); builder.setOverlay(true); return builder; }
System.out.println("Found parents: " + parentProfiles); for (Profile parent : parentProfiles) { builder.addParent(parent.getId()); builder.setOverlay(overlay); builder.setLocked(locked); builder.setAttributes(attributes); builder.setBundles(bundles); builder.setBundles(fabs); builder.setBundles(features); builder.setBundles(repositories); builder.setBundles(overrides);
if (defaultProfile == null) { ProfileBuilder prfBuilder = ProfileBuilder.Factory.create(versionId, "default"); prfBuilder.addConfiguration("io.fabric8.jaas", jaasConfig); prfBuilder.addFileConfiguration("io.fabric8.zookeeper.properties", DataStoreUtils.toBytes(zkProps)); Profile profile = prfBuilder.getProfile(); if (profileRegistry.hasVersion(versionId)) { profileRegistry.createProfile(profile); Map<String, String> existingJaasConfig = builder.getConfiguration("io.fabric8.jaas"); Map<String, String> existingZkConfig = builder.getConfiguration("io.fabric8.zookeeper"); existingJaasConfig.putAll(jaasConfig); existingZkConfig.put("zookeeper.url", zkProps.getProperty("zookeeper.url")); existingZkConfig.put("zookeeper.password", zkProps.getProperty("zookeeper.password")); builder.addConfiguration("io.fabric8.jaas", existingJaasConfig); builder.addConfiguration("io.fabric8.zookeeper", existingZkConfig); profileRegistry.updateProfile(builder.getProfile()); IllegalStateAssertion.assertFalse(profileRegistry.hasProfile(versionId, profileId), "Profile already exists: " + versionId + "/" + profileId); ProfileBuilder ensembleProfileBuilder = ProfileBuilder.Factory.create(versionId, profileId); ensembleProfileBuilder.addAttribute(Profile.ABSTRACT, "true").addAttribute(Profile.HIDDEN, "true"); ensembleProfileBuilder.addFileConfiguration("io.fabric8.zookeeper.server-0000.properties", DataStoreUtils.toBytes(ensembleProps)); String ensembleProfileId = profileRegistry.createProfile(ensembleProfileBuilder.getProfile()); IllegalStateAssertion.assertFalse(profileRegistry.hasProfile(versionId, profileId), "Profile already exists: " + versionId + "/" + profileId); ProfileBuilder serverProfileBuilder = ProfileBuilder.Factory.create(versionId, profileId); serverProfileBuilder.addAttribute(Profile.HIDDEN, "true").addAttribute(Profile.PARENTS, ensembleProfileId); serverProfileBuilder.addFileConfiguration("io.fabric8.zookeeper.server-0000.properties", DataStoreUtils.toBytes(serverProps)); profileRegistry.createProfile(serverProfileBuilder.getProfile());
builder.addParent(parentProfile.getId()); Map<String, String> config = builder.getConfiguration(MQ_CONNECTION_FACTORY_PID); config.put(GROUP, group); builder.addConfiguration(MQ_CONNECTION_FACTORY_PID, config); Profile profile = builder.getProfile(); return create ? profileService.createProfile(profile) : profileService.updateProfile(profile);
@Override @Deprecated // Creates a profile with empty content. Is this meaningful? public Map<String, Object> createProfile(String versionId, String profileId) { ProfileBuilder builder = ProfileBuilder.Factory.create(versionId, profileId); Profile profile = profileService.createProfile(builder.getProfile()); return getProfile(versionId, profile.getId()); }
private Profile getVersionProfile(Version version) { String profileId = "#version-" + version.getId(); ProfileBuilder builder = ProfileBuilder.Factory.create(profileId).version(version.getId()); VersionProfileOptionsProvider optionsProvider = new VersionProfileOptionsProvider(version); return builder.addOptions(optionsProvider).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()); }
@Test public void testCreateVersion() throws Exception { ProfileBuilder pbA11 = ProfileBuilder.Factory.create("1.1", "prfA"); Profile prfA = pbA11.addConfiguration("pidA", Collections.singletonMap("keyA", "valA")).getProfile(); VersionBuilder vb11 = VersionBuilder.Factory.create("1.1").addProfile(prfA); VersionState v11 = getProxy().createVersion(new VersionState(vb11.getVersion())); try { Assert.assertEquals("1.1", v11.getId()); Assert.assertTrue(v11.getAttributes().isEmpty()); Assert.assertEquals("valA", v11.getProfileState("prfA").getConfiguration("pidA").get("keyA")); } finally { getProxy().deleteVersion("1.1"); } }
@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); }
builder.setBundles(bundles); builder.setFeatures(features); builder.setRepositories(repositories); Boolean locked = requirements.getLocked(); if (locked != null) { builder.setLocked(locked); if (!Objects.equal(current, webContextPath)) { contextPathConfig.put(key, webContextPath); builder.addConfiguration(Constants.WEB_CONTEXT_PATHS_PID, contextPathConfig); byte[] data = profile.getFileConfiguration(fileName); if (data == null || data.length == 0 || new String(data).trim().length() == 0) { builder.addFileConfiguration(fileName, description.getBytes());
builder.setOptionals(optionals).setFeatures(features); builder.setBundles(bundles); profile = profileService.updateProfile(builder.getProfile());
String versionId = version.getId(); ProfileBuilder builder = ProfileBuilder.Factory.create(versionId, profileId); builder.setOverrides(descriptor.getBundles()); if( descriptor.migratorBundle !=null ) { builder.setBundles(Collections.singletonList(descriptor.migratorBundle)); profile = profileService.createProfile(builder.getProfile()); Profile defaultProfile = version.getRequiredProfile("default"); List<String> parentIds = new LinkedList<String>(); parentIds.add(profile.getId()); builder = ProfileBuilder.Factory.createFrom(defaultProfile); builder.setParents(parentIds); profileService.updateProfile(builder.getProfile());
@Override protected Object doExecute() throws Exception { Version version = versionId != null ? profileService.getRequiredVersion(versionId) : fabricService.getRequiredDefaultVersion(); Profile profile = version.getRequiredProfile(profileId); // we can only change parents to existing profiles Profile[] parents = FabricCommand.getExistingProfiles(fabricService, version, parentIds); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(profile); List<String> oldParents = builder.getParents(); for (Profile parent : parents) { builder.addParent(parent.getId()); } //remove old parent profiles for (String oldParent : oldParents) { if (!parentIds.contains(oldParent)) { builder.removeParent(oldParent); } } profileService.updateProfile(builder.getProfile()); return null; }
private void populateProfile(Git git, VersionBuilder versionBuilder, String branch, String versionId, File profileFile, String prefix) throws IOException { String profileName = profileFile.getName(); String profileId = profileName; if (profileId.endsWith(Profiles.PROFILE_FOLDER_SUFFIX)) { profileId = prefix + profileId.substring(0, profileId.length() - Profiles.PROFILE_FOLDER_SUFFIX.length()); } else { // lets recurse all children File[] files = profileFile.listFiles(); if (files != null) { for (File childFile : files) { if (childFile.isDirectory()) { populateProfile(git, versionBuilder, branch, versionId, childFile, prefix + profileFile.getName() + "-"); } } } return; } RevCommit lastCommit = GitHelpers.getProfileLastCommit(git, branch, profileName); String lastModified = lastCommit != null ? lastCommit.getId().abbreviate(GIT_COMMIT_SHORT_LENGTH).name() : ""; Map<String, byte[]> fileConfigurations = doGetFileConfigurations(git, profileId); ProfileBuilder profileBuilder = ProfileBuilder.Factory.create(versionId, profileId); profileBuilder.setFileConfigurations(fileConfigurations).setLastModified(lastModified); versionBuilder.addProfile(profileBuilder.getProfile()); }
/** * Get the effective profile, which is the overlay profile with substituted configurations. */ public static Profile getEffectiveProfile(FabricService fabricService, Profile profile) { ProfileService profileService = fabricService.adapt(ProfileService.class); Profile overlayProfile = profileService.getOverlayProfile(profile); Map<String, Map<String, String>> configurations = overlayProfile.getConfigurations(); ProfileBuilder builder = ProfileBuilder.Factory.createFrom(overlayProfile); builder.setConfigurations(fabricService.substituteConfigurations(configurations)); return builder.getProfile(); }
/** * Adds or remove the specified config properties to the specified profile. * @param configProperties The array of config properties. * @param profile The target profile. */ private void handleConfigProperties(ProfileBuilder builder, String[] configProperties, Profile profile) { Map<String, String> conf = getConfigurationFromBuilder(builder, Constants.AGENT_PID); for (String configProperty : configProperties) { Map<String, String> configMap = extractConfigs(configProperty); for (Map.Entry<String, String> configEntries : configMap.entrySet()) { String key = configEntries.getKey(); String value = configEntries.getValue(); if (append) { System.out.println("Appending value:" + value + " key:" + key + " from config properties and profile:" + profile.getId() + " version:" + versionId); } else if (delete) { System.out.println("Deleting key:" + key + " from config properties and profile:" + profile.getId() + " version:" + versionId); } else if (set) { System.out.println("Setting value:" + value + " key:" + key + " from config properties and profile:" + profile.getId() + " version:" + versionId); } updatedDelimitedList(conf, CONFIG_PREFIX + key, value, delimiter, set, delete, append, remove); } } builder.addConfiguration(Constants.AGENT_PID, conf); }
@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()); }