mirror of https://github.com/apache/jclouds.git
Issue 112: moved NamedResource to vcloud as it is only used there. added id-based getVDC and getTasksList
git-svn-id: http://jclouds.googlecode.com/svn/trunk@2471 3d8758e0-26b5-11de-8745-db77d3ebf521
This commit is contained in:
parent
410b5f76e3
commit
98371e6b37
|
@ -1,45 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2009 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
* or more contributor license agreements. See the NOTICE file
|
|
||||||
* distributed with this work for additional information
|
|
||||||
* regarding copyright ownership. The ASF licenses this file
|
|
||||||
* to you under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance
|
|
||||||
* with the License. You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
package org.jclouds.rest.domain;
|
|
||||||
|
|
||||||
import java.net.URI;
|
|
||||||
|
|
||||||
import org.jclouds.rest.domain.internal.LinkImpl;
|
|
||||||
|
|
||||||
import com.google.inject.ImplementedBy;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Location of a Rest resource
|
|
||||||
*
|
|
||||||
* @author Adrian Cole
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@ImplementedBy(LinkImpl.class)
|
|
||||||
public interface Link {
|
|
||||||
|
|
||||||
String getType();
|
|
||||||
|
|
||||||
URI getLocation();
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2009 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
* or more contributor license agreements. See the NOTICE file
|
|
||||||
* distributed with this work for additional information
|
|
||||||
* regarding copyright ownership. The ASF licenses this file
|
|
||||||
* to you under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance
|
|
||||||
* with the License. You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
package org.jclouds.rest.domain;
|
|
||||||
|
|
||||||
import org.jclouds.rest.domain.internal.NamedLinkImpl;
|
|
||||||
|
|
||||||
import com.google.inject.ImplementedBy;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Location of a Rest resource
|
|
||||||
*
|
|
||||||
* @author Adrian Cole
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@ImplementedBy(NamedLinkImpl.class)
|
|
||||||
public interface NamedLink extends Link {
|
|
||||||
|
|
||||||
String getName();
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,79 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2009 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
* or more contributor license agreements. See the NOTICE file
|
|
||||||
* distributed with this work for additional information
|
|
||||||
* regarding copyright ownership. The ASF licenses this file
|
|
||||||
* to you under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance
|
|
||||||
* with the License. You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
package org.jclouds.rest.domain.internal;
|
|
||||||
|
|
||||||
import java.net.URI;
|
|
||||||
|
|
||||||
import org.jclouds.rest.domain.NamedLink;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Location of a Rest resource
|
|
||||||
*
|
|
||||||
* @author Adrian Cole
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class NamedLinkImpl extends LinkImpl implements NamedLink {
|
|
||||||
private final String name;
|
|
||||||
|
|
||||||
public NamedLinkImpl(String name, String type, URI location) {
|
|
||||||
super(type, location);
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
final int prime = 31;
|
|
||||||
int result = super.hashCode();
|
|
||||||
result = prime * result + ((name == null) ? 0 : name.hashCode());
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (this == obj)
|
|
||||||
return true;
|
|
||||||
if (!super.equals(obj))
|
|
||||||
return false;
|
|
||||||
if (getClass() != obj.getClass())
|
|
||||||
return false;
|
|
||||||
NamedLinkImpl other = (NamedLinkImpl) obj;
|
|
||||||
if (name == null) {
|
|
||||||
if (other.name != null)
|
|
||||||
return false;
|
|
||||||
} else if (!name.equals(other.name))
|
|
||||||
return false;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "NamedLinkImpl [name=" + name + ", getLocation()=" + getLocation() + ", getType()="
|
|
||||||
+ getType() + "]";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,83 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2009 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
* or more contributor license agreements. See the NOTICE file
|
|
||||||
* distributed with this work for additional information
|
|
||||||
* regarding copyright ownership. The ASF licenses this file
|
|
||||||
* to you under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance
|
|
||||||
* with the License. You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
package org.jclouds.rest.internal;
|
|
||||||
|
|
||||||
import java.net.URI;
|
|
||||||
|
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.rest.domain.internal.NamedLinkImpl;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Location of a Rest resource
|
|
||||||
*
|
|
||||||
* @author Adrian Cole
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class NamedResourceImpl extends NamedLinkImpl implements NamedResource {
|
|
||||||
private final String id;
|
|
||||||
|
|
||||||
public NamedResourceImpl(String id, String name, String type, URI location) {
|
|
||||||
super(name, type, location);
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int compareTo(NamedResource that) {
|
|
||||||
return (this == that) ? 0 : this.id.compareTo(that.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
final int prime = 31;
|
|
||||||
int result = super.hashCode();
|
|
||||||
result = prime * result + ((id == null) ? 0 : id.hashCode());
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (this == obj)
|
|
||||||
return true;
|
|
||||||
if (!super.equals(obj))
|
|
||||||
return false;
|
|
||||||
if (getClass() != obj.getClass())
|
|
||||||
return false;
|
|
||||||
NamedResourceImpl other = (NamedResourceImpl) obj;
|
|
||||||
if (id == null) {
|
|
||||||
if (other.id != null)
|
|
||||||
return false;
|
|
||||||
} else if (!id.equals(other.id))
|
|
||||||
return false;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "NamedResourceImpl [id=" + id + ", name=" + getName() + ", location="
|
|
||||||
+ getLocation() + ", type=" + getType() + "]";
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -85,12 +85,26 @@ public interface VCloudAsyncClient {
|
||||||
@XMLResponseParser(CatalogHandler.class)
|
@XMLResponseParser(CatalogHandler.class)
|
||||||
Future<? extends Catalog> getCatalog();
|
Future<? extends Catalog> getCatalog();
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Endpoint(org.jclouds.vcloud.endpoints.VCloudApi.class)
|
||||||
|
@Path("/vdc/{vDCId}")
|
||||||
|
@XMLResponseParser(VDCHandler.class)
|
||||||
|
@Consumes(VDC_XML)
|
||||||
|
Future<? extends VDC> getVDC(@PathParam("vDCId") String vDCId);
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Endpoint(org.jclouds.vcloud.endpoints.VDC.class)
|
@Endpoint(org.jclouds.vcloud.endpoints.VDC.class)
|
||||||
@XMLResponseParser(VDCHandler.class)
|
@XMLResponseParser(VDCHandler.class)
|
||||||
@Consumes(VDC_XML)
|
@Consumes(VDC_XML)
|
||||||
Future<? extends VDC> getDefaultVDC();
|
Future<? extends VDC> getDefaultVDC();
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Endpoint(org.jclouds.vcloud.endpoints.VCloudApi.class)
|
||||||
|
@Path("/tasksList/{tasksListId}")
|
||||||
|
@Consumes(TASKSLIST_XML)
|
||||||
|
@XMLResponseParser(TasksListHandler.class)
|
||||||
|
Future<? extends TasksList> getTasksList(@PathParam("tasksListId") String tasksListId);
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Endpoint(org.jclouds.vcloud.endpoints.TasksList.class)
|
@Endpoint(org.jclouds.vcloud.endpoints.TasksList.class)
|
||||||
@Consumes(TASKSLIST_XML)
|
@Consumes(TASKSLIST_XML)
|
||||||
|
|
|
@ -51,8 +51,12 @@ public interface VCloudClient {
|
||||||
|
|
||||||
Catalog getCatalog();
|
Catalog getCatalog();
|
||||||
|
|
||||||
|
VDC getVDC(String vDCId);
|
||||||
|
|
||||||
VDC getDefaultVDC();
|
VDC getDefaultVDC();
|
||||||
|
|
||||||
|
TasksList getTasksList(String tasksListId);
|
||||||
|
|
||||||
TasksList getDefaultTasksList();
|
TasksList getDefaultTasksList();
|
||||||
|
|
||||||
Task deployVApp(String vAppId);
|
Task deployVApp(String vAppId);
|
||||||
|
|
|
@ -23,10 +23,8 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.vcloud.domain;
|
package org.jclouds.vcloud.domain;
|
||||||
|
|
||||||
import java.net.URI;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.vcloud.domain.internal.CatalogImpl;
|
import org.jclouds.vcloud.domain.internal.CatalogImpl;
|
||||||
|
|
||||||
import com.google.inject.ImplementedBy;
|
import com.google.inject.ImplementedBy;
|
||||||
|
@ -36,10 +34,8 @@ import com.google.inject.ImplementedBy;
|
||||||
*/
|
*/
|
||||||
@org.jclouds.vcloud.endpoints.Catalog
|
@org.jclouds.vcloud.endpoints.Catalog
|
||||||
@ImplementedBy(CatalogImpl.class)
|
@ImplementedBy(CatalogImpl.class)
|
||||||
public interface Catalog extends Map<String, NamedResource> {
|
public interface Catalog extends NamedResource, Map<String, NamedResource> {
|
||||||
String getName();
|
|
||||||
|
|
||||||
String getDescription();
|
String getDescription();
|
||||||
|
|
||||||
URI getLocation();
|
|
||||||
}
|
}
|
|
@ -21,9 +21,11 @@
|
||||||
* under the License.
|
* under the License.
|
||||||
* ====================================================================
|
* ====================================================================
|
||||||
*/
|
*/
|
||||||
package org.jclouds.rest.domain;
|
package org.jclouds.vcloud.domain;
|
||||||
|
|
||||||
import org.jclouds.rest.internal.NamedResourceImpl;
|
import java.net.URI;
|
||||||
|
|
||||||
|
import org.jclouds.vcloud.domain.internal.NamedResourceImpl;
|
||||||
|
|
||||||
import com.google.inject.ImplementedBy;
|
import com.google.inject.ImplementedBy;
|
||||||
|
|
||||||
|
@ -34,6 +36,12 @@ import com.google.inject.ImplementedBy;
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ImplementedBy(NamedResourceImpl.class)
|
@ImplementedBy(NamedResourceImpl.class)
|
||||||
public interface NamedResource extends NamedLink, Comparable<NamedResource> {
|
public interface NamedResource extends Comparable<NamedResource> {
|
||||||
String getId();
|
String getId();
|
||||||
|
|
||||||
|
String getName();
|
||||||
|
|
||||||
|
String getType();
|
||||||
|
|
||||||
|
URI getLocation();
|
||||||
}
|
}
|
|
@ -23,11 +23,8 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.vcloud.domain;
|
package org.jclouds.vcloud.domain;
|
||||||
|
|
||||||
import java.net.URI;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.jclouds.rest.domain.Link;
|
|
||||||
import org.jclouds.rest.domain.NamedLink;
|
|
||||||
import org.jclouds.vcloud.domain.internal.OrganizationImpl;
|
import org.jclouds.vcloud.domain.internal.OrganizationImpl;
|
||||||
import org.jclouds.vcloud.endpoints.Catalog;
|
import org.jclouds.vcloud.endpoints.Catalog;
|
||||||
import org.jclouds.vcloud.endpoints.Org;
|
import org.jclouds.vcloud.endpoints.Org;
|
||||||
|
@ -41,20 +38,15 @@ import com.google.inject.ImplementedBy;
|
||||||
*/
|
*/
|
||||||
@Org
|
@Org
|
||||||
@ImplementedBy(OrganizationImpl.class)
|
@ImplementedBy(OrganizationImpl.class)
|
||||||
public interface Organization {
|
public interface Organization extends NamedResource {
|
||||||
String getName();
|
|
||||||
|
|
||||||
String getId();
|
|
||||||
|
|
||||||
URI getLocation();
|
|
||||||
|
|
||||||
@Catalog
|
@Catalog
|
||||||
Link getCatalog();
|
NamedResource getCatalog();
|
||||||
|
|
||||||
@VDC
|
@VDC
|
||||||
Map<String, NamedLink> getVDCs();
|
Map<String, NamedResource> getVDCs();
|
||||||
|
|
||||||
@TasksList
|
@TasksList
|
||||||
Map<String, NamedLink> getTasksLists();
|
Map<String, NamedResource> getTasksLists();
|
||||||
|
|
||||||
}
|
}
|
|
@ -26,7 +26,6 @@ package org.jclouds.vcloud.domain;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.vcloud.domain.internal.TaskImpl;
|
import org.jclouds.vcloud.domain.internal.TaskImpl;
|
||||||
|
|
||||||
import com.google.inject.ImplementedBy;
|
import com.google.inject.ImplementedBy;
|
||||||
|
@ -36,17 +35,23 @@ import com.google.inject.ImplementedBy;
|
||||||
*/
|
*/
|
||||||
@ImplementedBy(TaskImpl.class)
|
@ImplementedBy(TaskImpl.class)
|
||||||
public interface Task extends Comparable<Task> {
|
public interface Task extends Comparable<Task> {
|
||||||
String getId();
|
String getId();
|
||||||
|
|
||||||
URI getLocation();
|
URI getLocation();
|
||||||
|
|
||||||
TaskStatus getStatus();
|
TaskStatus getStatus();
|
||||||
|
|
||||||
Date getStartTime();
|
Date getStartTime();
|
||||||
|
|
||||||
Date getEndTime();
|
Date getEndTime();
|
||||||
|
|
||||||
NamedResource getOwner();
|
/**
|
||||||
|
* A link to the vDC in which the task was started
|
||||||
|
*/
|
||||||
|
NamedResource getOwner();
|
||||||
|
|
||||||
NamedResource getResult();
|
/**
|
||||||
|
* A link to the result of the task
|
||||||
|
*/
|
||||||
|
NamedResource getResult();
|
||||||
}
|
}
|
|
@ -37,6 +37,8 @@ import com.google.inject.ImplementedBy;
|
||||||
@org.jclouds.vcloud.endpoints.TasksList
|
@org.jclouds.vcloud.endpoints.TasksList
|
||||||
@ImplementedBy(TasksListImpl.class)
|
@ImplementedBy(TasksListImpl.class)
|
||||||
public interface TasksList {
|
public interface TasksList {
|
||||||
|
String getId();
|
||||||
|
|
||||||
URI getLocation();
|
URI getLocation();
|
||||||
|
|
||||||
SortedSet<Task> getTasks();
|
SortedSet<Task> getTasks();
|
||||||
|
|
|
@ -1,348 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2009 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
* or more contributor license agreements. See the NOTICE file
|
|
||||||
* distributed with this work for additional information
|
|
||||||
* regarding copyright ownership. The ASF licenses this file
|
|
||||||
* to you under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance
|
|
||||||
* with the License. You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
package org.jclouds.vcloud.domain;
|
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Adrian Cole
|
|
||||||
*/
|
|
||||||
public class TerremarkResourceAllocation implements Comparable<TerremarkResourceAllocation> {
|
|
||||||
private final Integer address;
|
|
||||||
private final Integer addressOnParent;
|
|
||||||
private final String allocationUnits;
|
|
||||||
private final String automaticAllocation;
|
|
||||||
private final String automaticDeallocation;
|
|
||||||
private final String caption;
|
|
||||||
private final String consumerVisibility;
|
|
||||||
private final String description;
|
|
||||||
private final String elementName;
|
|
||||||
private final String hostResource;
|
|
||||||
private final int instanceID;
|
|
||||||
private final String limit;
|
|
||||||
private final String mappingBehavior;
|
|
||||||
private final String otherResourceType;
|
|
||||||
private final Integer parent;
|
|
||||||
private final String poolID;
|
|
||||||
private final String reservation;
|
|
||||||
private final String resourceSubType;
|
|
||||||
private final ResourceType resourceType;
|
|
||||||
private final long virtualQuantity;
|
|
||||||
private final String virtualQuantityUnits;
|
|
||||||
private final String weight;
|
|
||||||
|
|
||||||
public TerremarkResourceAllocation(Integer address, Integer addressOnParent, String allocationUnits,
|
|
||||||
String automaticAllocation, String automaticDeallocation, String caption,
|
|
||||||
String consumerVisibility, String description, String elementName, String hostResource,
|
|
||||||
int instanceID, String limit, String mappingBehavior, String otherResourceType,
|
|
||||||
Integer parent, String poolID, String reservation, String resourceSubType,
|
|
||||||
ResourceType resourceType, long virtualQuantity, String virtualQuantityUnits,
|
|
||||||
String weight) {
|
|
||||||
this.address = address;
|
|
||||||
this.addressOnParent = addressOnParent;
|
|
||||||
this.allocationUnits = allocationUnits;
|
|
||||||
this.automaticAllocation = automaticAllocation;
|
|
||||||
this.automaticDeallocation = automaticDeallocation;
|
|
||||||
this.caption = caption;
|
|
||||||
this.consumerVisibility = consumerVisibility;
|
|
||||||
this.description = description;
|
|
||||||
this.elementName = elementName;
|
|
||||||
this.hostResource = hostResource;
|
|
||||||
this.instanceID = checkNotNull(instanceID, "instanceID");
|
|
||||||
this.limit = limit;
|
|
||||||
this.mappingBehavior = mappingBehavior;
|
|
||||||
this.otherResourceType = otherResourceType;
|
|
||||||
this.parent = parent;
|
|
||||||
this.poolID = poolID;
|
|
||||||
this.reservation = reservation;
|
|
||||||
this.resourceSubType = resourceSubType;
|
|
||||||
this.resourceType = checkNotNull(resourceType, "resourceType");
|
|
||||||
this.virtualQuantity = virtualQuantity;
|
|
||||||
this.virtualQuantityUnits = virtualQuantityUnits;
|
|
||||||
this.weight = weight;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getAddress() {
|
|
||||||
return address;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getAddressOnParent() {
|
|
||||||
return addressOnParent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAllocationUnits() {
|
|
||||||
return allocationUnits;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAutomaticAllocation() {
|
|
||||||
return automaticAllocation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAutomaticDeallocation() {
|
|
||||||
return automaticDeallocation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCaption() {
|
|
||||||
return caption;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getConsumerVisibility() {
|
|
||||||
return consumerVisibility;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getElementName() {
|
|
||||||
return elementName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getInstanceID() {
|
|
||||||
return instanceID;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLimit() {
|
|
||||||
return limit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMappingBehavior() {
|
|
||||||
return mappingBehavior;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOtherResourceType() {
|
|
||||||
return otherResourceType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getParent() {
|
|
||||||
return parent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPoolID() {
|
|
||||||
return poolID;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getReservation() {
|
|
||||||
return reservation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getResourceSubType() {
|
|
||||||
return resourceSubType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ResourceType getResourceType() {
|
|
||||||
return resourceType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public long getVirtualQuantity() {
|
|
||||||
return virtualQuantity;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getVirtualQuantityUnits() {
|
|
||||||
return virtualQuantityUnits;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getWeight() {
|
|
||||||
return weight;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
final int prime = 31;
|
|
||||||
int result = 1;
|
|
||||||
result = prime * result + ((address == null) ? 0 : address.hashCode());
|
|
||||||
result = prime * result + ((addressOnParent == null) ? 0 : addressOnParent.hashCode());
|
|
||||||
result = prime * result + ((allocationUnits == null) ? 0 : allocationUnits.hashCode());
|
|
||||||
result = prime * result
|
|
||||||
+ ((automaticAllocation == null) ? 0 : automaticAllocation.hashCode());
|
|
||||||
result = prime * result
|
|
||||||
+ ((automaticDeallocation == null) ? 0 : automaticDeallocation.hashCode());
|
|
||||||
result = prime * result + ((caption == null) ? 0 : caption.hashCode());
|
|
||||||
result = prime * result + ((consumerVisibility == null) ? 0 : consumerVisibility.hashCode());
|
|
||||||
result = prime * result + ((description == null) ? 0 : description.hashCode());
|
|
||||||
result = prime * result + ((elementName == null) ? 0 : elementName.hashCode());
|
|
||||||
result = prime * result + instanceID;
|
|
||||||
result = prime * result + ((limit == null) ? 0 : limit.hashCode());
|
|
||||||
result = prime * result + ((mappingBehavior == null) ? 0 : mappingBehavior.hashCode());
|
|
||||||
result = prime * result + ((otherResourceType == null) ? 0 : otherResourceType.hashCode());
|
|
||||||
result = prime * result + ((parent == null) ? 0 : parent.hashCode());
|
|
||||||
result = prime * result + ((poolID == null) ? 0 : poolID.hashCode());
|
|
||||||
result = prime * result + ((reservation == null) ? 0 : reservation.hashCode());
|
|
||||||
result = prime * result + ((resourceSubType == null) ? 0 : resourceSubType.hashCode());
|
|
||||||
result = prime * result + ((resourceType == null) ? 0 : resourceType.hashCode());
|
|
||||||
result = prime * result + (int) (virtualQuantity ^ (virtualQuantity >>> 32));
|
|
||||||
result = prime * result
|
|
||||||
+ ((virtualQuantityUnits == null) ? 0 : virtualQuantityUnits.hashCode());
|
|
||||||
result = prime * result + ((weight == null) ? 0 : weight.hashCode());
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (this == obj)
|
|
||||||
return true;
|
|
||||||
if (obj == null)
|
|
||||||
return false;
|
|
||||||
if (getClass() != obj.getClass())
|
|
||||||
return false;
|
|
||||||
TerremarkResourceAllocation other = (TerremarkResourceAllocation) obj;
|
|
||||||
if (address == null) {
|
|
||||||
if (other.address != null)
|
|
||||||
return false;
|
|
||||||
} else if (!address.equals(other.address))
|
|
||||||
return false;
|
|
||||||
if (addressOnParent == null) {
|
|
||||||
if (other.addressOnParent != null)
|
|
||||||
return false;
|
|
||||||
} else if (!addressOnParent.equals(other.addressOnParent))
|
|
||||||
return false;
|
|
||||||
if (allocationUnits == null) {
|
|
||||||
if (other.allocationUnits != null)
|
|
||||||
return false;
|
|
||||||
} else if (!allocationUnits.equals(other.allocationUnits))
|
|
||||||
return false;
|
|
||||||
if (automaticAllocation == null) {
|
|
||||||
if (other.automaticAllocation != null)
|
|
||||||
return false;
|
|
||||||
} else if (!automaticAllocation.equals(other.automaticAllocation))
|
|
||||||
return false;
|
|
||||||
if (automaticDeallocation == null) {
|
|
||||||
if (other.automaticDeallocation != null)
|
|
||||||
return false;
|
|
||||||
} else if (!automaticDeallocation.equals(other.automaticDeallocation))
|
|
||||||
return false;
|
|
||||||
if (caption == null) {
|
|
||||||
if (other.caption != null)
|
|
||||||
return false;
|
|
||||||
} else if (!caption.equals(other.caption))
|
|
||||||
return false;
|
|
||||||
if (consumerVisibility == null) {
|
|
||||||
if (other.consumerVisibility != null)
|
|
||||||
return false;
|
|
||||||
} else if (!consumerVisibility.equals(other.consumerVisibility))
|
|
||||||
return false;
|
|
||||||
if (description == null) {
|
|
||||||
if (other.description != null)
|
|
||||||
return false;
|
|
||||||
} else if (!description.equals(other.description))
|
|
||||||
return false;
|
|
||||||
if (elementName == null) {
|
|
||||||
if (other.elementName != null)
|
|
||||||
return false;
|
|
||||||
} else if (!elementName.equals(other.elementName))
|
|
||||||
return false;
|
|
||||||
if (instanceID != other.instanceID)
|
|
||||||
return false;
|
|
||||||
if (limit == null) {
|
|
||||||
if (other.limit != null)
|
|
||||||
return false;
|
|
||||||
} else if (!limit.equals(other.limit))
|
|
||||||
return false;
|
|
||||||
if (mappingBehavior == null) {
|
|
||||||
if (other.mappingBehavior != null)
|
|
||||||
return false;
|
|
||||||
} else if (!mappingBehavior.equals(other.mappingBehavior))
|
|
||||||
return false;
|
|
||||||
if (otherResourceType == null) {
|
|
||||||
if (other.otherResourceType != null)
|
|
||||||
return false;
|
|
||||||
} else if (!otherResourceType.equals(other.otherResourceType))
|
|
||||||
return false;
|
|
||||||
if (parent == null) {
|
|
||||||
if (other.parent != null)
|
|
||||||
return false;
|
|
||||||
} else if (!parent.equals(other.parent))
|
|
||||||
return false;
|
|
||||||
if (poolID == null) {
|
|
||||||
if (other.poolID != null)
|
|
||||||
return false;
|
|
||||||
} else if (!poolID.equals(other.poolID))
|
|
||||||
return false;
|
|
||||||
if (reservation == null) {
|
|
||||||
if (other.reservation != null)
|
|
||||||
return false;
|
|
||||||
} else if (!reservation.equals(other.reservation))
|
|
||||||
return false;
|
|
||||||
if (resourceSubType == null) {
|
|
||||||
if (other.resourceSubType != null)
|
|
||||||
return false;
|
|
||||||
} else if (!resourceSubType.equals(other.resourceSubType))
|
|
||||||
return false;
|
|
||||||
if (resourceType == null) {
|
|
||||||
if (other.resourceType != null)
|
|
||||||
return false;
|
|
||||||
} else if (!resourceType.equals(other.resourceType))
|
|
||||||
return false;
|
|
||||||
if (virtualQuantity != other.virtualQuantity)
|
|
||||||
return false;
|
|
||||||
if (virtualQuantityUnits == null) {
|
|
||||||
if (other.virtualQuantityUnits != null)
|
|
||||||
return false;
|
|
||||||
} else if (!virtualQuantityUnits.equals(other.virtualQuantityUnits))
|
|
||||||
return false;
|
|
||||||
if (weight == null) {
|
|
||||||
if (other.weight != null)
|
|
||||||
return false;
|
|
||||||
} else if (!weight.equals(other.weight))
|
|
||||||
return false;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "ResourceAllocation [address=" + address + ", addressOnParent=" + addressOnParent
|
|
||||||
+ ", allocationUnits=" + allocationUnits + ", automaticAllocation="
|
|
||||||
+ automaticAllocation + ", automaticDeallocation=" + automaticDeallocation
|
|
||||||
+ ", caption=" + caption + ", consumerVisibility=" + consumerVisibility
|
|
||||||
+ ", description=" + description + ", elementName=" + elementName + ", instanceID="
|
|
||||||
+ instanceID + ", limit=" + limit + ", mappingBehavior=" + mappingBehavior
|
|
||||||
+ ", otherResourceType=" + otherResourceType + ", parent=" + parent + ", poolID="
|
|
||||||
+ poolID + ", reservation=" + reservation + ", resourceSubType=" + resourceSubType
|
|
||||||
+ ", resourceType=" + resourceType + ", virtualQuantity=" + virtualQuantity
|
|
||||||
+ ", virtualQuantityUnits=" + virtualQuantityUnits + ", weight=" + weight + "]";
|
|
||||||
}
|
|
||||||
|
|
||||||
public int compareTo(TerremarkResourceAllocation that) {
|
|
||||||
final int BEFORE = -1;
|
|
||||||
final int EQUAL = 0;
|
|
||||||
final int AFTER = 1;
|
|
||||||
|
|
||||||
if (this == that)
|
|
||||||
return EQUAL;
|
|
||||||
|
|
||||||
int comparison = this.resourceType.compareTo(that.resourceType);
|
|
||||||
if (comparison != EQUAL)
|
|
||||||
return comparison;
|
|
||||||
|
|
||||||
if (this.instanceID < that.instanceID)
|
|
||||||
return BEFORE;
|
|
||||||
if (this.instanceID > that.instanceID)
|
|
||||||
return AFTER;
|
|
||||||
return EQUAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getHostResource() {
|
|
||||||
return hostResource;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -24,18 +24,20 @@
|
||||||
package org.jclouds.vcloud.domain;
|
package org.jclouds.vcloud.domain;
|
||||||
|
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.URI;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.SortedSet;
|
import java.util.SortedSet;
|
||||||
|
|
||||||
|
|
||||||
import com.google.common.collect.ListMultimap;
|
import com.google.common.collect.ListMultimap;
|
||||||
|
|
||||||
public interface VApp {
|
/**
|
||||||
String getId();
|
* A virtual application (vApp) is a software solution, packaged in OVF containing one or more
|
||||||
|
* virtual machines. A vApp can be authored by Developers at ISVs and VARs or by IT Administrators
|
||||||
URI getLocation();
|
* in Enterprises and Service Providers.
|
||||||
|
*
|
||||||
String getName();
|
* @author Adrian Cole
|
||||||
|
*/
|
||||||
|
public interface VApp extends NamedResource {
|
||||||
|
|
||||||
VAppStatus getStatus();
|
VAppStatus getStatus();
|
||||||
|
|
||||||
|
|
|
@ -23,10 +23,8 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.vcloud.domain;
|
package org.jclouds.vcloud.domain;
|
||||||
|
|
||||||
import java.net.URI;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.vcloud.domain.internal.VDCImpl;
|
import org.jclouds.vcloud.domain.internal.VDCImpl;
|
||||||
|
|
||||||
import com.google.inject.ImplementedBy;
|
import com.google.inject.ImplementedBy;
|
||||||
|
@ -36,13 +34,7 @@ import com.google.inject.ImplementedBy;
|
||||||
*/
|
*/
|
||||||
@org.jclouds.vcloud.endpoints.VDC
|
@org.jclouds.vcloud.endpoints.VDC
|
||||||
@ImplementedBy(VDCImpl.class)
|
@ImplementedBy(VDCImpl.class)
|
||||||
public interface VDC {
|
public interface VDC extends NamedResource {
|
||||||
|
|
||||||
String getName();
|
|
||||||
|
|
||||||
String getId();
|
|
||||||
|
|
||||||
URI getLocation();
|
|
||||||
|
|
||||||
String getDescription();
|
String getDescription();
|
||||||
|
|
||||||
|
|
|
@ -29,8 +29,9 @@ import java.net.URI;
|
||||||
import java.util.SortedMap;
|
import java.util.SortedMap;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
import org.jclouds.vcloud.domain.Catalog;
|
import org.jclouds.vcloud.domain.Catalog;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
|
|
||||||
import com.google.inject.internal.Nullable;
|
import com.google.inject.internal.Nullable;
|
||||||
|
|
||||||
|
@ -44,13 +45,14 @@ public class CatalogImpl extends TreeMap<String, NamedResource> implements Catal
|
||||||
|
|
||||||
/** The serialVersionUID */
|
/** The serialVersionUID */
|
||||||
private static final long serialVersionUID = 8464716396538298809L;
|
private static final long serialVersionUID = 8464716396538298809L;
|
||||||
|
private final String id;
|
||||||
private final String name;
|
private final String name;
|
||||||
private final String description;
|
private final String description;
|
||||||
private final URI location;
|
private final URI location;
|
||||||
|
|
||||||
public CatalogImpl(String name, URI location, @Nullable String description,
|
public CatalogImpl(String id, String name, URI location, @Nullable String description,
|
||||||
SortedMap<String, NamedResource> contents) {
|
SortedMap<String, NamedResource> contents) {
|
||||||
super();
|
this.id = checkNotNull(id, "id");
|
||||||
this.name = checkNotNull(name, "name");
|
this.name = checkNotNull(name, "name");
|
||||||
this.description = description;
|
this.description = description;
|
||||||
this.location = checkNotNull(location, "location");
|
this.location = checkNotNull(location, "location");
|
||||||
|
@ -61,6 +63,10 @@ public class CatalogImpl extends TreeMap<String, NamedResource> implements Catal
|
||||||
return location;
|
return location;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
@ -106,4 +112,14 @@ public class CatalogImpl extends TreeMap<String, NamedResource> implements Catal
|
||||||
return description;
|
return description;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getType() {
|
||||||
|
return VCloudMediaType.CATALOG_XML;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(NamedResource o) {
|
||||||
|
return (this == o) ? 0 : getId().compareTo(o.getId());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -21,11 +21,11 @@
|
||||||
* under the License.
|
* under the License.
|
||||||
* ====================================================================
|
* ====================================================================
|
||||||
*/
|
*/
|
||||||
package org.jclouds.rest.domain.internal;
|
package org.jclouds.vcloud.domain.internal;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
|
||||||
import org.jclouds.rest.domain.Link;
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Location of a Rest resource
|
* Location of a Rest resource
|
||||||
|
@ -33,15 +33,27 @@ import org.jclouds.rest.domain.Link;
|
||||||
* @author Adrian Cole
|
* @author Adrian Cole
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class LinkImpl implements Link {
|
public class NamedResourceImpl implements NamedResource {
|
||||||
|
private final String id;
|
||||||
|
private final String name;
|
||||||
private final String type;
|
private final String type;
|
||||||
private final URI location;
|
private final URI location;
|
||||||
|
|
||||||
public LinkImpl(String type, URI location) {
|
public NamedResourceImpl(String id, String name, String type, URI location) {
|
||||||
|
this.id = id;
|
||||||
|
this.name = name;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.location = location;
|
this.location = location;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
public String getType() {
|
public String getType() {
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
@ -50,11 +62,17 @@ public class LinkImpl implements Link {
|
||||||
return location;
|
return location;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int compareTo(NamedResource that) {
|
||||||
|
return (this == that) ? 0 : this.id.compareTo(that.getId());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
final int prime = 31;
|
final int prime = 31;
|
||||||
int result = 1;
|
int result = 1;
|
||||||
|
result = prime * result + ((id == null) ? 0 : id.hashCode());
|
||||||
result = prime * result + ((location == null) ? 0 : location.hashCode());
|
result = prime * result + ((location == null) ? 0 : location.hashCode());
|
||||||
|
result = prime * result + ((name == null) ? 0 : name.hashCode());
|
||||||
result = prime * result + ((type == null) ? 0 : type.hashCode());
|
result = prime * result + ((type == null) ? 0 : type.hashCode());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -67,12 +85,22 @@ public class LinkImpl implements Link {
|
||||||
return false;
|
return false;
|
||||||
if (getClass() != obj.getClass())
|
if (getClass() != obj.getClass())
|
||||||
return false;
|
return false;
|
||||||
LinkImpl other = (LinkImpl) obj;
|
NamedResourceImpl other = (NamedResourceImpl) obj;
|
||||||
|
if (id == null) {
|
||||||
|
if (other.id != null)
|
||||||
|
return false;
|
||||||
|
} else if (!id.equals(other.id))
|
||||||
|
return false;
|
||||||
if (location == null) {
|
if (location == null) {
|
||||||
if (other.location != null)
|
if (other.location != null)
|
||||||
return false;
|
return false;
|
||||||
} else if (!location.equals(other.location))
|
} else if (!location.equals(other.location))
|
||||||
return false;
|
return false;
|
||||||
|
if (name == null) {
|
||||||
|
if (other.name != null)
|
||||||
|
return false;
|
||||||
|
} else if (!name.equals(other.name))
|
||||||
|
return false;
|
||||||
if (type == null) {
|
if (type == null) {
|
||||||
if (other.type != null)
|
if (other.type != null)
|
||||||
return false;
|
return false;
|
||||||
|
@ -83,6 +111,7 @@ public class LinkImpl implements Link {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "LinkImpl [location=" + location + ", type=" + type + "]";
|
return "NamedResourceImpl [id=" + id + ", name=" + name + ", type=" + type + ", location="
|
||||||
|
+ location + "]";
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -26,7 +26,8 @@ package org.jclouds.vcloud.domain.internal;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.jclouds.rest.domain.NamedLink;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.Organization;
|
import org.jclouds.vcloud.domain.Organization;
|
||||||
import org.jclouds.vcloud.endpoints.Catalog;
|
import org.jclouds.vcloud.endpoints.Catalog;
|
||||||
import org.jclouds.vcloud.endpoints.TasksList;
|
import org.jclouds.vcloud.endpoints.TasksList;
|
||||||
|
@ -42,12 +43,12 @@ public class OrganizationImpl implements Organization {
|
||||||
private final String id;
|
private final String id;
|
||||||
private final String name;
|
private final String name;
|
||||||
private final URI location;
|
private final URI location;
|
||||||
private final NamedLink catalog;
|
private final NamedResource catalog;
|
||||||
private final Map<String, NamedLink> vdcs;
|
private final Map<String, NamedResource> vdcs;
|
||||||
private final Map<String, NamedLink> tasksLists;
|
private final Map<String, NamedResource> tasksLists;
|
||||||
|
|
||||||
public OrganizationImpl(String id, String name, URI location, NamedLink catalog,
|
public OrganizationImpl(String id, String name, URI location, NamedResource catalog,
|
||||||
Map<String, NamedLink> vdcs, Map<String, NamedLink> tasksLists) {
|
Map<String, NamedResource> vdcs, Map<String, NamedResource> tasksLists) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.location = location;
|
this.location = location;
|
||||||
|
@ -67,19 +68,19 @@ public class OrganizationImpl implements Organization {
|
||||||
public URI getLocation() {
|
public URI getLocation() {
|
||||||
return location;
|
return location;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Catalog
|
@Catalog
|
||||||
public NamedLink getCatalog() {
|
public NamedResource getCatalog() {
|
||||||
return catalog;
|
return catalog;
|
||||||
}
|
}
|
||||||
|
|
||||||
@VDC
|
@VDC
|
||||||
public Map<String, NamedLink> getVDCs() {
|
public Map<String, NamedResource> getVDCs() {
|
||||||
return vdcs;
|
return vdcs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@TasksList
|
@TasksList
|
||||||
public Map<String, NamedLink> getTasksLists() {
|
public Map<String, NamedResource> getTasksLists() {
|
||||||
return tasksLists;
|
return tasksLists;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,5 +139,13 @@ public class OrganizationImpl implements Organization {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getType() {
|
||||||
|
return VCloudMediaType.ORG_XML;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int compareTo(NamedResource o) {
|
||||||
|
return (this == o) ? 0 : getId().compareTo(o.getId());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -28,7 +28,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.Task;
|
import org.jclouds.vcloud.domain.Task;
|
||||||
import org.jclouds.vcloud.domain.TaskStatus;
|
import org.jclouds.vcloud.domain.TaskStatus;
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ import com.google.common.collect.Multimaps;
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class TasksListImpl implements TasksList {
|
public class TasksListImpl implements TasksList {
|
||||||
|
private final String id;
|
||||||
private final SortedSet<Task> tasks;
|
private final SortedSet<Task> tasks;
|
||||||
private final ListMultimap<URI, Task> tasksByResult;
|
private final ListMultimap<URI, Task> tasksByResult;
|
||||||
private final ListMultimap<URI, Task> tasksByOwner;
|
private final ListMultimap<URI, Task> tasksByOwner;
|
||||||
|
@ -51,7 +51,8 @@ public class TasksListImpl implements TasksList {
|
||||||
/** The serialVersionUID */
|
/** The serialVersionUID */
|
||||||
private static final long serialVersionUID = 8464716396538298809L;
|
private static final long serialVersionUID = 8464716396538298809L;
|
||||||
|
|
||||||
public TasksListImpl(URI location, SortedSet<Task> tasks) {
|
public TasksListImpl(String id, URI location, SortedSet<Task> tasks) {
|
||||||
|
this.id = id;
|
||||||
this.location = location;
|
this.location = location;
|
||||||
this.tasks = tasks;
|
this.tasks = tasks;
|
||||||
this.tasksByResult = Multimaps.index(Iterables.filter(tasks, new Predicate<Task>() {
|
this.tasksByResult = Multimaps.index(Iterables.filter(tasks, new Predicate<Task>() {
|
||||||
|
@ -94,8 +95,10 @@ public class TasksListImpl implements TasksList {
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
final int prime = 31;
|
final int prime = 31;
|
||||||
int result = 1;
|
int result = 1;
|
||||||
|
result = prime * result + ((id == null) ? 0 : id.hashCode());
|
||||||
result = prime * result + ((location == null) ? 0 : location.hashCode());
|
result = prime * result + ((location == null) ? 0 : location.hashCode());
|
||||||
result = prime * result + ((tasks == null) ? 0 : tasks.hashCode());
|
result = prime * result + ((tasks == null) ? 0 : tasks.hashCode());
|
||||||
|
result = prime * result + ((tasksByOwner == null) ? 0 : tasksByOwner.hashCode());
|
||||||
result = prime * result + ((tasksByResult == null) ? 0 : tasksByResult.hashCode());
|
result = prime * result + ((tasksByResult == null) ? 0 : tasksByResult.hashCode());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -109,6 +112,11 @@ public class TasksListImpl implements TasksList {
|
||||||
if (getClass() != obj.getClass())
|
if (getClass() != obj.getClass())
|
||||||
return false;
|
return false;
|
||||||
TasksListImpl other = (TasksListImpl) obj;
|
TasksListImpl other = (TasksListImpl) obj;
|
||||||
|
if (id == null) {
|
||||||
|
if (other.id != null)
|
||||||
|
return false;
|
||||||
|
} else if (!id.equals(other.id))
|
||||||
|
return false;
|
||||||
if (location == null) {
|
if (location == null) {
|
||||||
if (other.location != null)
|
if (other.location != null)
|
||||||
return false;
|
return false;
|
||||||
|
@ -119,6 +127,11 @@ public class TasksListImpl implements TasksList {
|
||||||
return false;
|
return false;
|
||||||
} else if (!tasks.equals(other.tasks))
|
} else if (!tasks.equals(other.tasks))
|
||||||
return false;
|
return false;
|
||||||
|
if (tasksByOwner == null) {
|
||||||
|
if (other.tasksByOwner != null)
|
||||||
|
return false;
|
||||||
|
} else if (!tasksByOwner.equals(other.tasksByOwner))
|
||||||
|
return false;
|
||||||
if (tasksByResult == null) {
|
if (tasksByResult == null) {
|
||||||
if (other.tasksByResult != null)
|
if (other.tasksByResult != null)
|
||||||
return false;
|
return false;
|
||||||
|
@ -134,4 +147,9 @@ public class TasksListImpl implements TasksList {
|
||||||
public ListMultimap<URI, Task> getTasksByOwner() {
|
public ListMultimap<URI, Task> getTasksByOwner() {
|
||||||
return tasksByOwner;
|
return tasksByOwner;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -28,6 +28,8 @@ import java.net.URI;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.SortedSet;
|
import java.util.SortedSet;
|
||||||
|
|
||||||
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.ResourceAllocation;
|
import org.jclouds.vcloud.domain.ResourceAllocation;
|
||||||
import org.jclouds.vcloud.domain.ResourceType;
|
import org.jclouds.vcloud.domain.ResourceType;
|
||||||
import org.jclouds.vcloud.domain.VApp;
|
import org.jclouds.vcloud.domain.VApp;
|
||||||
|
@ -39,7 +41,6 @@ import com.google.common.collect.ListMultimap;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Locations of resources in vCloud
|
|
||||||
*
|
*
|
||||||
* @author Adrian Cole
|
* @author Adrian Cole
|
||||||
*
|
*
|
||||||
|
@ -212,4 +213,13 @@ public class VAppImpl implements VApp {
|
||||||
+ ", size=" + size + ", status=" + status + ", system=" + system + "]";
|
+ ", size=" + size + ", status=" + status + ", system=" + system + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getType() {
|
||||||
|
return VCloudMediaType.VAPP_XML;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(NamedResource o) {
|
||||||
|
return (this == o) ? 0 : getId().compareTo(o.getId());
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -28,8 +28,9 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
import org.jclouds.vcloud.domain.Capacity;
|
import org.jclouds.vcloud.domain.Capacity;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.Quota;
|
import org.jclouds.vcloud.domain.Quota;
|
||||||
import org.jclouds.vcloud.domain.VDC;
|
import org.jclouds.vcloud.domain.VDC;
|
||||||
|
|
||||||
|
@ -203,4 +204,14 @@ public class VDCImpl implements VDC {
|
||||||
public Quota getDeployedVmsQuota() {
|
public Quota getDeployedVmsQuota() {
|
||||||
return deployedVmsQuota;
|
return deployedVmsQuota;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getType() {
|
||||||
|
return VCloudMediaType.VDC_XML;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(NamedResource o) {
|
||||||
|
return (this == o) ? 0 : getId().compareTo(o.getId());
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -38,8 +38,8 @@ import org.jclouds.http.HttpResponse;
|
||||||
import org.jclouds.http.HttpResponseException;
|
import org.jclouds.http.HttpResponseException;
|
||||||
import org.jclouds.http.functions.ParseSax;
|
import org.jclouds.http.functions.ParseSax;
|
||||||
import org.jclouds.http.functions.ParseSax.Factory;
|
import org.jclouds.http.functions.ParseSax.Factory;
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.vcloud.VCloudToken;
|
import org.jclouds.vcloud.VCloudToken;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.endpoints.Org;
|
import org.jclouds.vcloud.endpoints.Org;
|
||||||
import org.jclouds.vcloud.internal.VCloudLoginAsyncClient.VCloudSession;
|
import org.jclouds.vcloud.internal.VCloudLoginAsyncClient.VCloudSession;
|
||||||
import org.jclouds.vcloud.xml.OrgListHandler;
|
import org.jclouds.vcloud.xml.OrgListHandler;
|
||||||
|
|
|
@ -33,9 +33,9 @@ import org.jclouds.http.filters.BasicAuthentication;
|
||||||
import org.jclouds.rest.annotations.Endpoint;
|
import org.jclouds.rest.annotations.Endpoint;
|
||||||
import org.jclouds.rest.annotations.RequestFilters;
|
import org.jclouds.rest.annotations.RequestFilters;
|
||||||
import org.jclouds.rest.annotations.ResponseParser;
|
import org.jclouds.rest.annotations.ResponseParser;
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.vcloud.VCloudMediaType;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
import org.jclouds.vcloud.VCloudToken;
|
import org.jclouds.vcloud.VCloudToken;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.endpoints.Org;
|
import org.jclouds.vcloud.endpoints.Org;
|
||||||
import org.jclouds.vcloud.functions.ParseLoginResponseFromHeaders;
|
import org.jclouds.vcloud.functions.ParseLoginResponseFromHeaders;
|
||||||
|
|
||||||
|
|
|
@ -21,17 +21,13 @@
|
||||||
* under the License.
|
* under the License.
|
||||||
* ====================================================================
|
* ====================================================================
|
||||||
*/
|
*/
|
||||||
package org.jclouds.rest.util;
|
package org.jclouds.vcloud.util;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.jclouds.rest.domain.Link;
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.rest.domain.NamedLink;
|
import org.jclouds.vcloud.domain.internal.NamedResourceImpl;
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.rest.domain.internal.LinkImpl;
|
|
||||||
import org.jclouds.rest.domain.internal.NamedLinkImpl;
|
|
||||||
import org.jclouds.rest.internal.NamedResourceImpl;
|
|
||||||
import org.xml.sax.Attributes;
|
import org.xml.sax.Attributes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -40,20 +36,6 @@ import org.xml.sax.Attributes;
|
||||||
*/
|
*/
|
||||||
public class Utils {
|
public class Utils {
|
||||||
|
|
||||||
public static void putNamedLink(Map<String, NamedLink> map, Attributes attributes) {
|
|
||||||
map.put(attributes.getValue(attributes.getIndex("name")), newNamedLink(attributes));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Link newLink(Attributes attributes) {
|
|
||||||
return new LinkImpl(attributes.getValue(attributes.getIndex("type")), URI.create(attributes
|
|
||||||
.getValue(attributes.getIndex("href"))));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static NamedLink newNamedLink(Attributes attributes) {
|
|
||||||
return new NamedLinkImpl(attributes.getValue(attributes.getIndex("name")), attributes
|
|
||||||
.getValue(attributes.getIndex("type")), URI.create(attributes.getValue(attributes
|
|
||||||
.getIndex("href"))));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static NamedResource newNamedResource(Attributes attributes) {
|
public static NamedResource newNamedResource(Attributes attributes) {
|
||||||
String uri = attributes.getValue(attributes.getIndex("href"));
|
String uri = attributes.getValue(attributes.getIndex("href"));
|
|
@ -30,13 +30,12 @@ import java.util.SortedMap;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import org.jclouds.http.functions.ParseSax;
|
import org.jclouds.http.functions.ParseSax;
|
||||||
import org.jclouds.rest.domain.NamedLink;
|
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.rest.domain.internal.NamedLinkImpl;
|
|
||||||
import org.jclouds.rest.internal.NamedResourceImpl;
|
|
||||||
import org.jclouds.vcloud.domain.Catalog;
|
import org.jclouds.vcloud.domain.Catalog;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.internal.CatalogImpl;
|
import org.jclouds.vcloud.domain.internal.CatalogImpl;
|
||||||
|
import org.jclouds.vcloud.domain.internal.NamedResourceImpl;
|
||||||
import org.jclouds.vcloud.endpoints.internal.CatalogItemRoot;
|
import org.jclouds.vcloud.endpoints.internal.CatalogItemRoot;
|
||||||
|
import org.jclouds.vcloud.util.Utils;
|
||||||
import org.xml.sax.Attributes;
|
import org.xml.sax.Attributes;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
|
@ -48,7 +47,7 @@ import com.google.common.collect.Maps;
|
||||||
public class CatalogHandler extends ParseSax.HandlerWithResult<Catalog> {
|
public class CatalogHandler extends ParseSax.HandlerWithResult<Catalog> {
|
||||||
private StringBuilder currentText = new StringBuilder();
|
private StringBuilder currentText = new StringBuilder();
|
||||||
|
|
||||||
private NamedLink Catalog;
|
private NamedResource catalog;
|
||||||
private SortedMap<String, NamedResource> contents = Maps.newTreeMap();
|
private SortedMap<String, NamedResource> contents = Maps.newTreeMap();
|
||||||
@Inject
|
@Inject
|
||||||
@CatalogItemRoot
|
@CatalogItemRoot
|
||||||
|
@ -57,16 +56,15 @@ public class CatalogHandler extends ParseSax.HandlerWithResult<Catalog> {
|
||||||
private String description;
|
private String description;
|
||||||
|
|
||||||
public Catalog getResult() {
|
public Catalog getResult() {
|
||||||
return new CatalogImpl(Catalog.getName(), Catalog.getLocation(), description, contents);
|
return new CatalogImpl(catalog.getId(), catalog.getName(), catalog.getLocation(),
|
||||||
|
description, contents);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void startElement(String uri, String localName, String qName, Attributes attributes)
|
public void startElement(String uri, String localName, String qName, Attributes attributes)
|
||||||
throws SAXException {
|
throws SAXException {
|
||||||
if (qName.equals("Catalog")) {
|
if (qName.equals("Catalog")) {
|
||||||
Catalog = new NamedLinkImpl(attributes.getValue(attributes.getIndex("name")), attributes
|
catalog = Utils.newNamedResource(attributes);
|
||||||
.getValue(attributes.getIndex("type")), URI.create(attributes.getValue(attributes
|
|
||||||
.getIndex("href"))));
|
|
||||||
} else if (qName.equals("CatalogItem")) {
|
} else if (qName.equals("CatalogItem")) {
|
||||||
putNamedResource(contents, attributes);
|
putNamedResource(contents, attributes);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,24 +23,18 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.vcloud.xml;
|
package org.jclouds.vcloud.xml;
|
||||||
|
|
||||||
import static org.jclouds.rest.util.Utils.newNamedLink;
|
|
||||||
import static org.jclouds.rest.util.Utils.putNamedLink;
|
|
||||||
import static org.jclouds.vcloud.VCloudMediaType.CATALOG_XML;
|
import static org.jclouds.vcloud.VCloudMediaType.CATALOG_XML;
|
||||||
import static org.jclouds.vcloud.VCloudMediaType.TASKSLIST_XML;
|
import static org.jclouds.vcloud.VCloudMediaType.TASKSLIST_XML;
|
||||||
import static org.jclouds.vcloud.VCloudMediaType.VDC_XML;
|
import static org.jclouds.vcloud.VCloudMediaType.VDC_XML;
|
||||||
|
import static org.jclouds.vcloud.util.Utils.newNamedResource;
|
||||||
|
import static org.jclouds.vcloud.util.Utils.putNamedResource;
|
||||||
|
|
||||||
import java.net.URI;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.jclouds.http.functions.ParseSax;
|
import org.jclouds.http.functions.ParseSax;
|
||||||
import org.jclouds.rest.domain.NamedLink;
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.rest.internal.NamedResourceImpl;
|
|
||||||
import org.jclouds.vcloud.domain.Organization;
|
import org.jclouds.vcloud.domain.Organization;
|
||||||
import org.jclouds.vcloud.domain.internal.OrganizationImpl;
|
import org.jclouds.vcloud.domain.internal.OrganizationImpl;
|
||||||
import org.jclouds.vcloud.endpoints.VCloudApi;
|
|
||||||
import org.xml.sax.Attributes;
|
import org.xml.sax.Attributes;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
|
@ -51,12 +45,9 @@ import com.google.common.collect.Maps;
|
||||||
*/
|
*/
|
||||||
public class OrgHandler extends ParseSax.HandlerWithResult<Organization> {
|
public class OrgHandler extends ParseSax.HandlerWithResult<Organization> {
|
||||||
private NamedResource org;
|
private NamedResource org;
|
||||||
private Map<String, NamedLink> vdcs = Maps.newHashMap();
|
private Map<String, NamedResource> vdcs = Maps.newHashMap();
|
||||||
private Map<String, NamedLink> tasksLists = Maps.newHashMap();
|
private Map<String, NamedResource> tasksLists = Maps.newHashMap();
|
||||||
private NamedLink catalog;
|
private NamedResource catalog;
|
||||||
@Inject
|
|
||||||
@VCloudApi
|
|
||||||
URI vcloudUri;
|
|
||||||
|
|
||||||
public Organization getResult() {
|
public Organization getResult() {
|
||||||
return new OrganizationImpl(org.getId(), org.getName(), org.getLocation(), catalog, vdcs,
|
return new OrganizationImpl(org.getId(), org.getName(), org.getLocation(), catalog, vdcs,
|
||||||
|
@ -72,21 +63,13 @@ public class OrgHandler extends ParseSax.HandlerWithResult<Organization> {
|
||||||
int typeIndex = attributes.getIndex("type");
|
int typeIndex = attributes.getIndex("type");
|
||||||
if (typeIndex != -1) {
|
if (typeIndex != -1) {
|
||||||
if (attributes.getValue(typeIndex).equals(VDC_XML)) {
|
if (attributes.getValue(typeIndex).equals(VDC_XML)) {
|
||||||
putNamedLink(vdcs, attributes);
|
putNamedResource(vdcs, attributes);
|
||||||
} else if (attributes.getValue(typeIndex).equals(CATALOG_XML)) {
|
} else if (attributes.getValue(typeIndex).equals(CATALOG_XML)) {
|
||||||
catalog = newNamedLink(attributes);
|
catalog = newNamedResource(attributes);
|
||||||
} else if (attributes.getValue(typeIndex).equals(TASKSLIST_XML)) {
|
} else if (attributes.getValue(typeIndex).equals(TASKSLIST_XML)) {
|
||||||
putNamedLink(tasksLists, attributes);
|
putNamedResource(tasksLists, attributes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public NamedResource newNamedResource(Attributes attributes) {
|
|
||||||
return new NamedResourceImpl(attributes.getValue(attributes.getIndex("href")).replace(
|
|
||||||
vcloudUri.toASCIIString() + "/org/", ""), attributes.getValue(attributes
|
|
||||||
.getIndex("name")), attributes.getValue(attributes.getIndex("type")), URI
|
|
||||||
.create(attributes.getValue(attributes.getIndex("href"))));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,13 +23,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.vcloud.xml;
|
package org.jclouds.vcloud.xml;
|
||||||
|
|
||||||
import static org.jclouds.rest.util.Utils.putNamedResource;
|
|
||||||
import static org.jclouds.vcloud.VCloudMediaType.ORG_XML;
|
import static org.jclouds.vcloud.VCloudMediaType.ORG_XML;
|
||||||
|
import static org.jclouds.vcloud.util.Utils.putNamedResource;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.jclouds.http.functions.ParseSax;
|
import org.jclouds.http.functions.ParseSax;
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.xml.sax.Attributes;
|
import org.xml.sax.Attributes;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
|
|
|
@ -32,11 +32,11 @@ import javax.inject.Inject;
|
||||||
import org.jclouds.date.DateService;
|
import org.jclouds.date.DateService;
|
||||||
import org.jclouds.http.functions.ParseSax;
|
import org.jclouds.http.functions.ParseSax;
|
||||||
import org.jclouds.logging.Logger;
|
import org.jclouds.logging.Logger;
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.rest.util.Utils;
|
|
||||||
import org.jclouds.vcloud.domain.Task;
|
import org.jclouds.vcloud.domain.Task;
|
||||||
import org.jclouds.vcloud.domain.TaskStatus;
|
import org.jclouds.vcloud.domain.TaskStatus;
|
||||||
import org.jclouds.vcloud.domain.internal.TaskImpl;
|
import org.jclouds.vcloud.domain.internal.TaskImpl;
|
||||||
|
import org.jclouds.vcloud.util.Utils;
|
||||||
import org.xml.sax.Attributes;
|
import org.xml.sax.Attributes;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
|
|
|
@ -23,16 +23,16 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.vcloud.xml;
|
package org.jclouds.vcloud.xml;
|
||||||
|
|
||||||
import java.net.URI;
|
|
||||||
import java.util.SortedSet;
|
import java.util.SortedSet;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import org.jclouds.http.functions.ParseSax;
|
import org.jclouds.http.functions.ParseSax;
|
||||||
import org.jclouds.rest.util.Utils;
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.Task;
|
import org.jclouds.vcloud.domain.Task;
|
||||||
import org.jclouds.vcloud.domain.TasksList;
|
import org.jclouds.vcloud.domain.TasksList;
|
||||||
import org.jclouds.vcloud.domain.internal.TasksListImpl;
|
import org.jclouds.vcloud.domain.internal.TasksListImpl;
|
||||||
|
import org.jclouds.vcloud.util.Utils;
|
||||||
import org.xml.sax.Attributes;
|
import org.xml.sax.Attributes;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ public class TasksListHandler extends ParseSax.HandlerWithResult<TasksList> {
|
||||||
|
|
||||||
private SortedSet<Task> tasks = Sets.newTreeSet();
|
private SortedSet<Task> tasks = Sets.newTreeSet();
|
||||||
private final TaskHandler taskHandler;
|
private final TaskHandler taskHandler;
|
||||||
private URI location;
|
private NamedResource resource;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public TasksListHandler(TaskHandler taskHandler) {
|
public TasksListHandler(TaskHandler taskHandler) {
|
||||||
|
@ -53,17 +53,17 @@ public class TasksListHandler extends ParseSax.HandlerWithResult<TasksList> {
|
||||||
}
|
}
|
||||||
|
|
||||||
public TasksList getResult() {
|
public TasksList getResult() {
|
||||||
return new TasksListImpl(location, tasks);
|
return new TasksListImpl(resource.getId(), resource.getLocation(), tasks);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void startElement(String uri, String localName, String qName, Attributes attributes)
|
public void startElement(String uri, String localName, String qName, Attributes attributes)
|
||||||
throws SAXException {
|
throws SAXException {
|
||||||
if (qName.equals("TasksList")) {
|
if (qName.equals("TasksList")) {
|
||||||
location = Utils.newLink(attributes).getLocation();
|
resource = Utils.newNamedResource(attributes);
|
||||||
} else if (qName.equals("Link") && attributes.getIndex("rel") != -1
|
} else if (qName.equals("Link") && attributes.getIndex("rel") != -1
|
||||||
&& attributes.getValue(attributes.getIndex("rel")).equals("self")) {
|
&& attributes.getValue(attributes.getIndex("rel")).equals("self")) {
|
||||||
location = Utils.newLink(attributes).getLocation();
|
resource = Utils.newNamedResource(attributes);
|
||||||
} else {
|
} else {
|
||||||
taskHandler.startElement(uri, localName, qName, attributes);
|
taskHandler.startElement(uri, localName, qName, attributes);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,14 +23,14 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.vcloud.xml;
|
package org.jclouds.vcloud.xml;
|
||||||
|
|
||||||
import static org.jclouds.rest.util.Utils.newNamedResource;
|
import static org.jclouds.vcloud.util.Utils.newNamedResource;
|
||||||
import static org.jclouds.rest.util.Utils.putNamedResource;
|
import static org.jclouds.vcloud.util.Utils.putNamedResource;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.jclouds.http.functions.ParseSax;
|
import org.jclouds.http.functions.ParseSax;
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.vcloud.domain.Capacity;
|
import org.jclouds.vcloud.domain.Capacity;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.Quota;
|
import org.jclouds.vcloud.domain.Quota;
|
||||||
import org.jclouds.vcloud.domain.VDC;
|
import org.jclouds.vcloud.domain.VDC;
|
||||||
import org.jclouds.vcloud.domain.internal.VDCImpl;
|
import org.jclouds.vcloud.domain.internal.VDCImpl;
|
||||||
|
|
|
@ -110,6 +110,21 @@ public class VCloudAsyncClientTest extends RestClientTest<VCloudAsyncClient> {
|
||||||
checkFilters(httpMethod);
|
checkFilters(httpMethod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testGetVDC() throws SecurityException, NoSuchMethodException, IOException {
|
||||||
|
Method method = VCloudAsyncClient.class.getMethod("getVDC", String.class);
|
||||||
|
GeneratedHttpRequest<VCloudAsyncClient> httpMethod = processor.createRequest(method, "1");
|
||||||
|
|
||||||
|
assertRequestLineEquals(httpMethod, "GET http://vcloud/vdc/1 HTTP/1.1");
|
||||||
|
assertHeadersEqual(httpMethod, "Accept: application/vnd.vmware.vcloud.vdc+xml\n");
|
||||||
|
assertPayloadEquals(httpMethod, null);
|
||||||
|
|
||||||
|
assertResponseParserClassEquals(method, httpMethod, ParseSax.class);
|
||||||
|
assertSaxResponseParserClassEquals(method, VDCHandler.class);
|
||||||
|
assertExceptionParserClassEquals(method, null);
|
||||||
|
|
||||||
|
checkFilters(httpMethod);
|
||||||
|
}
|
||||||
|
|
||||||
public void testGetDefaultTasksList() throws SecurityException, NoSuchMethodException,
|
public void testGetDefaultTasksList() throws SecurityException, NoSuchMethodException,
|
||||||
IOException {
|
IOException {
|
||||||
Method method = VCloudAsyncClient.class.getMethod("getDefaultTasksList");
|
Method method = VCloudAsyncClient.class.getMethod("getDefaultTasksList");
|
||||||
|
@ -126,6 +141,21 @@ public class VCloudAsyncClientTest extends RestClientTest<VCloudAsyncClient> {
|
||||||
checkFilters(httpMethod);
|
checkFilters(httpMethod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testGetTasksList() throws SecurityException, NoSuchMethodException, IOException {
|
||||||
|
Method method = VCloudAsyncClient.class.getMethod("getTasksList", String.class);
|
||||||
|
GeneratedHttpRequest<VCloudAsyncClient> httpMethod = processor.createRequest(method, "1");
|
||||||
|
|
||||||
|
assertRequestLineEquals(httpMethod, "GET http://vcloud/tasksList/1 HTTP/1.1");
|
||||||
|
assertHeadersEqual(httpMethod, "Accept: application/vnd.vmware.vcloud.tasksList+xml\n");
|
||||||
|
assertPayloadEquals(httpMethod, null);
|
||||||
|
|
||||||
|
assertResponseParserClassEquals(method, httpMethod, ParseSax.class);
|
||||||
|
assertSaxResponseParserClassEquals(method, TasksListHandler.class);
|
||||||
|
assertExceptionParserClassEquals(method, null);
|
||||||
|
|
||||||
|
checkFilters(httpMethod);
|
||||||
|
}
|
||||||
|
|
||||||
public void testDeployVApp() throws SecurityException, NoSuchMethodException, IOException {
|
public void testDeployVApp() throws SecurityException, NoSuchMethodException, IOException {
|
||||||
Method method = VCloudAsyncClient.class.getMethod("deployVApp", String.class);
|
Method method = VCloudAsyncClient.class.getMethod("deployVApp", String.class);
|
||||||
GeneratedHttpRequest<VCloudAsyncClient> httpMethod = processor.createRequest(method, 1);
|
GeneratedHttpRequest<VCloudAsyncClient> httpMethod = processor.createRequest(method, 1);
|
||||||
|
|
|
@ -30,8 +30,8 @@ import static org.testng.Assert.assertNotNull;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
|
||||||
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
|
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.vcloud.domain.Catalog;
|
import org.jclouds.vcloud.domain.Catalog;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.Organization;
|
import org.jclouds.vcloud.domain.Organization;
|
||||||
import org.jclouds.vcloud.domain.Task;
|
import org.jclouds.vcloud.domain.Task;
|
||||||
import org.jclouds.vcloud.domain.VApp;
|
import org.jclouds.vcloud.domain.VApp;
|
||||||
|
@ -54,6 +54,7 @@ public class VCloudClientLiveTest {
|
||||||
public void testOrganization() throws Exception {
|
public void testOrganization() throws Exception {
|
||||||
Organization response = connection.getOrganization();
|
Organization response = connection.getOrganization();
|
||||||
assertNotNull(response);
|
assertNotNull(response);
|
||||||
|
assertNotNull(response.getId());
|
||||||
assertNotNull(account);
|
assertNotNull(account);
|
||||||
assertNotNull(response.getCatalog());
|
assertNotNull(response.getCatalog());
|
||||||
assertEquals(response.getTasksLists().size(), 1);
|
assertEquals(response.getTasksLists().size(), 1);
|
||||||
|
@ -64,6 +65,7 @@ public class VCloudClientLiveTest {
|
||||||
public void testCatalog() throws Exception {
|
public void testCatalog() throws Exception {
|
||||||
Catalog response = connection.getCatalog();
|
Catalog response = connection.getCatalog();
|
||||||
assertNotNull(response);
|
assertNotNull(response);
|
||||||
|
assertNotNull(response.getId());
|
||||||
assertNotNull(response.getName());
|
assertNotNull(response.getName());
|
||||||
assertNotNull(response.getLocation());
|
assertNotNull(response.getLocation());
|
||||||
assert response.size() > 0;
|
assert response.size() > 0;
|
||||||
|
@ -73,18 +75,22 @@ public class VCloudClientLiveTest {
|
||||||
public void testDefaultVDC() throws Exception {
|
public void testDefaultVDC() throws Exception {
|
||||||
VDC response = connection.getDefaultVDC();
|
VDC response = connection.getDefaultVDC();
|
||||||
assertNotNull(response);
|
assertNotNull(response);
|
||||||
|
assertNotNull(response.getId());
|
||||||
assertNotNull(response.getName());
|
assertNotNull(response.getName());
|
||||||
assertNotNull(response.getLocation());
|
assertNotNull(response.getLocation());
|
||||||
assertNotNull(response.getResourceEntities());
|
assertNotNull(response.getResourceEntities());
|
||||||
assertNotNull(response.getAvailableNetworks());
|
assertNotNull(response.getAvailableNetworks());
|
||||||
|
assertEquals(connection.getVDC(response.getId()), response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDefaultTasksList() throws Exception {
|
public void testDefaultTasksList() throws Exception {
|
||||||
org.jclouds.vcloud.domain.TasksList response = connection.getDefaultTasksList();
|
org.jclouds.vcloud.domain.TasksList response = connection.getDefaultTasksList();
|
||||||
assertNotNull(response);
|
assertNotNull(response);
|
||||||
|
assertNotNull(response.getId());
|
||||||
assertNotNull(response.getLocation());
|
assertNotNull(response.getLocation());
|
||||||
assertNotNull(response.getTasks());
|
assertNotNull(response.getTasks());
|
||||||
|
assertEquals(connection.getTasksList(response.getId()), response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -44,9 +44,9 @@ import org.jclouds.http.handlers.CloseContentAndSetExceptionErrorHandler;
|
||||||
import org.jclouds.http.handlers.DelegatingErrorHandler;
|
import org.jclouds.http.handlers.DelegatingErrorHandler;
|
||||||
import org.jclouds.http.handlers.DelegatingRetryHandler;
|
import org.jclouds.http.handlers.DelegatingRetryHandler;
|
||||||
import org.jclouds.http.handlers.RedirectionRetryHandler;
|
import org.jclouds.http.handlers.RedirectionRetryHandler;
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.util.Jsr330;
|
import org.jclouds.util.Jsr330;
|
||||||
import org.jclouds.util.Utils;
|
import org.jclouds.util.Utils;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.internal.VCloudLoginAsyncClient;
|
import org.jclouds.vcloud.internal.VCloudLoginAsyncClient;
|
||||||
import org.jclouds.vcloud.internal.VCloudLoginAsyncClient.VCloudSession;
|
import org.jclouds.vcloud.internal.VCloudLoginAsyncClient.VCloudSession;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
|
@ -31,8 +31,8 @@ import javax.ws.rs.core.HttpHeaders;
|
||||||
|
|
||||||
import org.jclouds.http.HttpResponse;
|
import org.jclouds.http.HttpResponse;
|
||||||
import org.jclouds.http.functions.BaseHandlerTest;
|
import org.jclouds.http.functions.BaseHandlerTest;
|
||||||
import org.jclouds.rest.internal.NamedResourceImpl;
|
|
||||||
import org.jclouds.vcloud.VCloudMediaType;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
|
import org.jclouds.vcloud.domain.internal.NamedResourceImpl;
|
||||||
import org.jclouds.vcloud.internal.VCloudLoginAsyncClient.VCloudSession;
|
import org.jclouds.vcloud.internal.VCloudLoginAsyncClient.VCloudSession;
|
||||||
import org.testng.annotations.BeforeTest;
|
import org.testng.annotations.BeforeTest;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
|
@ -32,8 +32,8 @@ import java.net.URI;
|
||||||
import org.jclouds.http.functions.ParseSax;
|
import org.jclouds.http.functions.ParseSax;
|
||||||
import org.jclouds.http.functions.ParseSax.Factory;
|
import org.jclouds.http.functions.ParseSax.Factory;
|
||||||
import org.jclouds.http.functions.config.ParserModule;
|
import org.jclouds.http.functions.config.ParserModule;
|
||||||
import org.jclouds.rest.internal.NamedResourceImpl;
|
|
||||||
import org.jclouds.vcloud.domain.Catalog;
|
import org.jclouds.vcloud.domain.Catalog;
|
||||||
|
import org.jclouds.vcloud.domain.internal.NamedResourceImpl;
|
||||||
import org.jclouds.vcloud.endpoints.internal.CatalogItemRoot;
|
import org.jclouds.vcloud.endpoints.internal.CatalogItemRoot;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
|
|
@ -35,9 +35,9 @@ import javax.inject.Singleton;
|
||||||
import org.jclouds.http.functions.ParseSax;
|
import org.jclouds.http.functions.ParseSax;
|
||||||
import org.jclouds.http.functions.ParseSax.Factory;
|
import org.jclouds.http.functions.ParseSax.Factory;
|
||||||
import org.jclouds.http.functions.config.ParserModule;
|
import org.jclouds.http.functions.config.ParserModule;
|
||||||
import org.jclouds.rest.domain.internal.NamedLinkImpl;
|
|
||||||
import org.jclouds.vcloud.VCloudMediaType;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
import org.jclouds.vcloud.domain.Organization;
|
import org.jclouds.vcloud.domain.Organization;
|
||||||
|
import org.jclouds.vcloud.domain.internal.NamedResourceImpl;
|
||||||
import org.jclouds.vcloud.endpoints.VCloudApi;
|
import org.jclouds.vcloud.endpoints.VCloudApi;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
@ -55,45 +55,46 @@ import com.google.inject.Provides;
|
||||||
@Test(groups = "unit", testName = "vcloud.OrgHandlerTest")
|
@Test(groups = "unit", testName = "vcloud.OrgHandlerTest")
|
||||||
public class OrgHandlerTest {
|
public class OrgHandlerTest {
|
||||||
|
|
||||||
|
|
||||||
public void testApplyInputStream() {
|
public void testApplyInputStream() {
|
||||||
InputStream is = getClass().getResourceAsStream("/org.xml");
|
InputStream is = getClass().getResourceAsStream("/org.xml");
|
||||||
|
|
||||||
Injector injector = Guice.createInjector(new ParserModule(), new AbstractModule(){
|
Injector injector = Guice.createInjector(new ParserModule(), new AbstractModule() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configure() {
|
protected void configure() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
@VCloudApi
|
@VCloudApi
|
||||||
URI provide(){
|
URI provide() {
|
||||||
return URI.create("https://services.vcloudexpress.terremark.com/api/v0.8");
|
return URI.create("https://services.vcloudexpress.terremark.com/api/v0.8");
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
Factory factory = injector.getInstance(ParseSax.Factory.class);
|
Factory factory = injector.getInstance(ParseSax.Factory.class);
|
||||||
|
|
||||||
Organization result = (Organization) factory.create(injector.getInstance(OrgHandler.class))
|
Organization result = (Organization) factory.create(injector.getInstance(OrgHandler.class))
|
||||||
.parse(is);
|
.parse(is);
|
||||||
assertEquals(result.getName(), "adrian@jclouds.org");
|
assertEquals(result.getName(), "adrian@jclouds.org");
|
||||||
assertEquals(result.getId(), 48+"");
|
assertEquals(result.getId(), 48 + "");
|
||||||
assertEquals(result.getLocation(), URI
|
assertEquals(result.getLocation(), URI
|
||||||
.create("https://services.vcloudexpress.terremark.com/api/v0.8/org/48"));
|
.create("https://services.vcloudexpress.terremark.com/api/v0.8/org/48"));
|
||||||
assertEquals(result.getCatalog(), new NamedLinkImpl("Miami Environment 1 Catalog",
|
assertEquals(result.getCatalog(), new NamedResourceImpl("catalog",
|
||||||
CATALOG_XML,
|
"Miami Environment 1 Catalog", CATALOG_XML,
|
||||||
URI.create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32/catalog")));
|
URI.create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32/catalog")));
|
||||||
assertEquals(result.getVDCs(), ImmutableMap.of("Miami Environment 1", new NamedLinkImpl(
|
assertEquals(result.getVDCs(), ImmutableMap.of("Miami Environment 1", new NamedResourceImpl(
|
||||||
"Miami Environment 1", VCloudMediaType.VDC_XML, URI
|
"32", "Miami Environment 1", VCloudMediaType.VDC_XML, URI
|
||||||
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32"))));
|
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32"))));
|
||||||
assertEquals(
|
assertEquals(
|
||||||
result.getTasksLists(),
|
result.getTasksLists(),
|
||||||
ImmutableMap
|
ImmutableMap
|
||||||
.of(
|
.of(
|
||||||
"Miami Environment 1 Tasks List",
|
"Miami Environment 1 Tasks List",
|
||||||
new NamedLinkImpl(
|
new NamedResourceImpl(
|
||||||
|
"32",
|
||||||
"Miami Environment 1 Tasks List",
|
"Miami Environment 1 Tasks List",
|
||||||
TASKSLIST_XML,
|
TASKSLIST_XML,
|
||||||
URI
|
URI
|
||||||
|
@ -102,35 +103,37 @@ public class OrgHandlerTest {
|
||||||
|
|
||||||
public void testHosting() {
|
public void testHosting() {
|
||||||
InputStream is = getClass().getResourceAsStream("/org-hosting.xml");
|
InputStream is = getClass().getResourceAsStream("/org-hosting.xml");
|
||||||
Injector injector = Guice.createInjector(new ParserModule(), new AbstractModule(){
|
Injector injector = Guice.createInjector(new ParserModule(), new AbstractModule() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configure() {
|
protected void configure() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
@VCloudApi
|
@VCloudApi
|
||||||
URI provide(){
|
URI provide() {
|
||||||
return URI.create("https://vcloud.safesecureweb.com/api/v0.8");
|
return URI.create("https://vcloud.safesecureweb.com/api/v0.8");
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
Factory factory = injector.getInstance(ParseSax.Factory.class);
|
Factory factory = injector.getInstance(ParseSax.Factory.class);
|
||||||
Organization result = (Organization) factory.create(injector.getInstance(OrgHandler.class))
|
Organization result = (Organization) factory.create(injector.getInstance(OrgHandler.class))
|
||||||
.parse(is);
|
.parse(is);
|
||||||
assertEquals(result.getName(), "Customer 188849");
|
assertEquals(result.getName(), "Customer 188849");
|
||||||
assertEquals(result.getId(), 188849+"");
|
assertEquals(result.getId(), 188849 + "");
|
||||||
assertEquals(result.getLocation(), URI
|
assertEquals(result.getLocation(), URI
|
||||||
.create("https://vcloud.safesecureweb.com/api/v0.8/org/188849"));
|
.create("https://vcloud.safesecureweb.com/api/v0.8/org/188849"));
|
||||||
assertEquals(result.getCatalog(), new NamedLinkImpl("HMS Shared Catalog", CATALOG_XML, URI
|
assertEquals(result.getCatalog(), new NamedResourceImpl("1", "HMS Shared Catalog",
|
||||||
.create("https://vcloud.safesecureweb.com/api/v0.8/catalog/1")));
|
CATALOG_XML, URI.create("https://vcloud.safesecureweb.com/api/v0.8/catalog/1")));
|
||||||
assertEquals(result.getVDCs(), ImmutableMap.of("188849 Virtual DataCenter",
|
assertEquals(result.getVDCs(), ImmutableMap.of("188849 Virtual DataCenter",
|
||||||
new NamedLinkImpl("188849 Virtual DataCenter", VCloudMediaType.VDC_XML, URI
|
new NamedResourceImpl("188849", "188849 Virtual DataCenter",
|
||||||
.create("https://vcloud.safesecureweb.com/api/v0.8/vdc/188849"))));
|
VCloudMediaType.VDC_XML, URI
|
||||||
assertEquals(result.getTasksLists(), ImmutableMap.of("188849 Task List", new NamedLinkImpl(
|
.create("https://vcloud.safesecureweb.com/api/v0.8/vdc/188849"))));
|
||||||
"188849 Task List", TASKSLIST_XML, URI
|
assertEquals(result.getTasksLists(), ImmutableMap.of("188849 Task List",
|
||||||
|
new NamedResourceImpl("188849", "188849 Task List", TASKSLIST_XML, URI
|
||||||
.create("https://vcloud.safesecureweb.com/api/v0.8/tasksList/188849"))));
|
.create("https://vcloud.safesecureweb.com/api/v0.8/tasksList/188849"))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,9 +30,9 @@ import java.net.URI;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.jclouds.http.functions.BaseHandlerTest;
|
import org.jclouds.http.functions.BaseHandlerTest;
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.rest.internal.NamedResourceImpl;
|
|
||||||
import org.jclouds.vcloud.VCloudMediaType;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
|
import org.jclouds.vcloud.domain.internal.NamedResourceImpl;
|
||||||
import org.testng.annotations.BeforeTest;
|
import org.testng.annotations.BeforeTest;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
|
|
@ -30,10 +30,10 @@ import java.net.URI;
|
||||||
|
|
||||||
import org.jclouds.date.DateService;
|
import org.jclouds.date.DateService;
|
||||||
import org.jclouds.http.functions.BaseHandlerTest;
|
import org.jclouds.http.functions.BaseHandlerTest;
|
||||||
import org.jclouds.rest.internal.NamedResourceImpl;
|
|
||||||
import org.jclouds.vcloud.VCloudMediaType;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
import org.jclouds.vcloud.domain.Task;
|
import org.jclouds.vcloud.domain.Task;
|
||||||
import org.jclouds.vcloud.domain.TaskStatus;
|
import org.jclouds.vcloud.domain.TaskStatus;
|
||||||
|
import org.jclouds.vcloud.domain.internal.NamedResourceImpl;
|
||||||
import org.jclouds.vcloud.domain.internal.TaskImpl;
|
import org.jclouds.vcloud.domain.internal.TaskImpl;
|
||||||
import org.testng.annotations.BeforeTest;
|
import org.testng.annotations.BeforeTest;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
|
@ -30,11 +30,11 @@ import java.net.URI;
|
||||||
|
|
||||||
import org.jclouds.date.DateService;
|
import org.jclouds.date.DateService;
|
||||||
import org.jclouds.http.functions.BaseHandlerTest;
|
import org.jclouds.http.functions.BaseHandlerTest;
|
||||||
import org.jclouds.rest.internal.NamedResourceImpl;
|
|
||||||
import org.jclouds.vcloud.VCloudMediaType;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
import org.jclouds.vcloud.domain.Task;
|
import org.jclouds.vcloud.domain.Task;
|
||||||
import org.jclouds.vcloud.domain.TaskStatus;
|
import org.jclouds.vcloud.domain.TaskStatus;
|
||||||
import org.jclouds.vcloud.domain.TasksList;
|
import org.jclouds.vcloud.domain.TasksList;
|
||||||
|
import org.jclouds.vcloud.domain.internal.NamedResourceImpl;
|
||||||
import org.jclouds.vcloud.domain.internal.TaskImpl;
|
import org.jclouds.vcloud.domain.internal.TaskImpl;
|
||||||
import org.testng.annotations.BeforeTest;
|
import org.testng.annotations.BeforeTest;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
|
@ -31,11 +31,11 @@ import java.net.URI;
|
||||||
import org.jclouds.http.functions.ParseSax;
|
import org.jclouds.http.functions.ParseSax;
|
||||||
import org.jclouds.http.functions.ParseSax.Factory;
|
import org.jclouds.http.functions.ParseSax.Factory;
|
||||||
import org.jclouds.http.functions.config.ParserModule;
|
import org.jclouds.http.functions.config.ParserModule;
|
||||||
import org.jclouds.rest.domain.NamedLink;
|
|
||||||
import org.jclouds.rest.internal.NamedResourceImpl;
|
|
||||||
import org.jclouds.vcloud.domain.Capacity;
|
import org.jclouds.vcloud.domain.Capacity;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.Quota;
|
import org.jclouds.vcloud.domain.Quota;
|
||||||
import org.jclouds.vcloud.domain.VDC;
|
import org.jclouds.vcloud.domain.VDC;
|
||||||
|
import org.jclouds.vcloud.domain.internal.NamedResourceImpl;
|
||||||
import org.jclouds.vcloud.endpoints.VCloudApi;
|
import org.jclouds.vcloud.endpoints.VCloudApi;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ public class VDCHandlerTest {
|
||||||
assertEquals(result.getMemoryCapacity(), null);
|
assertEquals(result.getMemoryCapacity(), null);
|
||||||
assertEquals(result.getInstantiatedVmsQuota(), null);
|
assertEquals(result.getInstantiatedVmsQuota(), null);
|
||||||
assertEquals(result.getDeployedVmsQuota(), null);
|
assertEquals(result.getDeployedVmsQuota(), null);
|
||||||
assertEquals(result.getResourceEntities(), ImmutableMap.<String, NamedLink> of());
|
assertEquals(result.getResourceEntities(), ImmutableMap.<String, NamedResource> of());
|
||||||
assertEquals(
|
assertEquals(
|
||||||
result.getAvailableNetworks(),
|
result.getAvailableNetworks(),
|
||||||
ImmutableMap
|
ImmutableMap
|
||||||
|
@ -123,7 +123,7 @@ public class VDCHandlerTest {
|
||||||
assertEquals(result.getDeployedVmsQuota(), new Quota(0, 2));
|
assertEquals(result.getDeployedVmsQuota(), new Quota(0, 2));
|
||||||
assertEquals(
|
assertEquals(
|
||||||
result.getResourceEntities(),
|
result.getResourceEntities(),
|
||||||
new ImmutableMap.Builder<String, NamedLink>()
|
new ImmutableMap.Builder<String, NamedResource>()
|
||||||
.put(
|
.put(
|
||||||
"Plesk (Linux) 64-bit Template",
|
"Plesk (Linux) 64-bit Template",
|
||||||
new NamedResourceImpl(
|
new NamedResourceImpl(
|
||||||
|
@ -175,6 +175,6 @@ public class VDCHandlerTest {
|
||||||
.create("https://vcloud.safesecureweb.com/api/v0.8/vApp/188849-2")))
|
.create("https://vcloud.safesecureweb.com/api/v0.8/vApp/188849-2")))
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
assertEquals(result.getAvailableNetworks(), ImmutableMap.<String, NamedLink> of());
|
assertEquals(result.getAvailableNetworks(), ImmutableMap.<String, NamedResource> of());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,8 +43,8 @@ import org.jclouds.compute.domain.internal.CreateServerResponseImpl;
|
||||||
import org.jclouds.compute.domain.internal.ServerMetadataImpl;
|
import org.jclouds.compute.domain.internal.ServerMetadataImpl;
|
||||||
import org.jclouds.domain.Credentials;
|
import org.jclouds.domain.Credentials;
|
||||||
import org.jclouds.logging.Logger;
|
import org.jclouds.logging.Logger;
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.vcloud.VCloudMediaType;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.VApp;
|
import org.jclouds.vcloud.domain.VApp;
|
||||||
import org.jclouds.vcloud.domain.VAppStatus;
|
import org.jclouds.vcloud.domain.VAppStatus;
|
||||||
import org.jclouds.vcloud.hostingdotcom.HostingDotComVCloudClient;
|
import org.jclouds.vcloud.hostingdotcom.HostingDotComVCloudClient;
|
||||||
|
|
|
@ -89,8 +89,20 @@ public interface TerremarkVCloudAsyncClient extends VCloudAsyncClient {
|
||||||
@Endpoint(org.jclouds.vcloud.endpoints.VDC.class)
|
@Endpoint(org.jclouds.vcloud.endpoints.VDC.class)
|
||||||
@XMLResponseParser(TerremarkVDCHandler.class)
|
@XMLResponseParser(TerremarkVDCHandler.class)
|
||||||
@Consumes(VDC_XML)
|
@Consumes(VDC_XML)
|
||||||
|
@Override
|
||||||
Future<? extends VDC> getDefaultVDC();
|
Future<? extends VDC> getDefaultVDC();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see TerremarkVCloudClient#getVDC
|
||||||
|
*/
|
||||||
|
@GET
|
||||||
|
@Endpoint(org.jclouds.vcloud.endpoints.VCloudApi.class)
|
||||||
|
@Path("/vdc/{vDCId}")
|
||||||
|
@XMLResponseParser(TerremarkVDCHandler.class)
|
||||||
|
@Consumes(VDC_XML)
|
||||||
|
@Override
|
||||||
|
Future<? extends VDC> getVDC(@PathParam("vDCId") String vDCId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see TerremarkVCloudClient#instantiateVAppTemplate
|
* @see TerremarkVCloudClient#instantiateVAppTemplate
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -44,8 +44,8 @@ import org.jclouds.compute.domain.internal.CreateServerResponseImpl;
|
||||||
import org.jclouds.compute.domain.internal.ServerMetadataImpl;
|
import org.jclouds.compute.domain.internal.ServerMetadataImpl;
|
||||||
import org.jclouds.domain.Credentials;
|
import org.jclouds.domain.Credentials;
|
||||||
import org.jclouds.logging.Logger;
|
import org.jclouds.logging.Logger;
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.vcloud.VCloudMediaType;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.VApp;
|
import org.jclouds.vcloud.domain.VApp;
|
||||||
import org.jclouds.vcloud.domain.VAppStatus;
|
import org.jclouds.vcloud.domain.VAppStatus;
|
||||||
import org.jclouds.vcloud.terremark.TerremarkVCloudClient;
|
import org.jclouds.vcloud.terremark.TerremarkVCloudClient;
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.vcloud.terremark.domain;
|
package org.jclouds.vcloud.terremark.domain;
|
||||||
|
|
||||||
import org.jclouds.rest.domain.Link;
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.VApp;
|
import org.jclouds.vcloud.domain.VApp;
|
||||||
import org.jclouds.vcloud.terremark.domain.internal.TerremarkVAppImpl;
|
import org.jclouds.vcloud.terremark.domain.internal.TerremarkVAppImpl;
|
||||||
|
|
||||||
|
@ -35,10 +35,10 @@ import com.google.inject.ImplementedBy;
|
||||||
@ImplementedBy(TerremarkVAppImpl.class)
|
@ImplementedBy(TerremarkVAppImpl.class)
|
||||||
public interface TerremarkVApp extends VApp {
|
public interface TerremarkVApp extends VApp {
|
||||||
|
|
||||||
Link getVDC();
|
NamedResource getVDC();
|
||||||
|
|
||||||
Link getComputeOptions();
|
NamedResource getComputeOptions();
|
||||||
|
|
||||||
Link getCustomizationOptions();
|
NamedResource getCustomizationOptions();
|
||||||
|
|
||||||
}
|
}
|
|
@ -23,7 +23,7 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.vcloud.terremark.domain;
|
package org.jclouds.vcloud.terremark.domain;
|
||||||
|
|
||||||
import org.jclouds.rest.domain.Link;
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.VDC;
|
import org.jclouds.vcloud.domain.VDC;
|
||||||
import org.jclouds.vcloud.endpoints.Catalog;
|
import org.jclouds.vcloud.endpoints.Catalog;
|
||||||
import org.jclouds.vcloud.terremark.domain.internal.TerremarkVDCImpl;
|
import org.jclouds.vcloud.terremark.domain.internal.TerremarkVDCImpl;
|
||||||
|
@ -40,13 +40,13 @@ import com.google.inject.ImplementedBy;
|
||||||
public interface TerremarkVDC extends VDC {
|
public interface TerremarkVDC extends VDC {
|
||||||
|
|
||||||
@Catalog
|
@Catalog
|
||||||
Link getCatalog();
|
NamedResource getCatalog();
|
||||||
|
|
||||||
@PublicIPs
|
@PublicIPs
|
||||||
Link getPublicIps();
|
NamedResource getPublicIps();
|
||||||
|
|
||||||
@InternetServices
|
@InternetServices
|
||||||
Link getInternetServices();
|
NamedResource getInternetServices();
|
||||||
|
|
||||||
// TODO getDescription() // what is the type?
|
// TODO getDescription() // what is the type?
|
||||||
}
|
}
|
|
@ -21,10 +21,12 @@
|
||||||
* under the License.
|
* under the License.
|
||||||
* ====================================================================
|
* ====================================================================
|
||||||
*/
|
*/
|
||||||
package org.jclouds.vcloud.domain;
|
package org.jclouds.vcloud.terremark.domain;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import org.jclouds.vcloud.domain.VirtualSystem;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Adrian Cole
|
* @author Adrian Cole
|
||||||
*/
|
*/
|
|
@ -27,12 +27,12 @@ import java.net.InetAddress;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.util.SortedSet;
|
import java.util.SortedSet;
|
||||||
|
|
||||||
import org.jclouds.rest.domain.Link;
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.ResourceAllocation;
|
import org.jclouds.vcloud.domain.ResourceAllocation;
|
||||||
import org.jclouds.vcloud.domain.TerremarkVirtualSystem;
|
|
||||||
import org.jclouds.vcloud.domain.VAppStatus;
|
import org.jclouds.vcloud.domain.VAppStatus;
|
||||||
import org.jclouds.vcloud.domain.internal.VAppImpl;
|
import org.jclouds.vcloud.domain.internal.VAppImpl;
|
||||||
import org.jclouds.vcloud.terremark.domain.TerremarkVApp;
|
import org.jclouds.vcloud.terremark.domain.TerremarkVApp;
|
||||||
|
import org.jclouds.vcloud.terremark.domain.TerremarkVirtualSystem;
|
||||||
|
|
||||||
import com.google.common.collect.ListMultimap;
|
import com.google.common.collect.ListMultimap;
|
||||||
|
|
||||||
|
@ -44,15 +44,15 @@ import com.google.common.collect.ListMultimap;
|
||||||
*/
|
*/
|
||||||
public class TerremarkVAppImpl extends VAppImpl implements TerremarkVApp {
|
public class TerremarkVAppImpl extends VAppImpl implements TerremarkVApp {
|
||||||
|
|
||||||
private final Link vDC;
|
private final NamedResource vDC;
|
||||||
private final Link computeOptions;
|
private final NamedResource computeOptions;
|
||||||
private final Link customizationOptions;
|
private final NamedResource customizationOptions;
|
||||||
|
|
||||||
/** The serialVersionUID */
|
/** The serialVersionUID */
|
||||||
private static final long serialVersionUID = 8464716396538298809L;
|
private static final long serialVersionUID = 8464716396538298809L;
|
||||||
|
|
||||||
public TerremarkVAppImpl(String id, String name, String type, URI location, VAppStatus status,
|
public TerremarkVAppImpl(String id, String name, String type, URI location, VAppStatus status,
|
||||||
long size, Link vDC, Link computeOptions, Link customizationOptions,
|
long size, NamedResource vDC, NamedResource computeOptions, NamedResource customizationOptions,
|
||||||
ListMultimap<String, InetAddress> networkToAddresses,
|
ListMultimap<String, InetAddress> networkToAddresses,
|
||||||
String operatingSystemDescription, TerremarkVirtualSystem system,
|
String operatingSystemDescription, TerremarkVirtualSystem system,
|
||||||
SortedSet<ResourceAllocation> resourceAllocations) {
|
SortedSet<ResourceAllocation> resourceAllocations) {
|
||||||
|
@ -63,15 +63,15 @@ public class TerremarkVAppImpl extends VAppImpl implements TerremarkVApp {
|
||||||
this.customizationOptions = customizationOptions;
|
this.customizationOptions = customizationOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Link getVDC() {
|
public NamedResource getVDC() {
|
||||||
return vDC;
|
return vDC;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Link getComputeOptions() {
|
public NamedResource getComputeOptions() {
|
||||||
return computeOptions;
|
return computeOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Link getCustomizationOptions() {
|
public NamedResource getCustomizationOptions() {
|
||||||
return customizationOptions;
|
return customizationOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,9 +28,8 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.jclouds.rest.domain.NamedLink;
|
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.vcloud.domain.Capacity;
|
import org.jclouds.vcloud.domain.Capacity;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.Quota;
|
import org.jclouds.vcloud.domain.Quota;
|
||||||
import org.jclouds.vcloud.domain.internal.VDCImpl;
|
import org.jclouds.vcloud.domain.internal.VDCImpl;
|
||||||
import org.jclouds.vcloud.terremark.domain.TerremarkVDC;
|
import org.jclouds.vcloud.terremark.domain.TerremarkVDC;
|
||||||
|
@ -43,9 +42,9 @@ import org.jclouds.vcloud.terremark.domain.TerremarkVDC;
|
||||||
*/
|
*/
|
||||||
public class TerremarkVDCImpl extends VDCImpl implements TerremarkVDC {
|
public class TerremarkVDCImpl extends VDCImpl implements TerremarkVDC {
|
||||||
|
|
||||||
private final NamedLink catalog;
|
private final NamedResource catalog;
|
||||||
private final NamedLink publicIps;
|
private final NamedResource publicIps;
|
||||||
private final NamedLink internetServices;
|
private final NamedResource internetServices;
|
||||||
|
|
||||||
/** The serialVersionUID */
|
/** The serialVersionUID */
|
||||||
private static final long serialVersionUID = 8464716396538298809L;
|
private static final long serialVersionUID = 8464716396538298809L;
|
||||||
|
@ -54,8 +53,8 @@ public class TerremarkVDCImpl extends VDCImpl implements TerremarkVDC {
|
||||||
Capacity storageCapacity, Capacity cpuCapacity, Capacity memoryCapacity,
|
Capacity storageCapacity, Capacity cpuCapacity, Capacity memoryCapacity,
|
||||||
Quota instantiatedVmsQuota, Quota deployedVmsQuota,
|
Quota instantiatedVmsQuota, Quota deployedVmsQuota,
|
||||||
Map<String, NamedResource> availableNetworks,
|
Map<String, NamedResource> availableNetworks,
|
||||||
Map<String, NamedResource> resourceEntities, NamedLink catalog, NamedLink publicIps,
|
Map<String, NamedResource> resourceEntities, NamedResource catalog, NamedResource publicIps,
|
||||||
NamedLink internetServices) {
|
NamedResource internetServices) {
|
||||||
super(id, name, location, description, storageCapacity, cpuCapacity, memoryCapacity,
|
super(id, name, location, description, storageCapacity, cpuCapacity, memoryCapacity,
|
||||||
instantiatedVmsQuota, deployedVmsQuota, availableNetworks, resourceEntities);
|
instantiatedVmsQuota, deployedVmsQuota, availableNetworks, resourceEntities);
|
||||||
this.catalog = checkNotNull(catalog, "catalog");
|
this.catalog = checkNotNull(catalog, "catalog");
|
||||||
|
@ -63,15 +62,15 @@ public class TerremarkVDCImpl extends VDCImpl implements TerremarkVDC {
|
||||||
this.internetServices = checkNotNull(internetServices, "internetServices");
|
this.internetServices = checkNotNull(internetServices, "internetServices");
|
||||||
}
|
}
|
||||||
|
|
||||||
public NamedLink getCatalog() {
|
public NamedResource getCatalog() {
|
||||||
return catalog;
|
return catalog;
|
||||||
}
|
}
|
||||||
|
|
||||||
public NamedLink getPublicIps() {
|
public NamedResource getPublicIps() {
|
||||||
return publicIps;
|
return publicIps;
|
||||||
}
|
}
|
||||||
|
|
||||||
public NamedLink getInternetServices() {
|
public NamedResource getInternetServices() {
|
||||||
return internetServices;
|
return internetServices;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,17 +34,16 @@ import javax.inject.Inject;
|
||||||
|
|
||||||
import org.jclouds.http.functions.ParseSax;
|
import org.jclouds.http.functions.ParseSax;
|
||||||
import org.jclouds.logging.Logger;
|
import org.jclouds.logging.Logger;
|
||||||
import org.jclouds.rest.domain.Link;
|
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.rest.internal.NamedResourceImpl;
|
|
||||||
import org.jclouds.rest.util.Utils;
|
|
||||||
import org.jclouds.vcloud.VCloudMediaType;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.ResourceAllocation;
|
import org.jclouds.vcloud.domain.ResourceAllocation;
|
||||||
import org.jclouds.vcloud.domain.VAppStatus;
|
import org.jclouds.vcloud.domain.VAppStatus;
|
||||||
import org.jclouds.vcloud.domain.TerremarkVirtualSystem;
|
import org.jclouds.vcloud.domain.internal.NamedResourceImpl;
|
||||||
import org.jclouds.vcloud.endpoints.internal.VAppRoot;
|
import org.jclouds.vcloud.endpoints.internal.VAppRoot;
|
||||||
import org.jclouds.vcloud.terremark.domain.TerremarkVApp;
|
import org.jclouds.vcloud.terremark.domain.TerremarkVApp;
|
||||||
|
import org.jclouds.vcloud.terremark.domain.TerremarkVirtualSystem;
|
||||||
import org.jclouds.vcloud.terremark.domain.internal.TerremarkVAppImpl;
|
import org.jclouds.vcloud.terremark.domain.internal.TerremarkVAppImpl;
|
||||||
|
import org.jclouds.vcloud.util.Utils;
|
||||||
import org.xml.sax.Attributes;
|
import org.xml.sax.Attributes;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
|
@ -72,12 +71,12 @@ public class TerremarkVAppHandler extends ParseSax.HandlerWithResult<TerremarkVA
|
||||||
private TerremarkVirtualSystem system;
|
private TerremarkVirtualSystem system;
|
||||||
private SortedSet<ResourceAllocation> allocations = Sets.newTreeSet();
|
private SortedSet<ResourceAllocation> allocations = Sets.newTreeSet();
|
||||||
private NamedResource vApp;
|
private NamedResource vApp;
|
||||||
private Link vDC;
|
private NamedResource vDC;
|
||||||
private VAppStatus status;
|
private VAppStatus status;
|
||||||
private int size;
|
private int size;
|
||||||
private boolean skip;
|
private boolean skip;
|
||||||
private Link computeOptions;
|
private NamedResource computeOptions;
|
||||||
private Link customizationOptions;
|
private NamedResource customizationOptions;
|
||||||
private final ListMultimap<String, InetAddress> networkToAddresses = ArrayListMultimap.create();
|
private final ListMultimap<String, InetAddress> networkToAddresses = ArrayListMultimap.create();
|
||||||
private StringBuilder currentText = new StringBuilder();
|
private StringBuilder currentText = new StringBuilder();
|
||||||
private String operatingSystemDescription;
|
private String operatingSystemDescription;
|
||||||
|
@ -103,12 +102,12 @@ public class TerremarkVAppHandler extends ParseSax.HandlerWithResult<TerremarkVA
|
||||||
}
|
}
|
||||||
if (qName.equals("Link")) {
|
if (qName.equals("Link")) {
|
||||||
if (attributes.getValue(attributes.getIndex("type")).equals(VCloudMediaType.VDC_XML)) {
|
if (attributes.getValue(attributes.getIndex("type")).equals(VCloudMediaType.VDC_XML)) {
|
||||||
vDC = Utils.newLink(attributes);
|
vDC = Utils.newNamedResource(attributes);
|
||||||
} else if (attributes.getValue(attributes.getIndex("name")).equals("Compute Options")) {
|
} else if (attributes.getValue(attributes.getIndex("name")).equals("Compute Options")) {
|
||||||
this.computeOptions = Utils.newLink(attributes);
|
this.computeOptions = Utils.newNamedResource(attributes);
|
||||||
} else if (attributes.getValue(attributes.getIndex("name"))
|
} else if (attributes.getValue(attributes.getIndex("name"))
|
||||||
.equals("Customization Options")) {
|
.equals("Customization Options")) {
|
||||||
this.customizationOptions = Utils.newLink(attributes);
|
this.customizationOptions = Utils.newNamedResource(attributes);
|
||||||
}
|
}
|
||||||
} else if (qName.equals("VApp")) {
|
} else if (qName.equals("VApp")) {
|
||||||
vApp = newNamedResource(attributes);
|
vApp = newNamedResource(attributes);
|
||||||
|
|
|
@ -23,12 +23,12 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.vcloud.terremark.xml;
|
package org.jclouds.vcloud.terremark.xml;
|
||||||
|
|
||||||
import org.jclouds.rest.domain.NamedLink;
|
|
||||||
import org.jclouds.rest.util.Utils;
|
|
||||||
import org.jclouds.vcloud.VCloudMediaType;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.VDC;
|
import org.jclouds.vcloud.domain.VDC;
|
||||||
import org.jclouds.vcloud.terremark.domain.TerremarkVDC;
|
import org.jclouds.vcloud.terremark.domain.TerremarkVDC;
|
||||||
import org.jclouds.vcloud.terremark.domain.internal.TerremarkVDCImpl;
|
import org.jclouds.vcloud.terremark.domain.internal.TerremarkVDCImpl;
|
||||||
|
import org.jclouds.vcloud.util.Utils;
|
||||||
import org.jclouds.vcloud.xml.VDCHandler;
|
import org.jclouds.vcloud.xml.VDCHandler;
|
||||||
import org.xml.sax.Attributes;
|
import org.xml.sax.Attributes;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
@ -38,9 +38,9 @@ import org.xml.sax.SAXException;
|
||||||
*/
|
*/
|
||||||
public class TerremarkVDCHandler extends VDCHandler {
|
public class TerremarkVDCHandler extends VDCHandler {
|
||||||
|
|
||||||
private NamedLink catalog;
|
private NamedResource catalog;
|
||||||
private NamedLink publicIps;
|
private NamedResource publicIps;
|
||||||
private NamedLink internetServices;
|
private NamedResource internetServices;
|
||||||
|
|
||||||
public TerremarkVDC getResult() {
|
public TerremarkVDC getResult() {
|
||||||
VDC vDC = super.getResult();
|
VDC vDC = super.getResult();
|
||||||
|
@ -58,13 +58,13 @@ public class TerremarkVDCHandler extends VDCHandler {
|
||||||
if (qName.equals("Link")) {
|
if (qName.equals("Link")) {
|
||||||
String name = attributes.getValue(attributes.getIndex("name"));
|
String name = attributes.getValue(attributes.getIndex("name"));
|
||||||
if (name.equals("Internet Services")) {
|
if (name.equals("Internet Services")) {
|
||||||
internetServices = Utils.newNamedLink(attributes);
|
internetServices = Utils.newNamedResource(attributes);
|
||||||
} else if (name.equals("Public IPs")) {
|
} else if (name.equals("Public IPs")) {
|
||||||
publicIps = Utils.newNamedLink(attributes);
|
publicIps = Utils.newNamedResource(attributes);
|
||||||
} else {
|
} else {
|
||||||
String type = attributes.getValue(attributes.getIndex("type"));
|
String type = attributes.getValue(attributes.getIndex("type"));
|
||||||
if (type.equals(VCloudMediaType.CATALOG_XML)) {
|
if (type.equals(VCloudMediaType.CATALOG_XML)) {
|
||||||
catalog = Utils.newNamedLink(attributes);
|
catalog = Utils.newNamedResource(attributes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ import org.xml.sax.SAXException;
|
||||||
* @author Adrian Cole
|
* @author Adrian Cole
|
||||||
*/
|
*/
|
||||||
public class VirtualSystemHandler extends
|
public class VirtualSystemHandler extends
|
||||||
ParseSax.HandlerWithResult<org.jclouds.vcloud.domain.TerremarkVirtualSystem> {
|
ParseSax.HandlerWithResult<org.jclouds.vcloud.terremark.domain.TerremarkVirtualSystem> {
|
||||||
private StringBuilder currentText = new StringBuilder();
|
private StringBuilder currentText = new StringBuilder();
|
||||||
|
|
||||||
protected DateService dateService;
|
protected DateService dateService;
|
||||||
|
@ -62,7 +62,7 @@ public class VirtualSystemHandler extends
|
||||||
private String virtualSystemIdentifier;
|
private String virtualSystemIdentifier;
|
||||||
private String virtualSystemType;
|
private String virtualSystemType;
|
||||||
|
|
||||||
private org.jclouds.vcloud.domain.TerremarkVirtualSystem system;
|
private org.jclouds.vcloud.terremark.domain.TerremarkVirtualSystem system;
|
||||||
|
|
||||||
private boolean skip;
|
private boolean skip;
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ public class VirtualSystemHandler extends
|
||||||
this.dateService = dateService;
|
this.dateService = dateService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public org.jclouds.vcloud.domain.TerremarkVirtualSystem getResult() {
|
public org.jclouds.vcloud.terremark.domain.TerremarkVirtualSystem getResult() {
|
||||||
return system;
|
return system;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@ public class VirtualSystemHandler extends
|
||||||
} else if (qName.equals("VirtualSystemType")) {
|
} else if (qName.equals("VirtualSystemType")) {
|
||||||
this.virtualSystemType = currentText.toString().trim();
|
this.virtualSystemType = currentText.toString().trim();
|
||||||
} else if (qName.equals("q2:System")) {
|
} else if (qName.equals("q2:System")) {
|
||||||
this.system = new org.jclouds.vcloud.domain.TerremarkVirtualSystem(
|
this.system = new org.jclouds.vcloud.terremark.domain.TerremarkVirtualSystem(
|
||||||
automaticRecoveryAction, automaticShutdownAction, automaticStartupAction,
|
automaticRecoveryAction, automaticShutdownAction, automaticStartupAction,
|
||||||
automaticStartupActionDelay, automaticStartupActionSequenceNumber, caption,
|
automaticStartupActionDelay, automaticStartupActionSequenceNumber, caption,
|
||||||
configurationDataRoot, configurationFile, configurationID, creationTime,
|
configurationDataRoot, configurationFile, configurationID, creationTime,
|
||||||
|
|
|
@ -39,12 +39,12 @@ import org.jclouds.http.HttpResponseException;
|
||||||
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
|
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
|
||||||
import org.jclouds.predicates.RetryablePredicate;
|
import org.jclouds.predicates.RetryablePredicate;
|
||||||
import org.jclouds.predicates.SocketOpen;
|
import org.jclouds.predicates.SocketOpen;
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.ssh.SshClient;
|
import org.jclouds.ssh.SshClient;
|
||||||
import org.jclouds.ssh.SshClient.Factory;
|
import org.jclouds.ssh.SshClient.Factory;
|
||||||
import org.jclouds.ssh.jsch.config.JschSshClientModule;
|
import org.jclouds.ssh.jsch.config.JschSshClientModule;
|
||||||
import org.jclouds.util.Utils;
|
import org.jclouds.util.Utils;
|
||||||
import org.jclouds.vcloud.VCloudClientLiveTest;
|
import org.jclouds.vcloud.VCloudClientLiveTest;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
import org.jclouds.vcloud.domain.ResourceType;
|
import org.jclouds.vcloud.domain.ResourceType;
|
||||||
import org.jclouds.vcloud.domain.Task;
|
import org.jclouds.vcloud.domain.Task;
|
||||||
import org.jclouds.vcloud.domain.VAppStatus;
|
import org.jclouds.vcloud.domain.VAppStatus;
|
||||||
|
|
|
@ -35,14 +35,14 @@ import javax.ws.rs.core.MediaType;
|
||||||
import org.jclouds.http.functions.BaseHandlerTest;
|
import org.jclouds.http.functions.BaseHandlerTest;
|
||||||
import org.jclouds.http.functions.ParseSax;
|
import org.jclouds.http.functions.ParseSax;
|
||||||
import org.jclouds.http.functions.config.ParserModule;
|
import org.jclouds.http.functions.config.ParserModule;
|
||||||
import org.jclouds.rest.domain.internal.LinkImpl;
|
|
||||||
import org.jclouds.vcloud.VCloudMediaType;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
import org.jclouds.vcloud.domain.ResourceAllocation;
|
import org.jclouds.vcloud.domain.ResourceAllocation;
|
||||||
import org.jclouds.vcloud.domain.ResourceType;
|
import org.jclouds.vcloud.domain.ResourceType;
|
||||||
import org.jclouds.vcloud.domain.TerremarkVirtualSystem;
|
|
||||||
import org.jclouds.vcloud.domain.VAppStatus;
|
import org.jclouds.vcloud.domain.VAppStatus;
|
||||||
|
import org.jclouds.vcloud.domain.internal.NamedResourceImpl;
|
||||||
import org.jclouds.vcloud.endpoints.internal.VAppRoot;
|
import org.jclouds.vcloud.endpoints.internal.VAppRoot;
|
||||||
import org.jclouds.vcloud.terremark.domain.TerremarkVApp;
|
import org.jclouds.vcloud.terremark.domain.TerremarkVApp;
|
||||||
|
import org.jclouds.vcloud.terremark.domain.TerremarkVirtualSystem;
|
||||||
import org.testng.annotations.BeforeTest;
|
import org.testng.annotations.BeforeTest;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
@ -94,8 +94,9 @@ public class TerremarkVAppHandlerTest extends BaseHandlerTest {
|
||||||
|
|
||||||
assertEquals(result.getLocation(), URI
|
assertEquals(result.getLocation(), URI
|
||||||
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vapp/13775"));
|
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vapp/13775"));
|
||||||
assertEquals(result.getVDC(), new LinkImpl("application/vnd.vmware.vcloud.vdc+xml", URI
|
assertEquals(result.getVDC(), new NamedResourceImpl("32", null,
|
||||||
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32")));
|
"application/vnd.vmware.vcloud.vdc+xml", URI
|
||||||
|
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32")));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,17 +115,21 @@ public class TerremarkVAppHandlerTest extends BaseHandlerTest {
|
||||||
|
|
||||||
assertEquals(result.getLocation(), URI
|
assertEquals(result.getLocation(), URI
|
||||||
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vapp/13850"));
|
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vapp/13850"));
|
||||||
assertEquals(result.getVDC(), new LinkImpl(VCloudMediaType.VDC_XML, URI
|
assertEquals(result.getVDC(), new NamedResourceImpl("32", null, VCloudMediaType.VDC_XML, URI
|
||||||
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32")));
|
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32")));
|
||||||
assertEquals(
|
assertEquals(
|
||||||
result.getComputeOptions(),
|
result.getComputeOptions(),
|
||||||
new LinkImpl(
|
new NamedResourceImpl(
|
||||||
|
"compute",
|
||||||
|
"Compute Options",
|
||||||
MediaType.APPLICATION_XML,
|
MediaType.APPLICATION_XML,
|
||||||
URI
|
URI
|
||||||
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vapp/13850/options/compute")));
|
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vapp/13850/options/compute")));
|
||||||
assertEquals(
|
assertEquals(
|
||||||
result.getCustomizationOptions(),
|
result.getCustomizationOptions(),
|
||||||
new LinkImpl(
|
new NamedResourceImpl(
|
||||||
|
"customization",
|
||||||
|
"Customization Options",
|
||||||
MediaType.APPLICATION_XML,
|
MediaType.APPLICATION_XML,
|
||||||
URI
|
URI
|
||||||
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vapp/13850/options/customization")));
|
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vapp/13850/options/customization")));
|
||||||
|
|
|
@ -32,10 +32,9 @@ import java.net.URI;
|
||||||
import org.jclouds.http.functions.ParseSax;
|
import org.jclouds.http.functions.ParseSax;
|
||||||
import org.jclouds.http.functions.ParseSax.Factory;
|
import org.jclouds.http.functions.ParseSax.Factory;
|
||||||
import org.jclouds.http.functions.config.ParserModule;
|
import org.jclouds.http.functions.config.ParserModule;
|
||||||
import org.jclouds.rest.domain.NamedResource;
|
|
||||||
import org.jclouds.rest.domain.internal.NamedLinkImpl;
|
|
||||||
import org.jclouds.rest.internal.NamedResourceImpl;
|
|
||||||
import org.jclouds.vcloud.VCloudMediaType;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
|
import org.jclouds.vcloud.domain.NamedResource;
|
||||||
|
import org.jclouds.vcloud.domain.internal.NamedResourceImpl;
|
||||||
import org.jclouds.vcloud.endpoints.VCloudApi;
|
import org.jclouds.vcloud.endpoints.VCloudApi;
|
||||||
import org.jclouds.vcloud.terremark.domain.TerremarkVDC;
|
import org.jclouds.vcloud.terremark.domain.TerremarkVDC;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
@ -107,13 +106,21 @@ public class TerremarkVDCHandlerTest {
|
||||||
"application/vnd.vmware.vcloud.network+xml",
|
"application/vnd.vmware.vcloud.network+xml",
|
||||||
URI
|
URI
|
||||||
.create("https://services.vcloudexpress.terremark.com/api/v0.8/network/1708"))));
|
.create("https://services.vcloudexpress.terremark.com/api/v0.8/network/1708"))));
|
||||||
assertEquals(result.getCatalog(), new NamedLinkImpl("Miami Environment 1", CATALOG_XML, URI
|
assertEquals(result.getCatalog(), new NamedResourceImpl("catalog", "Miami Environment 1",
|
||||||
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32/catalog")));
|
CATALOG_XML,
|
||||||
assertEquals(result.getPublicIps(), new NamedLinkImpl("Public IPs", "application/xml", URI
|
URI.create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32/catalog")));
|
||||||
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32/publicIps")));
|
assertEquals(
|
||||||
|
result.getPublicIps(),
|
||||||
|
new NamedResourceImpl(
|
||||||
|
"publicIps",
|
||||||
|
"Public IPs",
|
||||||
|
"application/xml",
|
||||||
|
URI
|
||||||
|
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32/publicIps")));
|
||||||
assertEquals(
|
assertEquals(
|
||||||
result.getInternetServices(),
|
result.getInternetServices(),
|
||||||
new NamedLinkImpl(
|
new NamedResourceImpl(
|
||||||
|
"internetServices",
|
||||||
"Internet Services",
|
"Internet Services",
|
||||||
"application/xml",
|
"application/xml",
|
||||||
URI
|
URI
|
||||||
|
|
|
@ -28,7 +28,7 @@ import static org.testng.Assert.assertEquals;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
|
||||||
import org.jclouds.http.functions.BaseHandlerTest;
|
import org.jclouds.http.functions.BaseHandlerTest;
|
||||||
import org.jclouds.vcloud.domain.TerremarkVirtualSystem;
|
import org.jclouds.vcloud.terremark.domain.TerremarkVirtualSystem;
|
||||||
import org.testng.annotations.BeforeTest;
|
import org.testng.annotations.BeforeTest;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue