Search in sources :

Example 11 with Node

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

the class IiopFolbGmsClient method getClusterInstanceInfo.

private ClusterInstanceInfo getClusterInstanceInfo(Server server, Config config, boolean assumeInstanceIsRunning) {
    if (server == null) {
        return null;
    }
    if (!assumeInstanceIsRunning) {
        if (!server.isRunning()) {
            return null;
        }
    }
    fineLog("getClusterInstanceInfo: server {0}, config {1}", server, config);
    final String name = server.getName();
    fineLog("getClusterInstanceInfo: name {0}", name);
    final int weight = Integer.parseInt(server.getLbWeight());
    fineLog("getClusterInstanceInfo: weight {0}", weight);
    final IiopService iservice = config.getExtensionByType(IiopService.class);
    fineLog("getClusterInstanceInfo: iservice {0}", iservice);
    final String nodeName = server.getNodeRef();
    String hostName = nodeName;
    if (nodes != null) {
        Node node = nodes.getNode(nodeName);
        if (node != null) {
            // System level, use the local host name
            if ((node.isLocal() && !Boolean.getBoolean(USE_NODE_HOST_FOR_LOCAL_NODE_SYSTEM_PROPERTY)) && (node.isLocal() && !Boolean.parseBoolean(iservice.getOrb().getPropertyValue(USE_NODE_HOST_FOR_LOCAL_NODE_PROPERTY, "false")))) {
                try {
                    hostName = InetAddress.getLocalHost().getHostName();
                } catch (UnknownHostException exc) {
                    fineLog("getClusterInstanceInfo: caught exception for localhost lookup {0}", exc);
                }
            } else {
                hostName = node.getNodeHost();
            }
        }
    }
    fineLog("getClusterInstanceInfo: host {0}", hostName);
    final List<IiopListener> listeners = iservice.getIiopListener();
    fineLog("getClusterInstanceInfo: listeners {0}", listeners);
    final List<SocketInfo> sinfos = new ArrayList<SocketInfo>();
    for (IiopListener il : listeners) {
        SocketInfo sinfo = new SocketInfo(il.getId(), hostName, resolvePort(server, il));
        sinfos.add(sinfo);
    }
    fineLog("getClusterInstanceInfo: sinfos {0}", sinfos);
    final ClusterInstanceInfo result = new ClusterInstanceInfo(name, weight, sinfos);
    fineLog("getClusterInstanceInfo: result {0}", result);
    return result;
}
Also used : IiopListener(org.glassfish.orb.admin.config.IiopListener) UnknownHostException(java.net.UnknownHostException) IiopService(org.glassfish.orb.admin.config.IiopService) Node(com.sun.enterprise.config.serverbeans.Node) SocketInfo(com.sun.corba.ee.spi.folb.SocketInfo) ArrayList(java.util.ArrayList) ClusterInstanceInfo(com.sun.corba.ee.spi.folb.ClusterInstanceInfo)

Example 12 with Node

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

the class InstanceReaderImpl method getResolvedHostName.

private String getResolvedHostName(String address) throws LbReaderException {
    InetAddress addr = null;
    if (!address.equals(BIND_TO_ANY)) {
        try {
            addr = InetAddress.getByName(address);
        } catch (UnknownHostException ex) {
            String msg = LbLogUtil.getStringManager().getString("CannotResolveHostName", address);
            throw new LbReaderException(msg, ex);
        }
        if (!addr.isLoopbackAddress()) {
            return address;
        }
    }
    String nodeName = _server.getNodeRef();
    Node node = _domain.getNodes().getNode(nodeName);
    if (node == null) {
        String msg = LbLogUtil.getStringManager().getString("UnableToGetNode", _server.getName());
        throw new LbReaderException(msg);
    }
    if (node.getNodeHost() != null && !node.getNodeHost().equals(LOCALHOST)) {
        return node.getNodeHost();
    }
    return System.getProperty("com.sun.aas.hostName");
}
Also used : UnknownHostException(java.net.UnknownHostException) Node(com.sun.enterprise.config.serverbeans.Node) InetAddress(java.net.InetAddress) LbReaderException(org.glassfish.loadbalancer.admin.cli.reader.api.LbReaderException)

