Search in sources :

Example 56 with Server

use of com.sun.enterprise.config.serverbeans.Server in project Payara by payara.

the class EventsTest method setup.

@Before
public void setup() throws IOException {
    // cludge to run only once yet not depend on a static method.
    if (habitat != null) {
        return;
    }
    habitat = super.getHabitat();
    Server server = habitat.getService(Server.class, "server");
    ActiveDescriptor<Server> descriptor = BuilderHelper.createConstantDescriptor(server, ServerEnvironment.DEFAULT_INSTANCE_NAME, Server.class);
    ServiceLocatorUtilities.addOneDescriptor(habitat, descriptor);
    try {
        application = File.createTempFile("kerneltest", "tmp");
    } catch (IOException e) {
        e.printStackTrace();
        throw e;
    }
    application.delete();
    application.mkdirs();
    Events events = habitat.getService(Events.class);
    events.register(listener);
}
Also used : Server(com.sun.enterprise.config.serverbeans.Server) Events(org.glassfish.api.event.Events) IOException(java.io.IOException)

Example 57 with Server

use of com.sun.enterprise.config.serverbeans.Server in project Payara by payara.

the class LogManagerService method getLoggingFile.

/**
 *  Returns logging file to be monitor during server is running.
 */
@Override
public File getLoggingFile() throws IOException {
    File file = null;
    Server targetServer = domain.getServerNamed(env.getInstanceName());
    if (targetServer != null) {
        if (targetServer.isDas()) {
            file = new File(env.getConfigDirPath(), ServerEnvironmentImpl.kLoggingPropertiesFileName);
        } else if (targetServer.getCluster() != null) {
            String pathForLogging = env.getConfigDirPath() + File.separator + targetServer.getCluster().getConfigRef();
            File dirForLogging = new File(pathForLogging);
            file = new File(dirForLogging, ServerEnvironmentImpl.kLoggingPropertiesFileName);
        } else if (targetServer.isInstance()) {
            String pathForLogging = env.getConfigDirPath() + File.separator + targetServer.getConfigRef();
            File dirForLogging = new File(pathForLogging);
            file = new File(dirForLogging, ServerEnvironmentImpl.kLoggingPropertiesFileName);
        } else {
            file = new File(env.getConfigDirPath(), ServerEnvironmentImpl.kLoggingPropertiesFileName);
        }
    } else {
        file = new File(env.getConfigDirPath(), ServerEnvironmentImpl.kLoggingPropertiesFileName);
    }
    return file;
}
Also used : Server(com.sun.enterprise.config.serverbeans.Server) File(java.io.File)

Example 58 with Server

use of com.sun.enterprise.config.serverbeans.Server in project Payara by payara.

the class CollectLogFiles method execute.

