Example usage for org.springframework.ide.eclipse.boot.dash.cloudfoundry CloudFoundryBootDashModel getRunTarget

List of usage examples for org.springframework.ide.eclipse.boot.dash.cloudfoundry CloudFoundryBootDashModel getRunTarget

Introduction

In this page you can find the example usage for org.springframework.ide.eclipse.boot.dash.cloudfoundry CloudFoundryBootDashModel getRunTarget.

Prototype

@Override
    public CloudFoundryRunTarget getRunTarget() 

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() + "'"));
    }/* ww w . j  av a 2  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.cloudfoundry.CloudAppDashElement.java

public CloudAppDashElement(CloudFoundryBootDashModel model, String appName, IPropertyStore modelStore) {
    super(model, new CloudAppIdentity(appName, model.getRunTarget()));
    this.cancelationTokens = new CancelationTokens();
    this.cloudTarget = model.getRunTarget();
    this.cloudModel = model;
    IPropertyStore backingStore = PropertyStoreFactory.createSubStore("A" + getName(), modelStore);
    this.persistentProperties = PropertyStoreFactory.createApi(backingStore);
    addElementNotifier(baseRunState);/* w w w . j a  va2  s . c om*/
    addElementNotifier(appData);
    addElementNotifier(healthCheckOverride);
    this.addDisposableChild(baseRunState);
}

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

@Override
public void delete(UserInteractions ui) {
    CloudFoundryBootDashModel model = getCloudModel();
    CloudAppDashElement cloudElement = this;
    cloudElement.cancelOperations();/*  w w  w.  j  a  v a2 s . co  m*/
    CancelationToken cancelToken = cloudElement.createCancelationToken();
    CloudApplicationOperation operation = new CloudApplicationOperation("Deleting: " + cloudElement.getName(),
            model, cloudElement.getName(), cancelToken) {

        @Override
        protected void doCloudOp(IProgressMonitor monitor) throws Exception, OperationCanceledException {
            // Delete from CF first. Do it outside of synch block to avoid
            // deadlock
            model.getRunTarget().getClient().deleteApplication(appName);
            model.getElementConsoleManager().terminateConsole(cloudElement.getName());
            model.removeApplication(cloudElement.getName());
            cloudElement.setProject(null);
        }
    };

    // Allow deletions to occur concurrently with any other application
    // operation
    operation.setSchedulingRule(null);
    getCloudModel().runAsynch(operation, ui);
}

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

@Test
public void testCreateCfTarget() throws Exception {
    CloudFoundryBootDashModel target = harness.createCfTarget(CfTestTargetParams.fromEnv());
    assertNotNull(target);//from   ww w. ja  v a 2  s  .  co m
    assertNotNull(target.getRunTarget().getTargetProperties().getCredentials().getPassword());
    assertEquals(1, harness.getCfRunTargetModels().size());
}

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

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

    CloudFoundryBootDashModel target = harness.createCfTarget(targetParams, StoreCredentialsMode.STORE_TOKEN);
    assertNotNull(target);//from  w  w  w .ja  va2 s. c o m
    assertTrue(target.isConnected());
    assertNotNull(target.getRunTarget().getTargetProperties().getCredentials().getRefreshToken());
    assertEquals(1, harness.getCfRunTargetModels().size());
}

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

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

    assertNotNull(target);/*from w w  w  .j  a  va  2  s .c  o m*/
    assertNotNull(target.getRunTarget().getTargetProperties().getCredentials().getPassword());
    assertEquals(1, harness.getCfRunTargetModels().size());
}

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

@Test
public void testCreateCfTargetAndStorePassword() throws Exception {
    CFClientParams targetParams = CfTestTargetParams.fromEnv();
    {/*from w w w  .  j av a 2 s .  co m*/
        clientFactory.defSpace(targetParams.getOrgName(), targetParams.getSpaceName());
        CloudFoundryBootDashModel target = harness.createCfTarget(targetParams,
                StoreCredentialsMode.STORE_PASSWORD);

        assertNotNull(target);
        assertNotNull(target.getRunTarget().getTargetProperties().getCredentials().getPassword());
        assertEquals(1, harness.getCfRunTargetModels().size());

        SecuredCredentialsStore store = harness.getCredentialsStore();
        assertTrue(store.isUnlocked());
    }

    harness.reload();
    {
        CloudFoundryBootDashModel target = harness.getCfTargetModel();
        String expectedPass = targetParams.getCredentials().getPassword();

        assertNotNull(target);
        String password = target.getRunTarget().getTargetProperties().getCredentials().getPassword();
        assertEquals(expectedPass, password);
        assertEquals(StoreCredentialsMode.STORE_PASSWORD,
                target.getRunTarget().getTargetProperties().getStoreCredentials());

        waitForJobsToComplete();
        assertTrue(target.isConnected()); //should auto connect.
        verifyZeroInteractions(ui); //should not prompt for password (but used stored pass).

        {
            SecuredCredentialsStore store = harness.getCredentialsStore();
            assertTrue(store.isUnlocked());
            String key = harness.secureStoreKey(target);
            String storedCred = store.getCredentials(key);
            assertEquals(expectedPass, storedCred);
        }

        {
            IPropertyStore store = harness.getPrivateStore();
            String key = harness.privateStoreKey(target);
            String storedCred = store.get(key);
            assertNull(storedCred);
        }
    }
}

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

