Search in sources :

Example 51 with CommandRunner

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

the class BasicSharedServiceTest method testSharedService.

private void testSharedService() {
    System.out.println("$$$$$$$$$$$$$ TEST SHARED SERVICES $$$$$$$$$$$$$$$");
    ServiceLocator habitat = Globals.getDefaultHabitat();
    org.glassfish.api.admin.CommandRunner commandRunner = habitat.getService(org.glassfish.api.admin.CommandRunner.class);
    ActionReport report = habitat.getService(ActionReport.class);
    // Try stopping a shared service, referenced by the app. Should 'FAIL'
    org.glassfish.api.admin.CommandRunner.CommandInvocation invocation = commandRunner.getCommandInvocation("stop-shared-service", report);
    ParameterMap parameterMap = new ParameterMap();
    parameterMap.add("DEFAULT", "my-shared-lb-service");
    invocation.parameters(parameterMap).execute();
    System.out.print("Expected Failure message: " + report.getMessage());
    Assert.assertTrue(report.hasFailures());
    parameterMap = new ParameterMap();
    parameterMap.add("DEFAULT", "my-shared-db-service");
    invocation.parameters(parameterMap).execute();
    System.out.print("Expected Failure message: " + report.getMessage());
    Assert.assertTrue(report.hasFailures());
    // Try deleting a shared service, referenced by the app. Should 'FAIL'
    report = habitat.getService(ActionReport.class);
    invocation = commandRunner.getCommandInvocation("delete-shared-service", report);
    parameterMap = new ParameterMap();
    parameterMap.add("DEFAULT", "my-shared-lb-service");
    invocation.parameters(parameterMap).execute();
    System.out.print("Expected Failure message: " + report.getMessage());
    Assert.assertTrue(report.hasFailures());
    parameterMap = new ParameterMap();
    parameterMap.add("DEFAULT", "my-shared-db-service");
    invocation.parameters(parameterMap).execute();
    System.out.println("Expected Failure message: " + report.getMessage());
    Assert.assertTrue(report.hasFailures());
    // List the services and check the status of both the services - it should be 'RUNNING'
    invocation = commandRunner.getCommandInvocation("list-services", report);
    parameterMap = new ParameterMap();
    parameterMap.add("scope", "shared");
    parameterMap.add("output", "service-name,state");
    invocation.parameters(parameterMap).execute();
    boolean sharedServiceStarted = false;
    List<Map<String, String>> list = (List<Map<String, String>>) report.getExtraProperties().get("list");
    for (Map<String, String> map : list) {
        sharedServiceStarted = false;
        String state = map.get("STATE");
        if ("RUNNING".equalsIgnoreCase(state)) {
            sharedServiceStarted = true;
        } else {
            break;
        }
    }
    // check if the shared services are started.
    Assert.assertTrue(sharedServiceStarted);
/* //Disable the application and try stopping  the shared service. Command should succeed
        invocation = commandRunner.getCommandInvocation("disable", report);
        parameterMap = new ParameterMap();
        parameterMap.add("DEFAULT","basic-shared-service-test");
        invocation.parameters(parameterMap).execute();

        System.out.print("Disabled application basic-shared-service-test: "+!report.hasFailures());
        Assert.assertFalse(report.hasFailures());


        invocation = commandRunner.getCommandInvocation("stop-shared-service", report);
        parameterMap = new ParameterMap();
        parameterMap.add("DEFAULT","my-shared-lb-service");
        invocation.parameters(parameterMap).execute();

        Assert.assertFalse(report.hasFailures());
        System.out.print("MSG: "+report.getMessage());

        invocation = commandRunner.getCommandInvocation("stop-shared-service", report);
        parameterMap = new ParameterMap();
        parameterMap.add("DEFAULT","my-shared-db-service");
        invocation.parameters(parameterMap).execute();

        Assert.assertFalse(report.hasFailures());
        System.out.print("MSG: "+report.getMessage());

        //List the services and check the status of both the services - it should be 'STOPPED'
        parameterMap=new ParameterMap();
        parameterMap.add("scope","shared");
        parameterMap.add("output","service-name,state");
        invocation=commandRunner.getCommandInvocation("list-services",report);
        invocation.parameters(parameterMap).execute();

        boolean sharedServiceStopped=false;
        list = (List<Map<String, String>>) report.getExtraProperties().get("list");
        for(Map<String,String> map:list){
            sharedServiceStopped=false;
            String state=map.get("STATE");
            if("STOPPED".equalsIgnoreCase(state)){
                sharedServiceStopped=true;
            }else{
                sharedServiceStopped = false;
                break;
            }
        }
        Assert.assertTrue(sharedServiceStopped);//check if the shared services are stopped

        // Start the shared services.
        invocation = commandRunner.getCommandInvocation("start-shared-service", report);
        parameterMap = new ParameterMap();
        parameterMap.add("DEFAULT","my-shared-lb-service");
        invocation.parameters(parameterMap).execute();

        Assert.assertFalse(report.hasFailures());
        System.out.print("MSG: "+report.getMessage());

        parameterMap = new ParameterMap();
        parameterMap.add("DEFAULT","my-shared-db-service");
        invocation.parameters(parameterMap).execute();

        Assert.assertFalse(report.hasFailures());
        System.out.print("MSG: "+report.getMessage());

        //List the services and check the status of both the services - it should be 'STARTED'
        parameterMap=new ParameterMap();
        parameterMap.add("scope","shared");
        parameterMap.add("output","service-name,state");
        invocation=commandRunner.getCommandInvocation("list-services",report);
        invocation.parameters(parameterMap).execute();

        sharedServiceStarted=false;
        list = (List<Map<String, String>>) report.getExtraProperties().get("list");
        for(Map<String,String> map:list){
            sharedServiceStopped=false;
            String state=map.get("STATE");
            if("STARTED".equalsIgnoreCase(state) || "RUNNING".equalsIgnoreCase(state) ){
                sharedServiceStarted=true;
            }else{
                sharedServiceStarted = false;
                break;
            }
        }
        Assert.assertTrue(sharedServiceStarted);//check if the shared services are started.

        //Enable the application and try stopping  accessing
        invocation = commandRunner.getCommandInvocation("enable", report);
        parameterMap = new ParameterMap();
        parameterMap.add("DEFAULT","basic-shared-service-test");
        invocation.parameters(parameterMap).execute();

        System.out.print("Enabled application basic-shared-service-test: "+!report.hasFailures());
        Assert.assertFalse(report.hasFailures());

*/
/*


                invocation = commandRunner.getCommandInvocation("delete-shared-service", report);
                parameterMap = new ParameterMap();
                parameterMap.add("DEFAULT","my-shared-db-service");
                invocation.parameters(parameterMap).execute();

                Assert.assertFalse(report.hasFailures());
                System.out.print("MSG: "+report.getMessage());



                invocation = commandRunner.getCommandInvocation("delete-shared-service", report);
                parameterMap = new ParameterMap();
                parameterMap.add("DEFAULT","my-shared-db-service");
                invocation.parameters(parameterMap).execute();

                Assert.assertFalse(report.hasFailures());
                System.out.print("MSG: "+report.getMessage());*/
}
Also used : ParameterMap(org.glassfish.api.admin.ParameterMap) ActionReport(org.glassfish.api.ActionReport) ServiceLocator(org.glassfish.hk2.api.ServiceLocator) List(java.util.List) CommandRunner(org.glassfish.embeddable.CommandRunner) ParameterMap(org.glassfish.api.admin.ParameterMap) Map(java.util.Map)

