Search in sources :

Example 56 with CommandResult

use of org.glassfish.embeddable.CommandResult in project Payara by payara.

the class MultipleSPETest method test.

@Test
public void test() throws Exception {
    // 1. Bootstrap GlassFish DAS in embedded mode.
    GlassFishProperties glassFishProperties = new GlassFishProperties();
    glassFishProperties.setInstanceRoot(System.getenv("S1AS_HOME") + "/domains/domain1");
    glassFishProperties.setConfigFileReadOnly(false);
    GlassFish glassfish = GlassFishRuntime.bootstrap().newGlassFish(glassFishProperties);
    PrintStream sysout = System.out;
    glassfish.start();
    System.setOut(sysout);
    // 2. Deploy the PaaS-bookstore application. Deployment should fail
    File archive = new File(System.getProperty("basedir") + // TODO :: use mvn apis to get the
    "/target/basic-spe-test.war");
    // archive location.
    Assert.assertTrue(archive.exists());
    Deployer deployer = null;
    String appName = null;
    try {
        deployer = glassfish.getDeployer();
        appName = deployer.deploy(archive);
        System.err.println("Deployed [" + appName + "]");
        Assert.assertNull(appName);
    } catch (Exception e) {
        System.out.println("$$$$$$$$$$$$$$$$Exception$$$$$$");
    } finally {
        // 3. Register one of the plugins as the default S.P.E
        ServiceLocator habitat = Globals.getDefaultHabitat();
        org.glassfish.api.admin.CommandRunner commandRunner = habitat.getService(org.glassfish.api.admin.CommandRunner.class);
        ActionReport report = habitat.getService(ActionReport.class);
        org.glassfish.api.admin.CommandRunner.CommandInvocation invocation = commandRunner.getCommandInvocation("register-service-provisioning-engine", report);
        ParameterMap parameterMap = new ParameterMap();
        parameterMap.add("type", "Database");
        parameterMap.add("defaultservice", "true");
        parameterMap.add("DEFAULT", "org.glassfish.paas.mydbplugin.MyDBPlugin");
        invocation.parameters(parameterMap).execute();
        Assert.assertFalse(report.hasFailures());
        System.out.println("Registered a default SPE :" + !report.hasFailures());
        // 4. Deploy the application. Deployment should succeed.
        appName = deployer.deploy(archive);
        System.err.println("Deployed [" + appName + "]");
        Assert.assertNotNull(appName);
        // 5. Access the app to make sure PaaS-basic-shared-service-test app is correctly
        // provisioned.
        String HTTP_PORT = (System.getProperty("http.port") != null) ? System.getProperty("http.port") : "28080";
        String instanceIP = getLBIPAddress(glassfish);
        get("http://" + instanceIP + ":" + HTTP_PORT + "/basic-spe-test/list", "Here is a list of animals in the zoo.");
        // Retrieve the  port number used by the connection pool
        invocation = commandRunner.getCommandInvocation("get", report);
        parameterMap = new ParameterMap();
        parameterMap.add("DEFAULT", "server.resources.jdbc-connection-pool.jdbc/__multiple_spe_paas_sample.property.PortNumber");
        invocation.parameters(parameterMap).execute();
        Assert.assertFalse(report.hasFailures());
        if (appName != null) {
            deployer.undeploy(appName);
            System.err.println("Undeployed [" + appName + "]");
            try {
                boolean undeployClean = false;
                CommandResult commandResult = glassfish.getCommandRunner().run("list-services");
                if (commandResult.getOutput().contains("Nothing to list.")) {
                    undeployClean = true;
                }
                Assert.assertTrue(undeployClean);
            } catch (Exception e) {
                System.err.println("Couldn't varify whether undeploy succeeded");
            }
        }
        commandRunner = habitat.getService(org.glassfish.api.admin.CommandRunner.class);
        invocation = commandRunner.getCommandInvocation("unregister-service-provisioning-engine", report);
        parameterMap = new ParameterMap();
        parameterMap.add("DEFAULT", "org.glassfish.paas.mydbplugin.MyDBPlugin");
        invocation.parameters(parameterMap).execute();
        Assert.assertFalse(report.hasFailures());
        System.out.println("Unregistered the default SPE :" + !report.hasFailures());
    }
}
Also used : PrintStream(java.io.PrintStream) ParameterMap(org.glassfish.api.admin.ParameterMap) ActionReport(org.glassfish.api.ActionReport) PaaSDeploymentException(org.glassfish.paas.orchestrator.PaaSDeploymentException) IOException(java.io.IOException) Exception(java.lang.Exception) CommandResult(org.glassfish.embeddable.CommandResult) ServiceLocator(org.glassfish.hk2.api.ServiceLocator) GlassFish(org.glassfish.embeddable.GlassFish) JarFile(java.util.jar.JarFile) File(java.io.File) CommandRunner(org.glassfish.embeddable.CommandRunner) GlassFishProperties(org.glassfish.embeddable.GlassFishProperties) Deployer(org.glassfish.embeddable.Deployer) Test(org.junit.Test)