@Test
public void testCreateCfTargetAndForgetPassword() throws Exception {
    CFClientParams targetParams = CfTestTargetParams.fromEnv();
    clientFactory.defSpace(targetParams.getOrgName(), targetParams.getSpaceName());

    {//from w w  w . java2 s .c  om
        CloudFoundryBootDashModel target = harness.createCfTarget(targetParams,
                StoreCredentialsMode.STORE_NOTHING);

        assertNotNull(target);
        assertNotNull(target.getRunTarget().getTargetProperties().getCredentials().getPassword());
        assertEquals(1, harness.getCfRunTargetModels().size());

        SecuredCredentialsStore store = harness.getCredentialsStore();
        assertFalse(store.isUnlocked()); // should not have gotten unlocked.
    }

    harness.reload();

    {
        CloudFoundryBootDashModel target = harness.getCfTargetModel();

        waitForJobsToComplete();

        assertEquals(StoreCredentialsMode.STORE_NOTHING,
                target.getRunTarget().getTargetProperties().getStoreCredentials());
        assertNotNull(target);
        assertNull(target.getRunTarget().getTargetProperties().getCredentials());
        assertFalse(target.isConnected()); // no auto connect if no creds are stored.
        { //check secure store is clean
            SecuredCredentialsStore store = harness.getCredentialsStore();
            assertFalse(store.isUnlocked()); // should not have gotten unlocked.
            String storedCred = store.getCredentials(harness.secureStoreKey(target));
            assertNull(storedCred);
        }
        { //check private store is clean
            IPropertyStore store = harness.getPrivateStore();
            String storedCred = store.get(harness.privateStoreKey(target));
            assertNull(storedCred);
        }

        verifyZeroInteractions(ui);

        //When we connect... the user should get prompted for password
        harness.answerPasswordPrompt(ui, (d) -> {
            d.getPasswordVar().setValue(targetParams.getCredentials().getPassword());
            d.performOk();
        });

        harness.sectionSelection.setValue(target);
        IAction connectAction = actions.getToggleTargetConnectionAction();
        connectAction.run();

        ACondition.waitFor("connected to target", 5_000, () -> {
            assertTrue(target.isConnected());
        });

        verify(ui).openPasswordDialog(any());
        verifyNoMoreInteractions(ui);
    }
}

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

@Test
public void testCreateCfTargetAndStoreToken() throws Exception {

    {//from www.  j  a v a 2s .com
        CFClientParams targetParams = CfTestTargetParams.fromEnv();
        MockCFSpace space = clientFactory.defSpace(targetParams.getOrgName(), targetParams.getSpaceName());
        space.defApp("foo");
        clientFactory.defSpace(targetParams.getOrgName(), targetParams.getSpaceName());

        CloudFoundryBootDashModel target = harness.createCfTarget(targetParams,
                StoreCredentialsMode.STORE_TOKEN);
        assertNotNull(target);
        assertTrue(target.isConnected());
        assertEquals(MockCloudFoundryClientFactory.FAKE_REFRESH_TOKEN,
                target.getRunTarget().getTargetProperties().getCredentials().getRefreshToken());
        assertEquals(1, harness.getCfRunTargetModels().size());
    }

    harness.reload();

    {
        CloudFoundryBootDashModel target = harness.getCfTargetModel();

        { //secure store shouldn't have been accessed (i.e. avoid opening it and popping password)
            SecuredCredentialsStore store = harness.getCredentialsStore();
            assertFalse(store.isUnlocked());
            String key = harness.secureStoreKey(target);
            String storedCred = store.getCredentials(key);
            assertNull(storedCred);
        }
        {
            IPropertyStore store = harness.getPrivateStore();
            String key = harness.privateStoreKey(target);
            String storedCred = store.get(key);
            assertEquals(MockCloudFoundryClientFactory.FAKE_REFRESH_TOKEN, storedCred);
        }

        assertNotNull(target);
        assertEquals(MockCloudFoundryClientFactory.FAKE_REFRESH_TOKEN,
                target.getRunTarget().getTargetProperties().getCredentials().getRefreshToken());
        assertEquals(StoreCredentialsMode.STORE_TOKEN,
                target.getRunTarget().getTargetProperties().getStoreCredentials());

        waitForJobsToComplete();
        assertTrue(target.isConnected()); //should auto connect.
        verifyZeroInteractions(ui); //should not prompt for password (but used stored token).
    }
}

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

@Test
public void appsManagerDefaultHost() throws Exception {
    MockCFSpace space = clientFactory.defSpace("my-org", "foo");

    String apiUrl = "http://api.some-cloud.com";
    String username = "freddy";
    String password = "whocares";

    CloudFoundryBootDashModel cfModel = harness.createCfTarget(new CFClientParams(apiUrl, username,
            CFCredentials.fromPassword(password), false, "my-org", "foo", false));

    assertEquals("http://console.some-cloud.com", cfModel.getRunTarget().getAppsManagerHost());
    assertEquals("http://console.some-cloud.com", cfModel.getRunTarget().getAppsManagerHostDefault());

    assertEquals("http://console.some-cloud.com/organizations/" + space.getOrganization().getGuid() + "/spaces/"
            + space.getGuid(), cfModel.getRunTarget().getAppsManagerURL());
}