Example 13 with Node

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

the class LogFilterForInstance method downloadAllInstanceLogFiles.

public void downloadAllInstanceLogFiles(ServiceLocator habitat, Server targetServer, Domain domain, Logger logger, String instanceName, String tempDirectoryOnServer, String instanceLogFileDirectory) throws IOException {
    // method is used from collect-log-files command
    // for Instance it's going through this loop. This will use ssh utility to get file from instance machine(remote machine) and
    // store in  tempDirectoryOnServer which is used to create zip file.
    // Right now user needs to go through this URL to setup and configure ssh http://wikis.sun.com/display/GlassFish/3.1SSHSetup
    SSHLauncher sshL = getSSHL(habitat);
    String sNode = targetServer.getNodeRef();
    Nodes nodes = domain.getNodes();
    Node node = nodes.getNode(sNode);
    if (node.getType().equals("SSH")) {
        sshL.init(node, logger);
        List<String> allInstanceLogFileName = getInstanceLogFileNames(habitat, targetServer, domain, logger, instanceName, instanceLogFileDirectory);
        boolean noFileFound = true;
        String sourceDir = getLoggingDirectoryForNode(instanceLogFileDirectory, node, sNode, instanceName);
        SFTPClient sftpClient = sshL.getSFTPClient();
        try {
            List instanceLogFileNames = sftpClient.ls(sourceDir);
            for (int i = 0; i < instanceLogFileNames.size(); i++) {
                SFTPv3DirectoryEntry file = (SFTPv3DirectoryEntry) instanceLogFileNames.get(i);
                String fileName = file.filename;
                // code to remove . and .. file which is return from sftpclient ls method
                if (!file.attributes.isDirectory() && !fileName.equals(".") && !fileName.equals("..") && fileName.contains(".log") && !fileName.contains(".log.")) {
                    noFileFound = false;
                    break;
                }
            }
        } catch (Exception e) {
            // if directory doesn't present or missing on remote machine. It happens due to bug 16451
            noFileFound = true;
        }
        if (noFileFound) {
            // this loop is used when user has changed value for server.log but not restarted the server.
            sourceDir = getLoggingDirectoryForNodeWhenNoFilesFound(instanceLogFileDirectory, node, sNode, instanceName);
        }
        String[] remoteFileNames = new String[allInstanceLogFileName.size()];
        for (int i = 0; i < allInstanceLogFileName.size(); i++) {
            remoteFileNames[i] = sourceDir + File.separator + allInstanceLogFileName.get(i);
        }
        sftpClient.close();
        SCPClient scpClient = sshL.getSCPClient();
        scpClient.get(remoteFileNames, tempDirectoryOnServer);
    } else if (node.getType().equals("DCOM")) {
        List instanceLogFileNames = getInstanceLogFileNames(habitat, targetServer, domain, logger, instanceName, instanceLogFileDirectory);
        String sourceDir = getLoggingDirectoryForNode(instanceLogFileDirectory, node, sNode, instanceName);
        try {
            DcomInfo info = new DcomInfo(node);
            WindowsRemoteFileSystem wrfs = new WindowsRemoteFileSystem(info.getHost(), info.getUser(), info.getPassword());
            for (int i = 0; i < instanceLogFileNames.size(); i++) {
                String logFileName = (String) instanceLogFileNames.get(i);
                WindowsRemoteFile wrf = new WindowsRemoteFile(wrfs, sourceDir + File.separator + logFileName);
                File instanceLogFile = new File(tempDirectoryOnServer + File.separator + logFileName);
                wrf.copyTo(instanceLogFile);
            }
        } catch (WindowsException ex) {
            throw new IOException("Unable to download instance log file from DCOM Instance Node");
        }
    }
}
Also used : SCPClient(com.trilead.ssh2.SCPClient) SSHLauncher(org.glassfish.cluster.ssh.launcher.SSHLauncher) Node(com.sun.enterprise.config.serverbeans.Node) SFTPClient(org.glassfish.cluster.ssh.sftp.SFTPClient) WindowsException(com.sun.enterprise.util.cluster.windows.process.WindowsException) Nodes(com.sun.enterprise.config.serverbeans.Nodes) WindowsException(com.sun.enterprise.util.cluster.windows.process.WindowsException) DcomInfo(org.glassfish.cluster.ssh.util.DcomInfo) SFTPv3DirectoryEntry(com.trilead.ssh2.SFTPv3DirectoryEntry) WindowsRemoteFile(com.sun.enterprise.util.cluster.windows.io.WindowsRemoteFile) WindowsRemoteFileSystem(com.sun.enterprise.util.cluster.windows.io.WindowsRemoteFileSystem) ArrayList(java.util.ArrayList) List(java.util.List) WindowsRemoteFile(com.sun.enterprise.util.cluster.windows.io.WindowsRemoteFile)

