Search in sources :

Example 11 with Server

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

the class LogFilter method getLogFileForGivenTarget.

/*
    * This method is used by LogViewerResource which is used to display raw log data like 'tail -f server.log'.
    */
public String getLogFileForGivenTarget(String targetServerName) throws IOException {
    Server targetServer = domain.getServerNamed(targetServerName);
    String serverNode = targetServer.getNodeRef();
    if (targetServer.isDas()) {
        // getting log file for DAS from logging.properties and returning the same
        String logFileDetailsForServer = loggingConfigFactory.provide().getLoggingFileDetails();
        logFileDetailsForServer = TranslatedConfigView.expandConfigValue(logFileDetailsForServer);
        logFileDetailsForServer = new File(logFileDetailsForServer).getAbsolutePath();
        return logFileDetailsForServer;
    } else {
        // getting log file for instance from logging.properties
        String logFileDetailsForInstance = getInstanceLogFileDetails(targetServer);
        Node node = domain.getNodes().getNode(serverNode);
        String loggingDir = "";
        String loggingFile = "";
        // replacing instanceRoot value if it's there
        if (logFileDetailsForInstance.contains("${com.sun.aas.instanceRoot}/logs") && node.getNodeDir() != null) {
            // this code is used if no changes made in logging.properties file
            loggingDir = node.getNodeDir() + File.separator + serverNode + File.separator + targetServerName;
            loggingFile = logFileDetailsForInstance.replace("${com.sun.aas.instanceRoot}", loggingDir);
        } else if (logFileDetailsForInstance.contains("${com.sun.aas.instanceRoot}/logs") && node.getInstallDir() != null) {
            loggingDir = node.getInstallDir() + File.separator + "glassfish" + File.separator + "nodes" + File.separator + serverNode + File.separator + targetServerName;
            loggingFile = logFileDetailsForInstance.replace("${com.sun.aas.instanceRoot}", loggingDir);
        } else {
            loggingFile = logFileDetailsForInstance;
        }
        if (node.isLocal()) {
            // if local just returning log file to view
            return loggingFile;
        } else {
            // if remote then need to download log file on DAS and returning that log file for view
            String logFileName = logFileDetailsForInstance.substring(logFileDetailsForInstance.lastIndexOf(File.separator) + 1, logFileDetailsForInstance.length());
            File instanceFile = null;
            instanceFile = new LogFilterForInstance().downloadGivenInstanceLogFile(habitat, targetServer, domain, LOGGER, targetServerName, env.getInstanceRoot().getAbsolutePath(), logFileName, logFileDetailsForInstance);
            return instanceFile.getAbsolutePath();
        }
    }
}
Also used : Server(com.sun.enterprise.config.serverbeans.Server) Node(com.sun.enterprise.config.serverbeans.Node) File(java.io.File)

Example 12 with Server

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

the class LogFilter method getInstanceLogFileNames.

public List<String> getInstanceLogFileNames(String instanceName) {
    Server targetServer = domain.getServerNamed(instanceName);
    List<String> allInstanceFileNames = new ArrayList<>();
    if (targetServer.isDas()) {
        String logFileDetailsForServer = "";
        try {
            // getting log file attribute value from logging.properties file
            logFileDetailsForServer = loggingConfigFactory.provide().getLoggingFileDetails();
            logFileDetailsForServer = TranslatedConfigView.expandConfigValue(logFileDetailsForServer);
            logFileDetailsForServer = new File(logFileDetailsForServer).getAbsolutePath();
        } catch (Exception ex) {
            LOGGER.log(Level.SEVERE, LogFacade.ERROR_EXECUTING_LOG_QUERY, ex);
            return allInstanceFileNames;
        }
        File logsDir = new File(logFileDetailsForServer.substring(0, logFileDetailsForServer.lastIndexOf(File.separator)));
        File[] allLogFileNames = logsDir.listFiles();
        for (File file : allLogFileNames) {
            String fileName = file.getName();
            if (file.isFile() && !fileName.equals(".") && !fileName.equals("..") && fileName.contains(".log") && !fileName.contains(".log.")) {
                allInstanceFileNames.add(fileName);
            }
        }
    } else {
        try {
            // getting log file attribute value from logging.properties file
            String instanceLogFileDetails = getInstanceLogFileDetails(targetServer);
            allInstanceFileNames = new LogFilterForInstance().getInstanceLogFileNames(habitat, targetServer, domain, LOGGER, instanceName, instanceLogFileDetails);
        } catch (Exception ex) {
            LOGGER.log(Level.SEVERE, LogFacade.ERROR_EXECUTING_LOG_QUERY, ex);
            return new ArrayList<>();
        }
    }
    return allInstanceFileNames;
}
Also used : Server(com.sun.enterprise.config.serverbeans.Server) File(java.io.File) IOException(java.io.IOException)

Example 13 with Server

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

the class DeleteLogLevel method execute.

