Search in sources :

Example 1 with ReferenceContainer

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);
    }
}
Also used : ReferenceContainer(org.glassfish.api.admin.config.ReferenceContainer) PropertyVetoException(java.beans.PropertyVetoException) TransactionFailure(org.jvnet.hk2.config.TransactionFailure) Config(com.sun.enterprise.config.serverbeans.Config) Configs(com.sun.enterprise.config.serverbeans.Configs) ActionReport(org.glassfish.api.ActionReport)

Example 2 with ReferenceContainer

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;
}
Also used : ReferenceContainer(org.glassfish.api.admin.config.ReferenceContainer) LinkedList(java.util.LinkedList)

Example 3 with ReferenceContainer

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;
}
Also used : ReferenceContainer(org.glassfish.api.admin.config.ReferenceContainer) ArrayList(java.util.ArrayList) List(java.util.List) LinkedList(java.util.LinkedList) LinkedList(java.util.LinkedList)

Example 4 with ReferenceContainer

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;
}
Also used : ReferenceContainer(org.glassfish.api.admin.config.ReferenceContainer) List(java.util.List) LinkedList(java.util.LinkedList) LinkedList(java.util.LinkedList)

Example 5 with ReferenceContainer

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;
}
Also used : ReferenceContainer(org.glassfish.api.admin.config.ReferenceContainer)

Aggregations

ReferenceContainer (org.glassfish.api.admin.config.ReferenceContainer)5 LinkedList (java.util.LinkedList)3 List (java.util.List)2 Config (com.sun.enterprise.config.serverbeans.Config)1 Configs (com.sun.enterprise.config.serverbeans.Configs)1 PropertyVetoException (java.beans.PropertyVetoException)1 ArrayList (java.util.ArrayList)1 ActionReport (org.glassfish.api.ActionReport)1 TransactionFailure (org.jvnet.hk2.config.TransactionFailure)1