public void execute(AdminCommandContext context) {
    final ActionReport report = context.getActionReport();
    Properties props = initFileXferProps();
    Server targetServer = domain.getServerNamed(target);
    if (targetServer != null && targetServer.isDas()) {
        // This loop if target instance is DAS
        String logFileDetails = "";
        String zipFile = "";
        try {
            // getting log file values from logging.propertie file.
            logFileDetails = loggingConfig.getLoggingFileDetails();
        } catch (Exception ex) {
            final String errorMsg = localStrings.getLocalString("collectlogfiles.errGettingLogFiles", "Error while getting log file attribute for {0}.", target);
            report.setMessage(errorMsg);
            report.setFailureCause(ex);
            report.setActionExitCode(ActionReport.ExitCode.FAILURE);
            return;
        }
        File targetDir = makingDirectoryOnDas(targetServer.getName(), report);
        try {
            String sourceDir = "";
            if (logFileDetails.contains("${com.sun.aas.instanceRoot}/logs")) {
                sourceDir = env.getDomainRoot() + File.separator + "logs";
            } else {
                sourceDir = logFileDetails.substring(0, logFileDetails.lastIndexOf(File.separator));
            }
            copyLogFilesForLocalhost(sourceDir, targetDir.getAbsolutePath(), report, targetServer.getName());
        } catch (Exception ex) {
            final String errorMsg = localStrings.getLocalString("collectlogfiles.errInstanceDownloading", "Error while downloading log files from {0}.", target);
            report.setMessage(errorMsg);
            report.setFailureCause(ex);
            report.setActionExitCode(ActionReport.ExitCode.FAILURE);
            return;
        }
        try {
            String zipFilePath = getZipFilePath().getAbsolutePath();
            zipFile = loggingConfig.createZipFile(zipFilePath);
            if (zipFile == null || new File(zipFile) == null) {
                // Failure during zip
                final String errorMsg = localStrings.getLocalString("collectlogfiles.creatingZip", "Error while creating zip file {0}.", zipFilePath);
                report.setMessage(errorMsg);
                report.setActionExitCode(ActionReport.ExitCode.FAILURE);
                return;
            }
        } catch (Exception e) {
            // Catching Exception if any
            final String errorMsg = localStrings.getLocalString("collectlogfiles.creatingZip", "Error while creating zip file {0}.", zipFile);
            report.setMessage(errorMsg);
            report.setFailureCause(e);
            report.setActionExitCode(ActionReport.ExitCode.FAILURE);
            return;
        }
        if (this.retrieve) {
            retrieveFile(zipFile, context, getZipFilePath(), props, report);
            report.setMessage(localStrings.getLocalString("collectlogfiles.instance.success", "Created Zip file under {0}.", retrieveFilePath + File.separator + new File(zipFile).getName()));
        } else {
            report.setMessage(localStrings.getLocalString("collectlogfiles.instance.success", "Created Zip file under {0}.", zipFile));
        }
    } else if (targetServer != null && targetServer.isInstance()) {
        // This loop if target standalone instance
        String instanceName = targetServer.getName();
        String serverNode = targetServer.getNodeRef();
        Node node = domain.getNodes().getNode(serverNode);
        String zipFile = "";
        File targetDir = null;
        String logFileDetails = "";
        try {
            // getting log file values from logging.propertie file.
            logFileDetails = getInstanceLogFileDirectory(targetServer);
        } catch (Exception ex) {
            final String errorMsg = localStrings.getLocalString("collectlogfiles.errGettingLogFiles", "Error while getting log file attribute for {0}.", target);
            report.setMessage(errorMsg);
            report.setFailureCause(ex);
            report.setActionExitCode(ActionReport.ExitCode.FAILURE);
            return;
        }
        targetDir = makingDirectoryOnDas(targetServer.getName(), report);
        try {
            if (node.isLocal()) {
                String sourceDir = getLogDirForLocalNode(logFileDetails, node, serverNode, instanceName);
                copyLogFilesForLocalhost(sourceDir, targetDir.getAbsolutePath(), report, instanceName);
            } else {
                new LogFilterForInstance().downloadAllInstanceLogFiles(habitat, targetServer, domain, LOGGER, instanceName, targetDir.getAbsolutePath(), logFileDetails);
            }
        } catch (Exception ex) {
            final String errorMsg = localStrings.getLocalString("collectlogfiles.errInstanceDownloading", "Error while downloading log files from {0}.", instanceName);
            report.setMessage(errorMsg);
            report.setFailureCause(ex);
            report.setActionExitCode(ActionReport.ExitCode.FAILURE);
            return;
        }
        try {
            // Creating zip file and returning zip file absolute path.
            String zipFilePath = getZipFilePath().getAbsolutePath();
            zipFile = loggingConfig.createZipFile(zipFilePath);
            if (zipFile == null || new File(zipFile) == null) {
                // Failure during zip
                final String errorMsg = localStrings.getLocalString("collectlogfiles.creatingZip", "Error while creating zip file {0}.", zipFilePath);
                report.setMessage(errorMsg);
                report.setActionExitCode(ActionReport.ExitCode.FAILURE);
                return;
            }
        } catch (Exception ex) {
            final String errorMsg = localStrings.getLocalString("collectlogfiles.creatingZip", "Error while creating zip file {0}.", zipFile);
            report.setMessage(errorMsg);
            report.setActionExitCode(ActionReport.ExitCode.FAILURE);
            return;
        }
        if (this.retrieve) {
            retrieveFile(zipFile, context, getZipFilePath(), props, report);
            report.setMessage(localStrings.getLocalString("collectlogfiles.instance.success", "Created Zip file under {0}.", retrieveFilePath + File.separator + new File(zipFile).getName()));
        } else {
            report.setMessage(localStrings.getLocalString("collectlogfiles.instance.success", "Created Zip file under {0}.", zipFile));
        }
    } else {
        // This loop if target is cluster
        String finalMessage = "";
        String zipFile = "";
        File targetDir = null;
        // code to download server.log file for DAS. Bug fix 16088
        String logFileDetails = "";
        try {
            // getting log file values from logging.propertie file.
            logFileDetails = loggingConfig.getLoggingFileDetails();
        } catch (Exception ex) {
            final String errorMsg = localStrings.getLocalString("collectlogfiles.errGettingLogFiles", "Error while getting log file attribute for {0}.", target);
            report.setMessage(errorMsg);
            report.setFailureCause(ex);
            report.setActionExitCode(ActionReport.ExitCode.FAILURE);
            return;
        }
        targetDir = makingDirectoryOnDas(SystemPropertyConstants.DEFAULT_SERVER_INSTANCE_NAME, report);
        try {
            String sourceDir = "";
            if (logFileDetails.contains("${com.sun.aas.instanceRoot}/logs")) {
                sourceDir = env.getDomainRoot() + File.separator + "logs";
            } else {
                sourceDir = logFileDetails.substring(0, logFileDetails.lastIndexOf(File.separator));
            }
            copyLogFilesForLocalhost(sourceDir, targetDir.getAbsolutePath(), report, SystemPropertyConstants.DEFAULT_SERVER_INSTANCE_NAME);
        } catch (Exception ex) {
            final String errorMsg = localStrings.getLocalString("collectlogfiles.errInstanceDownloading", "Error while downloading log files from {0}.", target);
            report.setMessage(errorMsg);
            report.setFailureCause(ex);
            report.setActionExitCode(ActionReport.ExitCode.FAILURE);
            return;
        }
        /**
         ***************************************************
         */
        com.sun.enterprise.config.serverbeans.Cluster cluster = domain.getClusterNamed(target);
        List<Server> instances = cluster.getInstances();
        int instanceCount = 0;
        int errorCount = 0;
        for (Server instance : instances) {
            // downloading log files for all instances which is part of cluster under temp directory.
            String instanceName = instance.getName();
            String serverNode = instance.getNodeRef();
            Node node = domain.getNodes().getNode(serverNode);
            boolean errorOccur = false;
            instanceCount++;
            logFileDetails = "";
            try {
                // getting log file values from logging.propertie file.
                logFileDetails = getInstanceLogFileDirectory(domain.getServerNamed(instanceName));
            } catch (Exception ex) {
                final String errorMsg = localStrings.getLocalString("collectlogfiles.errGettingLogFiles", "Error while getting log file attribute for {0}.", target);
                report.setMessage(errorMsg);
                report.setFailureCause(ex);
                report.setActionExitCode(ActionReport.ExitCode.FAILURE);
                return;
            }
            try {
                targetDir = makingDirectoryOnDas(instanceName, report);
                if (node.isLocal()) {
                    String sourceDir = getLogDirForLocalNode(logFileDetails, node, serverNode, instanceName);
                    copyLogFilesForLocalhost(sourceDir, targetDir.getAbsolutePath(), report, instanceName);
                } else {
                    new LogFilterForInstance().downloadAllInstanceLogFiles(habitat, instance, domain, LOGGER, instanceName, targetDir.getAbsolutePath(), logFileDetails);
                }
            } catch (Exception ex) {
                errorCount++;
                final String errorMsg = localStrings.getLocalString("collectlogfiles.errInstanceDownloading", "Error while downloading log files from {0}.", instanceName);
                errorOccur = true;
                finalMessage += errorMsg + "\n";
            }
            if (!errorOccur) {
                final String successMsg = localStrings.getLocalString("collectlogfiles.successInstanceDownloading", "Log files are downloaded for {0}.", instanceName);
                finalMessage += successMsg + "\n";
            }
        }
        report.setMessage(finalMessage);
        if (instanceCount != errorCount) {
            try {
                String zipFilePath = getZipFilePath().getAbsolutePath();
                // Creating zip file and returning zip file absolute path.
                zipFile = loggingConfig.createZipFile(zipFilePath);
                if (zipFile == null || new File(zipFile) == null) {
                    // Failure during zip
                    final String errorMsg = localStrings.getLocalString("collectlogfiles.creatingZip", "Error while creating zip file {0}.", zipFilePath);
                    report.setMessage(errorMsg);
                    report.setActionExitCode(ActionReport.ExitCode.FAILURE);
                    return;
                }
            } catch (Exception ex) {
                final String errorMsg = localStrings.getLocalString("collectlogfiles.creatingZip", "Error while creating zip file {0}.", zipFile);
                report.setMessage(errorMsg);
                report.setFailureCause(ex);
                report.setActionExitCode(ActionReport.ExitCode.FAILURE);
                return;
            }
            if (this.retrieve) {
                retrieveFile(zipFile, context, getZipFilePath(), props, report);
                report.setMessage(localStrings.getLocalString("collectlogfiles.cluster.success", "{0} Created Zip file under {1}.", finalMessage, retrieveFilePath + File.separator + new File(zipFile).getName()));
            } else {
                report.setMessage(localStrings.getLocalString("collectlogfiles.cluster.success", "{0} Created Zip file under {1}.", finalMessage, zipFile));
            }
            report.setActionExitCode(ActionReport.ExitCode.SUCCESS);
        } else if (instanceCount == 0) {
            report.setMessage(localStrings.getLocalString("collectlogfiles.noinstance", "No instances are defined as part of {0}. So there are no files to zip.", target));
            report.setActionExitCode(ActionReport.ExitCode.FAILURE);
        } else {
            report.setActionExitCode(ActionReport.ExitCode.FAILURE);
        }
    }
    deleteDir(new File(env.getInstanceRoot() + File.separator + "collected-logs" + File.separator + "logs"));
}
Also used : Server(com.sun.enterprise.config.serverbeans.Server) Node(com.sun.enterprise.config.serverbeans.Node) Cluster(com.sun.enterprise.config.serverbeans.Cluster) ArrayList(java.util.ArrayList) List(java.util.List) ActionReport(org.glassfish.api.ActionReport) Properties(java.util.Properties) File(java.io.File) IOException(java.io.IOException) LogFilterForInstance(com.sun.enterprise.server.logging.logviewer.backend.LogFilterForInstance)

