use of org.glassfish.api.admin.config.ReferenceContainer in project Payara by payara.
the class DeleteConfigCommand method execute.
@Override
public void execute(AdminCommandContext context) {
ActionReport report = context.getActionReport();
report.setActionExitCode(SUCCESS);
// Do not delete default-config
if (destConfig.equals("default-config")) {
report.setMessage(LOCAL_STRINGS.getLocalString("Config.defaultConfig", "The default configuration template " + "named default-config cannot be deleted."));
report.setActionExitCode(FAILURE);
return;
}
// Get the config from the domain. Does the config exist?
// if not return
Config config = domain.getConfigNamed(destConfig);
if (config == null) {
report.setMessage(LOCAL_STRINGS.getLocalString("Config.noSuchConfig", "Config {0} does not exist.", destConfig));
report.setActionExitCode(FAILURE);
return;
}
// Check if the config in use by some other
// ReferenceContainer -- if so just return...
List<ReferenceContainer> referenceContainers = domain.getReferenceContainersOf(config);
if (!referenceContainers.isEmpty()) {
StringBuilder namesOfContainers = new StringBuilder();
for (ReferenceContainer referenceContainer : referenceContainers) {
namesOfContainers.append(referenceContainer.getReference()).append(',');
}
report.setMessage(LOCAL_STRINGS.getLocalString("Config.inUseConfig", "Config {0} is in use " + "and must be referenced by no server instances or clusters", destConfig, namesOfContainers));
report.setActionExitCode(FAILURE);
return;
}
try {
ConfigSupport.apply(new SingleConfigCode<Configs>() {
@Override
public Object run(Configs configs) throws PropertyVetoException, TransactionFailure {
configs.getConfig().remove(config);
return null;
}
}, configs);
} catch (TransactionFailure ex) {
report.setMessage(LOCAL_STRINGS.getLocalString("Config.deleteConfigFailed", "Unable to remove config {0} ", config) + " " + ex.getLocalizedMessage());
report.setActionExitCode(FAILURE);
report.setFailureCause(ex);
}
}
use of org.glassfish.api.admin.config.ReferenceContainer in project Payara by payara.
the class ListClustersCommand method getClustersForConfig.
private List<Cluster> getClustersForConfig() {
Config config = domain.getConfigNamed(whichTarget);
if (config == null)
return null;
List<ReferenceContainer> rcs = domain.getReferenceContainersOf(config);
List<Cluster> clusters = new LinkedList<Cluster>();
for (ReferenceContainer rc : rcs) if (rc.isCluster())
clusters.add((Cluster) rc);
return clusters;
}
use of org.glassfish.api.admin.config.ReferenceContainer in project Payara by payara.
the class ListConfigsCommand method createConfigList.
/*
* if target was junk then return all the configs
*/
private List<Config> createConfigList() {
// 1. no target specified
if (!StringUtils.ok(target))
return allConfigs.getConfig();
Config c = domain.getConfigNamed(target);
if (c != null) {
List<Config> cl = new LinkedList<Config>();
cl.add(c);
return cl;
}
ReferenceContainer rc = domain.getReferenceContainerNamed(target);
if (rc == null)
return null;
if (rc.isServer()) {
Server s = ((Server) rc);
List<Config> cl = new LinkedList<Config>();
cl.add(s.getConfig());
return cl;
} else if (rc.isCluster()) {
Cluster cluster = (Cluster) rc;
List<Config> cl = new LinkedList<Config>();
cl.add(domain.getConfigNamed(cluster.getConfigRef()));
return cl;
} else
return null;
}
use of org.glassfish.api.admin.config.ReferenceContainer in project Payara by payara.
the class ListClustersCommand method createClusterList.
/*
* if target was junk then return all the clusters
*/
private List<Cluster> createClusterList() {
// 1. no whichTarget specified
if (!StringUtils.ok(whichTarget))
return allClusters.getCluster();
ReferenceContainer rc = domain.getReferenceContainerNamed(whichTarget);
// 2. Not a server or a cluster. Could be a config or a Node
if (rc == null) {
return getClustersForNodeOrConfig();
} else if (rc.isServer()) {
Server s = ((Server) rc);
List<Cluster> cl = new LinkedList<Cluster>();
cl.add(s.getCluster());
return cl;
} else if (rc.isCluster()) {
Cluster cluster = (Cluster) rc;
List<Cluster> cl = new LinkedList<Cluster>();
cl.add(cluster);
return cl;
} else
return null;
}
use of org.glassfish.api.admin.config.ReferenceContainer in project Payara by payara.
the class ListInstancesCommand method getServersForConfig.
private List<Server> getServersForConfig() {
Config config = domain.getConfigNamed(whichTarget);
if (config == null) {
return null;
}
List<ReferenceContainer> rcs = domain.getReferenceContainersOf(config);
List<Server> servers = new LinkedList<>();
for (ReferenceContainer rc : rcs) {
if (rc.isServer()) {
servers.add((Server) rc);
}
}
return servers;
}
Aggregations