diff --git a/src/main/java/com/openshift/internal/client/APIResource.java b/src/main/java/com/openshift/internal/client/APIResource.java index a06d00bf..5a8e31aa 100755 --- a/src/main/java/com/openshift/internal/client/APIResource.java +++ b/src/main/java/com/openshift/internal/client/APIResource.java @@ -11,6 +11,7 @@ package com.openshift.internal.client; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -41,6 +42,7 @@ public class APIResource extends AbstractOpenShiftResource implements IOpenShift private final String password; private List domains; private UserResource user; + //TODO: implement switch that allows to turn ssl checks on/off private boolean doSSLChecks = false; private final List standaloneCartridgeNames = new ArrayList(); private final List embeddedCartridgeNames = new ArrayList(); @@ -59,9 +61,6 @@ protected final String getLogin() { return login; } - /** - * @return the password - */ protected final String getPassword() { return password; } @@ -94,7 +93,7 @@ public IUser getUser() throws OpenShiftException { } public List getDomains() throws OpenShiftException { - if (this.domains == null) { + if (domains == null) { this.domains = loadDomains(); } return CollectionUtils.toUnmodifiableCopy(this.domains); @@ -117,6 +116,14 @@ public IDomain getDomain(String id) throws OpenShiftException { return null; } + public IDomain getDefaultDomain() { + final List domains = getDomains(); + if (domains.size() > 0) { + return domains.get(0); + } + return null; + } + public IDomain createDomain(String id) throws OpenShiftException { if (hasDomain(id)) { throw new OpenShiftException("Domain {0} already exists", id); @@ -160,6 +167,7 @@ private void retrieveCartridges() throws OpenShiftException { @Override public void refresh() throws OpenShiftException { + this.domains = null; } /** @@ -219,5 +227,4 @@ public List execute() throws OpenShiftException { return super.execute(); } } - } diff --git a/src/main/java/com/openshift/internal/client/UserResource.java b/src/main/java/com/openshift/internal/client/UserResource.java index 3e82d377..44470cd7 100755 --- a/src/main/java/com/openshift/internal/client/UserResource.java +++ b/src/main/java/com/openshift/internal/client/UserResource.java @@ -89,11 +89,7 @@ public List getDomains() throws OpenShiftException { } public IDomain getDefaultDomain() throws OpenShiftException { - final List domains = api.getDomains(); - if (domains.size() > 0) { - return domains.get(0); - } - return null; + return api.getDefaultDomain(); } public IDomain getDomain(String namespace) throws OpenShiftException { @@ -109,6 +105,8 @@ public void refresh() throws OpenShiftException { this.sshKeys = null; loadKeys(); } + + api.refresh(); DomainResource defaultDomain = (DomainResource) getDefaultDomain(); if (defaultDomain != null) { defaultDomain.refresh(); diff --git a/src/test/java/com/openshift/internal/client/test/UserResourceIntegrationTest.java b/src/test/java/com/openshift/internal/client/test/UserResourceIntegrationTest.java index d99321af..67b09f47 100755 --- a/src/test/java/com/openshift/internal/client/test/UserResourceIntegrationTest.java +++ b/src/test/java/com/openshift/internal/client/test/UserResourceIntegrationTest.java @@ -13,8 +13,10 @@ import static org.fest.assertions.Assertions.assertThat; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import java.io.FileNotFoundException; import java.io.IOException; import java.util.List; @@ -102,4 +104,23 @@ public void shouldReturnDomains() throws OpenShiftException { // verification assertThat(domains).isNotEmpty(); } + + @Test + public void shouldNoDefaultDomainAfterRefresh() throws OpenShiftException, FileNotFoundException, IOException { + // precondition + IDomain domain = DomainTestUtils.getFirstDomainOrCreate(user); + assertNotNull(user.getDefaultDomain()); + assertNotNull(domain); + + IUser otherUser = new TestConnectionFactory().getConnection().getUser(); + DomainTestUtils.silentlyDestroyAllDomains(otherUser); + assertNull(otherUser.getDefaultDomain()); + + // operation + user.refresh(); + + // verification + assertNull(user.getDefaultDomain()); + } + }