Example usage for org.springframework.ide.eclipse.boot.dash.model RunState INACTIVE

List of usage examples for org.springframework.ide.eclipse.boot.dash.model RunState INACTIVE

Introduction

In this page you can find the example usage for org.springframework.ide.eclipse.boot.dash.model RunState INACTIVE.

Prototype

RunState INACTIVE

To view the source code for org.springframework.ide.eclipse.boot.dash.model RunState INACTIVE.

Click Source Link

Usage

From source file:org.springframework.ide.eclipse.boot.dash.cloudfoundry.CloudAppDashElement.java

protected void doRestartWithRemoteClient(RunState runningOrDebugging, UserInteractions ui,
        CancelationToken cancelationToken, IProgressMonitor monitor) throws Exception {

    CloudFoundryBootDashModel model = getCloudModel();
    Map<String, String> envVars = model.getRunTarget().getClient().getApplicationEnvironment(getName());

    if (getProject() == null) {
        ExceptionUtil.coreException(new Status(IStatus.ERROR, BootDashActivator.PLUGIN_ID,
                "Local project not associated to CF app '" + getName() + "'"));
    }/*  w w w .j  a  va2 s  .  co m*/

    new SetHealthCheckOperation(this, HealthChecks.HC_NONE, ui, /* confirmChange */true, cancelationToken)
            .run(monitor);

    if (!DevtoolsUtil.isEnvVarSetupForRemoteClient(envVars, DevtoolsUtil.getSecret(getProject()))) {
        // Let the push and debug operation resolve default properties
        CloudApplicationDeploymentProperties deploymentProperties = null;

        pushAndDebug(deploymentProperties, runningOrDebugging, ui, cancelationToken, monitor);
        /*
         * Restart and push op resets console anyway, no need to reset it
         * again
         */
    } else if (getRunState() == RunState.INACTIVE) {
        restartOnly(ui, cancelationToken, monitor);
    }

    new RemoteDevClientStartOperation(model, getName(), runningOrDebugging, cancelationToken).run(monitor);
}

From source file:org.springframework.ide.eclipse.boot.dash.test.CloudFoundryBootDashModelMockingTest.java

@Test
public void testRefreshAppsRunState() throws Exception {
    CFClientParams targetParams = CfTestTargetParams.fromEnv();

    MockCFSpace space = clientFactory.defSpace(targetParams.getOrgName(), targetParams.getSpaceName());

    final MockCFApplication foo = space.defApp("foo");
    space.defApp("bar");

    final CloudFoundryBootDashModel target = harness.createCfTarget(targetParams);

    waitForApps(target, "foo", "bar");

    foo.start(CancelationTokens.NULL);/*from   w w w  .  j  a va2  s . com*/

    target.refresh(ui);

    new ACondition("wait for app states", 3000) {
        @Override
        public boolean test() throws Exception {
            ImmutableSet<String> appNames = getNames(target.getApplications().getValues());
            assertEquals(ImmutableSet.of("foo", "bar"), appNames);
            CloudAppDashElement appElement = harness.getCfTargetModel().getApplication("foo");
            assertEquals(RunState.RUNNING, appElement.getRunState());

            appElement = harness.getCfTargetModel().getApplication("bar");
            assertEquals(RunState.INACTIVE, appElement.getRunState());

            return true;
        }
    };
}

From source file:org.springframework.ide.eclipse.boot.dash.test.CloudFoundryBootDashModelMockingTest.java

@Test
public void runstateBecomesUnknownWhenStartOperationFails() throws Exception {
    final String appName = "foo";
    String projectName = "to-deploy";
    CFClientParams targetParams = CfTestTargetParams.fromEnv();
    MockCFSpace space = clientFactory.defSpace(targetParams.getOrgName(), targetParams.getSpaceName());
    MockCFApplication app = space.defApp(appName);
    final IProject project = projects.createProject(projectName);

    final CloudFoundryBootDashModel target = harness.createCfTarget(targetParams);
    waitForApps(target, appName);/*from  w  w w.  jav  a 2  s .c o m*/
    CloudAppDashElement appElement = target.getApplication(appName);
    appElement.setProject(project);

    //The state refressh is asynch so until state becomes 'INACTIVE' it will be unknown.
    waitForState(appElement, RunState.INACTIVE, 3000);
    IAction restartAction = actions.getRestartOnlyApplicationAction();

    RunStateHistory runstateHistory = new RunStateHistory();

    appElement.getBaseRunStateExp().addListener(runstateHistory);
    doThrow(IOException.class).when(app).start(any());

    System.out.println("restarting application...");
    harness.selection.setElements(appElement);
    restartAction.run();

    waitForState(appElement, RunState.UNKNOWN, 3000);

    runstateHistory.assertHistoryContains(RunState.INACTIVE, RunState.STARTING);
    runstateHistory.assertLast(RunState.UNKNOWN);
}

From source file:org.springframework.ide.eclipse.boot.dash.test.CloudFoundryBootDashModelMockingTest.java

@Test
public void refreshClearsErrorState() throws Exception {
    final String appName = "foo";
    String projectName = "to-deploy";
    CFClientParams targetParams = CfTestTargetParams.fromEnv();
    MockCFSpace space = clientFactory.defSpace(targetParams.getOrgName(), targetParams.getSpaceName());
    space.defApp(appName);/*  w  w  w  .  jav  a 2  s.  c om*/
    final IProject project = projects.createProject(projectName);

    final CloudFoundryBootDashModel target = harness.createCfTarget(targetParams);
    waitForApps(target, appName);
    CloudAppDashElement appElement = target.getApplication(appName);
    appElement.setProject(project);

    waitForState(appElement, RunState.INACTIVE, 3000);
    //The state refressh is asynch so until state becomes 'INACTIVE' it will be unknown.
    appElement.setError(new IOException("Something bad happened"));
    waitForState(appElement, RunState.UNKNOWN, 3000);

    target.refresh(ui);

    waitForState(appElement, RunState.INACTIVE, 3000);
}

