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