Example 59 with Server

use of com.sun.enterprise.config.serverbeans.Server in project Payara by payara.

the class SetLogFileFormat method execute.

public void execute(AdminCommandContext context) {
    String formatterClassName = null;
    if (formatter.equalsIgnoreCase(ODL_FORMATTER_NAME)) {
        formatterClassName = ODLLogFormatter.class.getName();
    } else if (formatter.equalsIgnoreCase(ULF_FORMATTER_NAME)) {
        formatterClassName = UniformLogFormatter.class.getName();
    } else {
        formatterClassName = formatter;
    }
    if (formatterClassName == null || formatter.isEmpty()) {
        formatterClassName = ODLLogFormatter.class.getName();
    }
    Map<String, String> loggingProperties = new HashMap<String, String>();
    loggingProperties.put("com.sun.enterprise.server.logging.GFFileHandler.formatter", formatterClassName);
    final ActionReport report = context.getActionReport();
    boolean isCluster = false;
    boolean isDas = false;
    boolean isInstance = false;
    boolean isConfig = false;
    String targetConfigName = "";
    try {
        Config config = domain.getConfigNamed(target);
        if (config != null) {
            targetConfigName = target;
            isConfig = true;
        } else {
            Server targetServer = domain.getServerNamed(target);
            if (targetServer != null) {
                if (targetServer.isDas()) {
                    isDas = true;
                } else {
                    isInstance = true;
                    Cluster clusterForInstance = targetServer.getCluster();
                    if (clusterForInstance != null) {
                        targetConfigName = clusterForInstance.getConfigRef();
                    } else {
                        targetConfigName = targetServer.getConfigRef();
                    }
                }
            } else {
                com.sun.enterprise.config.serverbeans.Cluster cluster = domain.getClusterNamed(target);
                if (cluster != null) {
                    isCluster = true;
                    targetConfigName = cluster.getConfigRef();
                }
            }
        }
        if (isDas) {
            loggingConfig.updateLoggingProperties(loggingProperties);
        } else if ((targetConfigName != null && !targetConfigName.isEmpty()) && (isCluster || isInstance || isConfig)) {
            loggingConfig.updateLoggingProperties(loggingProperties, targetConfigName);
        } else {
            report.setActionExitCode(ActionReport.ExitCode.FAILURE);
            String msg = LOCAL_STRINGS.getLocalString("invalid.target.sys.props", "Invalid target: {0}. Valid default target is a server named ''server'' (default) or cluster name.", targetConfigName);
            report.setMessage(msg);
            return;
        }
        String successMsg = LOCAL_STRINGS.getLocalString("set.log.file.format.success", "The log file formatter is set to {0} for {1}.", formatterClassName, env.getInstanceName());
        report.setMessage(successMsg);
        report.setActionExitCode(ActionReport.ExitCode.SUCCESS);
    } catch (IOException e) {
        report.setMessage(LOCAL_STRINGS.getLocalString("set.log.file.format.failed", "Could not set log file formatter for {0}.", target));
        report.setActionExitCode(ActionReport.ExitCode.FAILURE);
    }
}
Also used : Server(com.sun.enterprise.config.serverbeans.Server) HashMap(java.util.HashMap) LoggingConfig(com.sun.common.util.logging.LoggingConfig) Config(com.sun.enterprise.config.serverbeans.Config) Cluster(com.sun.enterprise.config.serverbeans.Cluster) IOException(java.io.IOException) ActionReport(org.glassfish.api.ActionReport) ODLLogFormatter(com.sun.enterprise.server.logging.ODLLogFormatter) Cluster(com.sun.enterprise.config.serverbeans.Cluster)

