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();
}
}
}
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;
}
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);
}
}
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());
}
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);
}
}
Aggregations