mirror of https://github.com/apache/jclouds.git
xml enum annotation
This commit is contained in:
parent
fc782dd7ee
commit
5e44ad39c2
|
@ -19,15 +19,22 @@
|
||||||
package org.jclouds.vcloud.director.v1_5.domain;
|
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 static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
import javax.xml.bind.annotation.XmlEnumValue;
|
||||||
import javax.xml.bind.annotation.XmlType;
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
import com.google.common.base.Function;
|
||||||
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.ImmutableSet;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used when OrgLdapMode=CUSTOM to define connection details for
|
* Used when OrgLdapMode=CUSTOM to define connection details for
|
||||||
|
@ -76,34 +83,74 @@ import com.google.common.base.Objects.ToStringHelper;
|
||||||
"groupAttributes"
|
"groupAttributes"
|
||||||
})
|
})
|
||||||
public class CustomOrgLdapSettings {
|
public class CustomOrgLdapSettings {
|
||||||
public static final class AuthenticationMechanism {
|
@XmlType
|
||||||
public static final String SIMPLE = "simple";
|
@XmlEnum(String.class)
|
||||||
public static final String KERBEROS = "kerberos";
|
public static enum AuthenticationMechanism {
|
||||||
public static final String MD5DIGEST = "md5digest";
|
@XmlEnumValue("simple") SIMPLE("simple"),
|
||||||
public static final String NTLM = "ntlm";
|
@XmlEnumValue("kerberos") KERBEROS("kerberos"),
|
||||||
|
@XmlEnumValue("md5digest") MD5DIGEST("md5digest"),
|
||||||
|
@XmlEnumValue("ntlm") NTLM("ntlm"),
|
||||||
|
UNRECOGNIZED("unrecognized");
|
||||||
|
|
||||||
/**
|
public static final List<AuthenticationMechanism> ALL = ImmutableList.of(
|
||||||
* All acceptable {@link CustomOrgLdapSettings#getAuthenticationMechanism()} values.
|
SIMPLE, KERBEROS, MD5DIGEST, NTLM);
|
||||||
* <p/>
|
|
||||||
* This list must be updated whenever a new authentication mechanism is added.
|
protected final String stringValue;
|
||||||
*/
|
|
||||||
public static final List<String> ALL = Arrays.asList(
|
AuthenticationMechanism(String stringValue) {
|
||||||
SIMPLE, KERBEROS, MD5DIGEST, NTLM
|
this.stringValue = stringValue;
|
||||||
);
|
}
|
||||||
|
|
||||||
|
public String value() {
|
||||||
|
return stringValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected final static Map<String, AuthenticationMechanism> AUTHENTICATION_MECHANISM_BY_ID = Maps.uniqueIndex(
|
||||||
|
ImmutableSet.copyOf(AuthenticationMechanism.values()), new Function<AuthenticationMechanism, String>() {
|
||||||
|
@Override
|
||||||
|
public String apply(AuthenticationMechanism input) {
|
||||||
|
return input.stringValue;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
public static AuthenticationMechanism fromValue(String value) {
|
||||||
|
AuthenticationMechanism authMechanism = AUTHENTICATION_MECHANISM_BY_ID.get(checkNotNull(value, "stringValue"));
|
||||||
|
return authMechanism == null ? UNRECOGNIZED : authMechanism;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final class ConnectorType {
|
@XmlType
|
||||||
public static final String ACTIVE_DIRECTORY = "ACTIVE_DIRECTORY";
|
@XmlEnum(String.class)
|
||||||
public static final String OPEN_LDAP = "OPEN_LDAP";
|
public static enum ConnectorType {
|
||||||
|
@XmlEnumValue("ACTIVE_DIRECTORY") ACTIVE_DIRECTORY("ACTIVE_DIRECTORY"),
|
||||||
|
@XmlEnumValue("OPEN_LDAP") OPEN_LDAP("OPEN_LDAP"),
|
||||||
|
UNRECOGNIZED("unrecognized");
|
||||||
|
|
||||||
/**
|
public static final List<ConnectorType> ALL = ImmutableList.of(
|
||||||
* All acceptable {@link OrgLdapSettings#getLdapMode()} values.
|
ACTIVE_DIRECTORY, OPEN_LDAP);
|
||||||
* <p/>
|
|
||||||
* This list must be updated whenever a new mode is added.
|
protected final String stringValue;
|
||||||
*/
|
|
||||||
public static final List<String> ALL = Arrays.asList(
|
ConnectorType(String stringValue) {
|
||||||
ACTIVE_DIRECTORY, OPEN_LDAP
|
this.stringValue = stringValue;
|
||||||
);
|
}
|
||||||
|
|
||||||
|
public String value() {
|
||||||
|
return stringValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected final static Map<String, ConnectorType> CONNECTOR_TYPE_BY_ID = Maps.uniqueIndex(
|
||||||
|
ImmutableSet.copyOf(ConnectorType.values()), new Function<ConnectorType, String>() {
|
||||||
|
@Override
|
||||||
|
public String apply(ConnectorType input) {
|
||||||
|
return input.stringValue;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
public static ConnectorType fromValue(String value) {
|
||||||
|
ConnectorType type = CONNECTOR_TYPE_BY_ID.get(checkNotNull(value, "stringValue"));
|
||||||
|
return type == null ? UNRECOGNIZED : type;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Builder<?> builder() {
|
public static Builder<?> builder() {
|
||||||
|
|
|
@ -25,7 +25,10 @@ import java.util.Arrays;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.xml.bind.annotation.XmlAttribute;
|
import javax.xml.bind.annotation.XmlAttribute;
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
import javax.xml.bind.annotation.XmlEnumValue;
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
import org.jclouds.logging.Logger;
|
import org.jclouds.logging.Logger;
|
||||||
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
|
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
|
||||||
|
@ -50,21 +53,22 @@ public class Error {
|
||||||
@Resource
|
@Resource
|
||||||
protected static Logger logger = Logger.NULL;
|
protected static Logger logger = Logger.NULL;
|
||||||
|
|
||||||
|
@XmlType
|
||||||
|
@XmlEnum(Integer.class)
|
||||||
public static enum Code {
|
public static enum Code {
|
||||||
|
@XmlEnumValue("200") OK(200),
|
||||||
OK(200),
|
@XmlEnumValue("201") CREATED(201),
|
||||||
CREATED(201),
|
@XmlEnumValue("202") ACCEPTED(202),
|
||||||
ACCEPTED(202),
|
@XmlEnumValue("204") NO_CONTENT(204),
|
||||||
NO_CONTENT(204),
|
@XmlEnumValue("303") SEE_OTHER(303),
|
||||||
SEE_OTHER(303),
|
@XmlEnumValue("400") BAD_REQUEST(400),
|
||||||
BAD_REQUEST(400),
|
@XmlEnumValue("401") UNAUTHORIZED(401),
|
||||||
UNAUTHORIZED(401),
|
@XmlEnumValue("403") FORBIDDEN(403), // NOTE also means 'not found' for entities
|
||||||
FORBIDDEN(403), // NOTE also means 'not found' for entities
|
@XmlEnumValue("404") NOT_FOUND(404),
|
||||||
NOT_FOUND(404),
|
@XmlEnumValue("405") NOT_ALLOWED(405),
|
||||||
NOT_ALLOWED(405),
|
@XmlEnumValue("500") INTERNAL_ERROR(500),
|
||||||
INTERNAL_ERROR(500),
|
@XmlEnumValue("501") NOT_IMPLEMENTED(501),
|
||||||
NOT_IMPLEMENTED(501),
|
@XmlEnumValue("503") UNAVAILABLE(503),
|
||||||
UNAVAILABLE(503),
|
|
||||||
UNRECOGNIZED(-1);
|
UNRECOGNIZED(-1);
|
||||||
|
|
||||||
private Integer majorErrorCode;
|
private Integer majorErrorCode;
|
||||||
|
|
|
@ -21,15 +21,21 @@ 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 static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAttribute;
|
import javax.xml.bind.annotation.XmlAttribute;
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
import javax.xml.bind.annotation.XmlEnumValue;
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
import com.google.common.base.Function;
|
||||||
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.ImmutableSet;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A link.
|
* A link.
|
||||||
|
@ -43,70 +49,69 @@ import com.google.common.base.Objects.ToStringHelper;
|
||||||
@XmlRootElement(name = "Link")
|
@XmlRootElement(name = "Link")
|
||||||
public class Link extends Reference {
|
public class Link extends Reference {
|
||||||
|
|
||||||
public static final class Rel {
|
@XmlType
|
||||||
public static final String ADD = "add";
|
@XmlEnum(String.class)
|
||||||
public static final String ALTERNATE = "alternate";
|
public static enum Rel {
|
||||||
public static final String CATALOG_ITEM = "catalogItem";
|
@XmlEnumValue("add") ADD("add"),
|
||||||
public static final String COLLABORATION_ABORT = "collaboration:abort";
|
@XmlEnumValue("alternate") ALTERNATE("alternate"),
|
||||||
public static final String COLLABORATION_FAIL = "collaboration:fail";
|
@XmlEnumValue("catalogItem") CATALOG_ITEM("catalogItem"),
|
||||||
public static final String COLLABORATION_RESUME = "collaboration:resume";
|
@XmlEnumValue("collaboration:abort") COLLABORATION_ABORT("collaboration:abort"),
|
||||||
public static final String CONSOLIDATE = "consolidate";
|
@XmlEnumValue("collaboration:fail") COLLABORATION_FAIL("collaboration:fail"),
|
||||||
public static final String CONTROL_ACCESS = "controlAccess";
|
@XmlEnumValue("collaboration:resume") COLLABORATION_RESUME("collaboration:resume"),
|
||||||
public static final String COPY = "copy";
|
@XmlEnumValue("consolidate") CONSOLIDATE("consolidate"),
|
||||||
public static final String DEPLOY = "deploy";
|
@XmlEnumValue("controlAccess") CONTROL_ACCESS("controlAccess"),
|
||||||
public static final String DISABLE = "disable";
|
@XmlEnumValue("copy") COPY("copy"),
|
||||||
public static final String DISCARD_STATE = "discardState";
|
@XmlEnumValue("deploy") DEPLOY("deploy"),
|
||||||
public static final String DOWN = "down";
|
@XmlEnumValue("disable") DISABLE("disable"),
|
||||||
public static final String DOWNLOAD_ALTERNATE = "download:alternate";
|
@XmlEnumValue("discardState") DISCARD_STATE("discardState"),
|
||||||
public static final String DOWNLOAD_DEFAULT = "download:default";
|
@XmlEnumValue("down") DOWN("down"),
|
||||||
public static final String EDIT = "edit";
|
@XmlEnumValue("download:alternate") DOWNLOAD_ALTERNATE("download:alternate"),
|
||||||
public static final String ENABLE = "enable";
|
@XmlEnumValue("download:default") DOWNLOAD_DEFAULT("download:default"),
|
||||||
public static final String FIRST_PAGE = "firstPage";
|
@XmlEnumValue("edit") EDIT("edit"),
|
||||||
public static final String INSTALL_VMWARE_TOOLS = "installVmwareTools";
|
@XmlEnumValue("enable") ENABLE("enable"),
|
||||||
public static final String LAST_PAGE = "lastPage";
|
@XmlEnumValue("firstPage") FIRST_PAGE("firstPage"),
|
||||||
public static final String EJECT_MEDIA = "media:ejectMedia";
|
@XmlEnumValue("installVmwareTools") INSTALL_VMWARE_TOOLS("installVmwareTools"),
|
||||||
public static final String INSERT_MEDIA = "media:insertMedia";
|
@XmlEnumValue("lastPage") LAST_PAGE("lastPage"),
|
||||||
public static final String MOVE = "move";
|
@XmlEnumValue("media:ejectMedia") EJECT_MEDIA("media:ejectMedia"),
|
||||||
public static final String NEXT_PAGE = "nextPage";
|
@XmlEnumValue("media:insertMedia") INSERT_MEDIA("media:insertMedia"),
|
||||||
public static final String OVA = "ova";
|
@XmlEnumValue("move") MOVE("move"),
|
||||||
public static final String OVF = "ovf";
|
@XmlEnumValue("nextPage") NEXT_PAGE("nextPage"),
|
||||||
public static final String POWER_OFF = "power:powerOff";
|
@XmlEnumValue("ova") OVA("ova"),
|
||||||
public static final String POWER_ON = "power:powerOn";
|
@XmlEnumValue("ovf") OVF("ovf"),
|
||||||
public static final String REBOOT = "power:reboot";
|
@XmlEnumValue("power:powerOff") POWER_OFF("power:powerOff"),
|
||||||
public static final String RESET = "power:reset";
|
@XmlEnumValue("power:powerOn") POWER_ON("power:powerOn"),
|
||||||
public static final String SHUTDOWN = "power:shutdown";
|
@XmlEnumValue("power:reboot") REBOOT("power:reboot"),
|
||||||
public static final String SUSPEND = "power:suspend";
|
@XmlEnumValue("power:reset") RESET("power:reset"),
|
||||||
public static final String PREVIOUS_PAGE = "previousPage";
|
@XmlEnumValue("power:shutdown") SHUTDOWN("power:shutdown"),
|
||||||
public static final String PUBLISH = "publish";
|
@XmlEnumValue("power:suspend") SUSPEND("power:suspend"),
|
||||||
public static final String RECOMPOSE = "recompose";
|
@XmlEnumValue("previousPage") PREVIOUS_PAGE("previousPage"),
|
||||||
public static final String RECONNECT = "reconnect";
|
@XmlEnumValue("publish") PUBLISH("publish"),
|
||||||
public static final String REGISTER = "register";
|
@XmlEnumValue("recompose") RECOMPOSE("recompose"),
|
||||||
public static final String REJECT = "reject";
|
@XmlEnumValue("reconnect") RECONNECT("reconnect"),
|
||||||
public static final String RELOCATE = "relocate";
|
@XmlEnumValue("register") REGISTER("register"),
|
||||||
public static final String REMOVE = "remove";
|
@XmlEnumValue("reject") REJECT("reject"),
|
||||||
public static final String SCREEN_ACQUIRE_TICKET = "screen:acquireTicket";
|
@XmlEnumValue("relocate") RELOCATE("relocate"),
|
||||||
public static final String SCREEN_THUMBNAIL = "screen:thumbnail";
|
@XmlEnumValue("remove") REMOVE("remove"),
|
||||||
public static final String TASK_CANCEL = "task:cancel";
|
@XmlEnumValue("screen:acquireTicket") SCREEN_ACQUIRE_TICKET("screen:acquireTicket"),
|
||||||
public static final String BLOCKING_TASK = "blockingTask";
|
@XmlEnumValue("screen:thumbnail") SCREEN_THUMBNAIL("screen:thumbnail"),
|
||||||
public static final String TASK_OWNER = "taskOwner";
|
@XmlEnumValue("task:cancel") TASK_CANCEL("task:cancel"),
|
||||||
public static final String TASK_PARAMS = "taskParams";
|
@XmlEnumValue("blockingTask") BLOCKING_TASK("blockingTask"),
|
||||||
public static final String TASK_REQUEST = "taskRequest";
|
@XmlEnumValue("taskOwner") TASK_OWNER("taskOwner"),
|
||||||
public static final String UNDEPLOY = "undeploy";
|
@XmlEnumValue("taskParams") TASK_PARAMS("taskParams"),
|
||||||
public static final String UNLOCK = "unlock";
|
@XmlEnumValue("taskRequest") TASK_REQUEST("taskRequest"),
|
||||||
public static final String UNREGISTER = "unregister";
|
@XmlEnumValue("undeploy") UNDEPLOY("undeploy"),
|
||||||
public static final String UP = "up";
|
@XmlEnumValue("unlock") UNLOCK("unlock"),
|
||||||
public static final String UPDATE_PROGRESS = "updateProgress";
|
@XmlEnumValue("unregister") UNREGISTER("unregister"),
|
||||||
public static final String UPGRADE = "upgrade";
|
@XmlEnumValue("up") UP("up"),
|
||||||
public static final String UPLOAD_ALTERNATE = "upload:alternate";
|
@XmlEnumValue("updateProgress") UPDATE_PROGRESS("updateProgress"),
|
||||||
public static final String UPLOAD_DEFAULT = "upload:default";
|
@XmlEnumValue("upgrade") UPGRADE("upgrade"),
|
||||||
public static final String REPAIR = "repair";
|
@XmlEnumValue("upload:alternate") UPLOAD_ALTERNATE("upload:alternate"),
|
||||||
|
@XmlEnumValue("upload:default") UPLOAD_DEFAULT("upload:default"),
|
||||||
|
@XmlEnumValue("repair") REPAIR("repair"),
|
||||||
|
|
||||||
/**
|
UNRECOGNIZED("unrecognized");
|
||||||
* All acceptable {@link Link#getRel()} values.
|
|
||||||
*
|
public static final List<Rel> ALL = ImmutableList.of(
|
||||||
* This list must be updated whenever a new relationship is added.
|
|
||||||
*/
|
|
||||||
public static final List<String> ALL = Arrays.asList(
|
|
||||||
ADD, ALTERNATE, CATALOG_ITEM, COLLABORATION_ABORT,
|
ADD, ALTERNATE, CATALOG_ITEM, COLLABORATION_ABORT,
|
||||||
COLLABORATION_FAIL, COLLABORATION_RESUME, CONSOLIDATE,
|
COLLABORATION_FAIL, COLLABORATION_RESUME, CONSOLIDATE,
|
||||||
CONTROL_ACCESS, COPY, DEPLOY, DISABLE, DISCARD_STATE, DOWN,
|
CONTROL_ACCESS, COPY, DEPLOY, DISABLE, DISCARD_STATE, DOWN,
|
||||||
|
@ -118,8 +123,30 @@ public class Link extends Reference {
|
||||||
SCREEN_THUMBNAIL, TASK_CANCEL, BLOCKING_TASK, TASK_OWNER,
|
SCREEN_THUMBNAIL, TASK_CANCEL, BLOCKING_TASK, TASK_OWNER,
|
||||||
TASK_PARAMS, TASK_REQUEST, UNDEPLOY, UNLOCK, UNREGISTER, UP,
|
TASK_PARAMS, TASK_REQUEST, UNDEPLOY, UNLOCK, UNREGISTER, UP,
|
||||||
UPDATE_PROGRESS, UPGRADE, UPLOAD_ALTERNATE, UPLOAD_DEFAULT,
|
UPDATE_PROGRESS, UPGRADE, UPLOAD_ALTERNATE, UPLOAD_DEFAULT,
|
||||||
UPLOAD_DEFAULT
|
UPLOAD_DEFAULT);
|
||||||
);
|
|
||||||
|
protected final String stringValue;
|
||||||
|
|
||||||
|
Rel(String stringValue) {
|
||||||
|
this.stringValue = stringValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String value() {
|
||||||
|
return stringValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected final static Map<String, Rel> REL_BY_ID = Maps.uniqueIndex(
|
||||||
|
ImmutableSet.copyOf(Rel.values()), new Function<Rel, String>() {
|
||||||
|
@Override
|
||||||
|
public String apply(Rel input) {
|
||||||
|
return input.stringValue;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
public static Rel fromValue(String value) {
|
||||||
|
Rel rel = REL_BY_ID.get(checkNotNull(value, "stringValue"));
|
||||||
|
return rel == null ? UNRECOGNIZED : rel;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Builder<?> builder() {
|
public static Builder<?> builder() {
|
||||||
|
|
|
@ -19,16 +19,24 @@ f * Licensed to jclouds, Inc. (jclouds) under one or more
|
||||||
package org.jclouds.vcloud.director.v1_5.domain;
|
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 static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAttribute;
|
import javax.xml.bind.annotation.XmlAttribute;
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
import javax.xml.bind.annotation.XmlEnumValue;
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
import com.google.common.base.Function;
|
||||||
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.ImmutableSet;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a media.
|
* Represents a media.
|
||||||
|
@ -40,11 +48,37 @@ import com.google.common.base.Objects.ToStringHelper;
|
||||||
@XmlRootElement(name = "Media")
|
@XmlRootElement(name = "Media")
|
||||||
public class Media extends ResourceEntityType {
|
public class Media extends ResourceEntityType {
|
||||||
|
|
||||||
public static final class ImageType {
|
@XmlType
|
||||||
public static final String ISO = "iso";
|
@XmlEnum(String.class)
|
||||||
public static final String FLOPPY = "floppy";
|
public static enum ImageType {
|
||||||
|
@XmlEnumValue("iso") ISO("iso"),
|
||||||
|
@XmlEnumValue("floppy") FLOPPY("floppy"),
|
||||||
|
UNRECOGNIZED("unrecognized");
|
||||||
|
|
||||||
public static final List<String> ALL = Arrays.asList(ISO, FLOPPY);
|
public static final List<ImageType> ALL = ImmutableList.of(ISO, FLOPPY);
|
||||||
|
|
||||||
|
protected final String stringValue;
|
||||||
|
|
||||||
|
ImageType(String stringValue) {
|
||||||
|
this.stringValue = stringValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String value() {
|
||||||
|
return stringValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected final static Map<String, ImageType> STATUS_BY_ID = Maps.uniqueIndex(
|
||||||
|
ImmutableSet.copyOf(ImageType.values()), new Function<ImageType, String>() {
|
||||||
|
@Override
|
||||||
|
public String apply(ImageType input) {
|
||||||
|
return input.stringValue;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
public static ImageType fromValue(String value) {
|
||||||
|
ImageType type = STATUS_BY_ID.get(checkNotNull(value, "stringValue"));
|
||||||
|
return type == null ? UNRECOGNIZED : type;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Builder<?> builder() {
|
public static Builder<?> builder() {
|
||||||
|
@ -61,7 +95,7 @@ public class Media extends ResourceEntityType {
|
||||||
public static abstract class Builder<B extends Builder<B>> extends ResourceEntityType.Builder<B> {
|
public static abstract class Builder<B extends Builder<B>> extends ResourceEntityType.Builder<B> {
|
||||||
|
|
||||||
private Owner owner;
|
private Owner owner;
|
||||||
private String imageType;
|
private ImageType imageType;
|
||||||
private long size;
|
private long size;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -75,7 +109,7 @@ public class Media extends ResourceEntityType {
|
||||||
/**
|
/**
|
||||||
* @see Media#getImageType()
|
* @see Media#getImageType()
|
||||||
*/
|
*/
|
||||||
public B imageType(String imageType) {
|
public B imageType(Media.ImageType imageType) {
|
||||||
this.imageType = imageType;
|
this.imageType = imageType;
|
||||||
return self();
|
return self();
|
||||||
}
|
}
|
||||||
|
@ -113,7 +147,7 @@ public class Media extends ResourceEntityType {
|
||||||
@XmlElement(name = "Owner")
|
@XmlElement(name = "Owner")
|
||||||
protected Owner owner;
|
protected Owner owner;
|
||||||
@XmlAttribute(required = true)
|
@XmlAttribute(required = true)
|
||||||
protected String imageType;
|
protected ImageType imageType;
|
||||||
@XmlAttribute(required = true)
|
@XmlAttribute(required = true)
|
||||||
protected long size;
|
protected long size;
|
||||||
|
|
||||||
|
@ -127,7 +161,7 @@ public class Media extends ResourceEntityType {
|
||||||
/**
|
/**
|
||||||
* Gets the value of the imageType property.
|
* Gets the value of the imageType property.
|
||||||
*/
|
*/
|
||||||
public String getImageType() {
|
public ImageType getImageType() {
|
||||||
return imageType;
|
return imageType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,32 +19,60 @@
|
||||||
package org.jclouds.vcloud.director.v1_5.domain;
|
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 static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
import javax.xml.bind.annotation.XmlEnumValue;
|
||||||
import javax.xml.bind.annotation.XmlSeeAlso;
|
import javax.xml.bind.annotation.XmlSeeAlso;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
import com.google.common.base.Function;
|
||||||
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.ImmutableSet;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
|
||||||
@XmlSeeAlso({ OrgNetwork.class, ExternalNetwork.class })
|
@XmlSeeAlso({ OrgNetwork.class, ExternalNetwork.class })
|
||||||
public abstract class Network extends EntityType {
|
public abstract class Network extends EntityType {
|
||||||
public static final class FenceMode {
|
|
||||||
|
|
||||||
public static final String BRIDGED = "bridged";
|
@XmlType
|
||||||
public static final String ISOLATED = "isolated";
|
@XmlEnum(String.class)
|
||||||
public static final String NAT_ROUTED = "natRouted";
|
public static enum FenceMode {
|
||||||
|
@XmlEnumValue("bridged") BRIDGED("bridged"),
|
||||||
|
@XmlEnumValue("isolated") ISOLATED("isolated"),
|
||||||
|
@XmlEnumValue("natRouted") NAT_ROUTED("natRouted"),
|
||||||
|
UNRECOGNIZED("unrecognized");
|
||||||
|
|
||||||
/**
|
public static final List<FenceMode> ALL = ImmutableList.of(
|
||||||
* All acceptable {@link Network#getFenceMode()} values.
|
BRIDGED, ISOLATED, NAT_ROUTED);
|
||||||
* <p/>
|
|
||||||
* This list must be updated whenever a new mode is added.
|
protected final String stringValue;
|
||||||
*/
|
|
||||||
public static final List<String> ALL = Arrays.asList(
|
FenceMode(String stringValue) {
|
||||||
BRIDGED, ISOLATED, NAT_ROUTED
|
this.stringValue = stringValue;
|
||||||
);
|
}
|
||||||
|
|
||||||
|
public String value() {
|
||||||
|
return stringValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected final static Map<String, FenceMode> FENCE_MODE_BY_ID = Maps.uniqueIndex(
|
||||||
|
ImmutableSet.copyOf(FenceMode.values()), new Function<FenceMode, String>() {
|
||||||
|
@Override
|
||||||
|
public String apply(FenceMode input) {
|
||||||
|
return input.stringValue;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
public static FenceMode fromValue(String value) {
|
||||||
|
FenceMode mode = FENCE_MODE_BY_ID.get(checkNotNull(value, "stringValue"));
|
||||||
|
return mode == null ? UNRECOGNIZED : mode;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract static class Builder<T extends Builder<T>> extends EntityType.Builder<T> {
|
public abstract static class Builder<T extends Builder<T>> extends EntityType.Builder<T> {
|
||||||
|
|
|
@ -25,6 +25,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.jclouds.vcloud.director.v1_5.domain.Network.FenceMode;
|
||||||
|
|
||||||
import com.google.common.base.Objects;
|
import com.google.common.base.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -47,7 +49,7 @@ public class NetworkConfiguration {
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
private IpScope ipScope;
|
private IpScope ipScope;
|
||||||
private Reference parentNetwork;
|
private Reference parentNetwork;
|
||||||
private String fenceMode;
|
private FenceMode fenceMode;
|
||||||
private Boolean retainNetInfoAcrossDeployments;
|
private Boolean retainNetInfoAcrossDeployments;
|
||||||
private NetworkFeatures features;
|
private NetworkFeatures features;
|
||||||
private SyslogServerSettings syslogServerSettings;
|
private SyslogServerSettings syslogServerSettings;
|
||||||
|
@ -72,7 +74,7 @@ public class NetworkConfiguration {
|
||||||
/**
|
/**
|
||||||
* @see NetworkConfiguration#getFenceMode()
|
* @see NetworkConfiguration#getFenceMode()
|
||||||
*/
|
*/
|
||||||
public Builder fenceMode(String fenceMode) {
|
public Builder fenceMode(FenceMode fenceMode) {
|
||||||
this.fenceMode = fenceMode;
|
this.fenceMode = fenceMode;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -122,7 +124,7 @@ public class NetworkConfiguration {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public NetworkConfiguration(IpScope ipScope, Reference parentNetwork, String fenceMode, Boolean retainNetInfoAcrossDeployments,
|
public NetworkConfiguration(IpScope ipScope, Reference parentNetwork, FenceMode fenceMode, Boolean retainNetInfoAcrossDeployments,
|
||||||
NetworkFeatures features, SyslogServerSettings syslogServerSettings, RouterInfo routerInfo) {
|
NetworkFeatures features, SyslogServerSettings syslogServerSettings, RouterInfo routerInfo) {
|
||||||
this.ipScope = ipScope;
|
this.ipScope = ipScope;
|
||||||
this.parentNetwork = parentNetwork;
|
this.parentNetwork = parentNetwork;
|
||||||
|
@ -142,7 +144,7 @@ public class NetworkConfiguration {
|
||||||
@XmlElement(name = "ParentNetwork")
|
@XmlElement(name = "ParentNetwork")
|
||||||
private Reference parentNetwork;
|
private Reference parentNetwork;
|
||||||
@XmlElement(name = "FenceMode")
|
@XmlElement(name = "FenceMode")
|
||||||
private String fenceMode;
|
private FenceMode fenceMode;
|
||||||
@XmlElement(name = "RetainNetInfoAcrossDeployments")
|
@XmlElement(name = "RetainNetInfoAcrossDeployments")
|
||||||
private Boolean retainNetInfoAcrossDeployments;
|
private Boolean retainNetInfoAcrossDeployments;
|
||||||
@XmlElement(name = "Features")
|
@XmlElement(name = "Features")
|
||||||
|
@ -174,7 +176,7 @@ public class NetworkConfiguration {
|
||||||
* isolated (not connected to any other network), natRouted (connected to the ParentNetwork via a
|
* isolated (not connected to any other network), natRouted (connected to the ParentNetwork via a
|
||||||
* NAT service)
|
* NAT service)
|
||||||
*/
|
*/
|
||||||
public String getFenceMode() {
|
public FenceMode getFenceMode() {
|
||||||
return fenceMode;
|
return fenceMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,13 +23,19 @@ import static com.google.common.base.Objects.equal;
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAttribute;
|
import javax.xml.bind.annotation.XmlAttribute;
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
import javax.xml.bind.annotation.XmlEnumValue;
|
||||||
import javax.xml.bind.annotation.XmlType;
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
import com.google.common.base.Function;
|
||||||
import com.google.common.base.Objects;
|
import com.google.common.base.Objects;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -70,30 +76,38 @@ import com.google.common.collect.ImmutableList;
|
||||||
})
|
})
|
||||||
public class NetworkConnection {
|
public class NetworkConnection {
|
||||||
|
|
||||||
|
@XmlType
|
||||||
|
@XmlEnum(String.class)
|
||||||
public static enum IpAddressAllocationMode {
|
public static enum IpAddressAllocationMode {
|
||||||
POOL("pool"),
|
@XmlEnumValue("pool") POOL("pool"),
|
||||||
DHCP("dhcp"),
|
@XmlEnumValue("dhcp") DHCP("dhcp"),
|
||||||
MANUAL("manual"),
|
@XmlEnumValue("manual") MANUAL("manual"),
|
||||||
NONE("none"),
|
@XmlEnumValue("none") NONE("none"),
|
||||||
UNRECOGNIZED("unrecognized");
|
UNRECOGNIZED("unrecognized");
|
||||||
|
|
||||||
public static final List<IpAddressAllocationMode> ALL = ImmutableList.of(POOL, DHCP, MANUAL, NONE);
|
public static final List<IpAddressAllocationMode> ALL = ImmutableList.of(POOL, DHCP, MANUAL, NONE);
|
||||||
|
|
||||||
private final String label;
|
protected final String label;
|
||||||
private IpAddressAllocationMode(String label) {
|
|
||||||
this.label = label;
|
IpAddressAllocationMode(String stringValue) {
|
||||||
|
this.label = stringValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLabel() {
|
public String label() {
|
||||||
return label;
|
return label;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected final static Map<String, IpAddressAllocationMode> IP_ADDRESS_ALLOCATION_MODE_BY_ID = Maps.uniqueIndex(
|
||||||
|
ImmutableSet.copyOf(IpAddressAllocationMode.values()), new Function<IpAddressAllocationMode, String>() {
|
||||||
|
@Override
|
||||||
|
public String apply(IpAddressAllocationMode input) {
|
||||||
|
return input.label;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
public static IpAddressAllocationMode fromValue(String value) {
|
public static IpAddressAllocationMode fromValue(String value) {
|
||||||
try {
|
IpAddressAllocationMode mode = IP_ADDRESS_ALLOCATION_MODE_BY_ID.get(checkNotNull(value, "stringValue"));
|
||||||
return valueOf(checkNotNull(value, "value").toUpperCase());
|
return mode == null ? UNRECOGNIZED : mode;
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
return UNRECOGNIZED;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,16 +19,23 @@
|
||||||
package org.jclouds.vcloud.director.v1_5.domain;
|
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 static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
import javax.xml.bind.annotation.XmlEnumValue;
|
||||||
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 com.google.common.base.Function;
|
||||||
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.ImmutableSet;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
/**
|
/**
|
||||||
* Base settings for LDAP connection
|
* Base settings for LDAP connection
|
||||||
*
|
*
|
||||||
|
@ -55,19 +62,38 @@ import com.google.common.base.Objects.ToStringHelper;
|
||||||
})
|
})
|
||||||
public class OrgLdapSettings extends ResourceType {
|
public class OrgLdapSettings extends ResourceType {
|
||||||
|
|
||||||
public static final class LdapMode {
|
@XmlType
|
||||||
public static final String NONE = "NONE";
|
@XmlEnum(String.class)
|
||||||
public static final String SYSTEM = "SYSTEM";
|
public static enum LdapMode {
|
||||||
public static final String CUSTOM = "CUSTOM";
|
@XmlEnumValue("NONE") NONE("NONE"),
|
||||||
|
@XmlEnumValue("SYSTEM") SYSTEM("SYSTEM"),
|
||||||
|
@XmlEnumValue("CUSTOM") CUSTOM("CUSTOM"),
|
||||||
|
UNRECOGNIZED("unrecognized");
|
||||||
|
|
||||||
/**
|
public static final List<LdapMode> ALL = ImmutableList.of( NONE, SYSTEM, CUSTOM );
|
||||||
* All acceptable {@link #getLdapMode()} values.
|
|
||||||
*
|
protected final String stringValue;
|
||||||
* This list must be updated whenever a new mode is added.
|
|
||||||
*/
|
LdapMode(String stringValue) {
|
||||||
public static final List<String> ALL = Arrays.asList(
|
this.stringValue = stringValue;
|
||||||
NONE, SYSTEM, CUSTOM
|
}
|
||||||
);
|
|
||||||
|
public String value() {
|
||||||
|
return stringValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected final static Map<String, LdapMode> LDAP_MODE_BY_ID = Maps.uniqueIndex(
|
||||||
|
ImmutableSet.copyOf(LdapMode.values()), new Function<LdapMode, String>() {
|
||||||
|
@Override
|
||||||
|
public String apply(LdapMode input) {
|
||||||
|
return input.stringValue;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
public static LdapMode fromValue(String value) {
|
||||||
|
LdapMode mode = LDAP_MODE_BY_ID.get(checkNotNull(value, "stringValue"));
|
||||||
|
return mode == null ? UNRECOGNIZED : mode;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Builder<?> builder() {
|
public static Builder<?> builder() {
|
||||||
|
|
|
@ -1,27 +1,53 @@
|
||||||
package org.jclouds.vcloud.director.v1_5.domain;
|
package org.jclouds.vcloud.director.v1_5.domain;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.jclouds.vcloud.director.v1_5.features.admin.AdminQueryClient;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
import javax.xml.bind.annotation.XmlEnumValue;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
import com.google.common.base.Function;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
|
||||||
public class Role { //TODO: placeholder for implementation
|
public class Role { //TODO: placeholder for implementation
|
||||||
|
|
||||||
public static final class DefaultRoles {
|
@XmlType
|
||||||
public static final String USER = "vApp User";
|
@XmlEnum(String.class)
|
||||||
public static final String AUTHOR = "vApp Author";
|
public static enum DefaultRoles {
|
||||||
public static final String CATALOG_AUTHOR = "Catalog Author";
|
@XmlEnumValue("vApp User") USER("vApp User"),
|
||||||
public static final String CONSOLE = "Console Access Only";
|
@XmlEnumValue("vApp Author") AUTHOR("vApp Author"),
|
||||||
public static final String ORG_ADMIN = "Organization Administrator";
|
@XmlEnumValue("Catalog Author") CATALOG_AUTHOR("Catalog Author"),
|
||||||
|
@XmlEnumValue("Console Access Only") CONSOLE("Console Access Only"),
|
||||||
|
@XmlEnumValue("Organization Administrator") ORG_ADMIN("Organization Administrator");
|
||||||
|
|
||||||
/**
|
public static final List<DefaultRoles> ALL = ImmutableList.of(
|
||||||
* All default {@link AdminQueryClient#roleReferencesQueryAll()} values.
|
USER, AUTHOR, CATALOG_AUTHOR, CONSOLE, ORG_ADMIN);
|
||||||
* <p/>
|
|
||||||
* This list must be updated whenever a new default role is added.
|
protected final String stringValue;
|
||||||
*/
|
|
||||||
public static final List<String> ALL = Arrays.asList(
|
DefaultRoles(String stringValue) {
|
||||||
USER, AUTHOR, CATALOG_AUTHOR, CONSOLE, ORG_ADMIN
|
this.stringValue = stringValue;
|
||||||
);
|
}
|
||||||
|
|
||||||
|
public String value() {
|
||||||
|
return stringValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected final static Map<String, DefaultRoles> DEFAULT_ROLES_BY_ID = Maps.uniqueIndex(
|
||||||
|
ImmutableSet.copyOf(DefaultRoles.values()), new Function<DefaultRoles, String>() {
|
||||||
|
@Override
|
||||||
|
public String apply(DefaultRoles input) {
|
||||||
|
return input.stringValue;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
public static DefaultRoles fromValue(String value) {
|
||||||
|
return DEFAULT_ROLES_BY_ID.get(checkNotNull(value, "stringValue"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,19 +19,27 @@
|
||||||
package org.jclouds.vcloud.director.v1_5.domain;
|
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 static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAttribute;
|
import javax.xml.bind.annotation.XmlAttribute;
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
import javax.xml.bind.annotation.XmlEnumValue;
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
|
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
|
||||||
|
|
||||||
|
import com.google.common.base.Function;
|
||||||
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.ImmutableSet;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents an asynchronous or long-running task in the vCloud environment.
|
* Represents an asynchronous or long-running task in the vCloud environment.
|
||||||
|
@ -49,19 +57,43 @@ public class Task extends EntityType {
|
||||||
|
|
||||||
public static final String MEDIA_TYPE = VCloudDirectorMediaType.TASK;
|
public static final String MEDIA_TYPE = VCloudDirectorMediaType.TASK;
|
||||||
|
|
||||||
public static class Status {
|
@XmlType
|
||||||
public static final String QUEUED = "queued";
|
@XmlEnum(String.class)
|
||||||
public static final String PRE_RUNNING = "preRunning";
|
public static enum Status {
|
||||||
public static final String RUNNING = "running";
|
@XmlEnumValue("queued") QUEUED("queued"),
|
||||||
public static final String SUCCESS = "success";
|
@XmlEnumValue("preRunning") PRE_RUNNING("preRunning"),
|
||||||
public static final String ERROR = "error";
|
@XmlEnumValue("running") RUNNING("running"),
|
||||||
public static final String CANCELED = "canceled";
|
@XmlEnumValue("success") SUCCESS("success"),
|
||||||
public static final String ABORTED = "aborted";
|
@XmlEnumValue("error") ERROR("error"),
|
||||||
|
@XmlEnumValue("canceled") CANCELED("canceled"),
|
||||||
|
@XmlEnumValue("aborted") ABORTED("aborted"),
|
||||||
|
UNRECOGNIZED("unrecognized");
|
||||||
|
|
||||||
public static final List<String> ALL = Arrays.asList(
|
public static final List<Status> ALL = ImmutableList.of(
|
||||||
QUEUED, PRE_RUNNING, RUNNING, SUCCESS,
|
QUEUED, PRE_RUNNING, RUNNING, SUCCESS, ERROR, CANCELED, ABORTED);
|
||||||
ERROR, CANCELED, ABORTED
|
|
||||||
);
|
protected final String stringValue;
|
||||||
|
|
||||||
|
Status(String stringValue) {
|
||||||
|
this.stringValue = stringValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String value() {
|
||||||
|
return stringValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected final static Map<String, Status> STATUS_BY_ID = Maps.uniqueIndex(
|
||||||
|
ImmutableSet.copyOf(Status.values()), new Function<Status, String>() {
|
||||||
|
@Override
|
||||||
|
public String apply(Status input) {
|
||||||
|
return input.stringValue;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
public static Status fromValue(String value) {
|
||||||
|
Status status = STATUS_BY_ID.get(checkNotNull(value, "stringValue"));
|
||||||
|
return status == null ? UNRECOGNIZED : status;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Builder<?> builder() {
|
public static Builder<?> builder() {
|
||||||
|
|
|
@ -19,17 +19,24 @@
|
||||||
package org.jclouds.vcloud.director.v1_5.domain;
|
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 static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
import javax.xml.bind.annotation.XmlEnumValue;
|
||||||
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.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
|
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
|
||||||
|
|
||||||
|
import com.google.common.base.Function;
|
||||||
import com.google.common.base.Objects;
|
import com.google.common.base.Objects;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents vApp/VM undeployment parameters.
|
* Represents vApp/VM undeployment parameters.
|
||||||
|
@ -43,19 +50,41 @@ import com.google.common.base.Objects;
|
||||||
@XmlType(name = "UndeployVAppParamsType")
|
@XmlType(name = "UndeployVAppParamsType")
|
||||||
public class UndeployVAppParams {
|
public class UndeployVAppParams {
|
||||||
|
|
||||||
public static final String MEDIA_TYPe = VCloudDirectorMediaType.UNDEPLOY_VAPP_PARAMS;
|
public static final String MEDIA_TYPE = VCloudDirectorMediaType.UNDEPLOY_VAPP_PARAMS;
|
||||||
|
|
||||||
public static class PowerAction {
|
@XmlType
|
||||||
/** Power off the VMs. This is the default action if this attribute is missing or empty) */
|
@XmlEnum(String.class)
|
||||||
public static final String POWER_OFF = "powerOff";
|
public static enum PowerAction {
|
||||||
/** Suspend the VMs. */
|
@XmlEnumValue("powerOff") POWER_OFF("powerOff"),
|
||||||
public static final String SUSPEND = "suspend";
|
@XmlEnumValue("suspend") SUSPEND("suspend"),
|
||||||
/** Shut down the VMs. */
|
@XmlEnumValue("shutdown") SHUTDOWN("shutdown"),
|
||||||
public static final String SHUTDOWN = "shutdown";
|
@XmlEnumValue("force") FORCE("force"),
|
||||||
/** Attempt to power off the VMs. */
|
UNRECOGNIZED("unrecognized");
|
||||||
public static final String FORCE = "force";
|
|
||||||
|
|
||||||
public static final List<String> ALL = Arrays.asList(POWER_OFF, SUSPEND, SHUTDOWN, FORCE);
|
public static final List<PowerAction> ALL = ImmutableList.of( POWER_OFF, SUSPEND, SHUTDOWN, FORCE );
|
||||||
|
|
||||||
|
protected final String stringValue;
|
||||||
|
|
||||||
|
PowerAction(String stringValue) {
|
||||||
|
this.stringValue = stringValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String value() {
|
||||||
|
return stringValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected final static Map<String, PowerAction> POWER_ACTION_BY_ID = Maps.uniqueIndex(
|
||||||
|
ImmutableSet.copyOf(PowerAction.values()), new Function<PowerAction, String>() {
|
||||||
|
@Override
|
||||||
|
public String apply(PowerAction input) {
|
||||||
|
return input.stringValue;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
public static PowerAction fromValue(String value) {
|
||||||
|
PowerAction action = POWER_ACTION_BY_ID.get(checkNotNull(value, "stringValue"));
|
||||||
|
return action == null ? UNRECOGNIZED : action;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Builder builder() {
|
public static Builder builder() {
|
||||||
|
|
|
@ -20,12 +20,14 @@ package org.jclouds.vcloud.director.v1_5.predicates;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
import org.jclouds.logging.Logger;
|
import org.jclouds.logging.Logger;
|
||||||
import org.jclouds.vcloud.director.v1_5.VCloudDirectorException;
|
import org.jclouds.vcloud.director.v1_5.VCloudDirectorException;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.Task;
|
import org.jclouds.vcloud.director.v1_5.domain.Task;
|
||||||
|
import org.jclouds.vcloud.director.v1_5.domain.Task.Status;
|
||||||
import org.jclouds.vcloud.director.v1_5.features.TaskClient;
|
import org.jclouds.vcloud.director.v1_5.features.TaskClient;
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
|
@ -42,15 +44,14 @@ public class TaskStatusEquals implements Predicate<Task> {
|
||||||
@Resource
|
@Resource
|
||||||
protected Logger logger = Logger.NULL;
|
protected Logger logger = Logger.NULL;
|
||||||
|
|
||||||
private Collection<String> expectedStatuses;
|
private Collection<Status> expectedStatuses;
|
||||||
private Collection<String> failingStatuses;
|
private Collection<Status> failingStatuses;
|
||||||
|
|
||||||
// TODO Use Task.Status, once it is turned into an enumeration
|
public TaskStatusEquals(TaskClient taskClient, Status expectedStatus, Set<Status> failingStatuses) {
|
||||||
public TaskStatusEquals(TaskClient taskClient, String expectedStatus, Collection<String> failingStatuses) {
|
|
||||||
this(taskClient, Collections.singleton(expectedStatus), failingStatuses);
|
this(taskClient, Collections.singleton(expectedStatus), failingStatuses);
|
||||||
}
|
}
|
||||||
|
|
||||||
public TaskStatusEquals(TaskClient taskClient, Collection<String> expectedStatuses, Collection<String> failingStatuses) {
|
public TaskStatusEquals(TaskClient taskClient, Set<Status> expectedStatuses, Set<Status> failingStatuses) {
|
||||||
this.taskClient = taskClient;
|
this.taskClient = taskClient;
|
||||||
this.expectedStatuses = expectedStatuses;
|
this.expectedStatuses = expectedStatuses;
|
||||||
this.failingStatuses = failingStatuses;
|
this.failingStatuses = failingStatuses;
|
||||||
|
@ -68,13 +69,13 @@ public class TaskStatusEquals implements Predicate<Task> {
|
||||||
if (task == null) return false;
|
if (task == null) return false;
|
||||||
logger.trace("%s: looking for status %s: currently: %s", task, expectedStatuses, task.getStatus());
|
logger.trace("%s: looking for status %s: currently: %s", task, expectedStatuses, task.getStatus());
|
||||||
|
|
||||||
for (String failingStatus : failingStatuses) {
|
for (Status failingStatus : failingStatuses) {
|
||||||
if (task.getStatus().equals(failingStatus)) {
|
if (task.getStatus().equals(failingStatus)) {
|
||||||
throw new VCloudDirectorException(task);
|
throw new VCloudDirectorException(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (String expectedStatus : expectedStatuses) {
|
for (Status expectedStatus : expectedStatuses) {
|
||||||
if (task.getStatus().equals(expectedStatus)) {
|
if (task.getStatus().equals(expectedStatus)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -345,11 +345,6 @@ public class Checks {
|
||||||
checkEntityType(catalogItem);
|
checkEntityType(catalogItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void checkImageType(String imageType) {
|
|
||||||
assertTrue(Media.ImageType.ALL.contains(imageType),
|
|
||||||
"The Image type of a Media must be one of the allowed list");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void checkNetwork(Network network) {
|
public static void checkNetwork(Network network) {
|
||||||
// Check optional fields
|
// Check optional fields
|
||||||
NetworkConfiguration config = network.getConfiguration();
|
NetworkConfiguration config = network.getConfiguration();
|
||||||
|
@ -756,7 +751,8 @@ public class Checks {
|
||||||
public static void checkMediaFor(String client, Media media) {
|
public static void checkMediaFor(String client, Media media) {
|
||||||
// required
|
// required
|
||||||
assertNotNull(media.getImageType(), String.format(OBJ_FIELD_REQ, client, "imageType"));
|
assertNotNull(media.getImageType(), String.format(OBJ_FIELD_REQ, client, "imageType"));
|
||||||
checkImageType(media.getImageType());
|
assertTrue(Media.ImageType.ALL.contains(media.getImageType()),
|
||||||
|
"The Image type of a Media must be one of the allowed list");
|
||||||
assertNotNull(media.getSize(), String.format(OBJ_FIELD_REQ, client, "size"));
|
assertNotNull(media.getSize(), String.format(OBJ_FIELD_REQ, client, "size"));
|
||||||
assertTrue(media.getSize() >= 0, String.format(OBJ_FIELD_GTE_0, client, "size", media.getSize()));
|
assertTrue(media.getSize() >= 0, String.format(OBJ_FIELD_GTE_0, client, "size", media.getSize()));
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@ import org.jclouds.vcloud.director.v1_5.domain.Error;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.File;
|
import org.jclouds.vcloud.director.v1_5.domain.File;
|
||||||
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.Media;
|
import org.jclouds.vcloud.director.v1_5.domain.Media;
|
||||||
|
import org.jclouds.vcloud.director.v1_5.domain.Media.ImageType;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.Metadata;
|
import org.jclouds.vcloud.director.v1_5.domain.Metadata;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.MetadataEntry;
|
import org.jclouds.vcloud.director.v1_5.domain.MetadataEntry;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.MetadataValue;
|
import org.jclouds.vcloud.director.v1_5.domain.MetadataValue;
|
||||||
|
@ -67,7 +68,7 @@ public class MediaClientExpectTest extends VCloudDirectorAdminClientExpectTest {
|
||||||
|
|
||||||
Media source = Media.builder()
|
Media source = Media.builder()
|
||||||
.size(0)
|
.size(0)
|
||||||
.imageType("iso")
|
.imageType(ImageType.ISO)
|
||||||
.name("Test media 1")
|
.name("Test media 1")
|
||||||
.type("application/vnd.vmware.vcloud.media+xml")
|
.type("application/vnd.vmware.vcloud.media+xml")
|
||||||
.description("Test media generated by testCreateMedia()")
|
.description("Test media generated by testCreateMedia()")
|
||||||
|
@ -346,7 +347,7 @@ public class MediaClientExpectTest extends VCloudDirectorAdminClientExpectTest {
|
||||||
static Media createMedia() {
|
static Media createMedia() {
|
||||||
return Media.builder()
|
return Media.builder()
|
||||||
.size(0)
|
.size(0)
|
||||||
.imageType("iso")
|
.imageType(ImageType.ISO)
|
||||||
.status(0)
|
.status(0)
|
||||||
.name("Test media 1")
|
.name("Test media 1")
|
||||||
.id("urn:vcloud:media:d51b0b9d-099c-499f-97f8-4fbe40ba06d7")
|
.id("urn:vcloud:media:d51b0b9d-099c-499f-97f8-4fbe40ba06d7")
|
||||||
|
@ -378,7 +379,7 @@ public class MediaClientExpectTest extends VCloudDirectorAdminClientExpectTest {
|
||||||
static Media cloneMedia() {
|
static Media cloneMedia() {
|
||||||
return Media.builder()
|
return Media.builder()
|
||||||
.size(175163392)
|
.size(175163392)
|
||||||
.imageType("iso")
|
.imageType(ImageType.ISO)
|
||||||
.status(0)
|
.status(0)
|
||||||
.name("copied test media-copy-671136ae-b8f0-4389-bca6-50e9c42268f2")
|
.name("copied test media-copy-671136ae-b8f0-4389-bca6-50e9c42268f2")
|
||||||
.id("urn:vcloud:media:a6b023f2-7f90-4e89-a24d-56e0eba83a5a")
|
.id("urn:vcloud:media:a6b023f2-7f90-4e89-a24d-56e0eba83a5a")
|
||||||
|
@ -433,7 +434,7 @@ public class MediaClientExpectTest extends VCloudDirectorAdminClientExpectTest {
|
||||||
private static Media getMedia() {
|
private static Media getMedia() {
|
||||||
return Media.builder()
|
return Media.builder()
|
||||||
.size(175163392)
|
.size(175163392)
|
||||||
.imageType("iso")
|
.imageType(ImageType.ISO)
|
||||||
.status(1)
|
.status(1)
|
||||||
.name("DansTestMedia")
|
.name("DansTestMedia")
|
||||||
.id("urn:vcloud:media:794eb334-754e-4917-b5a0-5df85cbd61d1")
|
.id("urn:vcloud:media:794eb334-754e-4917-b5a0-5df85cbd61d1")
|
||||||
|
@ -476,7 +477,7 @@ public class MediaClientExpectTest extends VCloudDirectorAdminClientExpectTest {
|
||||||
private static Media updateMedia() {
|
private static Media updateMedia() {
|
||||||
return Media.builder()
|
return Media.builder()
|
||||||
.size(175163392)
|
.size(175163392)
|
||||||
.imageType("iso")
|
.imageType(ImageType.ISO)
|
||||||
.status(1)
|
.status(1)
|
||||||
.name("new testMedia1")
|
.name("new testMedia1")
|
||||||
.id("urn:vcloud:media:c93e5cdc-f29a-4749-8ed2-093df04cc75e")
|
.id("urn:vcloud:media:c93e5cdc-f29a-4749-8ed2-093df04cc75e")
|
||||||
|
|
|
@ -37,6 +37,7 @@ import org.jclouds.vcloud.director.v1_5.domain.Metadata;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.MetadataEntry;
|
import org.jclouds.vcloud.director.v1_5.domain.MetadataEntry;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.MetadataValue;
|
import org.jclouds.vcloud.director.v1_5.domain.MetadataValue;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.Network;
|
import org.jclouds.vcloud.director.v1_5.domain.Network;
|
||||||
|
import org.jclouds.vcloud.director.v1_5.domain.Network.FenceMode;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.NetworkConfiguration;
|
import org.jclouds.vcloud.director.v1_5.domain.NetworkConfiguration;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.NetworkFeatures;
|
import org.jclouds.vcloud.director.v1_5.domain.NetworkFeatures;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.OrgNetwork;
|
import org.jclouds.vcloud.director.v1_5.domain.OrgNetwork;
|
||||||
|
@ -217,7 +218,7 @@ public class NetworkClientExpectTest extends VCloudDirectorAdminClientExpectTest
|
||||||
.build())
|
.build())
|
||||||
.build())
|
.build())
|
||||||
.build())
|
.build())
|
||||||
.fenceMode("isolated")
|
.fenceMode(FenceMode.ISOLATED)
|
||||||
.retainNetInfoAcrossDeployments(false)
|
.retainNetInfoAcrossDeployments(false)
|
||||||
.features(NetworkFeatures.builder()
|
.features(NetworkFeatures.builder()
|
||||||
.service(DhcpService.builder()
|
.service(DhcpService.builder()
|
||||||
|
|
|
@ -57,6 +57,7 @@ import org.jclouds.vcloud.director.v1_5.domain.MetadataValue;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.NatOneToOneVmRule;
|
import org.jclouds.vcloud.director.v1_5.domain.NatOneToOneVmRule;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.NatRule;
|
import org.jclouds.vcloud.director.v1_5.domain.NatRule;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.NatService;
|
import org.jclouds.vcloud.director.v1_5.domain.NatService;
|
||||||
|
import org.jclouds.vcloud.director.v1_5.domain.Network.FenceMode;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.NetworkConfigSection;
|
import org.jclouds.vcloud.director.v1_5.domain.NetworkConfigSection;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.NetworkConfiguration;
|
import org.jclouds.vcloud.director.v1_5.domain.NetworkConfiguration;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.NetworkFeatures;
|
import org.jclouds.vcloud.director.v1_5.domain.NetworkFeatures;
|
||||||
|
@ -679,7 +680,7 @@ public class VAppTemplateClientExpectTest extends VCloudDirectorAdminClientExpec
|
||||||
.ipRanges(IpRanges.builder().ipRange(IpRange.builder().startAddress("10.147.56.1").endAddress("10.147.56.1").build()).build())
|
.ipRanges(IpRanges.builder().ipRange(IpRange.builder().startAddress("10.147.56.1").endAddress("10.147.56.1").build()).build())
|
||||||
.build())
|
.build())
|
||||||
.parentNetwork(Reference.builder().href(URI.create("http://vcloud.example.com/api/v1.0/network/54")).type("application/vnd.vmware.vcloud.network+xml").name("Internet").build())
|
.parentNetwork(Reference.builder().href(URI.create("http://vcloud.example.com/api/v1.0/network/54")).type("application/vnd.vmware.vcloud.network+xml").name("Internet").build())
|
||||||
.fenceMode("natRouted")
|
.fenceMode(FenceMode.NAT_ROUTED)
|
||||||
.features(NetworkFeatures.builder().services(ImmutableSet.of(firewallService, natService)).build())
|
.features(NetworkFeatures.builder().services(ImmutableSet.of(firewallService, natService)).build())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ import org.jclouds.vcloud.director.v1_5.domain.Error;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.InstantiateVAppTemplateParams;
|
import org.jclouds.vcloud.director.v1_5.domain.InstantiateVAppTemplateParams;
|
||||||
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.Media;
|
import org.jclouds.vcloud.director.v1_5.domain.Media;
|
||||||
|
import org.jclouds.vcloud.director.v1_5.domain.Media.ImageType;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.Metadata;
|
import org.jclouds.vcloud.director.v1_5.domain.Metadata;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.MetadataValue;
|
import org.jclouds.vcloud.director.v1_5.domain.MetadataValue;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.Reference;
|
import org.jclouds.vcloud.director.v1_5.domain.Reference;
|
||||||
|
@ -297,7 +298,7 @@ public class VdcClientExpectTest extends VCloudDirectorAdminClientExpectTest {
|
||||||
|
|
||||||
Media source = Media.builder()
|
Media source = Media.builder()
|
||||||
.size(0)
|
.size(0)
|
||||||
.imageType("iso")
|
.imageType(ImageType.ISO)
|
||||||
.name("Test media 1")
|
.name("Test media 1")
|
||||||
.type("application/vnd.vmware.vcloud.media+xml")
|
.type("application/vnd.vmware.vcloud.media+xml")
|
||||||
.description("Test media generated by testCreateMedia()")
|
.description("Test media generated by testCreateMedia()")
|
||||||
|
|
|
@ -40,6 +40,7 @@ import org.jclouds.vcloud.director.v1_5.domain.InstantiateVAppTemplateParams;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.InstantiationParams;
|
import org.jclouds.vcloud.director.v1_5.domain.InstantiationParams;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.Metadata;
|
import org.jclouds.vcloud.director.v1_5.domain.Metadata;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.MetadataValue;
|
import org.jclouds.vcloud.director.v1_5.domain.MetadataValue;
|
||||||
|
import org.jclouds.vcloud.director.v1_5.domain.Network.FenceMode;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.NetworkConfigSection;
|
import org.jclouds.vcloud.director.v1_5.domain.NetworkConfigSection;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.NetworkConfiguration;
|
import org.jclouds.vcloud.director.v1_5.domain.NetworkConfiguration;
|
||||||
import org.jclouds.vcloud.director.v1_5.domain.Reference;
|
import org.jclouds.vcloud.director.v1_5.domain.Reference;
|
||||||
|
@ -246,7 +247,7 @@ public class VdcClientLiveTest extends BaseVCloudDirectorClientLiveTest {
|
||||||
|
|
||||||
NetworkConfiguration networkConfiguration = NetworkConfiguration.builder()
|
NetworkConfiguration networkConfiguration = NetworkConfiguration.builder()
|
||||||
.parentNetwork(parentNetwork.get())
|
.parentNetwork(parentNetwork.get())
|
||||||
.fenceMode("bridged")
|
.fenceMode(FenceMode.BRIDGED)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
NetworkConfigSection networkConfigSection = NetworkConfigSection.builder()
|
NetworkConfigSection networkConfigSection = NetworkConfigSection.builder()
|
||||||
|
|
|
@ -119,7 +119,7 @@ public class UserClientLiveTest extends BaseVCloudDirectorClientLiveTest {
|
||||||
.password("newPassword")
|
.password("newPassword")
|
||||||
// TODO test setting other fields?
|
// TODO test setting other fields?
|
||||||
// .name("new"+oldUser.getName())
|
// .name("new"+oldUser.getName())
|
||||||
.role(getRoleReferenceFor(DefaultRoles.AUTHOR))
|
.role(getRoleReferenceFor(DefaultRoles.AUTHOR.value()))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
userClient.updateUser(user.getHref(), newUser);
|
userClient.updateUser(user.getHref(), newUser);
|
||||||
|
|
|
@ -217,7 +217,7 @@ public abstract class BaseVCloudDirectorClientLiveTest extends BaseVersionedServ
|
||||||
}
|
}
|
||||||
|
|
||||||
public User randomTestUser(String prefix) {
|
public User randomTestUser(String prefix) {
|
||||||
return randomTestUser(prefix, getRoleReferenceFor(DefaultRoles.USER));
|
return randomTestUser(prefix, getRoleReferenceFor(DefaultRoles.USER.value()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public User randomTestUser(String prefix, Reference role) {
|
public User randomTestUser(String prefix, Reference role) {
|
||||||
|
@ -303,11 +303,11 @@ public abstract class BaseVCloudDirectorClientLiveTest extends BaseVersionedServ
|
||||||
assertTrue(retryTaskSuccessLong.apply(task), String.format(TASK_COMPLETE_TIMELY, task));
|
assertTrue(retryTaskSuccessLong.apply(task), String.format(TASK_COMPLETE_TIMELY, task));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void assertTaskStatusEventually(Task task, String expectedStatus, Collection<String> failingStatuses) {
|
protected void assertTaskStatusEventually(Task task, org.jclouds.vcloud.director.v1_5.domain.Task.Status running, ImmutableSet<org.jclouds.vcloud.director.v1_5.domain.Task.Status> immutableSet) {
|
||||||
TaskClient taskClient = context.getApi().getTaskClient();
|
TaskClient taskClient = context.getApi().getTaskClient();
|
||||||
TaskStatusEquals predicate = new TaskStatusEquals(taskClient, expectedStatus, failingStatuses);
|
TaskStatusEquals predicate = new TaskStatusEquals(taskClient, running, immutableSet);
|
||||||
RetryablePredicate<Task> retryablePredicate = new RetryablePredicate<Task>(predicate, TASK_TIMEOUT_SECONDS * 1000L);
|
RetryablePredicate<Task> retryablePredicate = new RetryablePredicate<Task>(predicate, TASK_TIMEOUT_SECONDS * 1000L);
|
||||||
assertTrue(retryablePredicate.apply(task), "Task must enter status "+expectedStatus);
|
assertTrue(retryablePredicate.apply(task), "Task must enter status "+running);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void assertTaskDoneEventually(Task task) {
|
protected void assertTaskDoneEventually(Task task) {
|
||||||
|
@ -315,7 +315,7 @@ public abstract class BaseVCloudDirectorClientLiveTest extends BaseVersionedServ
|
||||||
TaskStatusEquals predicate = new TaskStatusEquals(
|
TaskStatusEquals predicate = new TaskStatusEquals(
|
||||||
taskClient,
|
taskClient,
|
||||||
ImmutableSet.of(Task.Status.ABORTED, Task.Status.CANCELED, Task.Status.ERROR, Task.Status.SUCCESS),
|
ImmutableSet.of(Task.Status.ABORTED, Task.Status.CANCELED, Task.Status.ERROR, Task.Status.SUCCESS),
|
||||||
Collections.<String>emptySet());
|
Collections.<Task.Status>emptySet());
|
||||||
RetryablePredicate<Task> retryablePredicate = new RetryablePredicate<Task>(predicate, LONG_TASK_TIMEOUT_SECONDS * 1000L);
|
RetryablePredicate<Task> retryablePredicate = new RetryablePredicate<Task>(predicate, LONG_TASK_TIMEOUT_SECONDS * 1000L);
|
||||||
assertTrue(retryablePredicate.apply(task), "Task must be done");
|
assertTrue(retryablePredicate.apply(task), "Task must be done");
|
||||||
}
|
}
|
||||||
|
|
|
@ -124,7 +124,7 @@ public class VCloudDirectorTestSession {
|
||||||
.name(userIdentity)
|
.name(userIdentity)
|
||||||
.password(userCredential)
|
.password(userCredential)
|
||||||
.description("test user with user-level privileges")
|
.description("test user with user-level privileges")
|
||||||
.role(BaseVCloudDirectorClientLiveTest.getRoleReferenceFor(DefaultRoles.USER, adminContext))
|
.role(BaseVCloudDirectorClientLiveTest.getRoleReferenceFor(DefaultRoles.USER.value(), adminContext))
|
||||||
.deployedVmQuota(BaseVCloudDirectorClientLiveTest.REQUIRED_USER_VM_QUOTA)
|
.deployedVmQuota(BaseVCloudDirectorClientLiveTest.REQUIRED_USER_VM_QUOTA)
|
||||||
.isEnabled(true)
|
.isEnabled(true)
|
||||||
.build());
|
.build());
|
||||||
|
|
Loading…
Reference in New Issue