Example 57 with CommandResult

use of org.glassfish.embeddable.CommandResult in project Payara by payara.

the class ScaleServicePaaSTest method runTests.

private void runTests(GlassFish glassfish) throws Exception {
    // 2. Deploy the PaaS application.
    File archive = new File(System.getProperty("basedir") + // TODO :: use mvn apis to
    "/target/scale_service.war");
    // get the archive location.
    Assert.assertTrue(archive.exists());
    Deployer deployer = null;
    String appName = null;
    try {
        deployer = glassfish.getDeployer();
        appName = deployer.deploy(archive);
        System.err.println("Deployed [" + appName + "]");
        Assert.assertNotNull(appName);
        CommandRunner commandRunner = glassfish.getCommandRunner();
        CommandResult result = commandRunner.run("list-services");
        System.out.println("\nlist-services command output [ " + result.getOutput() + "]");
        // 3. Access the app to make sure PaaS app is correctly provisioned.
        String HTTP_PORT = (System.getProperty("http.port") != null) ? System.getProperty("http.port") : "28080";
        String instanceIP = getLBIPAddress(glassfish);
        get("http://" + instanceIP + ":" + HTTP_PORT + "/scale_service/ScaleServicePaaSServlet", "Request headers from the request:");
        // test scale up. TODO :: make sure app is accessible from the scaled instance
        result = commandRunner.run("_scale-service", "--servicename=scaleservice", "--scalecount=1", "--appname=scale_service");
        System.out.println("Output of scale up service [ " + result.getOutput() + "]");
        result = commandRunner.run("list-services");
        System.out.println("Output of list-services after scaling up [ " + result.getOutput() + "]");
        String[] strings = result.getOutput().split("JavaEE");
        System.out.println("Number of Java EE services " + strings.length);
        Assert.assertEquals(4, strings.length);
        // test scale down. TODO :: make sure app is no longer accessible from the scaled down instance
        result = commandRunner.run("_scale-service", "--servicename=scaleservice", "--scalecount=-1", "--appname=scale_service");
        System.out.println("Output of scale down service [ " + result.getOutput() + "]");
        result = commandRunner.run("list-services");
        System.out.println("Output of list-services after scaling down [ " + result.getOutput() + "]");
        strings = result.getOutput().split("JavaEE");
        System.out.println("Number of Java EE services " + strings.length);
        Assert.assertEquals(3, strings.length);
    // 4. Undeploy the PaaS application . TODO :: use cloud-undeploy??
    } finally {
        if (appName != null) {
            deployer.undeploy(appName);
            System.err.println("Undeployed [" + appName + "]");
            try {
                boolean undeployClean = false;
                CommandResult commandResult = glassfish.getCommandRunner().run("list-services");
                if (commandResult.getOutput().contains("Nothing to list.")) {
                    undeployClean = true;
                }
                Assert.assertTrue(undeployClean);
            } catch (Exception e) {
                System.err.println("Couldn't varify whether undeploy succeeded");
            }
        }
    }
}
Also used : File(java.io.File) CommandRunner(org.glassfish.embeddable.CommandRunner) Deployer(org.glassfish.embeddable.Deployer) CommandResult(org.glassfish.embeddable.CommandResult)

Example 58 with CommandResult

use of org.glassfish.embeddable.CommandResult in project Payara by payara.

the class BasicPaaSServiceMetadataTest method runTests.