Example 14 with Node

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

the class LogFilterForInstance method getInstanceLogFileNames.

public List<String> getInstanceLogFileNames(ServiceLocator habitat, Server targetServer, Domain domain, Logger logger, String instanceName, String instanceLogFileDetails) throws IOException {
    // helper method to get all log file names for given instance
    String sNode = targetServer.getNodeRef();
    Node node = domain.getNodes().getNode(sNode);
    List instanceLogFileNames = null;
    List<String> instanceLogFileNamesAsString = new ArrayList();
    // this code is used when DAS and instances are running on the same machine
    if (node.isLocal()) {
        String loggingDir = getLoggingDirectoryForNode(instanceLogFileDetails, node, sNode, instanceName);
        File logsDir = new File(loggingDir);
        File[] allLogFileNames = logsDir.listFiles();
        boolean noFileFound = true;
        if (allLogFileNames != null) {
            // This check for,  if directory doesn't present or missing on machine. It happens due to bug 16451
            for (File file : allLogFileNames) {
                String fileName = file.getName();
                // code to remove . and .. file which is return
                if (file.isFile() && !fileName.equals(".") && !fileName.equals("..") && fileName.contains(".log") && !fileName.contains(".log.")) {
                    instanceLogFileNamesAsString.add(fileName);
                    noFileFound = false;
                }
            }
        }
        if (noFileFound) {
            // this loop is used when user has changed value for server.log but not restarted the server.
            loggingDir = getLoggingDirectoryForNodeWhenNoFilesFound(instanceLogFileDetails, node, sNode, instanceName);
            logsDir = new File(loggingDir);
            allLogFileNames = logsDir.listFiles();
            for (File file : allLogFileNames) {
                String fileName = file.getName();
                // code to remove . and .. file which is return
                if (file.isFile() && !fileName.equals(".") && !fileName.equals("..") && fileName.contains(".log") && !fileName.contains(".log.")) {
                    instanceLogFileNamesAsString.add(fileName);
                }
            }
        }
    } else if (node.getType().equals("SSH")) {
        // this code is used if DAS and instance are running on different machine
        SSHLauncher sshL = getSSHL(habitat);
        sshL.init(node, logger);
        SFTPClient sftpClient = sshL.getSFTPClient();
        boolean noFileFound = true;
        String loggingDir = getLoggingDirectoryForNode(instanceLogFileDetails, node, sNode, instanceName);
        try {
            instanceLogFileNames = sftpClient.ls(loggingDir);
            for (int i = 0; i < instanceLogFileNames.size(); i++) {
                SFTPv3DirectoryEntry file = (SFTPv3DirectoryEntry) instanceLogFileNames.get(i);
                String fileName = file.filename;
                // code to remove . and .. file which is return from sftpclient ls method
                if (!file.attributes.isDirectory() && !fileName.equals(".") && !fileName.equals("..") && fileName.contains(".log") && !fileName.contains(".log.")) {
                    instanceLogFileNamesAsString.add(fileName);
                    noFileFound = false;
                }
            }
        } catch (Exception ex) {
            // if directory doesn't present or missing on remote machine. It happens due to bug 16451
            noFileFound = true;
        }
        if (noFileFound) {
            // this loop is used when user has changed value for server.log but not restarted the server.
            loggingDir = getLoggingDirectoryForNodeWhenNoFilesFound(instanceLogFileDetails, node, sNode, instanceName);
            instanceLogFileNames = sftpClient.ls(loggingDir);
            for (int i = 0; i < instanceLogFileNames.size(); i++) {
                SFTPv3DirectoryEntry file = (SFTPv3DirectoryEntry) instanceLogFileNames.get(i);
                String fileName = file.filename;
                // code to remove . and .. file which is return from sftpclient ls method
                if (!file.attributes.isDirectory() && !fileName.equals(".") && !fileName.equals("..") && fileName.contains(".log") && !fileName.contains(".log.")) {
                    instanceLogFileNamesAsString.add(fileName);
                }
            }
        }
        sftpClient.close();
    } else if (node.getType().equals("DCOM")) {
        String loggingDir = getLoggingDirectoryForNode(instanceLogFileDetails, node, sNode, instanceName);
        try {
            DcomInfo info = new DcomInfo(node);
            WindowsRemoteFileSystem wrfs = new WindowsRemoteFileSystem(info.getHost(), info.getUser(), info.getPassword());
            WindowsRemoteFile wrf = new WindowsRemoteFile(wrfs, loggingDir);
            String[] allLogFileNames = wrf.list();
            for (int i = 0; i < allLogFileNames.length; i++) {
                File file = new File(allLogFileNames[i]);
                String fileName = file.getName();
                // code to remove . and .. file which is return
                if (!fileName.equals(".") && !fileName.equals("..") && fileName.contains(".log") && !fileName.contains(".log.")) {
                    instanceLogFileNamesAsString.add(fileName);
                }
            }
        } catch (WindowsException ex) {
            throw new IOException("Unable to get instance log file names from DCOM Instance Node");
        }
    }
    return instanceLogFileNamesAsString;
}
Also used : SSHLauncher(org.glassfish.cluster.ssh.launcher.SSHLauncher) Node(com.sun.enterprise.config.serverbeans.Node) ArrayList(java.util.ArrayList) SFTPClient(org.glassfish.cluster.ssh.sftp.SFTPClient) WindowsException(com.sun.enterprise.util.cluster.windows.process.WindowsException) WindowsException(com.sun.enterprise.util.cluster.windows.process.WindowsException) DcomInfo(org.glassfish.cluster.ssh.util.DcomInfo) SFTPv3DirectoryEntry(com.trilead.ssh2.SFTPv3DirectoryEntry) WindowsRemoteFile(com.sun.enterprise.util.cluster.windows.io.WindowsRemoteFile) WindowsRemoteFileSystem(com.sun.enterprise.util.cluster.windows.io.WindowsRemoteFileSystem) ArrayList(java.util.ArrayList) List(java.util.List) WindowsRemoteFile(com.sun.enterprise.util.cluster.windows.io.WindowsRemoteFile)