Example 52 with CommandRunner

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

the class BasicSharedServiceTest 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.
    File archive = new File(System.getProperty("basedir") + // TODO :: use mvn apis to get the
    "/target/basic-shared-service-test.war");
    // archive location.
    org.junit.Assert.assertTrue(archive.exists());
    Deployer deployer = null;
    String appName = null;
    try {
        // Create the shared services first, as these services will be referenced by the application
        createSharedServices();
        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-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-shared-service-test/list", "Here is a list of animals in the zoo.");
        testSharedService();
        // 4. Access the app to make sure PaaS-basic-shared-service-test app is correctly
        // provisioned after running Shared-Services test
        get("http://" + instanceIP + ":" + HTTP_PORT + "/basic-shared-service-test/list", "Here is a list of animals in the zoo.");
    // 5. Undeploy the Zoo catalogue application .
    } finally {
        if (appName != null) {
            deployer.undeploy(appName);
            System.err.println("Undeployed [" + appName + "]");
            deleteSharedService();
            try {
                boolean undeployClean = false;
                CommandResult commandResult = glassfish.getCommandRunner().run("list-services");
                System.out.println(commandResult.getOutput().toString());
                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 : PrintStream(java.io.PrintStream) GlassFish(org.glassfish.embeddable.GlassFish) File(java.io.File) CommandRunner(org.glassfish.embeddable.CommandRunner) GlassFishProperties(org.glassfish.embeddable.GlassFishProperties) Deployer(org.glassfish.embeddable.Deployer) CommandResult(org.glassfish.embeddable.CommandResult) Test(org.junit.Test)

Example 53 with CommandRunner

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

the class BasicSharedServiceTest method deleteSharedService.

private void deleteSharedService() {
    ServiceLocator habitat = Globals.getDefaultHabitat();
    org.glassfish.api.admin.CommandRunner commandRunner = habitat.getService(org.glassfish.api.admin.CommandRunner.class);
    ActionReport report = habitat.getService(ActionReport.class);
    // Try stopping a shared service, referenced by the app. Should 'FAIL'
    org.glassfish.api.admin.CommandRunner.CommandInvocation invocation = commandRunner.getCommandInvocation("delete-shared-service", report);
    ParameterMap parameterMap = new ParameterMap();
    parameterMap.add("DEFAULT", "my-shared-lb-service");
    invocation.parameters(parameterMap).execute();
    Assert.assertFalse(report.hasFailures());
    parameterMap = new ParameterMap();
    parameterMap.add("DEFAULT", "my-shared-db-service");
    invocation.parameters(parameterMap).execute();
    Assert.assertFalse(report.hasFailures());
    parameterMap = new ParameterMap();
    parameterMap.add("DEFAULT", "my-shared-gf-service");
    invocation.parameters(parameterMap).execute();
    Assert.assertFalse(report.hasFailures());
}
Also used : ServiceLocator(org.glassfish.hk2.api.ServiceLocator) ParameterMap(org.glassfish.api.admin.ParameterMap) ActionReport(org.glassfish.api.ActionReport) CommandRunner(org.glassfish.embeddable.CommandRunner)

Example 54 with CommandRunner

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

the class BasicSharedServiceTest method createSharedServices.

private void createSharedServices() {
    System.out.println("################### Trying to Create Shared Service #######################");
    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("create-shared-service", report);
    ParameterMap parameterMap = new ParameterMap();
    parameterMap.add("servicetype", "JavaEE");
    parameterMap.add("characteristics", "service-type=JavaEE");
    parameterMap.add("configuration", "min.clustersize=2:max.clustersize=4");
    parameterMap.add("DEFAULT", "my-shared-gf-service");
    invocation.parameters(parameterMap).execute();
    System.out.println("Created shared service 'my-shared-gf-service' :" + !report.hasFailures());
    Assert.assertFalse(report.hasFailures());
    // Create shared service of type Database
    // asadmin create-shared-service --characteristics service-type=Database --configuration database.name=my-shared-db-service --servicetype Database my-shared-db-service
    parameterMap = new ParameterMap();
    parameterMap.add("servicetype", "Database");
    parameterMap.add("characteristics", "service-type=Database");
    parameterMap.add("configuration", "database.name=my-shared-db-service");
    parameterMap.add("DEFAULT", "my-shared-db-service");
    invocation.parameters(parameterMap).execute();
    System.out.println("Created shared service 'my-shared-db-service' :" + !report.hasFailures());
    Assert.assertFalse(report.hasFailures());
    // Create shared service of type LB
    // asadmin create-shared-service --characteristics service-type=LB --configuration http-port=50080:https-port=50081:ssl-enabled=true --servicetype LB my-shared-lb-service
    parameterMap = new ParameterMap();
    parameterMap.add("servicetype", "LB");
    parameterMap.add("characteristics", "service-type=LB");
    parameterMap.add("configuration", "http-port=50080:https-port=50081:ssl-enabled=true");
    parameterMap.add("DEFAULT", "my-shared-lb-service");
    invocation.parameters(parameterMap).execute();
    System.out.println("Created shared service 'my-shared-lb-service' :" + !report.hasFailures());
    Assert.assertFalse(report.hasFailures());
    // List the services and check the status of both the services - it should be 'RUNNING'
    invocation = commandRunner.getCommandInvocation("list-services", report);
    parameterMap = new ParameterMap();
    parameterMap.add("scope", "shared");
    parameterMap.add("output", "service-name,state");
    invocation.parameters(parameterMap).execute();
    boolean sharedServiceStarted = false;
    List<Map<String, String>> list = (List<Map<String, String>>) report.getExtraProperties().get("list");
    for (Map<String, String> map : list) {
        sharedServiceStarted = false;
        String state = map.get("STATE");
        if ("RUNNING".equalsIgnoreCase(state)) {
            sharedServiceStarted = true;
        } else {
            break;
        }
    }
    // check if the shared services are started.
    Assert.assertTrue(sharedServiceStarted);
// Try starting an uncreated service. Should fail
/* parameterMap=new ParameterMap();
        parameterMap.add("DEFAULT","Uncreated-shared-db-service");
        invocation.parameters(parameterMap).execute();

        System.out.println("Started uncreated db shared service"+!report.hasFailures());
        //Assert.assertTrue(report.hasFailures());*/
}
Also used : ParameterMap(org.glassfish.api.admin.ParameterMap) ActionReport(org.glassfish.api.ActionReport) ServiceLocator(org.glassfish.hk2.api.ServiceLocator) List(java.util.List) CommandRunner(org.glassfish.embeddable.CommandRunner) ParameterMap(org.glassfish.api.admin.ParameterMap) Map(java.util.Map)

Example 55 with CommandRunner

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

the class BookStoreTest method getLBIPAddress.

private String getLBIPAddress(GlassFish glassfish) {
    String lbIP = null;
    String IPAddressPattern = "IP-ADDRESS\\s*\n*(.*)\\s*\n(([01]?\\d*|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([0-9]?\\d\\d?|2[0-4]\\d|25[0-5]))";
    try {
        CommandRunner commandRunner = glassfish.getCommandRunner();
        String result = commandRunner.run("list-services", "--type", "LB", "--output", "IP-ADDRESS").getOutput().toString();
        if (result.contains("Nothing to list.")) {
            result = commandRunner.run("list-services", "--type", "JavaEE", "--output", "IP-ADDRESS").getOutput().toString();
            Pattern p = Pattern.compile(IPAddressPattern);
            Matcher m = p.matcher(result);
            if (m.find()) {
                lbIP = m.group(2);
            } else {
                lbIP = "localhost";
            }
        } else {
            Pattern p = Pattern.compile(IPAddressPattern);
            Matcher m = p.matcher(result);
            if (m.find()) {
                lbIP = m.group(2);
            } else {
                lbIP = "localhost";
            }
        }
    } catch (Exception e) {
        System.out.println("Regex has thrown an exception " + e.getMessage());
        return "localhost";
    }
    return lbIP;
}
Also used : Pattern(java.util.regex.Pattern) Matcher(java.util.regex.Matcher) CommandRunner(org.glassfish.embeddable.CommandRunner)

Aggregations

CommandRunner (org.glassfish.embeddable.CommandRunner)60 CommandResult (org.glassfish.embeddable.CommandResult)26 File (java.io.File)22 Deployer (org.glassfish.embeddable.Deployer)22 GlassFish (org.glassfish.embeddable.GlassFish)18 GlassFishProperties (org.glassfish.embeddable.GlassFishProperties)18 Test (org.junit.Test)18 Matcher (java.util.regex.Matcher)17 Pattern (java.util.regex.Pattern)17 PrintStream (java.io.PrintStream)16 ServiceLocator (org.glassfish.hk2.api.ServiceLocator)16 ActionReport (org.glassfish.api.ActionReport)15 ParameterMap (org.glassfish.api.admin.ParameterMap)15 IOException (java.io.IOException)12 JarFile (java.util.jar.JarFile)9 List (java.util.List)6 Map (java.util.Map)6 ArrayList (java.util.ArrayList)3 ExecException (com.sun.enterprise.util.ExecException)2 Exception (java.lang.Exception)2