Search in sources :

Example 86 with ParameterMap

use of org.glassfish.api.admin.ParameterMap in project Payara by payara.

the class LazySharedServiceTest 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/lazy-shared-service-test.war");
    // archive location.
    org.junit.Assert.assertTrue(archive.exists());
    Deployer deployer = null;
    String appName = null;
    try {
        // 3.Create the shared services first, as these services will be referenced by the application
        createSharedServices();
        String instanceIP = getLBIPAddress(glassfish);
        // Check to see if the LB service is not provisioned
        {
            int responseCode = getResponseCode("http://" + instanceIP + ":50080");
            junit.framework.Assert.assertTrue(responseCode == 404);
        }
        // Check to see if the DB service is not provisioned
        {
            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("ping-connection-pool", report);
            ParameterMap parameterMap = new ParameterMap();
            parameterMap.add("DEFAULT", "jdbc/lazy_init_shared_service");
            invocation.parameters(parameterMap).execute();
            System.out.println("Message while trying to ping an uncreated jdbc pool :: " + report.getTopMessagePart().getMessage());
            Assert.assertTrue(report.hasFailures());
        }
        deployer = glassfish.getDeployer();
        appName = deployer.deploy(archive);
        System.err.println("Deployed [" + appName + "]");
        Assert.assertNotNull(appName);
        // 4. View the status of the shared services to see if they were provisioned after deployment of the app.
        checkStatusOfSharedServices();
        CommandRunner commandRunner = glassfish.getCommandRunner();
        CommandResult result = commandRunner.run("list-services");
        System.out.println("\nlist-services command output [ " + result.getOutput() + "]");
        // 5. Access the app to make sure PaaS-lazy-shared-service-test app is correctly
        // provisioned.
        String HTTP_PORT = (System.getProperty("http.port") != null) ? System.getProperty("http.port") : "28080";
        get("http://" + instanceIP + ":" + HTTP_PORT + "/lazy-shared-service-test/BasicDBPaaSServlet", "SYSFILES");
    // 6. 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 : ParameterMap(org.glassfish.api.admin.ParameterMap) ActionReport(org.glassfish.api.ActionReport) ConnectException(java.net.ConnectException) ServiceLocator(org.glassfish.hk2.api.ServiceLocator) Test(org.junit.Test)

Example 87 with ParameterMap

use of org.glassfish.api.admin.ParameterMap in project Payara by payara.

the class LazySharedServiceTest 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("initmode", "lazy");
    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("initmode", "lazy");
    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 --template LBNative --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("initmode", "lazy");
    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 serviceUninitialized = false;
    List<Map<String, String>> list = (List<Map<String, String>>) report.getExtraProperties().get("list");
    for (Map<String, String> map : list) {
        serviceUninitialized = false;
        String state = map.get("STATE");
        if ("UNINITIALIZED".equalsIgnoreCase(state)) {
            serviceUninitialized = true;
        } else {
            break;
        }
    }
    // check if the shared services are in UNINITIALIZED state as the services should be provisioned lazily..
    Assert.assertTrue(serviceUninitialized);
}
Also used : ParameterMap(org.glassfish.api.admin.ParameterMap) ActionReport(org.glassfish.api.ActionReport) ServiceLocator(org.glassfish.hk2.api.ServiceLocator) List(java.util.List) ParameterMap(org.glassfish.api.admin.ParameterMap) Map(java.util.Map)

Example 88 with ParameterMap

use of org.glassfish.api.admin.ParameterMap in project Payara by payara.

the class LazySharedServiceTest method checkStatusOfSharedServices.

private void checkStatusOfSharedServices() {
    System.out.println("$$$$$$$$$$$$$ Checking Status of 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);
    org.glassfish.api.admin.CommandRunner.CommandInvocation invocation = commandRunner.getCommandInvocation("list-services", report);
    ParameterMap parameterMap = new ParameterMap();
    parameterMap.add("scope", "shared");
    parameterMap.add("output", "service-name,state");
    invocation.parameters(parameterMap).execute();
    boolean sharedServicesRunning = false;
    List<Map<String, String>> list = (List<Map<String, String>>) report.getExtraProperties().get("list");
    for (Map<String, String> map : list) {
        sharedServicesRunning = false;
        String state = map.get("STATE");
        if ("RUNNING".equalsIgnoreCase(state)) {
            sharedServicesRunning = true;
        } else {
            break;
        }
    }
    // check if the shared services are running.
    Assert.assertTrue(sharedServicesRunning);
}
Also used : ParameterMap(org.glassfish.api.admin.ParameterMap) ActionReport(org.glassfish.api.ActionReport) ServiceLocator(org.glassfish.hk2.api.ServiceLocator) List(java.util.List) ParameterMap(org.glassfish.api.admin.ParameterMap) Map(java.util.Map)

Example 89 with ParameterMap

use of org.glassfish.api.admin.ParameterMap in project Payara by payara.

the class LazySharedServiceTest 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)

Example 90 with ParameterMap

use of org.glassfish.api.admin.ParameterMap in project Payara by payara.

the class MQSharedServiceTest 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);
    org.glassfish.api.admin.CommandRunner.CommandInvocation invocation = commandRunner.getCommandInvocation("delete-shared-service", report);
    ParameterMap parameterMap = new ParameterMap();
    parameterMap.add("DEFAULT", "my-shared-mq-service");
    invocation.parameters(parameterMap).execute();
    parameterMap = new ParameterMap();
    parameterMap.add("DEFAULT", "my-shared-lb-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)

Aggregations

ParameterMap (org.glassfish.api.admin.ParameterMap)149 ActionReport (org.glassfish.api.ActionReport)68 CommandRunner (org.glassfish.api.admin.CommandRunner)37 Test (org.junit.Test)25 ServiceLocator (org.glassfish.hk2.api.ServiceLocator)24 Map (java.util.Map)20 PropsFileActionReporter (com.sun.enterprise.v3.common.PropsFileActionReporter)19 AdminCommandContextImpl (org.glassfish.api.admin.AdminCommandContextImpl)18 List (java.util.List)16 ArrayList (java.util.ArrayList)15 CommandRunner (org.glassfish.embeddable.CommandRunner)15 IOException (java.io.IOException)14 ConfigApiTest (org.glassfish.tests.utils.ConfigApiTest)13 Before (org.junit.Before)13 TransactionFailure (org.jvnet.hk2.config.TransactionFailure)13 CommandException (org.glassfish.api.admin.CommandException)12 File (java.io.File)11 MessagePart (org.glassfish.api.ActionReport.MessagePart)11 Resource (com.sun.enterprise.config.serverbeans.Resource)10 Logger (java.util.logging.Logger)9