mirror of https://github.com/apache/jclouds.git
get adminOrg
This commit is contained in:
parent
5817f04463
commit
8e46d9e9ec
|
@ -129,7 +129,7 @@ public class VCloudDirectorMediaType {
|
||||||
|
|
||||||
public static final String ADMIN_CATALOG = "application/vnd.vmware.admin.catalog+xml";
|
public static final String ADMIN_CATALOG = "application/vnd.vmware.admin.catalog+xml";
|
||||||
|
|
||||||
public static final String ADMIN_ORGANIZATION = "application/vnd.vmware.admin.organization+xml";
|
public static final String ADMIN_ORG = "application/vnd.vmware.admin.organization+xml";
|
||||||
|
|
||||||
public static final String PUBLISH_CATALOG_PARAMS = "application/vnd.vmware.admin.publishCatalogParams+xml";
|
public static final String PUBLISH_CATALOG_PARAMS = "application/vnd.vmware.admin.publishCatalogParams+xml";
|
||||||
|
|
||||||
|
@ -149,8 +149,11 @@ public class VCloudDirectorMediaType {
|
||||||
|
|
||||||
public static final String ORG_SETTINGS = "application/vnd.vmware.admin.orgSettings+xml";
|
public static final String ORG_SETTINGS = "application/vnd.vmware.admin.orgSettings+xml";
|
||||||
|
|
||||||
|
public static final String ADMIN_NETWORK = "application/vnd.vmware.admin.network+xml";
|
||||||
|
|
||||||
|
public static final String ADMIN_ORG_NETWORK = "application/vnd.vmware.admin.orgNetwork+xml";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* All acceptable media types.
|
* All acceptable media types.
|
||||||
*
|
*
|
||||||
* This list must be updated whenever a new media type constant is added.
|
* This list must be updated whenever a new media type constant is added.
|
||||||
|
@ -162,13 +165,14 @@ public class VCloudDirectorMediaType {
|
||||||
MEDIA, OWNER, VDC, ADMIN_USER, V_APP, V_APP_TEMPLATE,
|
MEDIA, OWNER, VDC, ADMIN_USER, V_APP, V_APP_TEMPLATE,
|
||||||
CAPTURE_VAPP_PARAMS, CLONE_V_APP_PARAMS, CLONE_V_APP_TEMPLATE_PARAMS,
|
CAPTURE_VAPP_PARAMS, CLONE_V_APP_PARAMS, CLONE_V_APP_TEMPLATE_PARAMS,
|
||||||
COMPOSE_VAPP_PARAMS, INSTANTIATE_VAPP_TEMPLATE_PARAMS,
|
COMPOSE_VAPP_PARAMS, INSTANTIATE_VAPP_TEMPLATE_PARAMS,
|
||||||
UPLOAD_VAPP_TEMPLATE_PARAMS, ADMIN_CATALOG, ADMIN_ORGANIZATION,
|
UPLOAD_VAPP_TEMPLATE_PARAMS, ADMIN_CATALOG, ADMIN_ORG,
|
||||||
QUERY_RESULT_RECORDS, QUERY_RESULT_REFERENCES, QUERY_RESULT_ID_RECORDS,
|
QUERY_RESULT_RECORDS, QUERY_RESULT_REFERENCES, QUERY_RESULT_ID_RECORDS,
|
||||||
CONTROL_ACCESS, VAPP_TEMPLATE, CUSTOMIZATION_SECTION, GUEST_CUSTOMIZATION_SECTION,
|
CONTROL_ACCESS, VAPP_TEMPLATE, CUSTOMIZATION_SECTION, GUEST_CUSTOMIZATION_SECTION,
|
||||||
NETWORK_SECTION, NETWORK_CONFIG_SECTION, NETWORK_CONNECTION_SECTION,
|
NETWORK_SECTION, NETWORK_CONFIG_SECTION, NETWORK_CONNECTION_SECTION,
|
||||||
CLONE_MEDIA_PARAMS, LEASE_SETTINGS_SECTION, RELOCATE_TEMPLATE, ENVELOPE,
|
CLONE_MEDIA_PARAMS, LEASE_SETTINGS_SECTION, RELOCATE_TEMPLATE, ENVELOPE,
|
||||||
PUBLISH_CATALOG_PARAMS, GROUP, ORG_VAPP_TEMPLATE_LEASE_SETTINGS,
|
PUBLISH_CATALOG_PARAMS, GROUP, ORG_VAPP_TEMPLATE_LEASE_SETTINGS,
|
||||||
ORG_LEASE_SETTINGS, ORG_PASSWORD_POLICY_SETTINGS, ORG_LDAP_SETTINGS,
|
ORG_LEASE_SETTINGS, ORG_PASSWORD_POLICY_SETTINGS, ORG_LDAP_SETTINGS,
|
||||||
ORG_GENERAL_SETTINGS, ORG_EMAIL_SETTINGS, ORG_SETTINGS
|
ORG_GENERAL_SETTINGS, ORG_EMAIL_SETTINGS, ORG_SETTINGS, ADMIN_NETWORK,
|
||||||
|
ADMIN_ORG_NETWORK
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,9 @@ package org.jclouds.vcloud.director.v1_5.domain;
|
||||||
|
|
||||||
import static com.google.common.base.Objects.equal;
|
import static com.google.common.base.Objects.equal;
|
||||||
|
|
||||||
|
import java.net.URI;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
import javax.xml.bind.annotation.XmlAccessorType;
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
@ -145,7 +148,8 @@ public class AdminOrg extends Org {
|
||||||
}
|
}
|
||||||
|
|
||||||
public AdminOrg build() {
|
public AdminOrg build() {
|
||||||
return new AdminOrg(settings, users, groups, catalogs, vdcs, networks);
|
return new AdminOrg(href, type, links, description, tasksInProgress, id,
|
||||||
|
name, fullName, isEnabled, settings, users, groups, catalogs, vdcs, networks);
|
||||||
}
|
}
|
||||||
|
|
||||||
public T fromAdminOrg(AdminOrg in) {
|
public T fromAdminOrg(AdminOrg in) {
|
||||||
|
@ -175,8 +179,11 @@ public class AdminOrg extends Org {
|
||||||
// For JAXB
|
// For JAXB
|
||||||
}
|
}
|
||||||
|
|
||||||
protected AdminOrg(OrgSettings settings, UsersList users, GroupsList groups,
|
protected AdminOrg(URI href, String type, Set<Link> links, String description,
|
||||||
|
TasksInProgress tasksInProgress, String id, String name, String fullName,
|
||||||
|
Boolean enabled, OrgSettings settings, UsersList users, GroupsList groups,
|
||||||
CatalogsList catalogs, Vdcs vdcs, Networks networks) {
|
CatalogsList catalogs, Vdcs vdcs, Networks networks) {
|
||||||
|
super(href, type, links, description, tasksInProgress, id, name, fullName, enabled);
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
this.users = users;
|
this.users = users;
|
||||||
this.groups = groups;
|
this.groups = groups;
|
||||||
|
|
|
@ -68,6 +68,14 @@ public class CatalogsList {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see CatalogsList#getCatalogItems()
|
||||||
|
*/
|
||||||
|
public Builder catalog(Reference catalog) {
|
||||||
|
this.catalogReferences.add(checkNotNull(catalog, "catalog"));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public CatalogsList build() {
|
public CatalogsList build() {
|
||||||
return new CatalogsList(catalogReferences);
|
return new CatalogsList(catalogReferences);
|
||||||
}
|
}
|
||||||
|
@ -81,7 +89,7 @@ public class CatalogsList {
|
||||||
// for JAXB
|
// for JAXB
|
||||||
}
|
}
|
||||||
|
|
||||||
private CatalogsList(Set<Reference> tasks) {
|
private CatalogsList(Set<Reference> catalogReferences) {
|
||||||
this.catalogReferences = ImmutableSet.copyOf(checkNotNull(catalogReferences, "catalogReferences"));
|
this.catalogReferences = ImmutableSet.copyOf(checkNotNull(catalogReferences, "catalogReferences"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ import com.google.common.collect.ImmutableList;
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
@XmlRootElement(name = "GroupsList")
|
@XmlRootElement(name = "GroupsList")
|
||||||
@XmlType(propOrder = {
|
@XmlType(propOrder = {
|
||||||
"groupReference"
|
"groups"
|
||||||
})
|
})
|
||||||
public class GroupsList {
|
public class GroupsList {
|
||||||
public static Builder builder() {
|
public static Builder builder() {
|
||||||
|
|
|
@ -30,6 +30,8 @@ import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
import javax.xml.bind.annotation.XmlType;
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
import org.testng.collections.Lists;
|
||||||
|
|
||||||
import com.google.common.base.Objects;
|
import com.google.common.base.Objects;
|
||||||
import com.google.common.base.Objects.ToStringHelper;
|
import com.google.common.base.Objects.ToStringHelper;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
@ -62,7 +64,7 @@ import com.google.common.collect.ImmutableList;
|
||||||
*/
|
*/
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
@XmlType(name = "Networks", propOrder = {
|
@XmlType(name = "Networks", propOrder = {
|
||||||
"network"
|
"networks"
|
||||||
})
|
})
|
||||||
public class Networks {
|
public class Networks {
|
||||||
public static Builder builder() {
|
public static Builder builder() {
|
||||||
|
@ -75,7 +77,7 @@ public class Networks {
|
||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
|
|
||||||
private List<Reference> networks;
|
private List<Reference> networks = Lists.newArrayList();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see Networks#getNetwork()
|
* @see Networks#getNetwork()
|
||||||
|
|
|
@ -59,8 +59,8 @@ public class Org extends EntityType<Org> {
|
||||||
|
|
||||||
public static abstract class NewBuilder<T extends NewBuilder<T>> extends EntityType.NewBuilder<T> {
|
public static abstract class NewBuilder<T extends NewBuilder<T>> extends EntityType.NewBuilder<T> {
|
||||||
|
|
||||||
private String fullName;
|
protected String fullName;
|
||||||
private Boolean isEnabled;
|
protected Boolean isEnabled;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see Org#getFullName()
|
* @see Org#getFullName()
|
||||||
|
@ -232,8 +232,10 @@ public class Org extends EntityType<Org> {
|
||||||
// for JAXB
|
// for JAXB
|
||||||
}
|
}
|
||||||
|
|
||||||
public Org(URI href, String type, Set<Link> links, String description, Set<Task> tasks, String id, String name, String fullName, Boolean enabled) {
|
public Org(URI href, String type, Set<Link> links, String description,
|
||||||
super(href, type, links, description, tasks, id, name);
|
TasksInProgress tasksInProgress, String id, String name,
|
||||||
|
String fullName, Boolean enabled) {
|
||||||
|
super(href, type, links, description, tasksInProgress, id, name);
|
||||||
this.fullName = fullName;
|
this.fullName = fullName;
|
||||||
isEnabled = enabled;
|
isEnabled = enabled;
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,7 +97,7 @@ public class OrgSettings extends ResourceType<OrgSettings> {
|
||||||
/**
|
/**
|
||||||
* @see OrgSettings#getGeneralSettings()
|
* @see OrgSettings#getGeneralSettings()
|
||||||
*/
|
*/
|
||||||
public Builder orgGeneralSettings(OrgGeneralSettings generalSettings) {
|
public Builder generalSettings(OrgGeneralSettings generalSettings) {
|
||||||
this.generalSettings = generalSettings;
|
this.generalSettings = generalSettings;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -121,7 +121,7 @@ public class OrgSettings extends ResourceType<OrgSettings> {
|
||||||
/**
|
/**
|
||||||
* @see OrgSettings#getLdapSettings()
|
* @see OrgSettings#getLdapSettings()
|
||||||
*/
|
*/
|
||||||
public Builder orgLdapSettings(OrgLdapSettings ldapSettings) {
|
public Builder ldapSettings(OrgLdapSettings ldapSettings) {
|
||||||
this.ldapSettings = ldapSettings;
|
this.ldapSettings = ldapSettings;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -129,7 +129,7 @@ public class OrgSettings extends ResourceType<OrgSettings> {
|
||||||
/**
|
/**
|
||||||
* @see OrgSettings#getEmailSettings()
|
* @see OrgSettings#getEmailSettings()
|
||||||
*/
|
*/
|
||||||
public Builder orgEmailSettings(OrgEmailSettings emailSettings) {
|
public Builder emailSettings(OrgEmailSettings emailSettings) {
|
||||||
this.emailSettings = emailSettings;
|
this.emailSettings = emailSettings;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -191,11 +191,11 @@ public class OrgSettings extends ResourceType<OrgSettings> {
|
||||||
}
|
}
|
||||||
public Builder fromOrgSettings(OrgSettings in) {
|
public Builder fromOrgSettings(OrgSettings in) {
|
||||||
return fromResourceType(in)
|
return fromResourceType(in)
|
||||||
.orgGeneralSettings(in.getGeneralSettings())
|
.generalSettings(in.getGeneralSettings())
|
||||||
.vAppLeaseSettings(in.getVAppLeaseSettings())
|
.vAppLeaseSettings(in.getVAppLeaseSettings())
|
||||||
.vAppTemplateLeaseSettings(in.getVAppTemplateLeaseSettings())
|
.vAppTemplateLeaseSettings(in.getVAppTemplateLeaseSettings())
|
||||||
.orgLdapSettings(in.getLdapSettings())
|
.ldapSettings(in.getLdapSettings())
|
||||||
.orgEmailSettings(in.getEmailSettings())
|
.emailSettings(in.getEmailSettings())
|
||||||
.passwordPolicy(in.getPasswordPolicy());
|
.passwordPolicy(in.getPasswordPolicy());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,8 @@ import javax.xml.bind.annotation.XmlElement;
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
import javax.xml.bind.annotation.XmlType;
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
import org.testng.collections.Lists;
|
||||||
|
|
||||||
import com.google.common.base.Objects;
|
import com.google.common.base.Objects;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
|
@ -62,7 +64,7 @@ import com.google.common.collect.ImmutableList;
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
@XmlRootElement(name = "UsersList")
|
@XmlRootElement(name = "UsersList")
|
||||||
@XmlType(propOrder = {
|
@XmlType(propOrder = {
|
||||||
"userReference"
|
"users"
|
||||||
})
|
})
|
||||||
public class UsersList {
|
public class UsersList {
|
||||||
public static Builder builder() {
|
public static Builder builder() {
|
||||||
|
@ -74,7 +76,7 @@ public class UsersList {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
private List<Reference> users;
|
private List<Reference> users = Lists.newArrayList();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see UsersList#getUsers()
|
* @see UsersList#getUsers()
|
||||||
|
|
|
@ -31,6 +31,8 @@ import javax.xml.bind.annotation.XmlElement;
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
import javax.xml.bind.annotation.XmlType;
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
import org.testng.collections.Lists;
|
||||||
|
|
||||||
import com.google.common.base.Objects;
|
import com.google.common.base.Objects;
|
||||||
import com.google.common.base.Objects.ToStringHelper;
|
import com.google.common.base.Objects.ToStringHelper;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
@ -76,7 +78,7 @@ public class Vdcs {
|
||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
|
|
||||||
private List<Reference> vdcs;
|
private List<Reference> vdcs = Lists.newArrayList();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see Vdcs#getVdc()
|
* @see Vdcs#getVdc()
|
||||||
|
|
|
@ -33,6 +33,7 @@ import org.jclouds.rest.annotations.JAXBResponseParser;
|
||||||
import org.jclouds.rest.annotations.RequestFilters;
|
import org.jclouds.rest.annotations.RequestFilters;
|
||||||
import org.jclouds.rest.binders.BindToXMLPayload;
|
import org.jclouds.rest.binders.BindToXMLPayload;
|
||||||
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
|
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
|
||||||
|
import org.jclouds.vcloud.director.v1_5.domain.AdminOrg;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.OrgEmailSettings;
|
import org.jclouds.vcloud.director.v1_5.domain.OrgEmailSettings;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.OrgGeneralSettings;
|
import org.jclouds.vcloud.director.v1_5.domain.OrgGeneralSettings;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.OrgLdapSettings;
|
import org.jclouds.vcloud.director.v1_5.domain.OrgLdapSettings;
|
||||||
|
@ -52,11 +53,15 @@ import com.google.common.util.concurrent.ListenableFuture;
|
||||||
@RequestFilters(AddVCloudAuthorizationToRequest.class)
|
@RequestFilters(AddVCloudAuthorizationToRequest.class)
|
||||||
public interface AdminOrgAsyncClient extends OrgAsyncClient {
|
public interface AdminOrgAsyncClient extends OrgAsyncClient {
|
||||||
|
|
||||||
// GET /admin/org/{id}
|
/**
|
||||||
|
* @see AdminOrgClient#getOrg(URI)
|
||||||
// POST /admin/org/{id}/catalogs
|
*/
|
||||||
|
@GET
|
||||||
// POST /admin/org/{id}/groups
|
@Consumes
|
||||||
|
@JAXBResponseParser
|
||||||
|
@ExceptionParser(ThrowVCloudErrorOn4xx.class)
|
||||||
|
ListenableFuture<AdminOrg> getOrg(
|
||||||
|
@EndpointParam URI orgRef);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see AdminOrgClient#getSettings(URI)
|
* @see AdminOrgClient#getSettings(URI)
|
||||||
|
|
|
@ -22,6 +22,7 @@ import java.net.URI;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
import org.jclouds.vcloud.director.v1_5.domain.AdminOrg;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.Group;
|
import org.jclouds.vcloud.director.v1_5.domain.Group;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.OrgEmailSettings;
|
import org.jclouds.vcloud.director.v1_5.domain.OrgEmailSettings;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.OrgGeneralSettings;
|
import org.jclouds.vcloud.director.v1_5.domain.OrgGeneralSettings;
|
||||||
|
@ -40,11 +41,19 @@ import org.jclouds.vcloud.director.v1_5.domain.OrgVAppTemplateLeaseSettings;
|
||||||
@Timeout(duration = 180, timeUnit = TimeUnit.SECONDS)
|
@Timeout(duration = 180, timeUnit = TimeUnit.SECONDS)
|
||||||
public interface AdminOrgClient extends OrgClient {
|
public interface AdminOrgClient extends OrgClient {
|
||||||
|
|
||||||
// GET /admin/org/{id}
|
/**
|
||||||
|
* Retrieves an admin view of an organization.
|
||||||
// POST /admin/org/{id}/catalogs
|
* The organization might be enabled or disabled.
|
||||||
|
* If enabled, the organization allows login and all other operations.
|
||||||
// POST /admin/org/{id}/groups
|
*
|
||||||
|
* <pre>
|
||||||
|
* GET /admin/org/{id}
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param orgRef the reference for the admin org
|
||||||
|
* @return the admin org
|
||||||
|
*/
|
||||||
|
AdminOrg getOrg(URI orgRef);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets organizational settings for this organization.
|
* Gets organizational settings for this organization.
|
||||||
|
|
|
@ -60,7 +60,7 @@ public interface OrgAsyncClient {
|
||||||
@Consumes
|
@Consumes
|
||||||
@JAXBResponseParser
|
@JAXBResponseParser
|
||||||
@ExceptionParser(ThrowVCloudErrorOn4xx.class)
|
@ExceptionParser(ThrowVCloudErrorOn4xx.class)
|
||||||
ListenableFuture<Org> getOrg(@EndpointParam URI orgUri);
|
ListenableFuture<? extends Org> getOrg(@EndpointParam URI orgUri);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return asynchronous access to {@link Metadata.Readable} features
|
* @return asynchronous access to {@link Metadata.Readable} features
|
||||||
|
|
|
@ -232,6 +232,46 @@ public class Checks {
|
||||||
checkEntityType(org);
|
checkEntityType(org);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void checkAdminOrg(AdminOrg org) {
|
||||||
|
// required
|
||||||
|
assertNotNull(org.getSettings(), String.format(NOT_NULL_OBJECT_FMT, "settings", "AdminOrg"));
|
||||||
|
|
||||||
|
// optional
|
||||||
|
if (org.getGroups() != null) {
|
||||||
|
checkGroupsList(org.getGroups());
|
||||||
|
}
|
||||||
|
if (org.getCatalogs() != null) {
|
||||||
|
checkCatalogsList(org.getCatalogs());
|
||||||
|
}
|
||||||
|
if (org.getVdcs() != null) {
|
||||||
|
checkVdcs(org.getVdcs());
|
||||||
|
}
|
||||||
|
if (org.getNetworks() != null) {
|
||||||
|
checkNetworks(org.getNetworks());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check parent type
|
||||||
|
checkOrg(org);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void checkCatalogsList(CatalogsList catalogList) {
|
||||||
|
for (Reference catalogItem : catalogList.getCatalogItems()) {
|
||||||
|
checkReferenceType(catalogItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void checkVdcs(Vdcs vdcs) {
|
||||||
|
for (Reference vdc : vdcs.getVdcs()) {
|
||||||
|
checkReferenceType(vdc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void checkNetworks(Networks networks) {
|
||||||
|
for (Reference network : networks.getNetwork()) {
|
||||||
|
checkReferenceType(network);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void checkAdminCatalog(AdminCatalog catalog) {
|
public static void checkAdminCatalog(AdminCatalog catalog) {
|
||||||
// Check parent type
|
// Check parent type
|
||||||
checkCatalogType(catalog);
|
checkCatalogType(catalog);
|
||||||
|
|
|
@ -24,7 +24,11 @@ import java.net.URI;
|
||||||
|
|
||||||
import org.jclouds.vcloud.director.v1_5.VCloudDirectorClient;
|
import org.jclouds.vcloud.director.v1_5.VCloudDirectorClient;
|
||||||
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
|
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
|
||||||
|
import org.jclouds.vcloud.director.v1_5.domain.AdminOrg;
|
||||||
|
import org.jclouds.vcloud.director.v1_5.domain.CatalogsList;
|
||||||
|
import org.jclouds.vcloud.director.v1_5.domain.GroupsList;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.Link;
|
import org.jclouds.vcloud.director.v1_5.domain.Link;
|
||||||
|
import org.jclouds.vcloud.director.v1_5.domain.Networks;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.OrgEmailSettings;
|
import org.jclouds.vcloud.director.v1_5.domain.OrgEmailSettings;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.OrgGeneralSettings;
|
import org.jclouds.vcloud.director.v1_5.domain.OrgGeneralSettings;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.OrgLdapSettings;
|
import org.jclouds.vcloud.director.v1_5.domain.OrgLdapSettings;
|
||||||
|
@ -34,6 +38,8 @@ import org.jclouds.vcloud.director.v1_5.domain.OrgSettings;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.OrgVAppTemplateLeaseSettings;
|
import org.jclouds.vcloud.director.v1_5.domain.OrgVAppTemplateLeaseSettings;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.Reference;
|
import org.jclouds.vcloud.director.v1_5.domain.Reference;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.SmtpServerSettings;
|
import org.jclouds.vcloud.director.v1_5.domain.SmtpServerSettings;
|
||||||
|
import org.jclouds.vcloud.director.v1_5.domain.UsersList;
|
||||||
|
import org.jclouds.vcloud.director.v1_5.domain.Vdcs;
|
||||||
import org.jclouds.vcloud.director.v1_5.internal.BaseVCloudDirectorRestClientExpectTest;
|
import org.jclouds.vcloud.director.v1_5.internal.BaseVCloudDirectorRestClientExpectTest;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
@ -49,13 +55,151 @@ public class AdminOrgClientExpectTest extends BaseVCloudDirectorRestClientExpect
|
||||||
.href(URI.create(endpoint + "/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0"))
|
.href(URI.create(endpoint + "/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0"))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// GET /admin/org/{id}
|
|
||||||
|
|
||||||
// POST /admin/org/{id}/catalogs
|
|
||||||
|
|
||||||
// POST /admin/org/{id}/groups
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
public void testGetOrg() {
|
||||||
|
VCloudDirectorClient client = requestsSendResponses(loginRequest, sessionResponse,
|
||||||
|
new VcloudHttpRequestPrimer()
|
||||||
|
.apiCommand("GET", "/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0")
|
||||||
|
.acceptAnyMedia()
|
||||||
|
.httpRequestBuilder().build(),
|
||||||
|
new VcloudHttpResponsePrimer()
|
||||||
|
.xmlFilePayload("/org/admin/org.xml",
|
||||||
|
VCloudDirectorMediaType.ADMIN_ORG)
|
||||||
|
.httpResponseBuilder().build());
|
||||||
|
|
||||||
|
AdminOrg expected = adminOrg();
|
||||||
|
|
||||||
|
assertEquals(client.getAdminOrgClient().getOrg(orgRef.getURI()), expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final AdminOrg adminOrg() {
|
||||||
|
return AdminOrg.builder()
|
||||||
|
.name("JClouds")
|
||||||
|
.id("urn:vcloud:org:6f312e42-cd2b-488d-a2bb-97519cd57ed0")
|
||||||
|
.type("application/vnd.vmware.admin.organization+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0"))
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("down")
|
||||||
|
.type("application/vnd.vmware.vcloud.tasksList+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/tasksList/6f312e42-cd2b-488d-a2bb-97519cd57ed0"))
|
||||||
|
.build())
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("down")
|
||||||
|
.type("application/vnd.vmware.vcloud.metadata+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/metadata"))
|
||||||
|
.build())
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("add")
|
||||||
|
.type("application/vnd.vmware.admin.catalog+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/catalogs"))
|
||||||
|
.build())
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("add")
|
||||||
|
.type("application/vnd.vmware.admin.user+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/users"))
|
||||||
|
.build())
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("add")
|
||||||
|
.type("application/vnd.vmware.admin.group+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/groups"))
|
||||||
|
.build())
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("add")
|
||||||
|
.type("application/vnd.vmware.admin.orgNetwork+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/networks"))
|
||||||
|
.build())
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("edit")
|
||||||
|
.type("application/vnd.vmware.admin.organization+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0"))
|
||||||
|
.build())
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("remove")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0"))
|
||||||
|
.build())
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("alternate")
|
||||||
|
.type("application/vnd.vmware.vcloud.org+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0"))
|
||||||
|
.build())
|
||||||
|
.description("")
|
||||||
|
.fullName("JClouds")
|
||||||
|
.isEnabled(true)
|
||||||
|
.settings(settings())
|
||||||
|
.users(UsersList.builder()
|
||||||
|
.user(Reference.builder()
|
||||||
|
.type("application/vnd.vmware.admin.user+xml")
|
||||||
|
.name("adam.lowe@cloudsoftcorp.com")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/user/672ebb67-d8ff-4201-9c1b-c1be869e526c"))
|
||||||
|
.build())
|
||||||
|
.user(Reference.builder()
|
||||||
|
.type("application/vnd.vmware.admin.user+xml")
|
||||||
|
.name("adrian@jclouds.org")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/user/8c360b93-ed25-4c9a-8e24-d48cd9966d93"))
|
||||||
|
.build())
|
||||||
|
.user(Reference.builder()
|
||||||
|
.type("application/vnd.vmware.admin.user+xml")
|
||||||
|
.name("qunying.huang@enstratus.com")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/user/967d317c-4273-4a95-b8a4-bf63b78e9c69"))
|
||||||
|
.build())
|
||||||
|
.user(Reference.builder()
|
||||||
|
.type("application/vnd.vmware.admin.user+xml")
|
||||||
|
.name("dan@cloudsoftcorp.com")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/user/ae75edd2-12de-414c-8e85-e6ea10442c08"))
|
||||||
|
.build())
|
||||||
|
.user(Reference.builder()
|
||||||
|
.type("application/vnd.vmware.admin.user+xml")
|
||||||
|
.name("adk@cloudsoftcorp.com")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/user/e9eb1b29-0404-4c5e-8ef7-e584acc51da9"))
|
||||||
|
.build())
|
||||||
|
.build())
|
||||||
|
.groups(GroupsList.builder()
|
||||||
|
.build())
|
||||||
|
.catalogs(CatalogsList.builder()
|
||||||
|
.catalog(Reference.builder()
|
||||||
|
.type("application/vnd.vmware.admin.catalog+xml")
|
||||||
|
.name("QunyingTestCatalog")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/catalog/7212e451-76e1-4631-b2de-ba1dfd8080e4"))
|
||||||
|
.build())
|
||||||
|
.catalog(Reference.builder()
|
||||||
|
.type("application/vnd.vmware.admin.catalog+xml")
|
||||||
|
.name("Public")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/catalog/9e08c2f6-077a-42ce-bece-d5332e2ebb5c"))
|
||||||
|
.build())
|
||||||
|
.catalog(Reference.builder()
|
||||||
|
.type("application/vnd.vmware.admin.catalog+xml")
|
||||||
|
.name("dantest")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/catalog/b542aff4-9f97-4f51-a126-4330fbf62f02"))
|
||||||
|
.build())
|
||||||
|
.catalog(Reference.builder()
|
||||||
|
.type("application/vnd.vmware.admin.catalog+xml")
|
||||||
|
.name("test")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/catalog/b7289d54-4ca4-497f-9a93-2d4afc97e3da"))
|
||||||
|
.build())
|
||||||
|
.build())
|
||||||
|
.vdcs(Vdcs.builder()
|
||||||
|
.vdc(Reference.builder()
|
||||||
|
.type("application/vnd.vmware.vcloud.vdc+xml")
|
||||||
|
.name("Cluster01-JClouds")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/vdc/d16d333b-e3c0-4176-845d-a5ee6392df07"))
|
||||||
|
.build())
|
||||||
|
.build())
|
||||||
|
.networks(Networks.builder()
|
||||||
|
.network(Reference.builder()
|
||||||
|
.type("application/vnd.vmware.admin.network+xml")
|
||||||
|
.name("ilsolation01-Jclouds")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/network/f3ba8256-6f48-4512-aad6-600e85b4dc38"))
|
||||||
|
.build())
|
||||||
|
.network(Reference.builder()
|
||||||
|
.type("application/vnd.vmware.admin.network+xml")
|
||||||
|
.name("internet01-Jclouds")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/network/55a677cf-ab3f-48ae-b880-fab90421980c"))
|
||||||
|
.build())
|
||||||
|
.build())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(enabled = false)
|
||||||
public void testGetSettings() {
|
public void testGetSettings() {
|
||||||
VCloudDirectorClient client = requestsSendResponses(loginRequest, sessionResponse,
|
VCloudDirectorClient client = requestsSendResponses(loginRequest, sessionResponse,
|
||||||
new VcloudHttpRequestPrimer()
|
new VcloudHttpRequestPrimer()
|
||||||
|
@ -74,18 +218,53 @@ public class AdminOrgClientExpectTest extends BaseVCloudDirectorRestClientExpect
|
||||||
|
|
||||||
public static final OrgSettings settings() {
|
public static final OrgSettings settings() {
|
||||||
return OrgSettings.builder()
|
return OrgSettings.builder()
|
||||||
.type("application/vnd.vmware.admin.organizationSettings+xml")
|
.type("application/vnd.vmware.admin.orgSettings+xml")
|
||||||
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/"))
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings"))
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("down")
|
||||||
|
.type("application/vnd.vmware.admin.vAppTemplateLeaseSettings+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/vAppTemplateLeaseSettings"))
|
||||||
|
.build())
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("down")
|
||||||
|
.type("application/vnd.vmware.admin.organizationEmailSettings+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/email"))
|
||||||
|
.build())
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("down")
|
||||||
|
.type("application/vnd.vmware.admin.vAppLeaseSettings+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/vAppLeaseSettings"))
|
||||||
|
.build())
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("down")
|
||||||
|
.type("application/vnd.vmware.admin.organizationPasswordPolicySettings+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/passwordPolicy"))
|
||||||
|
.build())
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("down")
|
||||||
|
.type("application/vnd.vmware.admin.organizationGeneralSettings+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/general"))
|
||||||
|
.build())
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("down")
|
||||||
|
.type("application/vnd.vmware.admin.organizationLdapSettings+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/ldap"))
|
||||||
|
.build())
|
||||||
.link(Link.builder()
|
.link(Link.builder()
|
||||||
.rel("edit")
|
.rel("edit")
|
||||||
.type("application/vnd.vmware.admin.organizationSettings+xml")
|
.type("application/vnd.vmware.admin.orgSettings+xml")
|
||||||
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/"))
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings"))
|
||||||
.build())
|
.build())
|
||||||
|
.generalSettings(generalSettings())
|
||||||
|
.vAppLeaseSettings(vAppLeaseSettings())
|
||||||
|
.vAppTemplateLeaseSettings(vAppTemplateLeaseSettings())
|
||||||
|
.ldapSettings(ldapSettings())
|
||||||
|
.emailSettings(emailSettings())
|
||||||
|
.passwordPolicy(passwordPolicy())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(enabled = false)
|
||||||
public void testUpdateSettings() {
|
public void testUpdateSettings() {
|
||||||
VCloudDirectorClient client = requestsSendResponses(loginRequest, sessionResponse,
|
VCloudDirectorClient client = requestsSendResponses(loginRequest, sessionResponse,
|
||||||
new VcloudHttpRequestPrimer()
|
new VcloudHttpRequestPrimer()
|
||||||
|
@ -204,7 +383,18 @@ public class AdminOrgClientExpectTest extends BaseVCloudDirectorRestClientExpect
|
||||||
|
|
||||||
public static final OrgGeneralSettings generalSettings() {
|
public static final OrgGeneralSettings generalSettings() {
|
||||||
return OrgGeneralSettings.builder()
|
return OrgGeneralSettings.builder()
|
||||||
|
.type("application/vnd.vmware.admin.organizationGeneralSettings+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/general"))
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("edit")
|
||||||
|
.type("application/vnd.vmware.admin.organizationGeneralSettings+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/general"))
|
||||||
|
.build())
|
||||||
|
.canPublishCatalogs(false)
|
||||||
|
.deployedVMQuota(0)
|
||||||
|
.storedVmQuota(0)
|
||||||
|
.useServerBootSequence(false)
|
||||||
|
.delayAfterPowerOnSeconds(0)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,12 +460,12 @@ public class AdminOrgClientExpectTest extends BaseVCloudDirectorRestClientExpect
|
||||||
VCloudDirectorMediaType.ORG_PASSWORD_POLICY_SETTINGS)
|
VCloudDirectorMediaType.ORG_PASSWORD_POLICY_SETTINGS)
|
||||||
.httpResponseBuilder().build());
|
.httpResponseBuilder().build());
|
||||||
|
|
||||||
OrgPasswordPolicySettings expected = orgPasswordPolicy();
|
OrgPasswordPolicySettings expected = passwordPolicy();
|
||||||
|
|
||||||
assertEquals(client.getAdminOrgClient().getPasswordPolicy(orgRef.getURI()), expected);
|
assertEquals(client.getAdminOrgClient().getPasswordPolicy(orgRef.getURI()), expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final OrgPasswordPolicySettings orgPasswordPolicy() {
|
public static final OrgPasswordPolicySettings passwordPolicy() {
|
||||||
return OrgPasswordPolicySettings.builder()
|
return OrgPasswordPolicySettings.builder()
|
||||||
.type("application/vnd.vmware.admin.organizationPasswordPolicySettings+xml")
|
.type("application/vnd.vmware.admin.organizationPasswordPolicySettings+xml")
|
||||||
.link(Link.builder()
|
.link(Link.builder()
|
||||||
|
@ -310,7 +500,7 @@ public class AdminOrgClientExpectTest extends BaseVCloudDirectorRestClientExpect
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final OrgPasswordPolicySettings updateOrgPasswordPolicy() {
|
public static final OrgPasswordPolicySettings updateOrgPasswordPolicy() {
|
||||||
return orgPasswordPolicy().toBuilder()
|
return passwordPolicy().toBuilder()
|
||||||
.accountLockoutEnabled(true)
|
.accountLockoutEnabled(true)
|
||||||
.invalidLoginsBeforeLockout(6)
|
.invalidLoginsBeforeLockout(6)
|
||||||
.accountLockoutIntervalMinutes(11)
|
.accountLockoutIntervalMinutes(11)
|
||||||
|
@ -329,14 +519,23 @@ public class AdminOrgClientExpectTest extends BaseVCloudDirectorRestClientExpect
|
||||||
VCloudDirectorMediaType.ORG_LEASE_SETTINGS)
|
VCloudDirectorMediaType.ORG_LEASE_SETTINGS)
|
||||||
.httpResponseBuilder().build());
|
.httpResponseBuilder().build());
|
||||||
|
|
||||||
OrgLeaseSettings expected = orgVAppLeaseSettings();
|
OrgLeaseSettings expected = vAppLeaseSettings();
|
||||||
|
|
||||||
assertEquals(client.getAdminOrgClient().getVAppLeaseSettings(orgRef.getURI()), expected);
|
assertEquals(client.getAdminOrgClient().getVAppLeaseSettings(orgRef.getURI()), expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final OrgLeaseSettings orgVAppLeaseSettings() {
|
public static final OrgLeaseSettings vAppLeaseSettings() {
|
||||||
return OrgLeaseSettings.builder()
|
return OrgLeaseSettings.builder()
|
||||||
|
.type("application/vnd.vmware.admin.vAppLeaseSettings+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/vAppLeaseSettings"))
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("edit")
|
||||||
|
.type("application/vnd.vmware.admin.vAppLeaseSettings+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/vAppLeaseSettings"))
|
||||||
|
.build())
|
||||||
|
.deleteOnStorageLeaseExpiration(false)
|
||||||
|
.deploymentLeaseSeconds(0)
|
||||||
|
.storageLeaseSeconds(0)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -354,13 +553,13 @@ public class AdminOrgClientExpectTest extends BaseVCloudDirectorRestClientExpect
|
||||||
VCloudDirectorMediaType.ORG_LEASE_SETTINGS)
|
VCloudDirectorMediaType.ORG_LEASE_SETTINGS)
|
||||||
.httpResponseBuilder().build());
|
.httpResponseBuilder().build());
|
||||||
|
|
||||||
OrgLeaseSettings expected = updateOrgVAppLeaseSettings();
|
OrgLeaseSettings expected = updateVAppLeaseSettings();
|
||||||
|
|
||||||
assertEquals(client.getAdminOrgClient().updateVAppLeaseSettings(orgRef.getURI(), expected), expected);
|
assertEquals(client.getAdminOrgClient().updateVAppLeaseSettings(orgRef.getURI(), expected), expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final OrgLeaseSettings updateOrgVAppLeaseSettings() {
|
public static final OrgLeaseSettings updateVAppLeaseSettings() {
|
||||||
return orgVAppLeaseSettings().toBuilder()
|
return vAppLeaseSettings().toBuilder()
|
||||||
|
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
@ -377,14 +576,22 @@ public class AdminOrgClientExpectTest extends BaseVCloudDirectorRestClientExpect
|
||||||
VCloudDirectorMediaType.ORG_VAPP_TEMPLATE_LEASE_SETTINGS)
|
VCloudDirectorMediaType.ORG_VAPP_TEMPLATE_LEASE_SETTINGS)
|
||||||
.httpResponseBuilder().build());
|
.httpResponseBuilder().build());
|
||||||
|
|
||||||
OrgVAppTemplateLeaseSettings expected = orgVAppTemplateLeaseSettings();
|
OrgVAppTemplateLeaseSettings expected = vAppTemplateLeaseSettings();
|
||||||
|
|
||||||
assertEquals(client.getAdminOrgClient().getVAppTemplateLeaseSettings(orgRef.getURI()), expected);
|
assertEquals(client.getAdminOrgClient().getVAppTemplateLeaseSettings(orgRef.getURI()), expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final OrgVAppTemplateLeaseSettings orgVAppTemplateLeaseSettings() {
|
public static final OrgVAppTemplateLeaseSettings vAppTemplateLeaseSettings() {
|
||||||
return OrgVAppTemplateLeaseSettings.builder()
|
return OrgVAppTemplateLeaseSettings.builder()
|
||||||
|
.type("application/vnd.vmware.admin.vAppTemplateLeaseSettings+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/vAppTemplateLeaseSettings"))
|
||||||
|
.link(Link.builder()
|
||||||
|
.rel("edit")
|
||||||
|
.type("application/vnd.vmware.admin.vAppTemplateLeaseSettings+xml")
|
||||||
|
.href(URI.create("https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/vAppTemplateLeaseSettings"))
|
||||||
|
.build())
|
||||||
|
.deleteOnStorageLeaseExpiration(false)
|
||||||
|
.storageLeaseSeconds(0)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -402,13 +609,13 @@ public class AdminOrgClientExpectTest extends BaseVCloudDirectorRestClientExpect
|
||||||
VCloudDirectorMediaType.ORG_VAPP_TEMPLATE_LEASE_SETTINGS)
|
VCloudDirectorMediaType.ORG_VAPP_TEMPLATE_LEASE_SETTINGS)
|
||||||
.httpResponseBuilder().build());
|
.httpResponseBuilder().build());
|
||||||
|
|
||||||
OrgVAppTemplateLeaseSettings expected = updateOrgVAppTemplateLeaseSettings();
|
OrgVAppTemplateLeaseSettings expected = updateVAppTemplateLeaseSettings();
|
||||||
|
|
||||||
assertEquals(client.getAdminOrgClient().updateVAppTemplateLeaseSettings(orgRef.getURI(), expected), expected);
|
assertEquals(client.getAdminOrgClient().updateVAppTemplateLeaseSettings(orgRef.getURI(), expected), expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final OrgVAppTemplateLeaseSettings updateOrgVAppTemplateLeaseSettings() {
|
public static final OrgVAppTemplateLeaseSettings updateVAppTemplateLeaseSettings() {
|
||||||
return orgVAppTemplateLeaseSettings().toBuilder()
|
return vAppTemplateLeaseSettings().toBuilder()
|
||||||
|
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,6 @@ public class AdminOrgClientLiveTest extends BaseVCloudDirectorClientLiveTest {
|
||||||
* Shared state between dependant tests.
|
* Shared state between dependant tests.
|
||||||
*/
|
*/
|
||||||
private ReferenceType<?> orgRef;
|
private ReferenceType<?> orgRef;
|
||||||
private AdminOrg org;
|
|
||||||
private OrgSettings settings, newSettings;
|
private OrgSettings settings, newSettings;
|
||||||
private OrgEmailSettings emailSettings, newEmailSettings;
|
private OrgEmailSettings emailSettings, newEmailSettings;
|
||||||
private OrgGeneralSettings generalSettings, newGeneralSettings;
|
private OrgGeneralSettings generalSettings, newGeneralSettings;
|
||||||
|
@ -76,13 +75,12 @@ public class AdminOrgClientLiveTest extends BaseVCloudDirectorClientLiveTest {
|
||||||
assertNotNull(orgRef, String.format(REF_REQ_LIVE, "admin org"));
|
assertNotNull(orgRef, String.format(REF_REQ_LIVE, "admin org"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// GET /admin/org/{id}
|
@Test(testName = "GET /admin/org/{id}")
|
||||||
|
public void testGetAdminOrg() {
|
||||||
// POST /admin/org/{id}/catalogs
|
AdminOrg adminOrg = orgClient.getOrg(orgRef.getURI());
|
||||||
|
|
||||||
// POST /admin/org/{id}/groups
|
|
||||||
|
|
||||||
|
|
||||||
|
Checks.checkAdminOrg(adminOrg);
|
||||||
|
}
|
||||||
|
|
||||||
@Test(testName = "GET /admin/org/{id}/settings/emailSettings")
|
@Test(testName = "GET /admin/org/{id}/settings/emailSettings")
|
||||||
public void testGetEmailSettings() {
|
public void testGetEmailSettings() {
|
||||||
|
@ -391,11 +389,11 @@ public class AdminOrgClientLiveTest extends BaseVCloudDirectorClientLiveTest {
|
||||||
public void testUpdateSettings() {
|
public void testUpdateSettings() {
|
||||||
try {
|
try {
|
||||||
newSettings = settings.toBuilder()
|
newSettings = settings.toBuilder()
|
||||||
.orgGeneralSettings(newGeneralSettings)
|
.generalSettings(newGeneralSettings)
|
||||||
.vAppLeaseSettings(newVAppLeaseSettings)
|
.vAppLeaseSettings(newVAppLeaseSettings)
|
||||||
.vAppTemplateLeaseSettings(newVAppTemplateLeaseSettings)
|
.vAppTemplateLeaseSettings(newVAppTemplateLeaseSettings)
|
||||||
.orgLdapSettings(newLdapSettings)
|
.ldapSettings(newLdapSettings)
|
||||||
.orgEmailSettings(newEmailSettings)
|
.emailSettings(newEmailSettings)
|
||||||
.passwordPolicy(newPasswordPolicy)
|
.passwordPolicy(newPasswordPolicy)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
@ -426,11 +424,11 @@ public class AdminOrgClientLiveTest extends BaseVCloudDirectorClientLiveTest {
|
||||||
Checks.checkOrgSettings(settings);
|
Checks.checkOrgSettings(settings);
|
||||||
} finally {
|
} finally {
|
||||||
settings = settings.toBuilder()
|
settings = settings.toBuilder()
|
||||||
.orgGeneralSettings(generalSettings)
|
.generalSettings(generalSettings)
|
||||||
.vAppLeaseSettings(vAppLeaseSettings)
|
.vAppLeaseSettings(vAppLeaseSettings)
|
||||||
.vAppTemplateLeaseSettings(vAppTemplateLeaseSettings)
|
.vAppTemplateLeaseSettings(vAppTemplateLeaseSettings)
|
||||||
.orgLdapSettings(ldapSettings)
|
.ldapSettings(ldapSettings)
|
||||||
.orgEmailSettings(emailSettings)
|
.emailSettings(emailSettings)
|
||||||
.passwordPolicy(passwordPolicy)
|
.passwordPolicy(passwordPolicy)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<AdminOrg xmlns="http://www.vmware.com/vcloud/v1.5" name="JClouds" id="urn:vcloud:org:6f312e42-cd2b-488d-a2bb-97519cd57ed0" type="application/vnd.vmware.admin.organization+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0" 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">
|
||||||
|
<Link rel="down" type="application/vnd.vmware.vcloud.tasksList+xml" href="https://vcloudbeta.bluelock.com/api/tasksList/6f312e42-cd2b-488d-a2bb-97519cd57ed0"/>
|
||||||
|
<Link rel="down" type="application/vnd.vmware.vcloud.metadata+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/metadata"/>
|
||||||
|
<Link rel="add" type="application/vnd.vmware.admin.catalog+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/catalogs"/>
|
||||||
|
<Link rel="add" type="application/vnd.vmware.admin.user+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/users"/>
|
||||||
|
<Link rel="add" type="application/vnd.vmware.admin.group+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/groups"/>
|
||||||
|
<Link rel="add" type="application/vnd.vmware.admin.orgNetwork+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/networks"/>
|
||||||
|
<Link rel="edit" type="application/vnd.vmware.admin.organization+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0"/>
|
||||||
|
<Link rel="remove" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0"/>
|
||||||
|
<Link rel="alternate" type="application/vnd.vmware.vcloud.org+xml" href="https://vcloudbeta.bluelock.com/api/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0"/>
|
||||||
|
<Description/>
|
||||||
|
<FullName>JClouds</FullName>
|
||||||
|
<IsEnabled>true</IsEnabled>
|
||||||
|
<Settings type="application/vnd.vmware.admin.orgSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings">
|
||||||
|
<Link rel="down" type="application/vnd.vmware.admin.vAppTemplateLeaseSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/vAppTemplateLeaseSettings"/>
|
||||||
|
<Link rel="down" type="application/vnd.vmware.admin.organizationEmailSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/email"/>
|
||||||
|
<Link rel="down" type="application/vnd.vmware.admin.vAppLeaseSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/vAppLeaseSettings"/>
|
||||||
|
<Link rel="down" type="application/vnd.vmware.admin.organizationPasswordPolicySettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/passwordPolicy"/>
|
||||||
|
<Link rel="down" type="application/vnd.vmware.admin.organizationGeneralSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/general"/>
|
||||||
|
<Link rel="down" type="application/vnd.vmware.admin.organizationLdapSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/ldap"/>
|
||||||
|
<Link rel="edit" type="application/vnd.vmware.admin.orgSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings"/>
|
||||||
|
<OrgGeneralSettings type="application/vnd.vmware.admin.organizationGeneralSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/general">
|
||||||
|
<Link rel="edit" type="application/vnd.vmware.admin.organizationGeneralSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/general"/>
|
||||||
|
<CanPublishCatalogs>false</CanPublishCatalogs>
|
||||||
|
<DeployedVMQuota>0</DeployedVMQuota>
|
||||||
|
<StoredVmQuota>0</StoredVmQuota>
|
||||||
|
<UseServerBootSequence>false</UseServerBootSequence>
|
||||||
|
<DelayAfterPowerOnSeconds>0</DelayAfterPowerOnSeconds>
|
||||||
|
</OrgGeneralSettings>
|
||||||
|
<VAppLeaseSettings type="application/vnd.vmware.admin.vAppLeaseSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/vAppLeaseSettings">
|
||||||
|
<Link rel="edit" type="application/vnd.vmware.admin.vAppLeaseSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/vAppLeaseSettings"/>
|
||||||
|
<DeleteOnStorageLeaseExpiration>false</DeleteOnStorageLeaseExpiration>
|
||||||
|
<DeploymentLeaseSeconds>0</DeploymentLeaseSeconds>
|
||||||
|
<StorageLeaseSeconds>0</StorageLeaseSeconds>
|
||||||
|
</VAppLeaseSettings>
|
||||||
|
<VAppTemplateLeaseSettings type="application/vnd.vmware.admin.vAppTemplateLeaseSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/vAppTemplateLeaseSettings">
|
||||||
|
<Link rel="edit" type="application/vnd.vmware.admin.vAppTemplateLeaseSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/vAppTemplateLeaseSettings"/>
|
||||||
|
<DeleteOnStorageLeaseExpiration>false</DeleteOnStorageLeaseExpiration>
|
||||||
|
<StorageLeaseSeconds>0</StorageLeaseSeconds>
|
||||||
|
</VAppTemplateLeaseSettings>
|
||||||
|
<OrgLdapSettings type="application/vnd.vmware.admin.organizationLdapSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/ldap">
|
||||||
|
<OrgLdapMode>NONE</OrgLdapMode>
|
||||||
|
</OrgLdapSettings>
|
||||||
|
<OrgEmailSettings type="application/vnd.vmware.admin.organizationEmailSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/email">
|
||||||
|
<Link rel="edit" type="application/vnd.vmware.admin.organizationEmailSettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/email"/>
|
||||||
|
<IsDefaultSmtpServer>true</IsDefaultSmtpServer>
|
||||||
|
<IsDefaultOrgEmail>true</IsDefaultOrgEmail>
|
||||||
|
<FromEmailAddress/>
|
||||||
|
<DefaultSubjectPrefix/>
|
||||||
|
<IsAlertEmailToAllAdmins>true</IsAlertEmailToAllAdmins>
|
||||||
|
<SmtpServerSettings>
|
||||||
|
<IsUseAuthentication>false</IsUseAuthentication>
|
||||||
|
<Host/>
|
||||||
|
<Username/>
|
||||||
|
</SmtpServerSettings>
|
||||||
|
</OrgEmailSettings>
|
||||||
|
<OrgPasswordPolicySettings type="application/vnd.vmware.admin.organizationPasswordPolicySettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/passwordPolicy">
|
||||||
|
<Link rel="edit" type="application/vnd.vmware.admin.organizationPasswordPolicySettings+xml" href="https://vcloudbeta.bluelock.com/api/admin/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0/settings/passwordPolicy"/>
|
||||||
|
<AccountLockoutEnabled>false</AccountLockoutEnabled>
|
||||||
|
<InvalidLoginsBeforeLockout>5</InvalidLoginsBeforeLockout>
|
||||||
|
<AccountLockoutIntervalMinutes>10</AccountLockoutIntervalMinutes>
|
||||||
|
</OrgPasswordPolicySettings>
|
||||||
|
</Settings>
|
||||||
|
<Users>
|
||||||
|
<UserReference type="application/vnd.vmware.admin.user+xml" name="adam.lowe@cloudsoftcorp.com" href="https://vcloudbeta.bluelock.com/api/admin/user/672ebb67-d8ff-4201-9c1b-c1be869e526c"/>
|
||||||
|
<UserReference type="application/vnd.vmware.admin.user+xml" name="adrian@jclouds.org" href="https://vcloudbeta.bluelock.com/api/admin/user/8c360b93-ed25-4c9a-8e24-d48cd9966d93"/>
|
||||||
|
<UserReference type="application/vnd.vmware.admin.user+xml" name="qunying.huang@enstratus.com" href="https://vcloudbeta.bluelock.com/api/admin/user/967d317c-4273-4a95-b8a4-bf63b78e9c69"/>
|
||||||
|
<UserReference type="application/vnd.vmware.admin.user+xml" name="dan@cloudsoftcorp.com" href="https://vcloudbeta.bluelock.com/api/admin/user/ae75edd2-12de-414c-8e85-e6ea10442c08"/>
|
||||||
|
<UserReference type="application/vnd.vmware.admin.user+xml" name="adk@cloudsoftcorp.com" href="https://vcloudbeta.bluelock.com/api/admin/user/e9eb1b29-0404-4c5e-8ef7-e584acc51da9"/>
|
||||||
|
</Users>
|
||||||
|
<Groups/>
|
||||||
|
<Catalogs>
|
||||||
|
<CatalogReference type="application/vnd.vmware.admin.catalog+xml" name="QunyingTestCatalog" href="https://vcloudbeta.bluelock.com/api/admin/catalog/7212e451-76e1-4631-b2de-ba1dfd8080e4"/>
|
||||||
|
<CatalogReference type="application/vnd.vmware.admin.catalog+xml" name="Public" href="https://vcloudbeta.bluelock.com/api/admin/catalog/9e08c2f6-077a-42ce-bece-d5332e2ebb5c"/>
|
||||||
|
<CatalogReference type="application/vnd.vmware.admin.catalog+xml" name="dantest" href="https://vcloudbeta.bluelock.com/api/admin/catalog/b542aff4-9f97-4f51-a126-4330fbf62f02"/>
|
||||||
|
<CatalogReference type="application/vnd.vmware.admin.catalog+xml" name="test" href="https://vcloudbeta.bluelock.com/api/admin/catalog/b7289d54-4ca4-497f-9a93-2d4afc97e3da"/>
|
||||||
|
</Catalogs>
|
||||||
|
<Vdcs>
|
||||||
|
<Vdc type="application/vnd.vmware.vcloud.vdc+xml" name="Cluster01-JClouds" href="https://vcloudbeta.bluelock.com/api/vdc/d16d333b-e3c0-4176-845d-a5ee6392df07"/>
|
||||||
|
</Vdcs>
|
||||||
|
<Networks>
|
||||||
|
<Network type="application/vnd.vmware.admin.network+xml" name="ilsolation01-Jclouds" href="https://vcloudbeta.bluelock.com/api/admin/network/f3ba8256-6f48-4512-aad6-600e85b4dc38"/>
|
||||||
|
<Network type="application/vnd.vmware.admin.network+xml" name="internet01-Jclouds" href="https://vcloudbeta.bluelock.com/api/admin/network/55a677cf-ab3f-48ae-b880-fab90421980c"/>
|
||||||
|
</Networks>
|
||||||
|
</AdminOrg>
|
Loading…
Reference in New Issue