Example 60 with Server

use of com.sun.enterprise.config.serverbeans.Server in project Payara by payara.

the class UpdateApplicationRefCommand method execute.

/**
 * Execution method for updating the configuration of an ApplicationRef.
 * Will be replicated if the target is a cluster.
 *
 * @param context context for the command.
 */
@Override
public void execute(AdminCommandContext context) {
    final ActionReport report = context.getActionReport();
    final Logger logger = context.getLogger();
    // Make a list of all ApplicationRefs that need to change
    List<ApplicationRef> applicationRefsToChange = new ArrayList<>();
    // Add the ApplicationRef which is being immediately targetted
    {
        ApplicationRef primaryApplicationRef = domain.getApplicationRefInTarget(name, target);
        if (primaryApplicationRef == null) {
            report.failure(logger, LOCAL_STRINGS.getLocalString("appref.not.exists", "Target {1} does not have a reference to application {0}.", name, target));
            return;
        }
        applicationRefsToChange.add(primaryApplicationRef);
    }
    // Add the implicitly targetted ApplicationRefs if the target is in a cluster or deployment group
    {
        Cluster cluster = domain.getClusterNamed(target);
        // if the target is a cluster
        if (cluster != null) {
            for (Server server : cluster.getInstances()) {
                ApplicationRef instanceAppRef = server.getApplicationRef(name);
                // if the server in the cluster contains the ApplicationRef
                if (instanceAppRef != null) {
                    applicationRefsToChange.add(instanceAppRef);
                }
            }
        }
        DeploymentGroup dg = domain.getDeploymentGroupNamed(target);
        if (dg != null) {
            for (Server server : dg.getInstances()) {
                ApplicationRef instanceAppRef = server.getApplicationRef(name);
                // if the server in the dg contains the ApplicationRef
                if (instanceAppRef != null) {
                    applicationRefsToChange.add(instanceAppRef);
                }
            }
        }
    }
    // Apply the configuration to the listed ApplicationRefs
    try {
        ConfigSupport.apply(new ConfigCode() {

            @Override
            public Object run(ConfigBeanProxy... params) throws PropertyVetoException, TransactionFailure {
                for (ConfigBeanProxy proxy : params) {
                    if (proxy instanceof ApplicationRef) {
                        ApplicationRef applicationRefProxy = (ApplicationRef) proxy;
                        if (enabled != null) {
                            applicationRefProxy.setEnabled(enabled.toString());
                        }
                        if (virtualservers != null) {
                            applicationRefProxy.setVirtualServers(virtualservers);
                        }
                        if (lbenabled != null) {
                            applicationRefProxy.setLbEnabled(lbenabled.toString());
                        }
                    }
                }
                report.setActionExitCode(ActionReport.ExitCode.SUCCESS);
                return true;
            }
        }, applicationRefsToChange.toArray(new ApplicationRef[] {}));
    } catch (TransactionFailure ex) {
        report.failure(logger, ex.getLocalizedMessage());
    }
}
Also used : TransactionFailure(org.jvnet.hk2.config.TransactionFailure) Server(com.sun.enterprise.config.serverbeans.Server) ArrayList(java.util.ArrayList) Cluster(com.sun.enterprise.config.serverbeans.Cluster) ActionReport(org.glassfish.api.ActionReport) Logger(java.util.logging.Logger) ApplicationRef(com.sun.enterprise.config.serverbeans.ApplicationRef) PropertyVetoException(java.beans.PropertyVetoException) ConfigBeanProxy(org.jvnet.hk2.config.ConfigBeanProxy) ConfigCode(org.jvnet.hk2.config.ConfigCode) DeploymentGroup(fish.payara.enterprise.config.serverbeans.DeploymentGroup)

Aggregations

Server (com.sun.enterprise.config.serverbeans.Server)86 ActionReport (org.glassfish.api.ActionReport)27 Cluster (com.sun.enterprise.config.serverbeans.Cluster)26 Domain (com.sun.enterprise.config.serverbeans.Domain)16 Config (com.sun.enterprise.config.serverbeans.Config)15 ArrayList (java.util.ArrayList)12 DeploymentGroup (fish.payara.enterprise.config.serverbeans.DeploymentGroup)11 PropertyVetoException (java.beans.PropertyVetoException)11 Properties (java.util.Properties)10 TransactionFailure (org.jvnet.hk2.config.TransactionFailure)10 HashMap (java.util.HashMap)9 ApplicationRef (com.sun.enterprise.config.serverbeans.ApplicationRef)8 File (java.io.File)8 IOException (java.io.IOException)8 Test (org.junit.Test)8 Property (org.jvnet.hk2.config.types.Property)8 Node (com.sun.enterprise.config.serverbeans.Node)7 Map (java.util.Map)7 Logger (java.util.logging.Logger)7 ParameterMap (org.glassfish.api.admin.ParameterMap)7