public ConfigId getId() { return new ConfigId(model, name); }
public ConfigId getId() { return new ConfigId(model, name); }
public ConfigInfo(String model, String name, Collection<ConfigId> layers) { Objects.requireNonNull(model); Objects.requireNonNull(name); this.model = model; this.name = name; this.id = new ConfigId(model, name); this.layers = layers; }
@Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { if (file.getFileName().toString().equals(Constants.LAYER_SPEC_XML)) { ConfigId id; Path rootDir = file.getParent().getParent(); // No model if (rootDir.equals(layersDir)) { id = new ConfigId(null, file.getParent().getFileName().toString()); } else { id = new ConfigId(rootDir.getFileName().toString(), file.getParent().getFileName().toString()); } layers.add(id); } return FileVisitResult.CONTINUE; }
public B includeDefaultConfig(String model, String name) throws ProvisioningDescriptionException { return includeDefaultConfig(new ConfigId(model, name)); }
public ProvisionedConfigBuilder addLayer(String model, String name) { layers = CollectionUtils.add(layers, new ConfigId(model, name)); return this; }
public B excludeDefaultConfig(String model, String name) { return excludeDefaultConfig(new ConfigId(model, name)); }
private void mergeModelOnlyConfigs() throws ProvisioningException { if(namedModelConfigs.isEmpty()) { return; } for(Map.Entry<String, Map<String, ConfigModelStack>> entry : namedModelConfigs.entrySet()) { final ConfigId modelOnlyId = new ConfigId(entry.getKey(), null); final ConfigModelStack modelOnlyStack = resolveModelOnlyConfig(modelOnlyId); if(modelOnlyStack == null) { continue; } for(ConfigModelStack configStack : entry.getValue().values()) { configStack.merge(modelOnlyStack); } } }
protected ConfigLayerSpec(Builder builder) throws ProvisioningDescriptionException { super(builder); this.id = new ConfigId(builder.model, builder.getName()); layerDeps = CollectionUtils.unmodifiable(builder.layerDeps); }
public void resetConfiguration(PmSession pmSession, ConfigInfo configuration) throws ProvisioningException, IOException { ConfigId id = new ConfigId(configuration.getModel(), configuration.getName()); Action action = configProvisioning.resetConfiguration(id); config = pushState(action, pmSession); }
public void removeFeature(PmSession pmSession, ConfigInfo ci, FeatureInfo fi) throws ProvisioningException, IOException { ConfigId id = new ConfigId(ci.getModel(), ci.getName()); Action action = configProvisioning.removeFeature(id, fi); config = pushState(action, pmSession); }
protected ConfigModel(Builder builder) throws ProvisioningDescriptionException { super(builder); this.id = new ConfigId(builder.model, builder.name); this.props = CollectionUtils.unmodifiable(builder.props); this.configDeps = CollectionUtils.unmodifiable(builder.configDeps); this.inheritLayers = builder.inheritLayers; this.includedLayers = CollectionUtils.unmodifiable(builder.includedLayers); this.excludedLayers = CollectionUtils.unmodifiable(builder.excludedLayers); this.builder = builder; }
public void addFeature(PmSession pmSession, FeatureSpecInfo spec, ConfigInfo configuration, Map<String, String> options) throws ProvisioningException, IOException { ConfigId id = new ConfigId(configuration.getModel(), configuration.getName()); Action action = configProvisioning.addFeature(id, spec, options); config = pushState(action, pmSession); }
public static Map<FeaturePackConfig, ConfigId> getIncludedConfigurations(PmSession session, FeaturePackConfig config, String configuration) throws PathParserException, PathConsumerException, ProvisioningException, Exception { Map<FeaturePackConfig, ConfigId> configs = new HashMap<>(); if (config == null) { for (FeaturePackConfig c : session.getState().getConfig().getFeaturePackDeps()) { ConfigInfo info = getConfig(session, c.getLocation().getFPID(), configuration); if (info != null && c.getIncludedConfigs().contains(new ConfigId(info.getModel(), info.getName()))) { configs.put(c, info.getId()); } } } else { ConfigInfo info = getConfig(session, config.getLocation().getFPID(), configuration); if (info != null && config.getIncludedConfigs().contains(new ConfigId(info.getModel(), info.getName()))) { configs.put(config, info.getId()); } } if (configs.isEmpty()) { throw new ProvisioningException("Not a valid config " + configuration); } return configs; }
public static Map<FeaturePackConfig, ConfigId> getExcludedConfigurations(PmSession session, FeaturePackConfig config, String configuration) throws PathParserException, PathConsumerException, ProvisioningException, Exception { Map<FeaturePackConfig, ConfigId> configs = new HashMap<>(); if (config == null) { for (FeaturePackConfig c : session.getState().getConfig().getFeaturePackDeps()) { ConfigInfo info = getConfig(session, c.getLocation().getFPID(), configuration); if (info != null && c.getExcludedConfigs().contains(new ConfigId(info.getModel(), info.getName()))) { configs.put(c, info.getId()); } } } else { ConfigInfo info = getConfig(session, config.getLocation().getFPID(), configuration); if (info != null && config.getExcludedConfigs().contains(new ConfigId(info.getModel(), info.getName()))) { configs.put(config, info.getId()); } } if (configs.isEmpty()) { throw new ProvisioningException("Not a valid config " + configuration); } return configs; }
@Override protected List<String> getItems(PmCompleterInvocation completerInvocation) { try { State session = completerInvocation.getPmSession().getState(); List<String> lst = new ArrayList<>(); if (session != null) { AbstractProvisionedDefaultConfigCommand cmd = (AbstractProvisionedDefaultConfigCommand) completerInvocation.getCommand(); String config = cmd.getConfiguration(); for (FeaturePackConfig fc : session.getConfig().getFeaturePackDeps()) { String[] split = config.split("" + PathParser.PATH_SEPARATOR); String model = split[0]; String name = split[1]; ConfigId cid = new ConfigId(model, name); if (cmd.getTargetedConfigs(fc).contains(cid)) { lst.add(Identity.buildOrigin(fc.getLocation().getProducer())); } } } return lst; } catch (Exception ex) { CliLogging.completionException(ex); return Collections.emptyList(); } }
private ConfigModel popConfig(ConfigModelStack configStack) throws ProvisioningException { final ConfigModel config = configStack.peekAtConfig(); if(config.hasIncludedLayers()) { for(String dep : config.getIncludedLayers()) { if(configStack.isLayerFilteredOut(dep)) { continue; } includeLayer(configStack, new ConfigId(config.getModel(), dep)); } } return configStack.popConfig(); }
public void updateConfig(ProvisionedFeatureDiffCallback featureDiffCallback, ProvisionedConfig updatedConfig, String... relativePaths) throws ProvisioningException { final ConfigId configId = new ConfigId(updatedConfig.getModel(), updatedConfig.getName()); configPlugins = CollectionUtils.put(configPlugins, configId, featureDiffCallback); if(featureDiff == null) { featureDiff = new FeatureDiff(log); } featureDiff.init(getRequiredProvisionedConfig(provisionedState.getConfigs(), updatedConfig.getModel(), updatedConfig.getName())); featureDiff.diff(featureDiffCallback, updatedConfig); final ConfigModel mergedConfig = featureDiff.getMergedConfig(layout); if (mergedConfig == null) { log.verbose("%s has not changed", updatedConfig.getName()); } else { updatedConfigs.put(configId, mergedConfig); } featureDiff.reset(); suppressPaths(relativePaths); }
public void addConfig(ProvisionedFeatureDiffCallback featureDiffCallback, ProvisionedConfig config, String... relativePaths) throws ProvisioningException { if(featureDiff == null) { featureDiff = new FeatureDiff(log); } featureDiff.reset(); featureDiff.model = config.getModel(); featureDiff.name = config.getName(); featureDiff.diff(featureDiffCallback, config); final ConfigModel mergedConfig = featureDiff.getMergedConfig(layout); if (mergedConfig == null) { log.verbose("%s is meaningless", config.getName()); } else { addedConfigs = CollectionUtils.putLinked(addedConfigs, new ConfigId(config.getModel(), config.getName()), mergedConfig); } featureDiff.reset(); suppressPaths(relativePaths); }
private void includeLayer(ConfigModelStack configStack, ConfigId layerId) throws ProvisioningException { if(!configStack.addLayer(layerId)) { return; } final ConfigModelStack layerStack = resolveConfigLayer(layerId); if(layerStack.hasLayerDeps()) { for(ConfigLayerDependency layerDep : layerStack.getLayerDeps()) { if(configStack.isLayerExcluded(layerDep.getName())) { if(layerDep.isOptional()) { continue; } throw new ProvisioningException(Errors.unsatisfiedLayerDependency(layerId.getName(), layerDep.getName())); } includeLayer(configStack, new ConfigId(configStack.id.getModel(), layerDep.getName())); } } configStack.includedLayer(layerId); for(ResolvedFeature feature : layerStack.orderFeatures(false)) { if(configStack.isFilteredOut(feature.getSpecId(), feature.getId())) { continue; } configStack.includeFeature(feature.id, feature.spec, feature.params, feature.deps); } }