Example 15 with Node

use of com.sun.enterprise.config.serverbeans.Node 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)

Aggregations

Node (com.sun.enterprise.config.serverbeans.Node)20 Server (com.sun.enterprise.config.serverbeans.Server)7 ArrayList (java.util.ArrayList)6 ActionReport (org.glassfish.api.ActionReport)6 Nodes (com.sun.enterprise.config.serverbeans.Nodes)5 Domain (com.sun.enterprise.config.serverbeans.Domain)4 File (java.io.File)4 List (java.util.List)4 WindowsRemoteFile (com.sun.enterprise.util.cluster.windows.io.WindowsRemoteFile)3 WindowsRemoteFileSystem (com.sun.enterprise.util.cluster.windows.io.WindowsRemoteFileSystem)3 WindowsException (com.sun.enterprise.util.cluster.windows.process.WindowsException)3 SFTPv3DirectoryEntry (com.trilead.ssh2.SFTPv3DirectoryEntry)3 IOException (java.io.IOException)3 Properties (java.util.Properties)3 SSHLauncher (org.glassfish.cluster.ssh.launcher.SSHLauncher)3 SFTPClient (org.glassfish.cluster.ssh.sftp.SFTPClient)3 DcomInfo (org.glassfish.cluster.ssh.util.DcomInfo)3 Cluster (com.sun.enterprise.config.serverbeans.Cluster)2 ServerRef (com.sun.enterprise.config.serverbeans.ServerRef)2 SystemProperty (com.sun.enterprise.config.serverbeans.SystemProperty)2