private ProvisioningConfig.Builder initProvisioningConfig() throws ProvisioningDescriptionException { final ProvisioningConfig.Builder configBuilder = ProvisioningConfig.builder(); configBuilder.initUniverses(provisionedConfig); if (provisionedConfig.hasOptions()) { configBuilder.addOptions(provisionedConfig.getOptions()); for (FeaturePackConfig fp : provisionedConfig.getFeaturePackDeps()) { final FeaturePackConfig.Builder fpcBuilder = updatedDirectFps.get(fp.getLocation().getFPID()); if (fpcBuilder == null) { configBuilder.addFeaturePackDep(provisionedConfig.originOf(fp.getLocation().getProducer()), fp); } else { configBuilder.addFeaturePackDep(provisionedConfig.originOf(fp.getLocation().getProducer()), fpcBuilder.build()); for (FeaturePackConfig fp : provisionedConfig.getTransitiveDeps()) { final FeaturePackConfig.Builder fpcBuilder = updatedTransitiveFps.get(fp.getLocation().getFPID()); if (fpcBuilder == null) { configBuilder.addFeaturePackDep(provisionedConfig.originOf(fp.getLocation().getProducer()), fp); } else { configBuilder.addFeaturePackDep(provisionedConfig.originOf(fp.getLocation().getProducer()), fpcBuilder.build()); configBuilder.setInheritConfigs(provisionedConfig.isInheritConfigs()); configBuilder.setInheritModelOnlyConfigs(provisionedConfig.isInheritModelOnlyConfigs()); if(provisionedConfig.hasFullModelsExcluded()) { for(Map.Entry<String, Boolean> entry : provisionedConfig.getFullModelsExcluded().entrySet()) { configBuilder.excludeConfigModel(entry.getKey(), entry.getValue()); if(provisionedConfig.hasFullModelsIncluded()) { for(String model : provisionedConfig.getFullModelsIncluded()) { configBuilder.includeConfigModel(model);
private UniverseSpec getConfiguredUniverse(FeaturePackLocation fpl) throws ProvisioningException, ProvisioningDescriptionException { final ProvisioningConfig config = getProvisioningConfig(); if(config == null) { return null; } if(fpl.hasUniverse()) { final String name = fpl.getUniverse().toString(); if(config.hasUniverse(name)) { return config.getUniverseSpec(name); } return null; } return config.getDefaultUniverse(); }
private void collectDefaultConfigs() throws ProvisioningException { if(config.hasDefinedConfigs()) { for(ConfigModel config : config.getDefinedConfigs()) { final ConfigId id = config.getId(); if (id.isModelOnly()/* || fpConfigStack.isFilteredOut(null, id, true)*/) { final Collection<FeaturePackConfig> fpConfigs = config.getFeaturePackDeps(); boolean extendedStackLevel = false; if(config.hasTransitiveDeps()) { for (FeaturePackConfig fpConfig : config.getTransitiveDeps()) { extendedStackLevel |= fpConfigStack.push(fpConfig, extendedStackLevel);
@Override public void doAction(ProvisioningConfig current, ProvisioningConfig.Builder builder) throws ProvisioningException { if (name == null) { existing = current.getDefaultUniverse(); } else { existing = current.getUniverseSpec(name); } if (existing == null) { throw new ProvisioningException("No default Universe to remove"); } builder.removeUniverse(name); }
private Builder(ProvisioningConfig original) throws ProvisioningDescriptionException { if(original == null) { return; } if(original.hasPluginOptions()) { addOptions(original.getPluginOptions()); } for (FeaturePackConfig fp : original.getFeaturePackDeps()) { addFeaturePackDep(original.originOf(fp.getLocation().getProducer()), fp); } if (original.hasTransitiveDeps()) { for (FeaturePackConfig fp : original.getTransitiveDeps()) { addFeaturePackDep(original.originOf(fp.getLocation().getProducer()), fp); } } initUniverses(original); initConfigs(original); }
@Override public ProvisioningConfig parse(final Reader input) throws XMLStreamException, ProvisioningDescriptionException { final ProvisioningConfig.Builder builder = ProvisioningConfig.builder(); XmlParsers.parse(input, builder); return builder.build(); } }
if(config.hasTransitiveDeps()) { final ElementNode transitives = addElement(install, Element.TRANSITIVE); for(FeaturePackConfig dep : config.getTransitiveDeps()) { writeFeaturePackConfig(addElement(transitives, Element.FEATURE_PACK), config.getUserConfiguredLocation(dep.getLocation()), dep, config.originOf(dep.getLocation().getProducer())); if (config.hasFeaturePackDeps()) { for(FeaturePackConfig fp : config.getFeaturePackDeps()) { final ElementNode fpElement = addElement(install, Element.FEATURE_PACK); writeFeaturePackConfig(fpElement, config.getUserConfiguredLocation(fp.getLocation()), fp, config.originOf(fp.getLocation().getProducer())); if(config.hasOptions()) { final Map<String, String> pluginOptions = config.getOptions(); final String[] names = pluginOptions.keySet().toArray(new String[pluginOptions.size()]); Arrays.sort(names);
private ProvisionedConfig getDefaultProvisionedConfig(ProvisioningLayout<?> layout, final ConfigModel definedConfig) throws ProvisioningException { final ProvisioningConfig originalConfig = layout.getConfig(); final ProvisioningConfig.Builder baseBuilder = ProvisioningConfig.builder().initUniverses(originalConfig) .addOptions(originalConfig.getOptions()); if (originalConfig.hasTransitiveDeps()) { for (FeaturePackConfig fp : originalConfig.getTransitiveDeps()) { baseBuilder.addFeaturePackDep(originalConfig.originOf(fp.getLocation().getProducer()), fp); } } for (FeaturePackConfig fp : originalConfig.getFeaturePackDeps()) { baseBuilder.addFeaturePackDep(originalConfig.originOf(fp.getLocation().getProducer()), fp); } baseBuilder.setInheritConfigs(false); baseBuilder.includeDefaultConfig(model, name); baseBuilder.addConfig(getBaseConfig(definedConfig)); ProvisioningConfig baseC = baseBuilder.build(); try(ProvisioningRuntime baseRt = ProvisioningRuntimeBuilder.newInstance(log).initLayout(layout.getFactory(), baseC).build()) { return getRequiredProvisionedConfig(baseRt.getConfigs(), model, name); } } }
continue; if(cleanupTransitive && config.hasTransitiveDep(producer)) { if(newConfig == null) { newConfig = ProvisioningConfig.builder(config); final ProvisioningConfig.Builder builder = ProvisioningConfig.builder(config); for (FeaturePackConfig fpConfig : config.getFeaturePackDeps()) { final ProducerSpec producer = fpConfig.getLocation().getProducer(); final FeaturePackLocation resolvedFpl = resolvedVersions.remove(producer); if(resolvedFpl != null) { builder.updateFeaturePackDep(config.originOf(producer), FeaturePackConfig.builder(resolvedFpl).init(fpConfig).build());
private static void displayFeaturePacks(PmCommandInvocation invoc, Path installation, ProvisioningConfig config) { String str = buildFeaturePacks(invoc, installation, config.getFeaturePackDeps()); if (str != null) { invoc.print(str); } }
private void initPluginOptions(Map<String, String> extraOptions, boolean cleanupConfigOptions) throws ProvisioningException { options = config.getOptions(); if(!extraOptions.isEmpty()) { options = CollectionUtils.putAll(CollectionUtils.clone(options), extraOptions); while(i.hasNext()) { final String optionName = i.next(); if(!config.hasOption(optionName)) { continue; configBuilder = ProvisioningConfig.builder(config); configBuilder = ProvisioningConfig.builder(config); configBuilder.addOption(optionName, value); } else if (value == null) { if (config.getOption(optionName) != null) { configBuilder.removeOption(optionName); } else if (!value.equals(config.getOption(optionName))) { configBuilder.removeOption(optionName);
final Collection<ConfigModel> definedConfigs = provisionedConfig.getDefinedConfigs(); if (!definedConfigs.isEmpty()) { for (ConfigModel originalConfig : definedConfigs) { List<ProvisionedConfig> baseConfigs = null; for(ConfigId configId : removedConfigs) { if(provisionedConfig.hasDefinedConfig(configId)) { if (baseConfigs == null) { final ProvisioningConfig.Builder baseBuilder = initProvisioningConfig(); for (ProvisionedConfig config : provisionedState.getConfigs()) { final ConfigId provisionedId = new ConfigId(config.getModel(), config.getName()); if (!provisionedConfig.hasDefinedConfig(provisionedId)) { baseBuilder.excludeDefaultConfig(provisionedId); if(provisionedConfig.isInheritConfigs()) { if(!provisionedConfig.isConfigModelExcluded(configId)) { configBuilder.excludeDefaultConfig(configId); } else if(provisionedConfig.isConfigModelIncluded(configId)) { configBuilder.excludeDefaultConfig(configId); } else if(provisionedConfig.isInheritConfigs()) { if(!provisionedConfig.isConfigModelExcluded(configId)) { configBuilder.excludeDefaultConfig(configId); } else if(provisionedConfig.isConfigModelIncluded(configId)) { configBuilder.excludeDefaultConfig(configId);
final ProvisioningConfig.Builder configBuilder = ProvisioningConfig.builder(config); for(FeaturePackConfig fpConfig : config.getFeaturePackDeps()) { final ProducerSpec producer = fpConfig.getLocation().getProducer(); final FeaturePackUpdatePlan fpPlan = updates.get(producer); for(FeaturePackConfig fpConfig : config.getTransitiveDeps()) { final ProducerSpec producer = fpConfig.getLocation().getProducer(); final FeaturePackUpdatePlan fpPlan = updates.get(producer);
manager.install(loc, options); } else { final ProvisioningConfig.Builder builder = ProvisioningConfig.builder(); FeaturePackConfig.Builder fpConfig = FeaturePackConfig.builder(loc).setInheritConfigs(false); for (ConfigId c : parseConfigurations(configurations)) { loc = getManager(session).getProvisioningConfig().getFeaturePackDep(loc.getProducer()).getLocation();
/** * Removes universe spec associated with the name from the provisioning configuration * @param name name of the universe spec or null for the default universe spec * @throws ProvisioningException in case of an error */ public void removeUniverse(String name) throws ProvisioningException { ProvisioningConfig config = getProvisioningConfig(); if(config == null || !config.hasUniverse(name)) { return; } config = ProvisioningConfig.builder(config).removeUniverse(name).build(); try { ProvisioningXmlWriter.getInstance().write(config, PathsUtils.getProvisioningXml(home)); } catch (Exception e) { throw new ProvisioningException(Errors.writeFile(PathsUtils.getProvisioningXml(home)), e); } this.provisioningConfig = config; }
private FeaturePackConfig.Builder getFpcBuilder(FPID fpid) { FeaturePackConfig.Builder fpcBuilder = updatedDirectFps.get(fpid); if(fpcBuilder != null) { return fpcBuilder; } fpcBuilder = updatedTransitiveFps.get(fpid); if(fpcBuilder != null) { return fpcBuilder; } fpcBuilder = addedTransitiveFps.get(fpid); if(fpcBuilder != null) { return fpcBuilder; } FeaturePackConfig fpc = provisionedConfig.getFeaturePackDep(fpid.getProducer()); if(fpc != null) { fpcBuilder = FeaturePackConfig.builder(fpc); updatedDirectFps = CollectionUtils.put(updatedDirectFps, fpid, fpcBuilder); return fpcBuilder; } fpc = provisionedConfig.getTransitiveDep(fpid.getProducer()); if(fpc != null) { fpcBuilder = FeaturePackConfig.builder(fpc); updatedTransitiveFps = CollectionUtils.put(updatedTransitiveFps, fpid, fpcBuilder); return fpcBuilder; } fpcBuilder = FeaturePackConfig.transitiveBuilder(fpid.getLocation()); addedTransitiveFps = CollectionUtils.putLinked(addedTransitiveFps, fpid, fpcBuilder); return fpcBuilder; }
for (ConfigModel cm : current.getDefinedConfigs()) { if (cm.getName().equals(id.getName()) && cm.getModel().equals(id.getModel())) { targetConfig = cm.getBuilder(); if (!current.isInheritConfigs()) { if (!current.getIncludedConfigs().contains(id)) { throw new ProvisioningException("Unknown config " + targetConfig);
throw new ProvisioningException(Errors.patchNotApplicable(fpid, fpSpec.getPatchFor())); FeaturePackConfig installedFpConfig = config.getFeaturePackDep(fpSpec.getPatchFor().getProducer()); if(installedFpConfig == null) { installedFpConfig = config.getTransitiveDep(fpSpec.getPatchFor().getProducer()); if (config.hasTransitiveDep(fpid.getProducer())) { configBuilder.removeTransitiveDep(fpid);
ProvisioningLayout(ProvisioningLayoutFactory layoutFactory, ProvisioningConfig config, FeaturePackLayoutFactory<F> fpFactory, boolean initPluginOptions) throws ProvisioningException { this.layoutFactory = layoutFactory; this.fpFactory = fpFactory; this.config = config; this.handle = layoutFactory.createHandle(); if(config.hasFeaturePackDeps()) { try { build(false, true); if (initPluginOptions) { initPluginOptions(Collections.emptyMap(), false); } } catch(Throwable t) { handle.close(); throw t; } } }
private ConfigModelStack resolveModelOnlyConfig(ConfigId configId) throws ProvisioningException { boolean extendedStackLevel = false; if (config.hasTransitiveDeps()) { for (FeaturePackConfig fpDep : config.getTransitiveDeps()) { extendedStackLevel |= fpConfigStack.push(fpDep, extendedStackLevel); } } ConfigModelStack modelOnlyStack = null; for (FeaturePackConfig fpDep : config.getFeaturePackDeps()) { extendedStackLevel |= fpConfigStack.push(fpDep, extendedStackLevel); if(fpDep.isConfigModelExcluded(configId) || !fpDep.isInheritModelOnlyConfigs() && !fpDep.isConfigModelIncluded(configId)) { continue; } modelOnlyStack = resolveModelOnlyConfig(fpDep, modelOnlyStack, configId); } if (extendedStackLevel) { fpConfigStack.popLevel(); } return modelOnlyStack; }