mirror of https://github.com/apache/jclouds.git
get ldapSettings
This commit is contained in:
parent
969141a7eb
commit
709c7bff63
|
@ -141,6 +141,8 @@ public class VCloudDirectorMediaType {
|
|||
|
||||
public static final String ORG_PASSWORD_POLICY_SETTINGS = "application/vnd.vmware.admin.organizationPasswordPolicySettings+xml";
|
||||
|
||||
public static final String ORG_LDAP_SETTINGS = "application/vnd.vmware.admin.organizationLdapSettings+xml";
|
||||
|
||||
/**
|
||||
*
|
||||
* All acceptable media types.
|
||||
|
@ -160,6 +162,6 @@ public class VCloudDirectorMediaType {
|
|||
NETWORK_SECTION, NETWORK_CONFIG_SECTION, NETWORK_CONNECTION_SECTION,
|
||||
CLONE_MEDIA_PARAMS, LEASE_SETTINGS_SECTION, RELOCATE_TEMPLATE, ENVELOPE,
|
||||
PUBLISH_CATALOG_PARAMS, GROUP, ORG_VAPP_TEMPLATE_LEASE_SETTINGS,
|
||||
ORG_LEASE_SETTINGS, ORG_PASSWORD_POLICY_SETTINGS
|
||||
ORG_LEASE_SETTINGS, ORG_PASSWORD_POLICY_SETTINGS, ORG_LDAP_SETTINGS
|
||||
);
|
||||
}
|
||||
|
|
|
@ -110,7 +110,7 @@ public class CustomOrgLdapSettings {
|
|||
public static final String OPEN_LDAP = "OPEN_LDAP";
|
||||
|
||||
/**
|
||||
* All acceptable {@link OrgLdapSettings#getOrgLdapMode()} values.
|
||||
* All acceptable {@link OrgLdapSettings#getLdapMode()} values.
|
||||
* <p/>
|
||||
* This list must be updated whenever a new mode is added.
|
||||
*/
|
||||
|
|
|
@ -29,6 +29,7 @@ import java.util.Set;
|
|||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
import com.google.common.base.Objects;
|
||||
|
@ -62,19 +63,20 @@ import com.google.common.base.Objects.ToStringHelper;
|
|||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "OrgLdapSettings", propOrder = {
|
||||
"orgLdapMode",
|
||||
@XmlRootElement(name = "OrgLdapSettings")
|
||||
@XmlType(propOrder = {
|
||||
"ldapMode",
|
||||
"customUsersOu",
|
||||
"customOrgLdapSettings"
|
||||
})
|
||||
public class OrgLdapSettings extends ResourceType<OrgLdapSettings> {
|
||||
public static final class LdapMode {
|
||||
public static final String NONE = "none";
|
||||
public static final String SYSTEM = "system";
|
||||
public static final String CUSTOM = "custom";
|
||||
public static final String NONE = "NONE";
|
||||
public static final String SYSTEM = "SYSTEM";
|
||||
public static final String CUSTOM = "CUSTOM";
|
||||
|
||||
/**
|
||||
* All acceptable {@link OrgLdapSettings#getOrgLdapMode()} values.
|
||||
* All acceptable {@link OrgLdapSettings#getLdapMode()} values.
|
||||
* <p/>
|
||||
* This list must be updated whenever a new mode is added.
|
||||
*/
|
||||
|
@ -93,15 +95,15 @@ public class OrgLdapSettings extends ResourceType<OrgLdapSettings> {
|
|||
|
||||
public static class Builder extends ResourceType.Builder<OrgLdapSettings> {
|
||||
|
||||
private String orgLdapMode;
|
||||
private String ldapMode;
|
||||
private String customUsersOu;
|
||||
private CustomOrgLdapSettings customOrgLdapSettings;
|
||||
|
||||
/**
|
||||
* @see OrgLdapSettings#getOrgLdapMode()
|
||||
* @see OrgLdapSettings#getLdapMode()
|
||||
*/
|
||||
public Builder orgLdapMode(String orgLdapMode) {
|
||||
this.orgLdapMode = orgLdapMode;
|
||||
public Builder ldapMode(String ldapMode) {
|
||||
this.ldapMode = ldapMode;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -123,7 +125,7 @@ public class OrgLdapSettings extends ResourceType<OrgLdapSettings> {
|
|||
|
||||
public OrgLdapSettings build() {
|
||||
OrgLdapSettings orgLdapSettings = new OrgLdapSettings(href, type, links,
|
||||
orgLdapMode, customUsersOu, customOrgLdapSettings);
|
||||
ldapMode, customUsersOu, customOrgLdapSettings);
|
||||
return orgLdapSettings;
|
||||
}
|
||||
|
||||
|
@ -171,7 +173,7 @@ public class OrgLdapSettings extends ResourceType<OrgLdapSettings> {
|
|||
}
|
||||
public Builder fromOrgLdapSettings(OrgLdapSettings in) {
|
||||
return fromResourceType(in)
|
||||
.orgLdapMode(in.getOrgLdapMode())
|
||||
.ldapMode(in.getLdapMode())
|
||||
.customUsersOu(in.getCustomUsersOu())
|
||||
.customOrgLdapSettings(in.getCustomOrgLdapSettings());
|
||||
}
|
||||
|
@ -183,9 +185,9 @@ public class OrgLdapSettings extends ResourceType<OrgLdapSettings> {
|
|||
}
|
||||
|
||||
public OrgLdapSettings(URI href, String type, Set<Link> links,
|
||||
String orgLdapMode, String customUsersOu, CustomOrgLdapSettings customOrgLdapSettings) {
|
||||
String ldapMode, String customUsersOu, CustomOrgLdapSettings customOrgLdapSettings) {
|
||||
super(href, type, links);
|
||||
this.orgLdapMode = orgLdapMode;
|
||||
this.ldapMode = ldapMode;
|
||||
this.customUsersOu = customUsersOu;
|
||||
this.customOrgLdapSettings = customOrgLdapSettings;
|
||||
}
|
||||
|
@ -193,7 +195,7 @@ public class OrgLdapSettings extends ResourceType<OrgLdapSettings> {
|
|||
|
||||
|
||||
@XmlElement(name = "OrgLdapMode")
|
||||
protected String orgLdapMode;
|
||||
protected String ldapMode;
|
||||
@XmlElement(name = "CustomUsersOu")
|
||||
protected String customUsersOu;
|
||||
@XmlElement(name = "CustomOrgLdapSettings")
|
||||
|
@ -207,8 +209,8 @@ public class OrgLdapSettings extends ResourceType<OrgLdapSettings> {
|
|||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getOrgLdapMode() {
|
||||
return orgLdapMode;
|
||||
public String getLdapMode() {
|
||||
return ldapMode;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -243,7 +245,7 @@ public class OrgLdapSettings extends ResourceType<OrgLdapSettings> {
|
|||
return false;
|
||||
OrgLdapSettings that = OrgLdapSettings.class.cast(o);
|
||||
return super.equals(that) &&
|
||||
equal(orgLdapMode, that.orgLdapMode) &&
|
||||
equal(ldapMode, that.ldapMode) &&
|
||||
equal(customUsersOu, that.customUsersOu) &&
|
||||
equal(customOrgLdapSettings, that.customOrgLdapSettings);
|
||||
}
|
||||
|
@ -251,7 +253,7 @@ public class OrgLdapSettings extends ResourceType<OrgLdapSettings> {
|
|||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hashCode(super.hashCode(),
|
||||
orgLdapMode,
|
||||
ldapMode,
|
||||
customUsersOu,
|
||||
customOrgLdapSettings);
|
||||
}
|
||||
|
@ -259,7 +261,7 @@ public class OrgLdapSettings extends ResourceType<OrgLdapSettings> {
|
|||
@Override
|
||||
public ToStringHelper string() {
|
||||
return super.string()
|
||||
.add("orgLdapMode", orgLdapMode)
|
||||
.add("orgLdapMode", ldapMode)
|
||||
.add("customUsersOu", customUsersOu)
|
||||
.add("customOrgLdapSettings", customOrgLdapSettings);
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ import org.jclouds.rest.annotations.JAXBResponseParser;
|
|||
import org.jclouds.rest.annotations.RequestFilters;
|
||||
import org.jclouds.rest.binders.BindToXMLPayload;
|
||||
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgLdapSettings;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgLeaseSettings;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgPasswordPolicySettings;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgVAppTemplateLeaseSettings;
|
||||
|
@ -65,8 +66,16 @@ public interface AdminOrgAsyncClient extends OrgAsyncClient {
|
|||
// GET /admin/org/{id}/settings/general
|
||||
|
||||
// PUT /admin/org/{id}/settings/general
|
||||
|
||||
// GET /admin/org/{id}/settings/ldap
|
||||
|
||||
/**
|
||||
* @see AdminOrgClient#getPasswordPolicy(URI)
|
||||
*/
|
||||
@GET
|
||||
@Path("/settings/ldap")
|
||||
@Consumes
|
||||
@JAXBResponseParser
|
||||
@ExceptionParser(ThrowVCloudErrorOn4xx.class)
|
||||
ListenableFuture<OrgLdapSettings> getLdapSettings(@EndpointParam URI orgRef);
|
||||
|
||||
/**
|
||||
* @see AdminOrgClient#getPasswordPolicy(URI)
|
||||
|
|
|
@ -23,6 +23,7 @@ import java.util.concurrent.TimeUnit;
|
|||
|
||||
import org.jclouds.concurrent.Timeout;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.Group;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgLdapSettings;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgLeaseSettings;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgPasswordPolicySettings;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgVAppTemplateLeaseSettings;
|
||||
|
@ -56,6 +57,18 @@ public interface AdminOrgClient extends OrgClient {
|
|||
|
||||
// GET /admin/org/{id}/settings/ldap
|
||||
|
||||
/**
|
||||
* Retrieves LDAP settings for an organization.
|
||||
*
|
||||
* <pre>
|
||||
* GET /admin/org/{id}/settings/ldap
|
||||
* </pre>
|
||||
*
|
||||
* @param orgRef the reference for the admin org
|
||||
* @return the ldap settings
|
||||
*/
|
||||
OrgLdapSettings getLdapSettings(URI orgRef);
|
||||
|
||||
/**
|
||||
* Retrieves password policy settings for an organization.
|
||||
*
|
||||
|
|
|
@ -598,9 +598,9 @@ public class Checks {
|
|||
public static void checkLdapSettings(OrgLdapSettings settings) {
|
||||
// Check optional fields
|
||||
// NOTE customUsersOu cannot be checked
|
||||
if (settings.getOrgLdapMode() != null) {
|
||||
assertTrue(LdapMode.ALL.contains(settings.getOrgLdapMode()), String.format(REQUIRED_VALUE_OBJECT_FMT,
|
||||
"LdapMode", "OrdLdapSettings", settings.getOrgLdapMode(), Iterables.toString(OrgLdapSettings.LdapMode.ALL)));
|
||||
if (settings.getLdapMode() != null) {
|
||||
assertTrue(LdapMode.ALL.contains(settings.getLdapMode()), String.format(REQUIRED_VALUE_OBJECT_FMT,
|
||||
"LdapMode", "OrdLdapSettings", settings.getLdapMode(), Iterables.toString(OrgLdapSettings.LdapMode.ALL)));
|
||||
}
|
||||
if (settings.getCustomOrgLdapSettings() != null) {
|
||||
checkCustomOrgLdapSettings(settings.getCustomOrgLdapSettings());
|
||||
|
|
|
@ -25,6 +25,7 @@ import java.net.URI;
|
|||
import org.jclouds.vcloud.director.v1_5.VCloudDirectorClient;
|
||||
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.Link;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgLdapSettings;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgLeaseSettings;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgPasswordPolicySettings;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgVAppTemplateLeaseSettings;
|
||||
|
@ -64,7 +65,30 @@ public class AdminOrgClientExpectTest extends BaseVCloudDirectorRestClientExpect
|
|||
|
||||
// PUT /admin/org/{id}/settings/general
|
||||
|
||||
// GET /admin/org/{id}/settings/ldap
|
||||
@Test
|
||||
public void testGetLdapSettings() {
|
||||
VCloudDirectorClient client = requestsSendResponses(loginRequest, sessionResponse,
|
||||
new VcloudHttpRequestPrimer()
|
||||
.apiCommand("GET", "/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/ldap")
|
||||
.acceptAnyMedia()
|
||||
.httpRequestBuilder().build(),
|
||||
new VcloudHttpResponsePrimer()
|
||||
.xmlFilePayload("/org/admin/ldapSettings.xml",
|
||||
VCloudDirectorMediaType.ORG_LDAP_SETTINGS)
|
||||
.httpResponseBuilder().build());
|
||||
|
||||
OrgLdapSettings expected = ldapSettings();
|
||||
|
||||
assertEquals(client.getAdminOrgClient().getLdapSettings(orgRef.getURI()), expected);
|
||||
}
|
||||
|
||||
public static final OrgLdapSettings ldapSettings() {
|
||||
return OrgLdapSettings.builder()
|
||||
.type("application/vnd.vmware.admin.organizationLdapSettings+xml")
|
||||
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/ldap"))
|
||||
.ldapMode("NONE")
|
||||
.build();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetPasswordPolicy() {
|
||||
|
|
|
@ -24,6 +24,7 @@ import org.jclouds.vcloud.director.v1_5.domain.AdminOrg;
|
|||
import org.jclouds.vcloud.director.v1_5.domain.Error;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.Group;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.Checks;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgLdapSettings;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgLeaseSettings;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgPasswordPolicySettings;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.OrgVAppTemplateLeaseSettings;
|
||||
|
@ -85,7 +86,12 @@ public class AdminOrgClientLiveTest extends BaseVCloudDirectorClientLiveTest {
|
|||
|
||||
// PUT /admin/org/{id}/settings/general
|
||||
|
||||
// GET /admin/org/{id}/settings/ldap
|
||||
@Test(testName = "GET /admin/org/{id}/settings/ldap")
|
||||
public void getLdapSettings() {
|
||||
OrgLdapSettings ldapSettings = orgClient.getLdapSettings(orgRef.getURI());
|
||||
|
||||
Checks.checkLdapSettings(ldapSettings);
|
||||
}
|
||||
|
||||
@Test(testName = "GET /admin/org/{id}/settings/passwordPolicy")
|
||||
public void testGetPasswordPolicy() {
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<OrgLdapSettings xmlns="http://www.vmware.com/vcloud/v1.5" type="application/vnd.vmware.admin.organizationLdapSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/ldap" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vmware.com/vcloud/v1.5 http://vcloudbeta.bluelock.com/api/v1.5/schema/master.xsd">
|
||||
<OrgLdapMode>NONE</OrgLdapMode>
|
||||
</OrgLdapSettings>
|
Loading…
Reference in New Issue