diff --git a/src/main/java/com/openshift/client/IApplication.java b/src/main/java/com/openshift/client/IApplication.java index 92b04266..60a341c1 100755 --- a/src/main/java/com/openshift/client/IApplication.java +++ b/src/main/java/com/openshift/client/IApplication.java @@ -51,6 +51,13 @@ public interface IApplication extends IOpenShiftResource { */ public String getGitUrl(); + /** + * Returns the url to use to connect with ssh. + * + * @return the url to use to connect with ssh. + */ + public String getSshUrl(); + /** * Returns the git url that the application will get its initial code and configuration from. * diff --git a/src/main/java/com/openshift/internal/client/ApplicationResource.java b/src/main/java/com/openshift/internal/client/ApplicationResource.java index 10813080..55e1c0f8 100755 --- a/src/main/java/com/openshift/internal/client/ApplicationResource.java +++ b/src/main/java/com/openshift/internal/client/ApplicationResource.java @@ -121,6 +121,9 @@ public class ApplicationResource extends AbstractOpenShiftResource implements IA /** The url of this application. */ private final String applicationUrl; + /** The url to use to connect with ssh.*/ + private final String sshUrl; + /** The url at which the git repo of this application may be reached. */ private final String gitUrl; @@ -155,7 +158,7 @@ public class ApplicationResource extends AbstractOpenShiftResource implements IA protected ApplicationResource(ApplicationResourceDTO dto, DomainResource domain) { this(dto.getName(), dto.getUuid(), dto.getCreationTime(), dto.getMessages(), dto.getApplicationUrl(), - dto.getGitUrl(), dto.getInitialGitUrl(), dto.getGearProfile(), dto.getApplicationScale(), + dto.getSshUrl(), dto.getGitUrl(), dto.getInitialGitUrl(), dto.getGearProfile(), dto.getApplicationScale(), dto.getAliases(), dto.getCartridges(), dto.getLinks(), domain); } @@ -174,6 +177,8 @@ protected ApplicationResource(ApplicationResourceDTO dto, DomainResource domain) * the application url * @param gitUrl * the git url + * @param sshUrl + * the ssh url * @param cartridge * the cartridge (type/framework) * @param aliases @@ -185,7 +190,7 @@ protected ApplicationResource(ApplicationResourceDTO dto, DomainResource domain) * @throws DatatypeConfigurationException */ protected ApplicationResource(final String name, final String uuid, final String creationTime, - final Messages messages, final String applicationUrl, final String gitUrl, + final Messages messages, final String applicationUrl, final String sshUrl, final String gitUrl, final String initialGitUrl, final IGearProfile gearProfile, final ApplicationScale scale, final List aliases, final Map cartridgesByName, final Map links, final DomainResource domain) { @@ -196,6 +201,7 @@ protected ApplicationResource(final String name, final String uuid, final String this.scale = scale; this.gearProfile = gearProfile; this.applicationUrl = applicationUrl; + this.sshUrl = sshUrl; this.gitUrl = gitUrl; this.initialGitUrl = initialGitUrl; this.domain = domain; @@ -310,6 +316,13 @@ public String getInitialGitUrl() { return initialGitUrl; } + /** + * @return the sshUrl + */ + public String getSshUrl() { + return sshUrl; + } + public String getApplicationUrl() { return applicationUrl; } diff --git a/src/main/java/com/openshift/internal/client/response/ApplicationResourceDTO.java b/src/main/java/com/openshift/internal/client/response/ApplicationResourceDTO.java index 07b7d06e..7540caed 100755 --- a/src/main/java/com/openshift/internal/client/response/ApplicationResourceDTO.java +++ b/src/main/java/com/openshift/internal/client/response/ApplicationResourceDTO.java @@ -51,6 +51,9 @@ public class ApplicationResourceDTO extends BaseResourceDTO { /** the application's url. */ private final String applicationUrl; + /** the ssh url. */ + private final String sshUrl; + /** the application's git repository url. */ private final String gitUrl; @@ -71,7 +74,7 @@ public class ApplicationResourceDTO extends BaseResourceDTO { */ ApplicationResourceDTO(final String framework, final String domainId, final String creationTime, final String name, final IGearProfile gearProfile, final ApplicationScale scale, final String uuid, - final String applicationUrl, final String gitUrl, final String initialGitUrl, final List aliases, + final String applicationUrl, final String sshUrl, final String gitUrl, final String initialGitUrl, final List aliases, final Map cartridgeByName, final Map links, Messages messages) { super(links, messages); this.framework = framework; @@ -82,6 +85,7 @@ public class ApplicationResourceDTO extends BaseResourceDTO { this.gearProfile = gearProfile; this.scale = scale; this.applicationUrl = applicationUrl; + this.sshUrl = sshUrl; this.gitUrl = gitUrl; this.initialGitUrl = initialGitUrl; this.aliases = aliases; @@ -153,6 +157,14 @@ public final String getUuid() { public final String getApplicationUrl() { return applicationUrl; } + + /** + * @return the url to use to connect with ssh + */ + public String getSshUrl() { + return sshUrl; + } + /** * @return the url at which this applications git repo may be reached at @@ -187,4 +199,5 @@ public String toString() { + "]"; } + } diff --git a/src/main/java/com/openshift/internal/client/response/OpenShiftJsonDTOFactory.java b/src/main/java/com/openshift/internal/client/response/OpenShiftJsonDTOFactory.java index bfdec193..cabea7f2 100755 --- a/src/main/java/com/openshift/internal/client/response/OpenShiftJsonDTOFactory.java +++ b/src/main/java/com/openshift/internal/client/response/OpenShiftJsonDTOFactory.java @@ -38,6 +38,7 @@ import static com.openshift.internal.client.utils.IOpenShiftJsonConstants.PROPERTY_REL; import static com.openshift.internal.client.utils.IOpenShiftJsonConstants.PROPERTY_REQUIRED_PARAMS; import static com.openshift.internal.client.utils.IOpenShiftJsonConstants.PROPERTY_SCALABLE; +import static com.openshift.internal.client.utils.IOpenShiftJsonConstants.PROPERTY_SSH_URL; import static com.openshift.internal.client.utils.IOpenShiftJsonConstants.PROPERTY_SUFFIX; import static com.openshift.internal.client.utils.IOpenShiftJsonConstants.PROPERTY_TYPE; import static com.openshift.internal.client.utils.IOpenShiftJsonConstants.PROPERTY_URL; @@ -405,6 +406,7 @@ private ApplicationResourceDTO createApplication(ModelNode appNode, Messages mes final ApplicationScale scalable = ApplicationScale.safeValueOf(getAsString(appNode, PROPERTY_SCALABLE)); final IGearProfile gearProfile = createGearProfile(appNode); final String applicationUrl = getAsString(appNode, PROPERTY_APP_URL); + final String sshUrl = getAsString(appNode, PROPERTY_SSH_URL); final String gitUrl = getAsString(appNode, PROPERTY_GIT_URL); final String initialGitUrl = getAsString(appNode, PROPERTY_INITIAL_GIT_URL); final String domainId = getAsString(appNode, PROPERTY_DOMAIN_ID); @@ -421,6 +423,7 @@ private ApplicationResourceDTO createApplication(ModelNode appNode, Messages mes scalable, uuid, applicationUrl, + sshUrl, gitUrl, initialGitUrl, aliases, diff --git a/src/main/java/com/openshift/internal/client/utils/IOpenShiftJsonConstants.java b/src/main/java/com/openshift/internal/client/utils/IOpenShiftJsonConstants.java index a97f621b..3b517d38 100755 --- a/src/main/java/com/openshift/internal/client/utils/IOpenShiftJsonConstants.java +++ b/src/main/java/com/openshift/internal/client/utils/IOpenShiftJsonConstants.java @@ -77,6 +77,7 @@ public class IOpenShiftJsonConstants { public static final String PROPERTY_SSH = "ssh"; public static final String PROPERTY_SSH_KEY = "ssh_key"; public static final String PROPERTY_SSH_TYPE = "ssh_type"; + public static final String PROPERTY_SSH_URL = "ssh_url"; public static final String PROPERTY_STATUS = "status"; public static final String PROPERTY_SUFFIX = "suffix"; public static final String PROPERTY_TEXT = "text"; diff --git a/src/test/java/com/openshift/internal/client/response/OpenShiftJsonDTOFactoryTest.java b/src/test/java/com/openshift/internal/client/response/OpenShiftJsonDTOFactoryTest.java index 77a75f4e..4a248151 100755 --- a/src/test/java/com/openshift/internal/client/response/OpenShiftJsonDTOFactoryTest.java +++ b/src/test/java/com/openshift/internal/client/response/OpenShiftJsonDTOFactoryTest.java @@ -212,6 +212,7 @@ public void shouldUnmarshallGetApplicationsWith2AppsResponseBody() throws Throwa assertThat(applicationDTO.getDomainId()).isEqualTo("foobarz"); assertThat(applicationDTO.getCreationTime()).isEqualTo("2013-09-20T21:28:53Z"); assertThat(applicationDTO.getApplicationUrl()).isEqualTo("http://springeap6-foobarz.rhcloud.com/"); + assertThat(applicationDTO.getSshUrl()).isEqualTo("ssh://523cbe15e0b8cd0a520001b6@springeap6-foobarz.rhcloud.com"); assertThat(applicationDTO.getFramework()).isEqualTo(Cartridges.JBOSSEAP_6_NAME); assertThat(applicationDTO.getName()).isEqualTo("springeap6"); assertThat(applicationDTO.getApplicationScale()).isEqualTo(ApplicationScale.NO_SCALE);