public ProvisioningLayout<FeaturePackLayout> newConfigLayout(ProvisioningConfig config) throws ProvisioningException { return newConfigLayout(config, new FeaturePackLayoutFactory<FeaturePackLayout>() { @Override public FeaturePackLayout newFeaturePack(FeaturePackLocation fpl, FeaturePackSpec fpSpec, Path dir, int type) { return new FeaturePackLayout(fpl.getFPID(), dir, type) { @Override public FeaturePackSpec getSpec() { return fpSpec; } }; }}, false); }
public ProvisioningRuntimeBuilder initLayout(ProvisioningLayoutFactory layoutFactory, ProvisioningConfig config) throws ProvisioningException { layout = layoutFactory.newConfigLayout(config, FP_RT_FACTORY, false); return this; }
private ProvisioningLayout<FeaturePackRuntimeBuilder> newConfigLayout(ProvisioningConfig provisioningConfig, Map<String, String> pluginOptions) throws ProvisioningException { return getLayoutFactory().newConfigLayout(provisioningConfig, ProvisioningRuntimeBuilder.FP_RT_FACTORY, pluginOptions); }
/** * Builds a layout for the configuration including the feature-pack contained in the local archive. * Optionally, installs the feature-pack archive to the universe repository. * * @param featurePack feature-pack archive * @param installInUniverse whether to install the feature-pack into the universe repository * @return layout * @throws ProvisioningException in case of a failure */ public ProvisioningLayout<FeaturePackLayout> newConfigLayout(Path featurePack, boolean installInUniverse) throws ProvisioningException { return newConfigLayout(ProvisioningConfig.builder().addFeaturePackDep(addLocal(featurePack, installInUniverse)).build()); }
@Override public ResolvedPlugins resolve() throws ResolutionException { boolean closeLayout = layout == null; ProvisioningLayout<FeaturePackLayout> pLayout = layout; // Silent resolution. session.unregisterTrackers(); try { try { if (pLayout == null) { if (config != null) { pLayout = session.getLayoutFactory().newConfigLayout(config); } else { // No registration in universe during completion pLayout = session.getLayoutFactory().newConfigLayout(file, false); } } return resolvePlugins(pLayout); } catch (Exception ex) { throw new ResolutionException(ex.getLocalizedMessage(), ex); } finally { if (closeLayout && pLayout != null) { pLayout.close(); } } } finally { session.registerTrackers(); } }
/** * Query for available updates and patches for feature-packs in this layout. * * @param includeTransitive whether to include transitive dependencies into the result * @return available updates * @throws ProvisioningException in case of a failure */ public ProvisioningPlan getUpdates(boolean includeTransitive) throws ProvisioningException { final ProvisioningConfig config = getProvisioningConfig(); ProvisioningPlan plan; if (config == null) { plan = ProvisioningPlan.builder(); } else { try (ProvisioningLayout<?> layout = getLayoutFactory().newConfigLayout(config)) { plan = layout.getUpdates(includeTransitive); } } return plan; }
/** * Query for available updates and patches for specific producers. * If no producer is passed as an argument, the method will return * the update plan for only the feature-packs installed directly by the user. * * @param producers producers to include into the update plan * @return update plan * @throws ProvisioningException in case of a failure */ public ProvisioningPlan getUpdates(ProducerSpec... producers) throws ProvisioningException { final ProvisioningConfig config = getProvisioningConfig(); ProvisioningPlan plan; if (config == null) { plan = ProvisioningPlan.builder(); } else { try (ProvisioningLayout<?> layout = getLayoutFactory().newConfigLayout(config)) { plan = layout.getUpdates(producers); } } return plan; }
private ProvisioningDiffProvider getDiffMergedConfig() throws ProvisioningException { final FsDiff diff = getFsDiff(); if(diff == null || diff.isEmpty()) { return null; } try (ProvisioningLayout<FeaturePackRuntimeBuilder> layout = layoutFactory.newConfigLayout(getProvisioningConfig(), ProvisioningRuntimeBuilder.FP_RT_FACTORY, false)) { final ProvisioningDiffProvider diffProvider = ProvisioningDiffProvider.newInstance(layout, getProvisionedState(), diff, log); layout.visitPlugins(new FeaturePackPluginVisitor<StateDiffPlugin>() { @Override public void visitPlugin(StateDiffPlugin plugin) throws ProvisioningException { plugin.diff(diffProvider); } }, StateDiffPlugin.class); return diffProvider; } }
private static Map<String, Map<String, Set<String>>> getAllLayers(PmSession session, FeaturePackLocation loc, boolean includeDependencies) throws ProvisioningException, IOException { ProvisioningConfig pConfig = ProvisioningConfig.builder(). addFeaturePackDep(FeaturePackConfig.builder(loc).build()).build(); try (ProvisioningLayout<FeaturePackLayout> layout = session. getLayoutFactory().newConfigLayout(pConfig)) { return getAllLayers(layout, includeDependencies); } }
Set<ConfigId> layers = new HashSet<>(); try (ProvisioningLayout<FeaturePackLayout> layout = invoc.getPmSession().getLayoutFactory().newConfigLayout(provisioning)) { for (FeaturePackLayout l : layout.getOrderedFeaturePacks()) { layers.addAll(l.loadLayers());
/** * Apply provisioning plan to the currently provisioned installation * * @param plan provisioning plan * @param options provisioning plugin options * @throws ProvisioningException in case of a failure */ public void apply(ProvisioningPlan plan, Map<String, String> options) throws ProvisioningException { ProvisioningConfig config = getProvisioningConfig(); if(config == null) { config = ProvisioningConfig.builder().build(); } try (ProvisioningLayout<FeaturePackRuntimeBuilder> layout = getLayoutFactory().newConfigLayout(config, ProvisioningRuntimeBuilder.FP_RT_FACTORY, false)) { layout.apply(plan, options); doProvision(layout, getFsDiff(), false); } }
public static List<FeaturePackLocation> getInstallationLocations(Path installation, PmSession session, boolean transitive, boolean patches) { List<FeaturePackLocation> items = new ArrayList<>(); try { PathsUtils.assertInstallationDir(installation); ProvisioningManager mgr = session. newProvisioningManager(installation, false); try (ProvisioningLayout<FeaturePackLayout> layout = mgr.getLayoutFactory().newConfigLayout(mgr.getProvisioningConfig())) { for (FeaturePackLayout fp : layout.getOrderedFeaturePacks()) { if (fp.isDirectDep() || (fp.isTransitiveDep() && transitive)) { items.add(fp.getFPID().getLocation()); } if (patches) { List<FeaturePackLayout> appliedPatches = layout.getPatches(fp.getFPID()); for (FeaturePackLayout patch : appliedPatches) { items.add(patch.getFPID().getLocation()); } } } } } catch (Exception ex) { CliLogging.completionException(ex); } return items; }
/** * Merge user changes recognized by the provisioning plug-ins (such as * changes to the configuration files) into the provisioning configuration * file describing the state of the installation). * * @return true if some changes have been persisted, false otherwise. * @throws ProvisioningException in case the merge fails */ public boolean persistChanges() throws ProvisioningException { final ProvisioningDiffProvider diffProvider = getDiffMergedConfig(); if(diffProvider == null) { return false; } final ProvisioningConfig mergedConfig = diffProvider.getMergedConfig(); if(mergedConfig.equals(getProvisioningConfig())) { return false; } try (ProvisioningLayout<FeaturePackRuntimeBuilder> layout = getLayoutFactory().newConfigLayout(mergedConfig, ProvisioningRuntimeBuilder.FP_RT_FACTORY, false)) { doProvision(layout, diffProvider.getFsDiff(), false); } return true; }
private static void addCustomUpdates(ProvisioningPlan plan, List<FeaturePackLocation> custom, ProvisioningManager mgr) throws ProvisioningException { try (ProvisioningLayout<?> layout = mgr.getLayoutFactory().newConfigLayout(mgr.getProvisioningConfig())) { for (FeaturePackLocation loc : custom) { FeaturePackLayout fpl = layout.getFeaturePack(loc.getProducer()); FeaturePackLocation current = fpl.getFPID().getLocation(); FeaturePackUpdatePlan fpPlan = FeaturePackUpdatePlan.request(current, fpl.isTransitiveDep()).setNewLocation(loc).buildPlan(); if (fpPlan.hasNewLocation()) { plan.update(fpPlan); } } } }
/** * Uninstalls the specified feature-pack. * * @param fpid feature-pack ID * @param pluginOptions provisioning plugin options * @throws ProvisioningException in case of a failure */ public void uninstall(FeaturePackLocation.FPID fpid, Map<String, String> pluginOptions) throws ProvisioningException { ProvisioningConfig config = getProvisioningConfig(); if(config == null || !config.hasFeaturePackDeps()) { throw new ProvisioningException(Errors.unknownFeaturePack(fpid)); } try(ProvisioningLayout<FeaturePackRuntimeBuilder> layout = getLayoutFactory().newConfigLayout(config, ProvisioningRuntimeBuilder.FP_RT_FACTORY, false)) { layout.uninstall(resolveUniverseSpec(fpid.getLocation()).getFPID(), pluginOptions); doProvision(layout, getFsDiff(), false); } }
try { try (ProvisioningLayout<FeaturePackLayout> layout = pmSession. getLayoutFactory().newConfigLayout(config)) { layout.uninstall(pmSession. getResolvedLocation(getInstallationDirectory(pmSession.
public void install(FeaturePackConfig fpConfig, Map<String, String> options) throws ProvisioningException { ProvisioningConfig config = getProvisioningConfig(); if(config == null) { config = ProvisioningConfig.builder().build(); } try(ProvisioningLayout<FeaturePackRuntimeBuilder> layout = getLayoutFactory().newConfigLayout(config, ProvisioningRuntimeBuilder.FP_RT_FACTORY, false)) { final UniverseSpec configuredUniverse = getConfiguredUniverse(fpConfig.getLocation()); layout.install(configuredUniverse == null ? fpConfig : FeaturePackConfig.builder(fpConfig.getLocation().replaceUniverse(configuredUniverse)).init(fpConfig).build(), options); doProvision(layout, getFsDiff(), false); } }
FeaturePackConfig config = FeaturePackConfig.forLocation(loc); provisioning = ProvisioningConfig.builder().addFeaturePackDep(config).build(); layout = session.getLayoutFactory().newConfigLayout(provisioning); } else { layout = session.getLayoutFactory().newConfigLayout(file.toPath(), true);
try (ProvisioningLayout<FeaturePackLayout> layout = invoc.getPmSession().getLayoutFactory().newConfigLayout(config)) { switch (type) { case ALL: {