public void execute(AdminCommandContext context) {
    final ActionReport report = context.getActionReport();
    boolean isCluster = false;
    boolean isDas = false;
    boolean isInstance = false;
    StringBuilder successMsg = new StringBuilder();
    boolean isConfig = false;
    boolean success = false;
    String targetConfigName = "";
    Map<String, String> m = new HashMap<String, String>();
    try {
        String[] loggerNames = properties.split("(?<!\\\\):");
        for (final Object key : loggerNames) {
            final String logger_name = (String) key;
            m.put(logger_name + ".level", null);
        }
        Config config = domain.getConfigNamed(target);
        if (config != null) {
            targetConfigName = target;
            isConfig = true;
            Server targetServer = domain.getServerNamed(SystemPropertyConstants.DEFAULT_SERVER_INSTANCE_NAME);
            if (targetServer != null && targetServer.getConfigRef().equals(target)) {
                isDas = true;
            }
            targetServer = null;
        } else {
            Server targetServer = domain.getServerNamed(target);
            if (targetServer != null && targetServer.isDas()) {
                isDas = true;
            } else {
                com.sun.enterprise.config.serverbeans.Cluster cluster = domain.getClusterNamed(target);
                if (cluster != null) {
                    isCluster = true;
                    targetConfigName = cluster.getConfigRef();
                } else if (targetServer != null) {
                    isInstance = true;
                    targetConfigName = targetServer.getConfigRef();
                }
            }
            if (isInstance) {
                Cluster clusterForInstance = targetServer.getCluster();
                if (clusterForInstance != null) {
                    targetConfigName = clusterForInstance.getConfigRef();
                }
            }
        }
        if (isCluster || isInstance) {
            loggingConfigFactory.provide(targetConfigName).deleteLoggingProperties(m);
            success = true;
        } else if (isDas) {
            loggingConfigFactory.provide().deleteLoggingProperties(m);
            success = true;
        } else if (isConfig) {
            // This loop is for the config which is not part of any target
            loggingConfigFactory.provide(targetConfigName).deleteLoggingProperties(m);
            success = true;
        } else {
            report.setActionExitCode(ActionReport.ExitCode.FAILURE);
            String msg = localStrings.getLocalString("invalid.target.sys.props", "Invalid target: {0}. Valid default target is a server named ''server'' (default) or cluster name.", target);
            report.setMessage(msg);
            return;
        }
        if (success) {
            successMsg.append(localStrings.getLocalString("delete.log.level.success", "These logging levels are deleted for {0}.", target));
            report.setMessage(successMsg.toString());
            report.setActionExitCode(ActionReport.ExitCode.SUCCESS);
        }
    } catch (IOException e) {
        report.setMessage(localStrings.getLocalString("delete.log.level.failed", "Could not delete logger levels for {0}.", target));
        report.setActionExitCode(ActionReport.ExitCode.FAILURE);
    }
}
Also used : Server(com.sun.enterprise.config.serverbeans.Server) HashMap(java.util.HashMap) Config(com.sun.enterprise.config.serverbeans.Config) Cluster(com.sun.enterprise.config.serverbeans.Cluster) IOException(java.io.IOException) ActionReport(org.glassfish.api.ActionReport) Cluster(com.sun.enterprise.config.serverbeans.Cluster)

Example 14 with Server

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

the class DGTest method getDeploymentGroupFromServerTest.

@Test
public void getDeploymentGroupFromServerTest() {
    Domain d = habitat.getService(Domain.class);
    Server server = d.getServerNamed("server2");
    assertTrue(server != null);
    List<DeploymentGroup> dgs = server.getDeploymentGroup();
    assertEquals("List should have 1 element", 1L, dgs.size());
}
Also used : Server(com.sun.enterprise.config.serverbeans.Server) Domain(com.sun.enterprise.config.serverbeans.Domain) DeploymentGroup(fish.payara.enterprise.config.serverbeans.DeploymentGroup) ConfigApiTest(com.sun.enterprise.configapi.tests.ConfigApiTest) Test(org.junit.Test)

Example 15 with Server

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

the class ReferenceConstrainTest method serverConfigRefInvalid.

@Test
public void serverConfigRefInvalid() throws TransactionFailure {
    Server server = habitat.getService(Server.class, "server");
    assertNotNull(server);
    ConfigBean serverConfig = (ConfigBean) ConfigBean.unwrap(server);
    Map<ConfigBean, Map<String, String>> changes = new HashMap<ConfigBean, Map<String, String>>();
    Map<String, String> configChanges = new HashMap<String, String>();
    configChanges.put("config-ref", "server-config-nonexist");
    changes.put(serverConfig, configChanges);
    try {
        ConfigSupport cs = getHabitat().getService(ConfigSupport.class);
        cs.apply(changes);
        fail("Can not reach this point");
    } catch (TransactionFailure tf) {
        ConstraintViolationException cv = findConstrViolation(tf);
        assertNotNull(cv);
    }
}
Also used : TransactionFailure(org.jvnet.hk2.config.TransactionFailure) ConfigSupport(org.jvnet.hk2.config.ConfigSupport) Server(com.sun.enterprise.config.serverbeans.Server) HashMap(java.util.HashMap) ConstraintViolationException(javax.validation.ConstraintViolationException) ConfigBean(org.jvnet.hk2.config.ConfigBean) HashMap(java.util.HashMap) Map(java.util.Map) ConfigApiTest(com.sun.enterprise.configapi.tests.ConfigApiTest) Test(org.junit.Test)

Aggregations

Server (com.sun.enterprise.config.serverbeans.Server)101 ActionReport (org.glassfish.api.ActionReport)32 Cluster (com.sun.enterprise.config.serverbeans.Cluster)25 Domain (com.sun.enterprise.config.serverbeans.Domain)15 Node (com.sun.enterprise.config.serverbeans.Node)15 Config (com.sun.enterprise.config.serverbeans.Config)14 Properties (java.util.Properties)14 ArrayList (java.util.ArrayList)13 Test (org.junit.Test)12 PropertyVetoException (java.beans.PropertyVetoException)11 DeploymentGroup (fish.payara.enterprise.config.serverbeans.DeploymentGroup)9 ParameterMap (org.glassfish.api.admin.ParameterMap)9 ApplicationRef (com.sun.enterprise.config.serverbeans.ApplicationRef)8 File (java.io.File)8 IOException (java.io.IOException)8 HashMap (java.util.HashMap)8 TransactionFailure (org.jvnet.hk2.config.TransactionFailure)8 Logger (java.util.logging.Logger)7 Map (java.util.Map)6 ServerContext (org.glassfish.internal.api.ServerContext)6