private void runTests(GlassFish glassfish) throws Exception {
    // 2. Deploy the PaaS application.
    File archive = new File(System.getProperty("basedir") + // TODO :: use mvn apis to
    "/target/basic_paas_sample2.war");
    // get the archive
    // location.
    Assert.assertTrue(archive.exists());
    Deployer deployer = glassfish.getDeployer();
    String appName = deployer.deploy(archive);
    System.err.println("Deployed [" + appName + "]");
    Assert.assertNotNull(appName);
    CommandRunner commandRunner = glassfish.getCommandRunner();
    CommandResult result = commandRunner.run("list-services");
    System.out.println("\nlist-services command output [ " + result.getOutput() + "]");
    // 3. Access the app to make sure PaaS app is correctly provisioned.
    String HTTP_PORT = (System.getProperty("http.port") != null) ? System.getProperty("http.port") : "28080";
    String instanceIP = getLBIPAddress(glassfish);
    get("http://" + instanceIP + ":" + HTTP_PORT + "/basic_paas_sample2/BasicPaaSServlet", "Request headers from the request:");
    // 4. Undeploy the PaaS application . TODO :: use cloud-undeploy??
    deployer.undeploy(appName);
    System.err.println("Undeployed [" + appName + "]");
    try {
        boolean undeployClean = false;
        CommandResult commandResult = glassfish.getCommandRunner().run("list-services");
        if (commandResult.getOutput().contains("Nothing to list.")) {
            undeployClean = true;
        }
        Assert.assertTrue(undeployClean);
    } catch (Exception e) {
        System.err.println("Couldn't varify whether undeploy succeeded");
    }
}
Also used : File(java.io.File) CommandRunner(org.glassfish.embeddable.CommandRunner) Deployer(org.glassfish.embeddable.Deployer) CommandResult(org.glassfish.embeddable.CommandResult)

Example 59 with CommandResult

use of org.glassfish.embeddable.CommandResult in project Payara by payara.

the class Util method runCommand.

public static void runCommand(String commandLine, String serverId) throws Exception {
    GlassFish glassfish = gfMap.get(serverId);
    if (glassfish == null) {
        throw new Exception("Embedded GlassFish [" + serverId + "] not running");
    }
    if (commandLine == null) {
        throw new Exception("Command can not be null");
    }
    String[] split = commandLine.split(" ");
    String command = split[0].trim();
    String[] commandParams = null;
    if (split.length > 1) {
        commandParams = new String[split.length - 1];
        for (int i = 1; i < split.length; i++) {
            commandParams[i - 1] = split[i].trim();
        }
    }
    CommandRunner cr = glassfish.getCommandRunner();
    CommandResult result = commandParams == null ? cr.run(command) : cr.run(command, commandParams);
    System.out.println("Executed command [" + commandLine + "]. Output : \n" + result.getOutput());
}
Also used : GlassFish(org.glassfish.embeddable.GlassFish) CommandRunner(org.glassfish.embeddable.CommandRunner) GlassFishException(org.glassfish.embeddable.GlassFishException) CommandResult(org.glassfish.embeddable.CommandResult)

Example 60 with CommandResult

use of org.glassfish.embeddable.CommandResult in project Payara by payara.

the class BootCommand method execute.

public boolean execute(CommandRunner runner) {
    boolean result = true;
    CommandResult asadminResult = runner.run(command, arguments);
    if (asadminResult.getExitStatus().equals(ExitStatus.FAILURE)) {
        LOGGER.log(WARNING, String.format("Boot Command %s failed %s ", command, asadminResult.getOutput()), asadminResult.getFailureCause());
        result = false;
    } else {
        LOGGER.log(INFO, String.format("Boot Command %s returned with result %s : %s", command, asadminResult.getExitStatus(), asadminResult.getOutput()));
    }
    return result;
}
Also used : CommandResult(org.glassfish.embeddable.CommandResult)

Aggregations

CommandResult (org.glassfish.embeddable.CommandResult)85 Test (org.junit.Test)72 CommandRunner (org.glassfish.embeddable.CommandRunner)26 File (java.io.File)21 Deployer (org.glassfish.embeddable.Deployer)21 GlassFish (org.glassfish.embeddable.GlassFish)17 GlassFishProperties (org.glassfish.embeddable.GlassFishProperties)17 PrintStream (java.io.PrintStream)16 GarbageCollectorChecker (fish.payara.nucleus.healthcheck.configuration.GarbageCollectorChecker)12 HoggingThreadsChecker (fish.payara.nucleus.healthcheck.configuration.HoggingThreadsChecker)10 StuckThreadsChecker (fish.payara.nucleus.healthcheck.configuration.StuckThreadsChecker)10 JarFile (java.util.jar.JarFile)9 Checker (fish.payara.nucleus.healthcheck.configuration.Checker)6 GarbageCollectorHealthCheck (fish.payara.nucleus.healthcheck.preliminary.GarbageCollectorHealthCheck)6 HoggingThreadsHealthCheck (fish.payara.nucleus.healthcheck.preliminary.HoggingThreadsHealthCheck)4 StuckThreadsHealthCheck (fish.payara.nucleus.healthcheck.stuck.StuckThreadsHealthCheck)4 IOException (java.io.IOException)4 ArrayList (java.util.ArrayList)2 ServiceLocator (org.glassfish.hk2.api.ServiceLocator)2 ExecException (com.sun.enterprise.util.ExecException)1