From source file:org.springframework.ide.eclipse.boot.dash.test.CloudFoundryBootDashModelMockingTest.java

@Test
public void stopCancelsDeploy() throws Exception {
    CFClientParams targetParams = CfTestTargetParams.fromEnv();
    clientFactory.defSpace(targetParams.getOrgName(), targetParams.getSpaceName());
    CloudFoundryBootDashModel model = harness.createCfTarget(targetParams);

    IProject project = projects.createBootProject("to-deploy", withStarters("actuator", "web"));

    final String appName = appHarness.randomAppName();

    clientFactory.setAppStartDelay(TimeUnit.MINUTES, 2);
    harness.answerDeploymentPrompt(ui, appName, appName);
    model.performDeployment(ImmutableSet.of(project), ui, RunState.RUNNING);
    waitForApps(model, appName);//ww w  . j  a v a  2  s .  c o m

    CloudAppDashElement app = model.getApplication(appName);

    waitForState(app, RunState.STARTING, 3000);

    ACondition.waitFor("stop hammering", 20000, () -> {
        app.stopAsync(ui);
        assertEquals(RunState.INACTIVE, app.getRunState());
    });

    //TODO: can we check that deployment related jobs are really canceled/finished somehow?
    //   can we check that they didn't pop errors?
}

From source file:org.springframework.ide.eclipse.boot.dash.test.CloudFoundryBootDashModelMockingTest.java

@Test
public void stopCancelsStart() throws Exception {
    CFClientParams targetParams = CfTestTargetParams.fromEnv();
    MockCFSpace space = clientFactory.defSpace(targetParams.getOrgName(), targetParams.getSpaceName());
    IProject project = projects.createBootProject("to-deploy", withStarters("web", "actuator"));
    final String appName = "foo";
    space.defApp(appName);//ww  w  .j av  a2  s .com

    CloudFoundryBootDashModel model = harness.createCfTarget(targetParams);
    waitForApps(model, appName);
    CloudAppDashElement app = model.getApplication(appName);
    app.setProject(project);

    waitForApps(model, appName);

    clientFactory.setAppStartDelay(TimeUnit.MINUTES, 2);

    app.getBaseRunStateExp().addListener(new ValueListener<RunState>() {
        @Override
        public void gotValue(LiveExpression<RunState> exp, RunState value) {
            System.out.println("Runstate -> " + value);
        }
    });
    System.out.println("Restaring app...");
    app.restart(RunState.RUNNING, ui);
    waitForState(app, RunState.STARTING, 30000);

    System.out.println("Stopping app...");
    app.stopAsync(ui);

    waitForState(app, RunState.INACTIVE, 20000);
    System.out.println("Stopped!");
}

From source file:org.springframework.ide.eclipse.boot.dash.test.CloudFoundryBootDashModelMockingTest.java

@Test
public void stopCancelsRestartOnly() throws Exception {
    CFClientParams targetParams = CfTestTargetParams.fromEnv();
    MockCFSpace space = clientFactory.defSpace(targetParams.getOrgName(), targetParams.getSpaceName());
    IProject project = projects.createProject("to-deploy");
    final String appName = "foo";
    space.defApp(appName);//from   w  w  w  .  ja va  2  s . c  om

    CloudFoundryBootDashModel model = harness.createCfTarget(targetParams);
    waitForApps(model, appName);
    CloudAppDashElement app = model.getApplication(appName);
    app.setProject(project);

    waitForApps(model, appName);

    clientFactory.setAppStartDelay(TimeUnit.MINUTES, 2);
    app.restartOnlyAsynch(ui, app.createCancelationToken());
    waitForState(app, RunState.STARTING, 3000);

    app.stopAsync(ui);
    waitForState(app, RunState.INACTIVE, 20000);
}

From source file:org.springframework.ide.eclipse.boot.dash.test.CloudFoundryBootDashModelMockingTest.java

@Test
public void acceptDeployOfExistingApp() throws Exception {
    CFClientParams targetParams = CfTestTargetParams.fromEnv();
    MockCFSpace space = clientFactory.defSpace(targetParams.getOrgName(), targetParams.getSpaceName());
    IProject project = projects.createBootProject("to-deploy", withStarters("actuator", "web"));
    final String appName = "foo";
    MockCFApplication deployedApp = space.defApp(appName);

    CloudFoundryBootDashModel model = harness.createCfTarget(targetParams);
    waitForApps(model, appName);/*from  w w w. j  a v a2s. c o  m*/
    CloudAppDashElement app = model.getApplication(appName);
    app.setProject(null);
    assertNull(app.getProject());

    assertEquals(RunState.INACTIVE, app.getRunState());

    harness.answerDeploymentPrompt(ui, appName, appName);
    Mockito.doReturn(true).when(ui).confirmOperation(same("Replace Existing Application"), any());
    model.performDeployment(ImmutableSet.of(project), ui, RunState.RUNNING);

    System.out.println(app.getRunState());
    waitForJobsToComplete();
    System.out.println(app.getRunState());
    assertEquals(project, app.getProject());
    assertEquals(1, deployedApp.getPushCount());

    verify(ui).confirmOperation(any(), any());
}