mirror of https://github.com/apache/jclouds.git
Merge branch 'master' of github.com:jclouds/jclouds into 1.5.x
* 'master' of github.com:jclouds/jclouds: (31 commits) fixed keypair on nova and added test First set of api's for opsource First set of api's for opsource Issue 830: Update client get methods to use new error handler README.md - improved README.md Issue 888: consolidate code that addresses naming conventions, using hyphen as default delimiter organize imports removed deprecated RunScriptOptions & TemplateOptions added new properties object passwordAuthentication is now default for keystone refactored properties objects to be consistent w/keystone corrected spacing and new lines for README.md updated readme.md Intermittent JAXB error Issue 830: Use ResourceNotFoundException Issue 830: Make RasdItemsList implement Set Issue 830: Tidy up client imports and javadoc Issue 830: Tidy up domain object imports and remove unnecessary annotations Issue 830: Use XmlElementWrapper annotation where possible ...
This commit is contained in:
commit
98c1e14820
|
@ -0,0 +1,127 @@
|
||||||
|
jclouds
|
||||||
|
======
|
||||||
|
jclouds is an open source library that helps you get started in the cloud and reuse your java and clojure development skills. Our api allows you freedom to use portable abstractions or cloud-specific features. We test support of 30 cloud providers and cloud software stacks, including Amazon, GoGrid, Ninefold, vCloud, OpenStack, and Azure.
|
||||||
|
We offer several API abstractions as java and clojure libraries. The following are the most mature:
|
||||||
|
|
||||||
|
Features
|
||||||
|
--------
|
||||||
|
Even if you don't need the portable apis we provide, or could roll it your own, programming against cloud environments can be challenging. We focus on the following areas so that you can focus on using the cloud, rather than troubleshooting it!
|
||||||
|
|
||||||
|
* SIMPLE INTERFACE
|
||||||
|
Instead of creating new object types, we reuse concepts like maps so that the programming model is familiar. In this way, you can get started without dealing with REST-like apis or WS.
|
||||||
|
|
||||||
|
* RUNTIME PORTABILITY
|
||||||
|
We have drivers that allow you to operate in restricted environments like Google App Engine. We have very few required dependencies, so we are unlikely to clash with your app.
|
||||||
|
|
||||||
|
* DEAL WITH WEB COMPLEXITY
|
||||||
|
Network based computing introduces issues such as transient failures and redirects.
|
||||||
|
We handle this for you.
|
||||||
|
|
||||||
|
* UNIT TESTABILITY
|
||||||
|
Writing tests for cloud endpoints is difficult. We provide you with Stub connections that simulate a cloud without creating network connections. In this way, you can write your unit tests without mocking complexity or the brittleness of remote connections.
|
||||||
|
|
||||||
|
* PERFORMANCE
|
||||||
|
Writing tests for cloud endpoints is difficult. We provide you with Stub connections that simulate a cloud without creating network connections. In this way, you can write your unit tests without mocking complexity or the brittleness of remote connections.
|
||||||
|
|
||||||
|
* LOCATION
|
||||||
|
All of our abstractions are location-aware. For example, you can get ISO-3166 codes to tell which country or province a cloud runs in.
|
||||||
|
|
||||||
|
* QUALITY
|
||||||
|
We test every provider with live scenarios before each release. If it doesn't pass, the provider goes into the sandbox.
|
||||||
|
|
||||||
|
|
||||||
|
BlobStore
|
||||||
|
-----------
|
||||||
|
Simplifies dealing with key-value providers such as Amazon S3. For example, BlobStore can give you a simple Map view of a container.
|
||||||
|
|
||||||
|
BlobStore Example (Java):
|
||||||
|
|
||||||
|
// init
|
||||||
|
context = new BlobStoreContextFactory().createContext(
|
||||||
|
"aws-s3",
|
||||||
|
accesskeyid,
|
||||||
|
secretaccesskey);
|
||||||
|
blobStore = context.getBlobStore();
|
||||||
|
|
||||||
|
// create container
|
||||||
|
blobStore.createContainerInLocation(null, "mycontainer");
|
||||||
|
|
||||||
|
// add blob
|
||||||
|
blob = blobStore.blobBuilder("test").payload("testdata").build();
|
||||||
|
blobStore.putBlob("mycontainer", blob);
|
||||||
|
|
||||||
|
BlobStore Example (Clojure):
|
||||||
|
|
||||||
|
(use 'org.jclouds.blobstore2)
|
||||||
|
(def *blobstore* (blobstore "azureblob" account encodedkey))
|
||||||
|
(create-container *blobstore* "mycontainer")
|
||||||
|
(put-blob *blobstore* "mycontainer" (blob "test" :payload "testdata"))
|
||||||
|
|
||||||
|
ComputeService
|
||||||
|
---------------
|
||||||
|
Simplifies the task of managing machines in the cloud. For example, you can use ComputeService to start 5 machines and install your software on them.
|
||||||
|
|
||||||
|
Compute Example (Java):
|
||||||
|
|
||||||
|
// init
|
||||||
|
context = new ComputeServiceContextFactory().createContext(
|
||||||
|
"aws-ec2",
|
||||||
|
accesskeyid,
|
||||||
|
secretaccesskey,
|
||||||
|
ImmutableSet.of(new Log4JLoggingModule(), new SshjSshClientModule()));
|
||||||
|
|
||||||
|
client = context.getComputeService();
|
||||||
|
|
||||||
|
// define the requirements of your node
|
||||||
|
template = client.templateBuilder().osFamily(UBUNTU).smallest().build();
|
||||||
|
|
||||||
|
// setup a boot user which is the same as your login
|
||||||
|
template.getOptions().runScript(AdminAccess.standard());
|
||||||
|
|
||||||
|
// these nodes will be accessible via ssh when the call returns
|
||||||
|
nodes = client.createNodesInGroup("mycluster", 2, template);
|
||||||
|
|
||||||
|
// you can now run ad-hoc commands on the nodes based on predicates
|
||||||
|
responses = client.runScriptOnNodesMatching(inGroup("mycluster"), "uptime", wrapInInitScript(false));
|
||||||
|
|
||||||
|
Compute Example (Clojure):
|
||||||
|
|
||||||
|
(use 'org.jclouds.compute2)
|
||||||
|
|
||||||
|
; create a compute service using sshj and log4j extensions
|
||||||
|
(def compute (*compute* "trmk`-ecloud" "user" "password" :sshj :log4j))
|
||||||
|
|
||||||
|
; launch a couple nodes with the default operating system, installing your user.
|
||||||
|
(create-nodes *compute* "mycluster" 2
|
||||||
|
(TemplateOptions$Builder/runScript (AdminAccess/standard)))
|
||||||
|
|
||||||
|
; run a command on that group
|
||||||
|
(run-script-on-nodes-matching *compute* (in-group? "mycluster") "uptime"
|
||||||
|
(RunScriptOptions$Builder/wrapInInitScript false))
|
||||||
|
|
||||||
|
Check out https://github.com/jclouds/jclouds-examples for more examples!
|
||||||
|
|
||||||
|
Downloads
|
||||||
|
------------------------
|
||||||
|
* release notes: http://www.jclouds.org/documentation/releasenotes/1.3
|
||||||
|
* installation guide: http://www.jclouds.org/documentation/userguide/installation-guide
|
||||||
|
* maven repo: http://repo2.maven.org/maven2 (maven central - the default repository)
|
||||||
|
* snapshot repo: https://oss.sonatype.org/content/repositories/snapshots
|
||||||
|
|
||||||
|
Resources
|
||||||
|
----------------------------
|
||||||
|
* Project page: http://jclouds.org/
|
||||||
|
* Documentation: http://www.jclouds.org/documentation/index
|
||||||
|
* Javadocs (1.1.0): http://jclouds.rimuhosting.com/apidocs/
|
||||||
|
* Javadocs (1.0-SNAPSHOT): http://jclouds.rimuhosting.com/apidocs-SNAPSHOT/
|
||||||
|
* Community: http://www.jclouds.org/documentation/reference/apps-that-use-jclouds
|
||||||
|
* User group: http://groups.google.com/group/jclouds
|
||||||
|
* Dev group: http://groups.google.com/group/jclouds-dev
|
||||||
|
* Twitter: http://twitter.com/jclouds
|
||||||
|
|
||||||
|
|
||||||
|
License
|
||||||
|
-------
|
||||||
|
Copyright (C) 2009-2012 jclouds, Inc.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0
|
|
@ -44,9 +44,9 @@ import org.apache.tools.ant.taskdefs.optional.ssh.SSHUserInfo;
|
||||||
import org.apache.tools.ant.taskdefs.optional.ssh.Scp;
|
import org.apache.tools.ant.taskdefs.optional.ssh.Scp;
|
||||||
import org.apache.tools.ant.types.CommandlineJava;
|
import org.apache.tools.ant.types.CommandlineJava;
|
||||||
import org.apache.tools.ant.types.Environment;
|
import org.apache.tools.ant.types.Environment;
|
||||||
|
import org.apache.tools.ant.types.Environment.Variable;
|
||||||
import org.apache.tools.ant.types.FileSet;
|
import org.apache.tools.ant.types.FileSet;
|
||||||
import org.apache.tools.ant.types.Path;
|
import org.apache.tools.ant.types.Path;
|
||||||
import org.apache.tools.ant.types.Environment.Variable;
|
|
||||||
import org.jclouds.scriptbuilder.InitScript;
|
import org.jclouds.scriptbuilder.InitScript;
|
||||||
import org.jclouds.scriptbuilder.domain.OsFamily;
|
import org.jclouds.scriptbuilder.domain.OsFamily;
|
||||||
import org.jclouds.scriptbuilder.domain.ShellToken;
|
import org.jclouds.scriptbuilder.domain.ShellToken;
|
||||||
|
|
|
@ -30,8 +30,8 @@ import java.util.Map.Entry;
|
||||||
import org.apache.tools.ant.Project;
|
import org.apache.tools.ant.Project;
|
||||||
import org.apache.tools.ant.taskdefs.Java;
|
import org.apache.tools.ant.taskdefs.Java;
|
||||||
import org.apache.tools.ant.types.Environment;
|
import org.apache.tools.ant.types.Environment;
|
||||||
import org.apache.tools.ant.types.Path;
|
|
||||||
import org.apache.tools.ant.types.Environment.Variable;
|
import org.apache.tools.ant.types.Environment.Variable;
|
||||||
|
import org.apache.tools.ant.types.Path;
|
||||||
import org.jclouds.scriptbuilder.domain.OsFamily;
|
import org.jclouds.scriptbuilder.domain.OsFamily;
|
||||||
import org.jclouds.tools.ant.TestClass;
|
import org.jclouds.tools.ant.TestClass;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
package org.jclouds.atmos.blobstore.functions;
|
package org.jclouds.atmos.blobstore.functions;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
|
@ -18,10 +18,9 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.atmos.domain;
|
package org.jclouds.atmos.domain;
|
||||||
|
|
||||||
import org.jclouds.javax.annotation.Nullable;
|
|
||||||
|
|
||||||
import org.jclouds.atmos.domain.internal.AtmosObjectImpl.AtmosObjectFactory;
|
import org.jclouds.atmos.domain.internal.AtmosObjectImpl.AtmosObjectFactory;
|
||||||
import org.jclouds.io.PayloadEnclosing;
|
import org.jclouds.io.PayloadEnclosing;
|
||||||
|
import org.jclouds.javax.annotation.Nullable;
|
||||||
|
|
||||||
import com.google.common.collect.Multimap;
|
import com.google.common.collect.Multimap;
|
||||||
import com.google.inject.ImplementedBy;
|
import com.google.inject.ImplementedBy;
|
||||||
|
|
|
@ -20,9 +20,8 @@ package org.jclouds.atmos.domain;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.jclouds.javax.annotation.Nullable;
|
|
||||||
|
|
||||||
import org.jclouds.atmos.domain.internal.BoundedLinkedHashSet;
|
import org.jclouds.atmos.domain.internal.BoundedLinkedHashSet;
|
||||||
|
import org.jclouds.javax.annotation.Nullable;
|
||||||
|
|
||||||
import com.google.inject.ImplementedBy;
|
import com.google.inject.ImplementedBy;
|
||||||
|
|
||||||
|
|
|
@ -22,9 +22,8 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
|
|
||||||
import org.jclouds.javax.annotation.Nullable;
|
|
||||||
|
|
||||||
import org.jclouds.atmos.domain.BoundedSet;
|
import org.jclouds.atmos.domain.BoundedSet;
|
||||||
|
import org.jclouds.javax.annotation.Nullable;
|
||||||
|
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
|
|
||||||
|
|
|
@ -23,10 +23,9 @@ import static org.jclouds.util.Throwables2.propagateOrNull;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
|
||||||
import org.jclouds.javax.annotation.Nullable;
|
|
||||||
|
|
||||||
import org.jclouds.blobstore.KeyAlreadyExistsException;
|
import org.jclouds.blobstore.KeyAlreadyExistsException;
|
||||||
import org.jclouds.http.HttpRequest;
|
import org.jclouds.http.HttpRequest;
|
||||||
|
import org.jclouds.javax.annotation.Nullable;
|
||||||
import org.jclouds.rest.InvocationContext;
|
import org.jclouds.rest.InvocationContext;
|
||||||
|
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
|
|
|
@ -25,8 +25,8 @@ import org.jclouds.blobstore.BlobStoreContext;
|
||||||
import org.jclouds.blobstore.internal.BlobStoreContextImpl;
|
import org.jclouds.blobstore.internal.BlobStoreContextImpl;
|
||||||
import org.jclouds.blobstore.strategy.ContainsValueInListStrategy;
|
import org.jclouds.blobstore.strategy.ContainsValueInListStrategy;
|
||||||
import org.jclouds.logging.config.NullLoggingModule;
|
import org.jclouds.logging.config.NullLoggingModule;
|
||||||
import org.jclouds.rest.RestContextFactory;
|
|
||||||
import org.jclouds.rest.BaseRestClientTest.MockModule;
|
import org.jclouds.rest.BaseRestClientTest.MockModule;
|
||||||
|
import org.jclouds.rest.RestContextFactory;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
|
|
@ -28,9 +28,9 @@ import com.google.common.annotations.Beta;
|
||||||
import com.google.common.base.Functions;
|
import com.google.common.base.Functions;
|
||||||
import com.google.common.base.Supplier;
|
import com.google.common.base.Supplier;
|
||||||
import com.google.common.base.Suppliers;
|
import com.google.common.base.Suppliers;
|
||||||
import com.google.common.cache.LoadingCache;
|
|
||||||
import com.google.common.cache.CacheBuilder;
|
import com.google.common.cache.CacheBuilder;
|
||||||
import com.google.common.cache.CacheLoader;
|
import com.google.common.cache.CacheLoader;
|
||||||
|
import com.google.common.cache.LoadingCache;
|
||||||
import com.google.inject.AbstractModule;
|
import com.google.inject.AbstractModule;
|
||||||
import com.google.inject.TypeLiteral;
|
import com.google.inject.TypeLiteral;
|
||||||
|
|
||||||
|
|
|
@ -38,9 +38,9 @@ import com.google.common.annotations.Beta;
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.base.Functions;
|
import com.google.common.base.Functions;
|
||||||
import com.google.common.base.Supplier;
|
import com.google.common.base.Supplier;
|
||||||
import com.google.common.cache.LoadingCache;
|
|
||||||
import com.google.common.cache.CacheBuilder;
|
import com.google.common.cache.CacheBuilder;
|
||||||
import com.google.common.cache.CacheLoader;
|
import com.google.common.cache.CacheLoader;
|
||||||
|
import com.google.common.cache.LoadingCache;
|
||||||
import com.google.common.io.InputSupplier;
|
import com.google.common.io.InputSupplier;
|
||||||
import com.google.inject.AbstractModule;
|
import com.google.inject.AbstractModule;
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
|
|
|
@ -32,9 +32,9 @@ import org.testng.annotations.Test;
|
||||||
import com.google.common.base.Functions;
|
import com.google.common.base.Functions;
|
||||||
import com.google.common.base.Supplier;
|
import com.google.common.base.Supplier;
|
||||||
import com.google.common.base.Suppliers;
|
import com.google.common.base.Suppliers;
|
||||||
import com.google.common.cache.LoadingCache;
|
|
||||||
import com.google.common.cache.CacheBuilder;
|
import com.google.common.cache.CacheBuilder;
|
||||||
import com.google.common.cache.CacheLoader;
|
import com.google.common.cache.CacheLoader;
|
||||||
|
import com.google.common.cache.LoadingCache;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.google.common.util.concurrent.UncheckedExecutionException;
|
import com.google.common.util.concurrent.UncheckedExecutionException;
|
||||||
import com.google.inject.AbstractModule;
|
import com.google.inject.AbstractModule;
|
||||||
|
|
|
@ -22,9 +22,9 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
|
||||||
|
import org.jclouds.cloudfiles.reference.CloudFilesHeaders;
|
||||||
import org.jclouds.http.HttpResponse;
|
import org.jclouds.http.HttpResponse;
|
||||||
import org.jclouds.openstack.swift.domain.AccountMetadata;
|
import org.jclouds.openstack.swift.domain.AccountMetadata;
|
||||||
import org.jclouds.cloudfiles.reference.CloudFilesHeaders;
|
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
|
|
||||||
|
|
|
@ -22,10 +22,10 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
|
||||||
import org.jclouds.http.HttpRequest;
|
|
||||||
import org.jclouds.http.HttpResponse;
|
|
||||||
import org.jclouds.cloudfiles.domain.ContainerCDNMetadata;
|
import org.jclouds.cloudfiles.domain.ContainerCDNMetadata;
|
||||||
import org.jclouds.cloudfiles.reference.CloudFilesHeaders;
|
import org.jclouds.cloudfiles.reference.CloudFilesHeaders;
|
||||||
|
import org.jclouds.http.HttpRequest;
|
||||||
|
import org.jclouds.http.HttpResponse;
|
||||||
import org.jclouds.openstack.swift.domain.AccountMetadata;
|
import org.jclouds.openstack.swift.domain.AccountMetadata;
|
||||||
import org.jclouds.rest.InvocationContext;
|
import org.jclouds.rest.InvocationContext;
|
||||||
|
|
||||||
|
|
|
@ -22,9 +22,9 @@ import java.util.Date;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.jclouds.cloudloadbalancers.domain.LoadBalancer.Status;
|
||||||
import org.jclouds.cloudloadbalancers.domain.Node;
|
import org.jclouds.cloudloadbalancers.domain.Node;
|
||||||
import org.jclouds.cloudloadbalancers.domain.VirtualIP;
|
import org.jclouds.cloudloadbalancers.domain.VirtualIP;
|
||||||
import org.jclouds.cloudloadbalancers.domain.LoadBalancer.Status;
|
|
||||||
import org.jclouds.cloudloadbalancers.domain.internal.BaseLoadBalancer;
|
import org.jclouds.cloudloadbalancers.domain.internal.BaseLoadBalancer;
|
||||||
|
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
|
|
|
@ -26,16 +26,16 @@ import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import org.jclouds.cloudloadbalancers.domain.LoadBalancer;
|
import org.jclouds.cloudloadbalancers.domain.LoadBalancer;
|
||||||
|
import org.jclouds.cloudloadbalancers.domain.LoadBalancer.Status;
|
||||||
import org.jclouds.cloudloadbalancers.domain.LoadBalancerRequest;
|
import org.jclouds.cloudloadbalancers.domain.LoadBalancerRequest;
|
||||||
import org.jclouds.cloudloadbalancers.domain.Node;
|
import org.jclouds.cloudloadbalancers.domain.Node;
|
||||||
import org.jclouds.cloudloadbalancers.domain.NodeAttributes;
|
import org.jclouds.cloudloadbalancers.domain.NodeAttributes;
|
||||||
import org.jclouds.cloudloadbalancers.domain.NodeRequest;
|
import org.jclouds.cloudloadbalancers.domain.NodeRequest;
|
||||||
import org.jclouds.cloudloadbalancers.domain.LoadBalancer.Status;
|
|
||||||
import org.jclouds.cloudloadbalancers.domain.VirtualIP.Type;
|
import org.jclouds.cloudloadbalancers.domain.VirtualIP.Type;
|
||||||
import org.jclouds.cloudloadbalancers.internal.BaseCloudLoadBalancersClientLiveTest;
|
import org.jclouds.cloudloadbalancers.internal.BaseCloudLoadBalancersClientLiveTest;
|
||||||
import org.testng.annotations.AfterGroups;
|
import org.testng.annotations.AfterGroups;
|
||||||
|
|
|
@ -19,9 +19,9 @@
|
||||||
package org.jclouds.cloudloadbalancers.functions;
|
package org.jclouds.cloudloadbalancers.functions;
|
||||||
|
|
||||||
import org.jclouds.cloudloadbalancers.domain.LoadBalancer;
|
import org.jclouds.cloudloadbalancers.domain.LoadBalancer;
|
||||||
|
import org.jclouds.cloudloadbalancers.domain.LoadBalancer.Status;
|
||||||
import org.jclouds.cloudloadbalancers.domain.Node;
|
import org.jclouds.cloudloadbalancers.domain.Node;
|
||||||
import org.jclouds.cloudloadbalancers.domain.VirtualIP;
|
import org.jclouds.cloudloadbalancers.domain.VirtualIP;
|
||||||
import org.jclouds.cloudloadbalancers.domain.LoadBalancer.Status;
|
|
||||||
import org.jclouds.cloudloadbalancers.domain.VirtualIP.IPVersion;
|
import org.jclouds.cloudloadbalancers.domain.VirtualIP.IPVersion;
|
||||||
import org.jclouds.date.internal.SimpleDateFormatDateService;
|
import org.jclouds.date.internal.SimpleDateFormatDateService;
|
||||||
import org.jclouds.http.HttpResponse;
|
import org.jclouds.http.HttpResponse;
|
||||||
|
|
|
@ -21,8 +21,8 @@ package org.jclouds.cloudloadbalancers.functions;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.jclouds.cloudloadbalancers.domain.LoadBalancer;
|
import org.jclouds.cloudloadbalancers.domain.LoadBalancer;
|
||||||
import org.jclouds.cloudloadbalancers.domain.VirtualIP;
|
|
||||||
import org.jclouds.cloudloadbalancers.domain.LoadBalancer.Status;
|
import org.jclouds.cloudloadbalancers.domain.LoadBalancer.Status;
|
||||||
|
import org.jclouds.cloudloadbalancers.domain.VirtualIP;
|
||||||
import org.jclouds.date.internal.SimpleDateFormatDateService;
|
import org.jclouds.date.internal.SimpleDateFormatDateService;
|
||||||
import org.jclouds.http.HttpResponse;
|
import org.jclouds.http.HttpResponse;
|
||||||
import org.jclouds.json.BaseSetParserTest;
|
import org.jclouds.json.BaseSetParserTest;
|
||||||
|
|
|
@ -22,7 +22,6 @@ import static org.jclouds.cloudloadbalancers.options.ListOptions.Builder.limit;
|
||||||
import static org.jclouds.cloudloadbalancers.options.ListOptions.Builder.marker;
|
import static org.jclouds.cloudloadbalancers.options.ListOptions.Builder.marker;
|
||||||
import static org.testng.Assert.assertEquals;
|
import static org.testng.Assert.assertEquals;
|
||||||
|
|
||||||
import org.jclouds.cloudloadbalancers.options.ListOptions;
|
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
|
@ -21,11 +21,11 @@ package org.jclouds.cloudservers;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
|
import org.jclouds.cloudservers.compute.config.CloudServersComputeServiceContextModule;
|
||||||
|
import org.jclouds.cloudservers.config.CloudServersRestClientModule;
|
||||||
import org.jclouds.compute.ComputeServiceContextBuilder;
|
import org.jclouds.compute.ComputeServiceContextBuilder;
|
||||||
import org.jclouds.http.config.JavaUrlHttpCommandExecutorServiceModule;
|
import org.jclouds.http.config.JavaUrlHttpCommandExecutorServiceModule;
|
||||||
import org.jclouds.logging.jdk.config.JDKLoggingModule;
|
import org.jclouds.logging.jdk.config.JDKLoggingModule;
|
||||||
import org.jclouds.cloudservers.compute.config.CloudServersComputeServiceContextModule;
|
|
||||||
import org.jclouds.cloudservers.config.CloudServersRestClientModule;
|
|
||||||
|
|
||||||
import com.google.inject.Injector;
|
import com.google.inject.Injector;
|
||||||
import com.google.inject.Module;
|
import com.google.inject.Module;
|
||||||
|
|
|
@ -25,9 +25,9 @@ import java.util.Map;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import org.jclouds.cloudservers.domain.BackupSchedule;
|
||||||
import org.jclouds.http.HttpRequest;
|
import org.jclouds.http.HttpRequest;
|
||||||
import org.jclouds.json.Json;
|
import org.jclouds.json.Json;
|
||||||
import org.jclouds.cloudservers.domain.BackupSchedule;
|
|
||||||
import org.jclouds.rest.binders.BindToJsonPayload;
|
import org.jclouds.rest.binders.BindToJsonPayload;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
|
|
|
@ -20,12 +20,12 @@ package org.jclouds.cloudservers.compute.functions;
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import org.jclouds.cloudservers.domain.Flavor;
|
||||||
import org.jclouds.compute.domain.Hardware;
|
import org.jclouds.compute.domain.Hardware;
|
||||||
import org.jclouds.compute.domain.HardwareBuilder;
|
import org.jclouds.compute.domain.HardwareBuilder;
|
||||||
import org.jclouds.compute.domain.Processor;
|
import org.jclouds.compute.domain.Processor;
|
||||||
import org.jclouds.compute.domain.Volume;
|
import org.jclouds.compute.domain.Volume;
|
||||||
import org.jclouds.compute.domain.internal.VolumeImpl;
|
import org.jclouds.compute.domain.internal.VolumeImpl;
|
||||||
import org.jclouds.cloudservers.domain.Flavor;
|
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
package org.jclouds.cloudservers.compute.functions;
|
package org.jclouds.cloudservers.compute.functions;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import static org.jclouds.compute.util.ComputeServiceUtils.parseGroupFromName;
|
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.NoSuchElementException;
|
import java.util.NoSuchElementException;
|
||||||
|
@ -39,6 +38,7 @@ import org.jclouds.compute.domain.NodeMetadata;
|
||||||
import org.jclouds.compute.domain.NodeMetadataBuilder;
|
import org.jclouds.compute.domain.NodeMetadataBuilder;
|
||||||
import org.jclouds.compute.domain.NodeState;
|
import org.jclouds.compute.domain.NodeState;
|
||||||
import org.jclouds.compute.domain.OperatingSystem;
|
import org.jclouds.compute.domain.OperatingSystem;
|
||||||
|
import org.jclouds.compute.functions.GroupNamingConvention;
|
||||||
import org.jclouds.compute.reference.ComputeServiceConstants;
|
import org.jclouds.compute.reference.ComputeServiceConstants;
|
||||||
import org.jclouds.domain.Location;
|
import org.jclouds.domain.Location;
|
||||||
import org.jclouds.domain.LocationBuilder;
|
import org.jclouds.domain.LocationBuilder;
|
||||||
|
@ -63,6 +63,7 @@ public class ServerToNodeMetadata implements Function<Server, NodeMetadata> {
|
||||||
protected final Map<ServerStatus, NodeState> serverToNodeState;
|
protected final Map<ServerStatus, NodeState> serverToNodeState;
|
||||||
protected final Supplier<Set<? extends Image>> images;
|
protected final Supplier<Set<? extends Image>> images;
|
||||||
protected final Supplier<Set<? extends Hardware>> hardwares;
|
protected final Supplier<Set<? extends Hardware>> hardwares;
|
||||||
|
protected final GroupNamingConvention nodeNamingConvention;
|
||||||
|
|
||||||
private static class FindImageForServer implements Predicate<Image> {
|
private static class FindImageForServer implements Predicate<Image> {
|
||||||
private final Server instance;
|
private final Server instance;
|
||||||
|
@ -93,7 +94,9 @@ public class ServerToNodeMetadata implements Function<Server, NodeMetadata> {
|
||||||
@Inject
|
@Inject
|
||||||
ServerToNodeMetadata(Map<ServerStatus, NodeState> serverStateToNodeState,
|
ServerToNodeMetadata(Map<ServerStatus, NodeState> serverStateToNodeState,
|
||||||
@Memoized Supplier<Set<? extends Image>> images, Supplier<Location> location,
|
@Memoized Supplier<Set<? extends Image>> images, Supplier<Location> location,
|
||||||
@Memoized Supplier<Set<? extends Hardware>> hardwares) {
|
@Memoized Supplier<Set<? extends Hardware>> hardwares,
|
||||||
|
GroupNamingConvention.Factory namingConvention) {
|
||||||
|
this.nodeNamingConvention = checkNotNull(namingConvention, "namingConvention").createWithoutPrefix();
|
||||||
this.serverToNodeState = checkNotNull(serverStateToNodeState, "serverStateToNodeState");
|
this.serverToNodeState = checkNotNull(serverStateToNodeState, "serverStateToNodeState");
|
||||||
this.images = checkNotNull(images, "images");
|
this.images = checkNotNull(images, "images");
|
||||||
this.location = checkNotNull(location, "location");
|
this.location = checkNotNull(location, "location");
|
||||||
|
@ -109,7 +112,7 @@ public class ServerToNodeMetadata implements Function<Server, NodeMetadata> {
|
||||||
builder.location(new LocationBuilder().scope(LocationScope.HOST).id(from.getHostId()).description(
|
builder.location(new LocationBuilder().scope(LocationScope.HOST).id(from.getHostId()).description(
|
||||||
from.getHostId()).parent(location.get()).build());
|
from.getHostId()).parent(location.get()).build());
|
||||||
builder.userMetadata(from.getMetadata());
|
builder.userMetadata(from.getMetadata());
|
||||||
builder.group(parseGroupFromName(from.getName()));
|
builder.group(nodeNamingConvention.groupInUniqueNameOrNull(from.getName()));
|
||||||
builder.imageId(from.getImageId() + "");
|
builder.imageId(from.getImageId() + "");
|
||||||
builder.operatingSystem(parseOperatingSystem(from));
|
builder.operatingSystem(parseOperatingSystem(from));
|
||||||
builder.hardware(parseHardware(from));
|
builder.hardware(parseHardware(from));
|
||||||
|
|
|
@ -23,10 +23,10 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.jclouds.javax.annotation.Nullable;
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import org.jclouds.http.HttpRequest;
|
import org.jclouds.http.HttpRequest;
|
||||||
|
import org.jclouds.javax.annotation.Nullable;
|
||||||
import org.jclouds.rest.MapBinder;
|
import org.jclouds.rest.MapBinder;
|
||||||
import org.jclouds.rest.binders.BindToJsonPayload;
|
import org.jclouds.rest.binders.BindToJsonPayload;
|
||||||
|
|
||||||
|
|
|
@ -23,10 +23,10 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import org.jclouds.logging.Logger;
|
|
||||||
import org.jclouds.cloudservers.CloudServersClient;
|
import org.jclouds.cloudservers.CloudServersClient;
|
||||||
import org.jclouds.cloudservers.domain.Server;
|
import org.jclouds.cloudservers.domain.Server;
|
||||||
import org.jclouds.cloudservers.domain.ServerStatus;
|
import org.jclouds.cloudservers.domain.ServerStatus;
|
||||||
|
import org.jclouds.logging.Logger;
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
|
|
|
@ -23,10 +23,10 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import org.jclouds.logging.Logger;
|
|
||||||
import org.jclouds.cloudservers.CloudServersClient;
|
import org.jclouds.cloudservers.CloudServersClient;
|
||||||
import org.jclouds.cloudservers.domain.Server;
|
import org.jclouds.cloudservers.domain.Server;
|
||||||
import org.jclouds.cloudservers.domain.ServerStatus;
|
import org.jclouds.cloudservers.domain.ServerStatus;
|
||||||
|
import org.jclouds.logging.Logger;
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
|
|
|
@ -38,6 +38,7 @@ import org.jclouds.compute.domain.OsFamily;
|
||||||
import org.jclouds.compute.domain.Processor;
|
import org.jclouds.compute.domain.Processor;
|
||||||
import org.jclouds.compute.domain.Volume;
|
import org.jclouds.compute.domain.Volume;
|
||||||
import org.jclouds.compute.domain.VolumeBuilder;
|
import org.jclouds.compute.domain.VolumeBuilder;
|
||||||
|
import org.jclouds.compute.functions.GroupNamingConvention;
|
||||||
import org.jclouds.domain.Location;
|
import org.jclouds.domain.Location;
|
||||||
import org.jclouds.domain.LocationBuilder;
|
import org.jclouds.domain.LocationBuilder;
|
||||||
import org.jclouds.domain.LocationScope;
|
import org.jclouds.domain.LocationScope;
|
||||||
|
@ -47,13 +48,15 @@ import com.google.common.base.Suppliers;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
import com.google.inject.Guice;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Adrian Cole
|
* @author Adrian Cole
|
||||||
*/
|
*/
|
||||||
@Test(groups = "unit")
|
@Test(groups = "unit", testName = "ServerToNodeMetadataTest")
|
||||||
public class ServerToNodeMetadataTest {
|
public class ServerToNodeMetadataTest {
|
||||||
Location provider = new LocationBuilder().scope(LocationScope.ZONE).id("dallas").description("description").build();
|
Location provider = new LocationBuilder().scope(LocationScope.ZONE).id("dallas").description("description").build();
|
||||||
|
GroupNamingConvention.Factory namingConvention = Guice.createInjector().getInstance(GroupNamingConvention.Factory.class);
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testApplyWhereImageAndHardwareNotFound() {
|
public void testApplyWhereImageAndHardwareNotFound() {
|
||||||
|
@ -63,7 +66,7 @@ public class ServerToNodeMetadataTest {
|
||||||
Server server = ParseServerFromJsonResponseTest.parseServer();
|
Server server = ParseServerFromJsonResponseTest.parseServer();
|
||||||
|
|
||||||
ServerToNodeMetadata parser = new ServerToNodeMetadata(serverStateToNodeState, Suppliers.<Set<? extends Image>> ofInstance(images), Suppliers
|
ServerToNodeMetadata parser = new ServerToNodeMetadata(serverStateToNodeState, Suppliers.<Set<? extends Image>> ofInstance(images), Suppliers
|
||||||
.ofInstance(provider), Suppliers.<Set<? extends Hardware>> ofInstance(hardwares));
|
.ofInstance(provider), Suppliers.<Set<? extends Hardware>> ofInstance(hardwares), namingConvention);
|
||||||
|
|
||||||
NodeMetadata metadata = parser.apply(server);
|
NodeMetadata metadata = parser.apply(server);
|
||||||
|
|
||||||
|
@ -77,6 +80,7 @@ public class ServerToNodeMetadataTest {
|
||||||
.id("1234")
|
.id("1234")
|
||||||
.providerId("1234")
|
.providerId("1234")
|
||||||
.name("sample-server")
|
.name("sample-server")
|
||||||
|
.group("sample")
|
||||||
.hostname("sample-server")
|
.hostname("sample-server")
|
||||||
.location(
|
.location(
|
||||||
new LocationBuilder().scope(LocationScope.HOST).id("e4d909c290d0fb1ca068ffaddf22cbd0")
|
new LocationBuilder().scope(LocationScope.HOST).id("e4d909c290d0fb1ca068ffaddf22cbd0")
|
||||||
|
@ -94,7 +98,7 @@ public class ServerToNodeMetadataTest {
|
||||||
Server server = ParseServerFromJsonResponseTest.parseServer();
|
Server server = ParseServerFromJsonResponseTest.parseServer();
|
||||||
|
|
||||||
ServerToNodeMetadata parser = new ServerToNodeMetadata(serverStateToNodeState, Suppliers.<Set<? extends Image>> ofInstance(images), Suppliers
|
ServerToNodeMetadata parser = new ServerToNodeMetadata(serverStateToNodeState, Suppliers.<Set<? extends Image>> ofInstance(images), Suppliers
|
||||||
.ofInstance(provider), Suppliers.<Set<? extends Hardware>> ofInstance(hardwares));
|
.ofInstance(provider), Suppliers.<Set<? extends Hardware>> ofInstance(hardwares), namingConvention);
|
||||||
|
|
||||||
NodeMetadata metadata = parser.apply(server);
|
NodeMetadata metadata = parser.apply(server);
|
||||||
|
|
||||||
|
@ -112,6 +116,7 @@ public class ServerToNodeMetadataTest {
|
||||||
.providerId("1234")
|
.providerId("1234")
|
||||||
.name("sample-server")
|
.name("sample-server")
|
||||||
.hostname("sample-server")
|
.hostname("sample-server")
|
||||||
|
.group("sample")
|
||||||
.location(
|
.location(
|
||||||
new LocationBuilder().scope(LocationScope.HOST).id("e4d909c290d0fb1ca068ffaddf22cbd0")
|
new LocationBuilder().scope(LocationScope.HOST).id("e4d909c290d0fb1ca068ffaddf22cbd0")
|
||||||
.description("e4d909c290d0fb1ca068ffaddf22cbd0").parent(provider).build())
|
.description("e4d909c290d0fb1ca068ffaddf22cbd0").parent(provider).build())
|
||||||
|
@ -127,7 +132,7 @@ public class ServerToNodeMetadataTest {
|
||||||
Server server = ParseServerFromJsonResponseTest.parseServer();
|
Server server = ParseServerFromJsonResponseTest.parseServer();
|
||||||
|
|
||||||
ServerToNodeMetadata parser = new ServerToNodeMetadata(serverStateToNodeState, Suppliers.<Set<? extends Image>> ofInstance(images), Suppliers
|
ServerToNodeMetadata parser = new ServerToNodeMetadata(serverStateToNodeState, Suppliers.<Set<? extends Image>> ofInstance(images), Suppliers
|
||||||
.ofInstance(provider), Suppliers.<Set<? extends Hardware>> ofInstance(hardwares));
|
.ofInstance(provider), Suppliers.<Set<? extends Hardware>> ofInstance(hardwares), namingConvention);
|
||||||
|
|
||||||
NodeMetadata metadata = parser.apply(server);
|
NodeMetadata metadata = parser.apply(server);
|
||||||
|
|
||||||
|
@ -153,6 +158,7 @@ public class ServerToNodeMetadataTest {
|
||||||
.id("1234")
|
.id("1234")
|
||||||
.providerId("1234")
|
.providerId("1234")
|
||||||
.name("sample-server")
|
.name("sample-server")
|
||||||
|
.group("sample")
|
||||||
.hostname("sample-server")
|
.hostname("sample-server")
|
||||||
.location(
|
.location(
|
||||||
new LocationBuilder().scope(LocationScope.HOST).id("e4d909c290d0fb1ca068ffaddf22cbd0")
|
new LocationBuilder().scope(LocationScope.HOST).id("e4d909c290d0fb1ca068ffaddf22cbd0")
|
||||||
|
|
|
@ -18,7 +18,12 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudsigma.compute;
|
package org.jclouds.cloudsigma.compute;
|
||||||
|
|
||||||
import com.google.common.base.Supplier;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Named;
|
||||||
|
import javax.inject.Provider;
|
||||||
|
|
||||||
import org.jclouds.collect.Memoized;
|
import org.jclouds.collect.Memoized;
|
||||||
import org.jclouds.compute.domain.Hardware;
|
import org.jclouds.compute.domain.Hardware;
|
||||||
import org.jclouds.compute.domain.Image;
|
import org.jclouds.compute.domain.Image;
|
||||||
|
@ -27,10 +32,7 @@ import org.jclouds.compute.domain.internal.TemplateBuilderImpl;
|
||||||
import org.jclouds.compute.options.TemplateOptions;
|
import org.jclouds.compute.options.TemplateOptions;
|
||||||
import org.jclouds.domain.Location;
|
import org.jclouds.domain.Location;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import com.google.common.base.Supplier;
|
||||||
import javax.inject.Named;
|
|
||||||
import javax.inject.Provider;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Andrei Savu
|
* @author Andrei Savu
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
package org.jclouds.cloudsigma.compute.functions;
|
package org.jclouds.cloudsigma.compute.functions;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import static org.jclouds.compute.util.ComputeServiceUtils.parseGroupFromName;
|
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
@ -43,6 +42,7 @@ import org.jclouds.compute.domain.NodeState;
|
||||||
import org.jclouds.compute.domain.Processor;
|
import org.jclouds.compute.domain.Processor;
|
||||||
import org.jclouds.compute.domain.Volume;
|
import org.jclouds.compute.domain.Volume;
|
||||||
import org.jclouds.compute.domain.VolumeBuilder;
|
import org.jclouds.compute.domain.VolumeBuilder;
|
||||||
|
import org.jclouds.compute.functions.GroupNamingConvention;
|
||||||
import org.jclouds.domain.Location;
|
import org.jclouds.domain.Location;
|
||||||
import org.jclouds.logging.Logger;
|
import org.jclouds.logging.Logger;
|
||||||
|
|
||||||
|
@ -73,24 +73,26 @@ public class ServerInfoToNodeMetadata implements Function<ServerInfo, NodeMetada
|
||||||
private final Function<String, Image> findImageForId;
|
private final Function<String, Image> findImageForId;
|
||||||
private final Supplier<Location> locationSupplier;
|
private final Supplier<Location> locationSupplier;
|
||||||
private final Function<Device, Volume> deviceToVolume;
|
private final Function<Device, Volume> deviceToVolume;
|
||||||
|
private final GroupNamingConvention nodeNamingConvention;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
ServerInfoToNodeMetadata(Function<Server, String> getImageIdFromServer, Function<String, Image> findImageForId,
|
ServerInfoToNodeMetadata(Function<Server, String> getImageIdFromServer, Function<String, Image> findImageForId,
|
||||||
Function<Device, Volume> deviceToVolume, Supplier<Location> locationSupplier) {
|
Function<Device, Volume> deviceToVolume, Supplier<Location> locationSupplier,
|
||||||
|
GroupNamingConvention.Factory namingConvention) {
|
||||||
|
this.nodeNamingConvention = checkNotNull(namingConvention, "namingConvention").createWithoutPrefix();
|
||||||
this.locationSupplier = checkNotNull(locationSupplier, "locationSupplier");
|
this.locationSupplier = checkNotNull(locationSupplier, "locationSupplier");
|
||||||
this.deviceToVolume = checkNotNull(deviceToVolume, "deviceToVolume");
|
this.deviceToVolume = checkNotNull(deviceToVolume, "deviceToVolume");
|
||||||
this.findImageForId = checkNotNull(findImageForId, "findImageForId");
|
this.findImageForId = checkNotNull(findImageForId, "findImageForId");
|
||||||
this.getImageIdFromServer = checkNotNull(getImageIdFromServer, "getImageIdFromServer");
|
this.getImageIdFromServer = checkNotNull(getImageIdFromServer, "getImageIdFromServer");
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
|
||||||
@Override
|
@Override
|
||||||
public NodeMetadata apply(ServerInfo from) {
|
public NodeMetadata apply(ServerInfo from) {
|
||||||
NodeMetadataBuilder builder = new NodeMetadataBuilder();
|
NodeMetadataBuilder builder = new NodeMetadataBuilder();
|
||||||
builder.ids(from.getUuid());
|
builder.ids(from.getUuid());
|
||||||
builder.name(from.getName());
|
builder.name(from.getName());
|
||||||
builder.location(locationSupplier.get());
|
builder.location(locationSupplier.get());
|
||||||
builder.group(parseGroupFromName(from.getName()));
|
builder.group(nodeNamingConvention.groupInUniqueNameOrNull(from.getName()));
|
||||||
|
|
||||||
String imageId = getImageIdFromServer.apply(from);
|
String imageId = getImageIdFromServer.apply(from);
|
||||||
if (imageId != null) {
|
if (imageId != null) {
|
||||||
|
|
|
@ -18,15 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudsigma.compute.options;
|
package org.jclouds.cloudsigma.compute.options;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.jclouds.cloudsigma.domain.AffinityType;
|
import org.jclouds.cloudsigma.domain.AffinityType;
|
||||||
import org.jclouds.compute.options.TemplateOptions;
|
import org.jclouds.compute.options.TemplateOptions;
|
||||||
import org.jclouds.domain.Credentials;
|
|
||||||
import org.jclouds.domain.LoginCredentials;
|
import org.jclouds.domain.LoginCredentials;
|
||||||
import org.jclouds.io.Payload;
|
|
||||||
import org.jclouds.scriptbuilder.domain.Statement;
|
import org.jclouds.scriptbuilder.domain.Statement;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class CloudSigmaTemplateOptions extends TemplateOptions implements Cloneable {
|
public class CloudSigmaTemplateOptions extends TemplateOptions implements Cloneable {
|
||||||
|
|
||||||
public static final CloudSigmaTemplateOptions NONE = new CloudSigmaTemplateOptions();
|
public static final CloudSigmaTemplateOptions NONE = new CloudSigmaTemplateOptions();
|
||||||
|
@ -110,12 +108,6 @@ public class CloudSigmaTemplateOptions extends TemplateOptions implements Clonea
|
||||||
return CloudSigmaTemplateOptions.class.cast(options.userMetadata(userMetadata));
|
return CloudSigmaTemplateOptions.class.cast(options.userMetadata(userMetadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public static CloudSigmaTemplateOptions overrideLoginUserWith(String user) {
|
|
||||||
CloudSigmaTemplateOptions options = new CloudSigmaTemplateOptions();
|
|
||||||
return options.overrideLoginUserWith(user);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static CloudSigmaTemplateOptions overrideLoginUser(String user) {
|
public static CloudSigmaTemplateOptions overrideLoginUser(String user) {
|
||||||
CloudSigmaTemplateOptions options = new CloudSigmaTemplateOptions();
|
CloudSigmaTemplateOptions options = new CloudSigmaTemplateOptions();
|
||||||
return options.overrideLoginUser(user);
|
return options.overrideLoginUser(user);
|
||||||
|
@ -136,18 +128,6 @@ public class CloudSigmaTemplateOptions extends TemplateOptions implements Clonea
|
||||||
return options.overrideAuthenticateSudo(authenticateSudo);
|
return options.overrideAuthenticateSudo(authenticateSudo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public static CloudSigmaTemplateOptions overrideLoginCredentialWith(String credential) {
|
|
||||||
CloudSigmaTemplateOptions options = new CloudSigmaTemplateOptions();
|
|
||||||
return options.overrideLoginCredentialWith(credential);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public static CloudSigmaTemplateOptions overrideCredentialsWith(Credentials credentials) {
|
|
||||||
CloudSigmaTemplateOptions options = new CloudSigmaTemplateOptions();
|
|
||||||
return options.overrideCredentialsWith(credentials);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static CloudSigmaTemplateOptions overrideLoginCredentials(LoginCredentials credentials) {
|
public static CloudSigmaTemplateOptions overrideLoginCredentials(LoginCredentials credentials) {
|
||||||
CloudSigmaTemplateOptions options = new CloudSigmaTemplateOptions();
|
CloudSigmaTemplateOptions options = new CloudSigmaTemplateOptions();
|
||||||
return options.overrideLoginCredentials(credentials);
|
return options.overrideLoginCredentials(credentials);
|
||||||
|
@ -188,15 +168,6 @@ public class CloudSigmaTemplateOptions extends TemplateOptions implements Clonea
|
||||||
return CloudSigmaTemplateOptions.class.cast(super.installPrivateKey(privateKey));
|
return CloudSigmaTemplateOptions.class.cast(super.installPrivateKey(privateKey));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
@Override
|
|
||||||
public CloudSigmaTemplateOptions runScript(Payload script) {
|
|
||||||
return CloudSigmaTemplateOptions.class.cast(super.runScript(script));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
|
@ -237,33 +208,6 @@ public class CloudSigmaTemplateOptions extends TemplateOptions implements Clonea
|
||||||
return CloudSigmaTemplateOptions.class.cast(super.runScript(script));
|
return CloudSigmaTemplateOptions.class.cast(super.runScript(script));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
@Override
|
|
||||||
public CloudSigmaTemplateOptions overrideCredentialsWith(Credentials overridingCredentials) {
|
|
||||||
return CloudSigmaTemplateOptions.class.cast(super.overrideCredentialsWith(overridingCredentials));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
@Override
|
|
||||||
public CloudSigmaTemplateOptions overrideLoginUserWith(String loginUser) {
|
|
||||||
return CloudSigmaTemplateOptions.class.cast(super.overrideLoginUserWith(loginUser));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
@Override
|
|
||||||
public CloudSigmaTemplateOptions overrideLoginCredentialWith(String loginCredential) {
|
|
||||||
return CloudSigmaTemplateOptions.class.cast(super.overrideLoginCredentialWith(loginCredential));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -18,10 +18,10 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudsigma.binders;
|
package org.jclouds.cloudsigma.binders;
|
||||||
|
|
||||||
|
import static org.easymock.EasyMock.createMock;
|
||||||
import static org.easymock.EasyMock.expect;
|
import static org.easymock.EasyMock.expect;
|
||||||
import static org.easymock.classextension.EasyMock.createMock;
|
import static org.easymock.EasyMock.replay;
|
||||||
import static org.easymock.classextension.EasyMock.replay;
|
import static org.easymock.EasyMock.verify;
|
||||||
import static org.easymock.classextension.EasyMock.verify;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -18,11 +18,11 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudsigma.handlers;
|
package org.jclouds.cloudsigma.handlers;
|
||||||
|
|
||||||
|
import static org.easymock.EasyMock.createMock;
|
||||||
import static org.easymock.EasyMock.expect;
|
import static org.easymock.EasyMock.expect;
|
||||||
|
import static org.easymock.EasyMock.replay;
|
||||||
import static org.easymock.EasyMock.reportMatcher;
|
import static org.easymock.EasyMock.reportMatcher;
|
||||||
import static org.easymock.classextension.EasyMock.createMock;
|
import static org.easymock.EasyMock.verify;
|
||||||
import static org.easymock.classextension.EasyMock.replay;
|
|
||||||
import static org.easymock.classextension.EasyMock.verify;
|
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
|
||||||
|
|
|
@ -18,9 +18,9 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudsigma.options;
|
package org.jclouds.cloudsigma.options;
|
||||||
|
|
||||||
|
import static org.jclouds.cloudsigma.options.CloneDriveOptions.Builder.affinity;
|
||||||
import static org.jclouds.cloudsigma.options.CloneDriveOptions.Builder.size;
|
import static org.jclouds.cloudsigma.options.CloneDriveOptions.Builder.size;
|
||||||
import static org.jclouds.cloudsigma.options.CloneDriveOptions.Builder.tags;
|
import static org.jclouds.cloudsigma.options.CloneDriveOptions.Builder.tags;
|
||||||
import static org.jclouds.cloudsigma.options.CloneDriveOptions.Builder.affinity;
|
|
||||||
import static org.testng.Assert.assertEquals;
|
import static org.testng.Assert.assertEquals;
|
||||||
import static org.testng.Assert.assertNull;
|
import static org.testng.Assert.assertNull;
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack;
|
package org.jclouds.cloudstack;
|
||||||
|
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.features.AccountClient;
|
import org.jclouds.cloudstack.features.AccountClient;
|
||||||
import org.jclouds.cloudstack.features.AddressClient;
|
import org.jclouds.cloudstack.features.AddressClient;
|
||||||
import org.jclouds.cloudstack.features.AsyncJobClient;
|
import org.jclouds.cloudstack.features.AsyncJobClient;
|
||||||
|
@ -34,18 +36,16 @@ import org.jclouds.cloudstack.features.NetworkClient;
|
||||||
import org.jclouds.cloudstack.features.OfferingClient;
|
import org.jclouds.cloudstack.features.OfferingClient;
|
||||||
import org.jclouds.cloudstack.features.SSHKeyPairClient;
|
import org.jclouds.cloudstack.features.SSHKeyPairClient;
|
||||||
import org.jclouds.cloudstack.features.SecurityGroupClient;
|
import org.jclouds.cloudstack.features.SecurityGroupClient;
|
||||||
|
import org.jclouds.cloudstack.features.SessionClient;
|
||||||
import org.jclouds.cloudstack.features.SnapshotClient;
|
import org.jclouds.cloudstack.features.SnapshotClient;
|
||||||
import org.jclouds.cloudstack.features.TemplateClient;
|
import org.jclouds.cloudstack.features.TemplateClient;
|
||||||
import org.jclouds.cloudstack.features.VMGroupClient;
|
import org.jclouds.cloudstack.features.VMGroupClient;
|
||||||
import org.jclouds.cloudstack.features.VirtualMachineClient;
|
import org.jclouds.cloudstack.features.VirtualMachineClient;
|
||||||
import org.jclouds.cloudstack.features.VolumeClient;
|
import org.jclouds.cloudstack.features.VolumeClient;
|
||||||
import org.jclouds.cloudstack.features.SessionClient;
|
|
||||||
import org.jclouds.cloudstack.features.ZoneClient;
|
import org.jclouds.cloudstack.features.ZoneClient;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
import org.jclouds.rest.annotations.Delegate;
|
import org.jclouds.rest.annotations.Delegate;
|
||||||
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack.
|
* Provides synchronous access to CloudStack.
|
||||||
* <p/>
|
* <p/>
|
||||||
|
|
|
@ -22,7 +22,6 @@ import org.jclouds.cloudstack.features.GlobalAccountAsyncClient;
|
||||||
import org.jclouds.cloudstack.features.GlobalAlertAsyncClient;
|
import org.jclouds.cloudstack.features.GlobalAlertAsyncClient;
|
||||||
import org.jclouds.cloudstack.features.GlobalCapacityAsyncClient;
|
import org.jclouds.cloudstack.features.GlobalCapacityAsyncClient;
|
||||||
import org.jclouds.cloudstack.features.GlobalConfigurationAsyncClient;
|
import org.jclouds.cloudstack.features.GlobalConfigurationAsyncClient;
|
||||||
import org.jclouds.cloudstack.features.GlobalConfigurationClient;
|
|
||||||
import org.jclouds.cloudstack.features.GlobalDomainAsyncClient;
|
import org.jclouds.cloudstack.features.GlobalDomainAsyncClient;
|
||||||
import org.jclouds.cloudstack.features.GlobalHostAsyncClient;
|
import org.jclouds.cloudstack.features.GlobalHostAsyncClient;
|
||||||
import org.jclouds.cloudstack.features.GlobalOfferingAsyncClient;
|
import org.jclouds.cloudstack.features.GlobalOfferingAsyncClient;
|
||||||
|
|
|
@ -18,12 +18,12 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack;
|
package org.jclouds.cloudstack;
|
||||||
|
|
||||||
import org.jclouds.PropertiesBuilder;
|
import static org.jclouds.Constants.PROPERTY_API_VERSION;
|
||||||
|
import static org.jclouds.Constants.PROPERTY_ENDPOINT;
|
||||||
|
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
import static org.jclouds.Constants.PROPERTY_API_VERSION;
|
import org.jclouds.PropertiesBuilder;
|
||||||
import static org.jclouds.Constants.PROPERTY_ENDPOINT;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds properties used in cloudstack Clients
|
* Builds properties used in cloudstack Clients
|
||||||
|
|
|
@ -18,19 +18,20 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.binders;
|
package org.jclouds.cloudstack.binders;
|
||||||
|
|
||||||
import com.google.common.base.Joiner;
|
import static com.google.common.base.Preconditions.checkArgument;
|
||||||
import com.google.common.collect.Iterables;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import org.jclouds.http.HttpRequest;
|
|
||||||
import org.jclouds.http.utils.ModifyRequest;
|
|
||||||
import org.jclouds.rest.Binder;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Provider;
|
import javax.inject.Provider;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
import javax.ws.rs.core.UriBuilder;
|
import javax.ws.rs.core.UriBuilder;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkArgument;
|
import org.jclouds.http.HttpRequest;
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import org.jclouds.http.utils.ModifyRequest;
|
||||||
|
import org.jclouds.rest.Binder;
|
||||||
|
|
||||||
|
import com.google.common.base.Joiner;
|
||||||
|
import com.google.common.collect.Iterables;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Richard Downer
|
* @author Richard Downer
|
||||||
|
|
|
@ -18,18 +18,18 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.binders;
|
package org.jclouds.cloudstack.binders;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.SnapshotPolicySchedule;
|
import static com.google.common.base.Preconditions.checkArgument;
|
||||||
import org.jclouds.http.HttpRequest;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import org.jclouds.http.utils.ModifyRequest;
|
|
||||||
import org.jclouds.rest.Binder;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Provider;
|
import javax.inject.Provider;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
import javax.ws.rs.core.UriBuilder;
|
import javax.ws.rs.core.UriBuilder;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkArgument;
|
import org.jclouds.cloudstack.domain.SnapshotPolicySchedule;
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import org.jclouds.http.HttpRequest;
|
||||||
|
import org.jclouds.http.utils.ModifyRequest;
|
||||||
|
import org.jclouds.rest.Binder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,17 +18,17 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.binders;
|
package org.jclouds.cloudstack.binders;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.TemplateMetadata;
|
import static com.google.common.base.Preconditions.checkArgument;
|
||||||
import org.jclouds.http.HttpRequest;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import org.jclouds.http.utils.ModifyRequest;
|
|
||||||
import org.jclouds.rest.Binder;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Provider;
|
import javax.inject.Provider;
|
||||||
import javax.ws.rs.core.UriBuilder;
|
import javax.ws.rs.core.UriBuilder;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkArgument;
|
import org.jclouds.cloudstack.domain.TemplateMetadata;
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import org.jclouds.http.HttpRequest;
|
||||||
|
import org.jclouds.http.utils.ModifyRequest;
|
||||||
|
import org.jclouds.rest.Binder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Richard Downer
|
* @author Richard Downer
|
||||||
|
|
|
@ -18,17 +18,19 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.compute.functions;
|
package org.jclouds.cloudstack.compute.functions;
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import com.google.common.base.Predicate;
|
import static com.google.common.collect.Iterables.filter;
|
||||||
import com.google.common.base.Supplier;
|
import static com.google.common.collect.Iterables.transform;
|
||||||
import com.google.common.base.Throwables;
|
import static com.google.common.collect.Sets.newHashSet;
|
||||||
import com.google.common.cache.LoadingCache;
|
import static org.jclouds.util.InetAddresses2.isPrivateIPAddress;
|
||||||
import com.google.common.collect.ImmutableList;
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import java.util.Map;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import java.util.Set;
|
||||||
import com.google.common.collect.Iterables;
|
|
||||||
import com.google.common.collect.Sets;
|
import javax.annotation.Nullable;
|
||||||
import com.google.common.util.concurrent.UncheckedExecutionException;
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.IPForwardingRule;
|
import org.jclouds.cloudstack.domain.IPForwardingRule;
|
||||||
import org.jclouds.cloudstack.domain.NIC;
|
import org.jclouds.cloudstack.domain.NIC;
|
||||||
import org.jclouds.cloudstack.domain.VirtualMachine;
|
import org.jclouds.cloudstack.domain.VirtualMachine;
|
||||||
|
@ -41,23 +43,20 @@ import org.jclouds.compute.domain.NodeMetadata;
|
||||||
import org.jclouds.compute.domain.NodeMetadataBuilder;
|
import org.jclouds.compute.domain.NodeMetadataBuilder;
|
||||||
import org.jclouds.compute.domain.NodeState;
|
import org.jclouds.compute.domain.NodeState;
|
||||||
import org.jclouds.compute.domain.Processor;
|
import org.jclouds.compute.domain.Processor;
|
||||||
|
import org.jclouds.compute.functions.GroupNamingConvention;
|
||||||
import org.jclouds.domain.Location;
|
import org.jclouds.domain.Location;
|
||||||
import org.jclouds.rest.ResourceNotFoundException;
|
import org.jclouds.rest.ResourceNotFoundException;
|
||||||
import org.jclouds.util.InetAddresses2;
|
|
||||||
import org.jclouds.util.Throwables2;
|
import org.jclouds.util.Throwables2;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import com.google.common.base.Function;
|
||||||
import javax.inject.Inject;
|
import com.google.common.base.Predicate;
|
||||||
import javax.inject.Singleton;
|
import com.google.common.base.Supplier;
|
||||||
import java.util.Map;
|
import com.google.common.base.Throwables;
|
||||||
import java.util.Set;
|
import com.google.common.cache.LoadingCache;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import static com.google.common.collect.Iterables.filter;
|
import com.google.common.collect.Iterables;
|
||||||
import static com.google.common.collect.Iterables.transform;
|
import com.google.common.util.concurrent.UncheckedExecutionException;
|
||||||
import static com.google.common.collect.Sets.newHashSet;
|
|
||||||
import static org.jclouds.compute.util.ComputeServiceUtils.parseGroupFromName;
|
|
||||||
import static org.jclouds.util.InetAddresses2.isPrivateIPAddress;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Adrian Cole, Andrei Savu
|
* @author Adrian Cole, Andrei Savu
|
||||||
|
@ -80,11 +79,14 @@ public class VirtualMachineToNodeMetadata implements Function<VirtualMachine, No
|
||||||
private final FindLocationForVirtualMachine findLocationForVirtualMachine;
|
private final FindLocationForVirtualMachine findLocationForVirtualMachine;
|
||||||
private final FindImageForVirtualMachine findImageForVirtualMachine;
|
private final FindImageForVirtualMachine findImageForVirtualMachine;
|
||||||
private final LoadingCache<Long, Set<IPForwardingRule>> getIPForwardingRulesByVirtualMachine;
|
private final LoadingCache<Long, Set<IPForwardingRule>> getIPForwardingRulesByVirtualMachine;
|
||||||
|
private final GroupNamingConvention nodeNamingConvention;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
VirtualMachineToNodeMetadata(FindLocationForVirtualMachine findLocationForVirtualMachine,
|
VirtualMachineToNodeMetadata(FindLocationForVirtualMachine findLocationForVirtualMachine,
|
||||||
FindImageForVirtualMachine findImageForVirtualMachine,
|
FindImageForVirtualMachine findImageForVirtualMachine,
|
||||||
LoadingCache<Long, Set<IPForwardingRule>> getIPForwardingRulesByVirtualMachine) {
|
LoadingCache<Long, Set<IPForwardingRule>> getIPForwardingRulesByVirtualMachine,
|
||||||
|
GroupNamingConvention.Factory namingConvention) {
|
||||||
|
this.nodeNamingConvention = checkNotNull(namingConvention, "namingConvention").createWithoutPrefix();
|
||||||
this.findLocationForVirtualMachine = checkNotNull(findLocationForVirtualMachine, "findLocationForVirtualMachine");
|
this.findLocationForVirtualMachine = checkNotNull(findLocationForVirtualMachine, "findLocationForVirtualMachine");
|
||||||
this.findImageForVirtualMachine = checkNotNull(findImageForVirtualMachine, "findImageForVirtualMachine");
|
this.findImageForVirtualMachine = checkNotNull(findImageForVirtualMachine, "findImageForVirtualMachine");
|
||||||
this.getIPForwardingRulesByVirtualMachine = checkNotNull(getIPForwardingRulesByVirtualMachine,
|
this.getIPForwardingRulesByVirtualMachine = checkNotNull(getIPForwardingRulesByVirtualMachine,
|
||||||
|
@ -105,7 +107,7 @@ public class VirtualMachineToNodeMetadata implements Function<VirtualMachine, No
|
||||||
// on hosts not started with jclouds
|
// on hosts not started with jclouds
|
||||||
builder.hostname(from.getDisplayName());
|
builder.hostname(from.getDisplayName());
|
||||||
builder.location(findLocationForVirtualMachine.apply(from));
|
builder.location(findLocationForVirtualMachine.apply(from));
|
||||||
builder.group(parseGroupFromName(from.getDisplayName()));
|
builder.group(nodeNamingConvention.groupInUniqueNameOrNull(from.getDisplayName()));
|
||||||
Image image = findImageForVirtualMachine.apply(from);
|
Image image = findImageForVirtualMachine.apply(from);
|
||||||
if (image != null) {
|
if (image != null) {
|
||||||
builder.imageId(image.getId());
|
builder.imageId(image.getId());
|
||||||
|
|
|
@ -23,13 +23,12 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
import org.jclouds.cloudstack.options.DeployVirtualMachineOptions;
|
import org.jclouds.cloudstack.options.DeployVirtualMachineOptions;
|
||||||
import org.jclouds.compute.ComputeService;
|
import org.jclouds.compute.ComputeService;
|
||||||
import org.jclouds.compute.options.TemplateOptions;
|
import org.jclouds.compute.options.TemplateOptions;
|
||||||
import org.jclouds.io.Payload;
|
|
||||||
|
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -254,14 +253,6 @@ public class CloudStackTemplateOptions extends TemplateOptions implements Clonea
|
||||||
return CloudStackTemplateOptions.class.cast(options.blockOnPort(port, seconds));
|
return CloudStackTemplateOptions.class.cast(options.blockOnPort(port, seconds));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @see TemplateOptions#runScript(Payload)
|
|
||||||
*/
|
|
||||||
public static CloudStackTemplateOptions runScript(Payload script) {
|
|
||||||
CloudStackTemplateOptions options = new CloudStackTemplateOptions();
|
|
||||||
return CloudStackTemplateOptions.class.cast(options.runScript(script));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see TemplateOptions#userMetadata(Map)
|
* @see TemplateOptions#userMetadata(Map)
|
||||||
*/
|
*/
|
||||||
|
@ -313,15 +304,6 @@ public class CloudStackTemplateOptions extends TemplateOptions implements Clonea
|
||||||
return CloudStackTemplateOptions.class.cast(super.installPrivateKey(privateKey));
|
return CloudStackTemplateOptions.class.cast(super.installPrivateKey(privateKey));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @see TemplateOptions#runScript(Payload)
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
@Override
|
|
||||||
public CloudStackTemplateOptions runScript(Payload script) {
|
|
||||||
return CloudStackTemplateOptions.class.cast(super.runScript(script));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -18,19 +18,20 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.compute.strategy;
|
package org.jclouds.cloudstack.compute.strategy;
|
||||||
|
|
||||||
import com.google.common.collect.Iterables;
|
|
||||||
import org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions;
|
|
||||||
import org.jclouds.cloudstack.domain.Network;
|
|
||||||
import org.jclouds.cloudstack.options.DeployVirtualMachineOptions;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkArgument;
|
import static com.google.common.base.Preconditions.checkArgument;
|
||||||
import static com.google.common.base.Predicates.and;
|
import static com.google.common.base.Predicates.and;
|
||||||
import static com.google.common.collect.Iterables.filter;
|
import static com.google.common.collect.Iterables.filter;
|
||||||
import static org.jclouds.cloudstack.predicates.NetworkPredicates.defaultNetworkInZone;
|
import static org.jclouds.cloudstack.predicates.NetworkPredicates.defaultNetworkInZone;
|
||||||
import static org.jclouds.cloudstack.predicates.NetworkPredicates.supportsStaticNAT;
|
import static org.jclouds.cloudstack.predicates.NetworkPredicates.supportsStaticNAT;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions;
|
||||||
|
import org.jclouds.cloudstack.domain.Network;
|
||||||
|
import org.jclouds.cloudstack.options.DeployVirtualMachineOptions;
|
||||||
|
|
||||||
|
import com.google.common.collect.Iterables;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert template options into DeployVirtualMachineOptions, when the target zone has advanced networking.
|
* Convert template options into DeployVirtualMachineOptions, when the target zone has advanced networking.
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,12 +18,12 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.compute.strategy;
|
package org.jclouds.cloudstack.compute.strategy;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions;
|
import org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions;
|
||||||
import org.jclouds.cloudstack.domain.Network;
|
import org.jclouds.cloudstack.domain.Network;
|
||||||
import org.jclouds.cloudstack.options.DeployVirtualMachineOptions;
|
import org.jclouds.cloudstack.options.DeployVirtualMachineOptions;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert template options into DeployVirtualMachineOptions, when the target zone has basic networking.
|
* Convert template options into DeployVirtualMachineOptions, when the target zone has basic networking.
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,14 +18,22 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.compute.strategy;
|
package org.jclouds.cloudstack.compute.strategy;
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
import static com.google.common.base.Preconditions.checkArgument;
|
||||||
import com.google.common.base.Supplier;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import com.google.common.base.Throwables;
|
import static com.google.common.base.Preconditions.checkState;
|
||||||
import com.google.common.cache.LoadingCache;
|
import static com.google.common.collect.Iterables.filter;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import static org.jclouds.cloudstack.predicates.TemplatePredicates.isReady;
|
||||||
import com.google.common.collect.ImmutableSet.Builder;
|
|
||||||
import com.google.common.collect.Sets;
|
import java.util.List;
|
||||||
import com.google.common.primitives.Ints;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Named;
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.CloudStackClient;
|
import org.jclouds.cloudstack.CloudStackClient;
|
||||||
import org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions;
|
import org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions;
|
||||||
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
||||||
|
@ -50,20 +58,14 @@ import org.jclouds.domain.Credentials;
|
||||||
import org.jclouds.domain.LoginCredentials;
|
import org.jclouds.domain.LoginCredentials;
|
||||||
import org.jclouds.logging.Logger;
|
import org.jclouds.logging.Logger;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import com.google.common.base.Predicate;
|
||||||
import javax.inject.Inject;
|
import com.google.common.base.Supplier;
|
||||||
import javax.inject.Named;
|
import com.google.common.base.Throwables;
|
||||||
import javax.inject.Singleton;
|
import com.google.common.cache.LoadingCache;
|
||||||
import java.util.List;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import java.util.Map;
|
import com.google.common.collect.ImmutableSet.Builder;
|
||||||
import java.util.Set;
|
import com.google.common.collect.Sets;
|
||||||
import java.util.concurrent.ExecutionException;
|
import com.google.common.primitives.Ints;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkArgument;
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
|
||||||
import static com.google.common.base.Preconditions.checkState;
|
|
||||||
import static com.google.common.collect.Iterables.filter;
|
|
||||||
import static org.jclouds.cloudstack.predicates.TemplatePredicates.isReady;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* defines the connection between the {@link CloudStackClient} implementation
|
* defines the connection between the {@link CloudStackClient} implementation
|
||||||
|
|
|
@ -18,19 +18,12 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.compute.strategy;
|
package org.jclouds.cloudstack.compute.strategy;
|
||||||
|
|
||||||
import com.google.common.collect.Iterables;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions;
|
import org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions;
|
||||||
import org.jclouds.cloudstack.domain.Network;
|
import org.jclouds.cloudstack.domain.Network;
|
||||||
import org.jclouds.cloudstack.options.DeployVirtualMachineOptions;
|
import org.jclouds.cloudstack.options.DeployVirtualMachineOptions;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkArgument;
|
|
||||||
import static com.google.common.base.Predicates.and;
|
|
||||||
import static com.google.common.collect.Iterables.filter;
|
|
||||||
import static org.jclouds.cloudstack.predicates.NetworkPredicates.defaultNetworkInZone;
|
|
||||||
import static org.jclouds.cloudstack.predicates.NetworkPredicates.supportsStaticNAT;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert template options into DeployVirtualMachineOptions. Expressed as an interface, because in
|
* Convert template options into DeployVirtualMachineOptions. Expressed as an interface, because in
|
||||||
* CloudStack different zone network types have different requirements when it comes to networks and
|
* CloudStack different zone network types have different requirements when it comes to networks and
|
||||||
|
|
|
@ -20,10 +20,11 @@ package org.jclouds.cloudstack.domain;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import com.google.common.base.CaseFormat;
|
import com.google.common.base.CaseFormat;
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.collect.ForwardingSet;
|
import com.google.common.collect.ForwardingSet;
|
||||||
|
|
|
@ -18,15 +18,15 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.domain;
|
package org.jclouds.cloudstack.domain;
|
||||||
|
|
||||||
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Information about a dimension of the capacity
|
* Information about a dimension of the capacity
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,11 +18,11 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.domain;
|
package org.jclouds.cloudstack.domain;
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName;
|
|
||||||
|
|
||||||
import static com.google.common.base.CaseFormat.UPPER_CAMEL;
|
import static com.google.common.base.CaseFormat.UPPER_CAMEL;
|
||||||
import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
|
import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a CloudStack Cluster.
|
* Represents a CloudStack Cluster.
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,12 +18,11 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.domain;
|
package org.jclouds.cloudstack.domain;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import com.google.common.base.CaseFormat;
|
import com.google.common.base.CaseFormat;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
import org.omg.PortableInterceptor.ACTIVE;
|
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Andrei Savu
|
* @author Andrei Savu
|
||||||
|
|
|
@ -20,12 +20,13 @@ package org.jclouds.cloudstack.domain;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.SortedSet;
|
import java.util.SortedSet;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import com.google.common.base.Joiner;
|
import com.google.common.base.Joiner;
|
||||||
import com.google.common.base.Splitter;
|
import com.google.common.base.Splitter;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
|
@ -18,10 +18,10 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.domain;
|
package org.jclouds.cloudstack.domain;
|
||||||
|
|
||||||
import com.google.common.base.CaseFormat;
|
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
|
import com.google.common.base.CaseFormat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Andrei Savu
|
* @author Andrei Savu
|
||||||
|
|
|
@ -20,9 +20,10 @@ package org.jclouds.cloudstack.domain;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import com.google.common.base.CaseFormat;
|
import com.google.common.base.CaseFormat;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
|
|
@ -18,11 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.domain;
|
package org.jclouds.cloudstack.domain;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.SortedSet;
|
import java.util.SortedSet;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.ImmutableSortedSet;
|
import com.google.common.collect.ImmutableSortedSet;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
|
@ -18,10 +18,11 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.domain;
|
package org.jclouds.cloudstack.domain;
|
||||||
|
|
||||||
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
|
||||||
import com.google.common.base.Joiner;
|
import com.google.common.base.Joiner;
|
||||||
import com.google.common.base.Splitter;
|
import com.google.common.base.Splitter;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
|
|
@ -18,12 +18,12 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.domain;
|
package org.jclouds.cloudstack.domain;
|
||||||
|
|
||||||
import com.google.common.base.CaseFormat;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import com.google.gson.annotations.SerializedName;
|
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import com.google.common.base.CaseFormat;
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a storage pool in CloudStack
|
* Represents a storage pool in CloudStack
|
||||||
|
|
|
@ -18,10 +18,10 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.domain;
|
package org.jclouds.cloudstack.domain;
|
||||||
|
|
||||||
import com.google.common.base.CaseFormat;
|
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
|
import com.google.common.base.CaseFormat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Andrei Savu
|
* @author Andrei Savu
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -18,10 +18,12 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.domain;
|
package org.jclouds.cloudstack.domain;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -18,11 +18,11 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.domain;
|
package org.jclouds.cloudstack.domain;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import com.google.common.base.Objects;
|
import com.google.common.base.Objects;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Richard Downer
|
* @author Richard Downer
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -20,9 +20,10 @@ package org.jclouds.cloudstack.domain;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,11 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.Account;
|
import org.jclouds.cloudstack.domain.Account;
|
||||||
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
|
@ -29,10 +33,7 @@ import org.jclouds.rest.annotations.SelectJson;
|
||||||
import org.jclouds.rest.annotations.Unwrap;
|
import org.jclouds.rest.annotations.Unwrap;
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.QueryParam;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to CloudStack Account features available to Domain
|
* Provides asynchronous access to CloudStack Account features available to Domain
|
||||||
|
|
|
@ -18,7 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.Domain;
|
import org.jclouds.cloudstack.domain.Domain;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
import org.jclouds.cloudstack.options.ListDomainChildrenOptions;
|
import org.jclouds.cloudstack.options.ListDomainChildrenOptions;
|
||||||
|
@ -31,11 +37,7 @@ import org.jclouds.rest.annotations.SelectJson;
|
||||||
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.QueryParam;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to CloudStack Domain features available to Domain
|
* Provides asynchronous access to CloudStack Domain features available to Domain
|
||||||
|
|
|
@ -18,14 +18,14 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.Domain;
|
import org.jclouds.cloudstack.domain.Domain;
|
||||||
import org.jclouds.cloudstack.options.ListDomainChildrenOptions;
|
import org.jclouds.cloudstack.options.ListDomainChildrenOptions;
|
||||||
import org.jclouds.cloudstack.options.ListDomainsOptions;
|
import org.jclouds.cloudstack.options.ListDomainsOptions;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack Domain features available to Domain
|
* Provides synchronous access to CloudStack Domain features available to Domain
|
||||||
* Admin users.
|
* Admin users.
|
||||||
|
|
|
@ -18,7 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
||||||
import org.jclouds.cloudstack.domain.User;
|
import org.jclouds.cloudstack.domain.User;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
|
@ -31,11 +37,7 @@ import org.jclouds.rest.annotations.Unwrap;
|
||||||
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.QueryParam;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to CloudStack User features available to Domain
|
* Provides asynchronous access to CloudStack User features available to Domain
|
||||||
|
|
|
@ -18,14 +18,14 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
||||||
import org.jclouds.cloudstack.domain.User;
|
import org.jclouds.cloudstack.domain.User;
|
||||||
import org.jclouds.cloudstack.options.ListUsersOptions;
|
import org.jclouds.cloudstack.options.ListUsersOptions;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack User features available to Domain
|
* Provides synchronous access to CloudStack User features available to Domain
|
||||||
* Admin users.
|
* Admin users.
|
||||||
|
|
|
@ -18,12 +18,12 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import javax.ws.rs.Consumes;
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
|
||||||
import org.jclouds.cloudstack.domain.Event;
|
import org.jclouds.cloudstack.domain.Event;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
import org.jclouds.cloudstack.functions.ParseEventTypesFromHttpResponse;
|
import org.jclouds.cloudstack.functions.ParseEventTypesFromHttpResponse;
|
||||||
|
@ -35,6 +35,8 @@ import org.jclouds.rest.annotations.ResponseParser;
|
||||||
import org.jclouds.rest.annotations.SelectJson;
|
import org.jclouds.rest.annotations.SelectJson;
|
||||||
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
||||||
|
|
||||||
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to cloudstack via their REST API.
|
* Provides asynchronous access to cloudstack via their REST API.
|
||||||
* <p/>
|
* <p/>
|
||||||
|
|
|
@ -18,7 +18,12 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.Alert;
|
import org.jclouds.cloudstack.domain.Alert;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
import org.jclouds.cloudstack.options.ListAlertsOptions;
|
import org.jclouds.cloudstack.options.ListAlertsOptions;
|
||||||
|
@ -28,10 +33,7 @@ import org.jclouds.rest.annotations.RequestFilters;
|
||||||
import org.jclouds.rest.annotations.SelectJson;
|
import org.jclouds.rest.annotations.SelectJson;
|
||||||
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to CloudStack Account features available to Global
|
* Provides asynchronous access to CloudStack Account features available to Global
|
||||||
|
|
|
@ -18,13 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.Alert;
|
import org.jclouds.cloudstack.domain.Alert;
|
||||||
import org.jclouds.cloudstack.options.ListAlertsOptions;
|
import org.jclouds.cloudstack.options.ListAlertsOptions;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack Alerts features available to Global
|
* Provides synchronous access to CloudStack Alerts features available to Global
|
||||||
* Admin users.
|
* Admin users.
|
||||||
|
|
|
@ -18,7 +18,12 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.Capacity;
|
import org.jclouds.cloudstack.domain.Capacity;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
import org.jclouds.cloudstack.options.ListCapacityOptions;
|
import org.jclouds.cloudstack.options.ListCapacityOptions;
|
||||||
|
@ -28,10 +33,7 @@ import org.jclouds.rest.annotations.RequestFilters;
|
||||||
import org.jclouds.rest.annotations.SelectJson;
|
import org.jclouds.rest.annotations.SelectJson;
|
||||||
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to CloudStack Account features available to Global
|
* Provides asynchronous access to CloudStack Account features available to Global
|
||||||
|
|
|
@ -18,13 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.Capacity;
|
import org.jclouds.cloudstack.domain.Capacity;
|
||||||
import org.jclouds.cloudstack.options.ListCapacityOptions;
|
import org.jclouds.cloudstack.options.ListCapacityOptions;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack Capacities features available to Global
|
* Provides synchronous access to CloudStack Capacities features available to Global
|
||||||
* Admin users.
|
* Admin users.
|
||||||
|
|
|
@ -18,23 +18,24 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.ConfigurationEntry;
|
import org.jclouds.cloudstack.domain.ConfigurationEntry;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
import org.jclouds.cloudstack.options.ListConfigurationEntriesOptions;
|
import org.jclouds.cloudstack.options.ListConfigurationEntriesOptions;
|
||||||
import org.jclouds.rest.annotations.ExceptionParser;
|
import org.jclouds.rest.annotations.ExceptionParser;
|
||||||
import org.jclouds.rest.annotations.OnlyElement;
|
|
||||||
import org.jclouds.rest.annotations.QueryParams;
|
import org.jclouds.rest.annotations.QueryParams;
|
||||||
import org.jclouds.rest.annotations.RequestFilters;
|
import org.jclouds.rest.annotations.RequestFilters;
|
||||||
import org.jclouds.rest.annotations.SelectJson;
|
import org.jclouds.rest.annotations.SelectJson;
|
||||||
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.QueryParam;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to CloudStack Configuration features available to Global
|
* Provides asynchronous access to CloudStack Configuration features available to Global
|
||||||
|
|
|
@ -18,13 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.ConfigurationEntry;
|
import org.jclouds.cloudstack.domain.ConfigurationEntry;
|
||||||
import org.jclouds.cloudstack.options.ListConfigurationEntriesOptions;
|
import org.jclouds.cloudstack.options.ListConfigurationEntriesOptions;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack Configuration features available to Global
|
* Provides synchronous access to CloudStack Configuration features available to Global
|
||||||
* Admin users.
|
* Admin users.
|
||||||
|
|
|
@ -18,7 +18,11 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.Domain;
|
import org.jclouds.cloudstack.domain.Domain;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
import org.jclouds.cloudstack.options.CreateDomainOptions;
|
import org.jclouds.cloudstack.options.CreateDomainOptions;
|
||||||
|
@ -30,10 +34,7 @@ import org.jclouds.rest.annotations.SelectJson;
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.QueryParam;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to CloudStack Domain features available to Global
|
* Provides asynchronous access to CloudStack Domain features available to Global
|
||||||
|
|
|
@ -18,13 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.Domain;
|
import org.jclouds.cloudstack.domain.Domain;
|
||||||
import org.jclouds.cloudstack.options.CreateDomainOptions;
|
import org.jclouds.cloudstack.options.CreateDomainOptions;
|
||||||
import org.jclouds.cloudstack.options.UpdateDomainOptions;
|
import org.jclouds.cloudstack.options.UpdateDomainOptions;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack Domain features available to Global
|
* Provides synchronous access to CloudStack Domain features available to Global
|
||||||
* Admin users.
|
* Admin users.
|
||||||
|
|
|
@ -18,7 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.Cluster;
|
import org.jclouds.cloudstack.domain.Cluster;
|
||||||
import org.jclouds.cloudstack.domain.Host;
|
import org.jclouds.cloudstack.domain.Host;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
|
@ -36,11 +42,7 @@ import org.jclouds.rest.annotations.RequestFilters;
|
||||||
import org.jclouds.rest.annotations.SelectJson;
|
import org.jclouds.rest.annotations.SelectJson;
|
||||||
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.QueryParam;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to cloudstack via their REST API.
|
* Provides asynchronous access to cloudstack via their REST API.
|
||||||
|
|
|
@ -18,6 +18,9 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.Cluster;
|
import org.jclouds.cloudstack.domain.Cluster;
|
||||||
import org.jclouds.cloudstack.domain.Host;
|
import org.jclouds.cloudstack.domain.Host;
|
||||||
import org.jclouds.cloudstack.options.AddClusterOptions;
|
import org.jclouds.cloudstack.options.AddClusterOptions;
|
||||||
|
@ -30,9 +33,6 @@ import org.jclouds.cloudstack.options.UpdateClusterOptions;
|
||||||
import org.jclouds.cloudstack.options.UpdateHostOptions;
|
import org.jclouds.cloudstack.options.UpdateHostOptions;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack host features.
|
* Provides synchronous access to CloudStack host features.
|
||||||
* <p/>
|
* <p/>
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.DiskOffering;
|
import org.jclouds.cloudstack.domain.DiskOffering;
|
||||||
import org.jclouds.cloudstack.domain.NetworkOffering;
|
import org.jclouds.cloudstack.domain.NetworkOffering;
|
||||||
import org.jclouds.cloudstack.domain.ServiceOffering;
|
import org.jclouds.cloudstack.domain.ServiceOffering;
|
||||||
|
@ -28,8 +30,6 @@ import org.jclouds.cloudstack.options.UpdateNetworkOfferingOptions;
|
||||||
import org.jclouds.cloudstack.options.UpdateServiceOfferingOptions;
|
import org.jclouds.cloudstack.options.UpdateServiceOfferingOptions;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack zone features.
|
* Provides synchronous access to CloudStack zone features.
|
||||||
* <p/>
|
* <p/>
|
||||||
|
|
|
@ -18,7 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.Pod;
|
import org.jclouds.cloudstack.domain.Pod;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
import org.jclouds.cloudstack.options.CreatePodOptions;
|
import org.jclouds.cloudstack.options.CreatePodOptions;
|
||||||
|
@ -33,11 +39,7 @@ import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.QueryParam;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to CloudStack Pod features available to Global
|
* Provides asynchronous access to CloudStack Pod features available to Global
|
||||||
|
|
|
@ -18,15 +18,15 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.Pod;
|
import org.jclouds.cloudstack.domain.Pod;
|
||||||
import org.jclouds.cloudstack.options.CreatePodOptions;
|
import org.jclouds.cloudstack.options.CreatePodOptions;
|
||||||
import org.jclouds.cloudstack.options.ListPodsOptions;
|
import org.jclouds.cloudstack.options.ListPodsOptions;
|
||||||
import org.jclouds.cloudstack.options.UpdatePodOptions;
|
import org.jclouds.cloudstack.options.UpdatePodOptions;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack Pod features available to Global
|
* Provides synchronous access to CloudStack Pod features available to Global
|
||||||
* Admin users.
|
* Admin users.
|
||||||
|
|
|
@ -18,7 +18,12 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.StoragePool;
|
import org.jclouds.cloudstack.domain.StoragePool;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
import org.jclouds.cloudstack.options.ListStoragePoolsOptions;
|
import org.jclouds.cloudstack.options.ListStoragePoolsOptions;
|
||||||
|
@ -27,10 +32,7 @@ import org.jclouds.rest.annotations.RequestFilters;
|
||||||
import org.jclouds.rest.annotations.SelectJson;
|
import org.jclouds.rest.annotations.SelectJson;
|
||||||
import org.jclouds.rest.annotations.SkipEncoding;
|
import org.jclouds.rest.annotations.SkipEncoding;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to CloudStack storage pool features.
|
* Provides asynchronous access to CloudStack storage pool features.
|
||||||
|
|
|
@ -18,13 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.StoragePool;
|
import org.jclouds.cloudstack.domain.StoragePool;
|
||||||
import org.jclouds.cloudstack.options.ListStoragePoolsOptions;
|
import org.jclouds.cloudstack.options.ListStoragePoolsOptions;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack storage pool features.
|
* Provides synchronous access to CloudStack storage pool features.
|
||||||
* <p/>
|
* <p/>
|
||||||
|
|
|
@ -18,7 +18,14 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import java.util.Date;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.JobResult;
|
import org.jclouds.cloudstack.domain.JobResult;
|
||||||
import org.jclouds.cloudstack.domain.UsageRecord;
|
import org.jclouds.cloudstack.domain.UsageRecord;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
|
@ -30,12 +37,7 @@ import org.jclouds.rest.annotations.QueryParams;
|
||||||
import org.jclouds.rest.annotations.RequestFilters;
|
import org.jclouds.rest.annotations.RequestFilters;
|
||||||
import org.jclouds.rest.annotations.SelectJson;
|
import org.jclouds.rest.annotations.SelectJson;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.QueryParam;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to CloudStack usage features.
|
* Provides asynchronous access to CloudStack usage features.
|
||||||
|
|
|
@ -18,16 +18,16 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.JobResult;
|
import org.jclouds.cloudstack.domain.JobResult;
|
||||||
import org.jclouds.cloudstack.domain.UsageRecord;
|
import org.jclouds.cloudstack.domain.UsageRecord;
|
||||||
import org.jclouds.cloudstack.options.GenerateUsageRecordsOptions;
|
import org.jclouds.cloudstack.options.GenerateUsageRecordsOptions;
|
||||||
import org.jclouds.cloudstack.options.ListUsageRecordsOptions;
|
import org.jclouds.cloudstack.options.ListUsageRecordsOptions;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack usage features.
|
* Provides synchronous access to CloudStack usage features.
|
||||||
* <p/>
|
* <p/>
|
||||||
|
|
|
@ -18,7 +18,11 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.ApiKeyPair;
|
import org.jclouds.cloudstack.domain.ApiKeyPair;
|
||||||
import org.jclouds.cloudstack.domain.User;
|
import org.jclouds.cloudstack.domain.User;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
|
@ -30,10 +34,7 @@ import org.jclouds.rest.annotations.RequestFilters;
|
||||||
import org.jclouds.rest.annotations.SelectJson;
|
import org.jclouds.rest.annotations.SelectJson;
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.QueryParam;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to CloudStack User features available to Global
|
* Provides asynchronous access to CloudStack User features available to Global
|
||||||
|
|
|
@ -18,7 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.VlanIPRange;
|
import org.jclouds.cloudstack.domain.VlanIPRange;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
import org.jclouds.cloudstack.options.CreateVlanIPRangeOptions;
|
import org.jclouds.cloudstack.options.CreateVlanIPRangeOptions;
|
||||||
|
@ -32,11 +38,7 @@ import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.QueryParam;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to cloudstack via their REST API.
|
* Provides asynchronous access to cloudstack via their REST API.
|
||||||
|
|
|
@ -18,14 +18,14 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.VlanIPRange;
|
import org.jclouds.cloudstack.domain.VlanIPRange;
|
||||||
import org.jclouds.cloudstack.options.CreateVlanIPRangeOptions;
|
import org.jclouds.cloudstack.options.CreateVlanIPRangeOptions;
|
||||||
import org.jclouds.cloudstack.options.ListVlanIPRangesOptions;
|
import org.jclouds.cloudstack.options.ListVlanIPRangesOptions;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack VLAN features.
|
* Provides synchronous access to CloudStack VLAN features.
|
||||||
* <p/>
|
* <p/>
|
||||||
|
|
|
@ -18,7 +18,11 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.NetworkType;
|
import org.jclouds.cloudstack.domain.NetworkType;
|
||||||
import org.jclouds.cloudstack.domain.Zone;
|
import org.jclouds.cloudstack.domain.Zone;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
|
@ -31,10 +35,7 @@ import org.jclouds.rest.annotations.SelectJson;
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.QueryParam;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to CloudStack Account features available to Global
|
* Provides asynchronous access to CloudStack Account features available to Global
|
||||||
|
|
|
@ -18,14 +18,14 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.NetworkType;
|
import org.jclouds.cloudstack.domain.NetworkType;
|
||||||
import org.jclouds.cloudstack.domain.Zone;
|
import org.jclouds.cloudstack.domain.Zone;
|
||||||
import org.jclouds.cloudstack.options.CreateZoneOptions;
|
import org.jclouds.cloudstack.options.CreateZoneOptions;
|
||||||
import org.jclouds.cloudstack.options.UpdateZoneOptions;
|
import org.jclouds.cloudstack.options.UpdateZoneOptions;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack Zone features available to Global
|
* Provides synchronous access to CloudStack Zone features available to Global
|
||||||
* Admin users.
|
* Admin users.
|
||||||
|
|
|
@ -18,7 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.SshKeyPair;
|
import org.jclouds.cloudstack.domain.SshKeyPair;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
import org.jclouds.cloudstack.filters.ReEncodeQueryWithDefaultURLEncoder;
|
import org.jclouds.cloudstack.filters.ReEncodeQueryWithDefaultURLEncoder;
|
||||||
|
@ -32,11 +38,7 @@ import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.QueryParam;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to CloudStack SSHKeyPair features.
|
* Provides asynchronous access to CloudStack SSHKeyPair features.
|
||||||
|
|
|
@ -18,7 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.binders.BindIdListToCommaDelimitedQueryParam;
|
import org.jclouds.cloudstack.binders.BindIdListToCommaDelimitedQueryParam;
|
||||||
import org.jclouds.cloudstack.binders.BindSnapshotPolicyScheduleToQueryParam;
|
import org.jclouds.cloudstack.binders.BindSnapshotPolicyScheduleToQueryParam;
|
||||||
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
||||||
|
@ -40,11 +46,7 @@ import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.QueryParam;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack Snapshot features.
|
* Provides synchronous access to CloudStack Snapshot features.
|
||||||
|
|
|
@ -18,22 +18,28 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import java.util.Set;
|
||||||
import org.jclouds.cloudstack.domain.VMGroup;
|
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
|
||||||
import org.jclouds.cloudstack.options.CreateVMGroupOptions;
|
|
||||||
import org.jclouds.cloudstack.options.ListVMGroupsOptions;
|
|
||||||
import org.jclouds.cloudstack.options.UpdateVMGroupOptions;
|
|
||||||
import org.jclouds.rest.annotations.*;
|
|
||||||
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
|
||||||
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import javax.ws.rs.Consumes;
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.QueryParam;
|
import javax.ws.rs.QueryParam;
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import java.util.Set;
|
|
||||||
|
import org.jclouds.cloudstack.domain.VMGroup;
|
||||||
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
|
import org.jclouds.cloudstack.options.CreateVMGroupOptions;
|
||||||
|
import org.jclouds.cloudstack.options.ListVMGroupsOptions;
|
||||||
|
import org.jclouds.cloudstack.options.UpdateVMGroupOptions;
|
||||||
|
import org.jclouds.rest.annotations.ExceptionParser;
|
||||||
|
import org.jclouds.rest.annotations.OnlyElement;
|
||||||
|
import org.jclouds.rest.annotations.QueryParams;
|
||||||
|
import org.jclouds.rest.annotations.RequestFilters;
|
||||||
|
import org.jclouds.rest.annotations.SelectJson;
|
||||||
|
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
||||||
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
|
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
||||||
|
|
||||||
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to CloudStack VM group features.
|
* Provides asynchronous access to CloudStack VM group features.
|
||||||
|
|
|
@ -18,15 +18,15 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.VMGroup;
|
import org.jclouds.cloudstack.domain.VMGroup;
|
||||||
import org.jclouds.cloudstack.options.CreateVMGroupOptions;
|
import org.jclouds.cloudstack.options.CreateVMGroupOptions;
|
||||||
import org.jclouds.cloudstack.options.ListVMGroupsOptions;
|
import org.jclouds.cloudstack.options.ListVMGroupsOptions;
|
||||||
import org.jclouds.cloudstack.options.UpdateVMGroupOptions;
|
import org.jclouds.cloudstack.options.UpdateVMGroupOptions;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack VM group features.
|
* Provides synchronous access to CloudStack VM group features.
|
||||||
* <p/>
|
* <p/>
|
||||||
|
|
|
@ -18,7 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
||||||
import org.jclouds.cloudstack.domain.VirtualMachine;
|
import org.jclouds.cloudstack.domain.VirtualMachine;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
|
@ -33,11 +39,7 @@ import org.jclouds.rest.annotations.Unwrap;
|
||||||
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.QueryParam;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to cloudstack via their REST API.
|
* Provides asynchronous access to cloudstack via their REST API.
|
||||||
|
|
|
@ -18,15 +18,15 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
||||||
import org.jclouds.cloudstack.domain.VirtualMachine;
|
import org.jclouds.cloudstack.domain.VirtualMachine;
|
||||||
import org.jclouds.cloudstack.options.DeployVirtualMachineOptions;
|
import org.jclouds.cloudstack.options.DeployVirtualMachineOptions;
|
||||||
import org.jclouds.cloudstack.options.ListVirtualMachinesOptions;
|
import org.jclouds.cloudstack.options.ListVirtualMachinesOptions;
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to CloudStack VirtualMachine features.
|
* Provides synchronous access to CloudStack VirtualMachine features.
|
||||||
* <p/>
|
* <p/>
|
||||||
|
|
|
@ -18,22 +18,29 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.features;
|
package org.jclouds.cloudstack.features;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import javax.ws.rs.Consumes;
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.QueryParam;
|
import javax.ws.rs.QueryParam;
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
|
||||||
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
import org.jclouds.cloudstack.domain.AsyncCreateResponse;
|
||||||
import org.jclouds.cloudstack.domain.Volume;
|
import org.jclouds.cloudstack.domain.Volume;
|
||||||
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
import org.jclouds.cloudstack.filters.AuthenticationFilter;
|
||||||
import org.jclouds.cloudstack.options.ListVolumesOptions;
|
import org.jclouds.cloudstack.options.ListVolumesOptions;
|
||||||
import org.jclouds.rest.annotations.*;
|
import org.jclouds.rest.annotations.ExceptionParser;
|
||||||
|
import org.jclouds.rest.annotations.OnlyElement;
|
||||||
|
import org.jclouds.rest.annotations.QueryParams;
|
||||||
|
import org.jclouds.rest.annotations.RequestFilters;
|
||||||
|
import org.jclouds.rest.annotations.SelectJson;
|
||||||
|
import org.jclouds.rest.annotations.Unwrap;
|
||||||
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404;
|
||||||
|
|
||||||
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides asynchronous access to cloudstack via their REST API.
|
* Provides asynchronous access to cloudstack via their REST API.
|
||||||
* <p/>
|
* <p/>
|
||||||
|
|
|
@ -18,11 +18,17 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.filters;
|
package org.jclouds.cloudstack.filters;
|
||||||
|
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import com.google.common.base.Joiner;
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import java.util.Map.Entry;
|
||||||
import com.google.common.collect.ImmutableSortedSet;
|
|
||||||
import com.google.common.collect.Multimap;
|
import javax.annotation.Resource;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Named;
|
||||||
|
import javax.inject.Provider;
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
import javax.ws.rs.core.UriBuilder;
|
||||||
|
|
||||||
import org.jclouds.Constants;
|
import org.jclouds.Constants;
|
||||||
import org.jclouds.crypto.Crypto;
|
import org.jclouds.crypto.Crypto;
|
||||||
import org.jclouds.crypto.CryptoStreams;
|
import org.jclouds.crypto.CryptoStreams;
|
||||||
|
@ -36,15 +42,11 @@ import org.jclouds.logging.Logger;
|
||||||
import org.jclouds.rest.RequestSigner;
|
import org.jclouds.rest.RequestSigner;
|
||||||
import org.jclouds.util.Strings2;
|
import org.jclouds.util.Strings2;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import javax.inject.Inject;
|
import com.google.common.base.Joiner;
|
||||||
import javax.inject.Named;
|
import com.google.common.collect.ImmutableList;
|
||||||
import javax.inject.Provider;
|
import com.google.common.collect.ImmutableSortedSet;
|
||||||
import javax.inject.Singleton;
|
import com.google.common.collect.Multimap;
|
||||||
import javax.ws.rs.core.UriBuilder;
|
|
||||||
import java.util.Map.Entry;
|
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,17 +18,18 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.filters;
|
package org.jclouds.cloudstack.filters;
|
||||||
|
|
||||||
import com.google.common.collect.Multimap;
|
import static com.google.common.collect.Iterables.getOnlyElement;
|
||||||
import com.google.inject.Inject;
|
|
||||||
import com.google.inject.Provider;
|
import javax.ws.rs.core.UriBuilder;
|
||||||
|
|
||||||
import org.jclouds.http.HttpException;
|
import org.jclouds.http.HttpException;
|
||||||
import org.jclouds.http.HttpRequest;
|
import org.jclouds.http.HttpRequest;
|
||||||
import org.jclouds.http.HttpRequestFilter;
|
import org.jclouds.http.HttpRequestFilter;
|
||||||
import org.jclouds.http.utils.ModifyRequest;
|
import org.jclouds.http.utils.ModifyRequest;
|
||||||
|
|
||||||
import javax.ws.rs.core.UriBuilder;
|
import com.google.common.collect.Multimap;
|
||||||
|
import com.google.inject.Inject;
|
||||||
import static com.google.common.collect.Iterables.getOnlyElement;
|
import com.google.inject.Provider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* By default, jclouds controls encoding based on rules which are different
|
* By default, jclouds controls encoding based on rules which are different
|
||||||
|
|
|
@ -18,13 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.functions;
|
package org.jclouds.cloudstack.functions;
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import static com.google.common.base.Preconditions.checkArgument;
|
||||||
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkArgument;
|
import com.google.common.base.Function;
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a Date object into a "yyyy-MM-dd" String
|
* Convert a Date object into a "yyyy-MM-dd" String
|
||||||
|
|
|
@ -18,15 +18,17 @@
|
||||||
*/
|
*/
|
||||||
package org.jclouds.cloudstack.functions;
|
package org.jclouds.cloudstack.functions;
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import java.io.File;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import org.jclouds.cloudstack.domain.LoginResponse;
|
import org.jclouds.cloudstack.domain.LoginResponse;
|
||||||
import org.jclouds.cloudstack.features.SessionClient;
|
import org.jclouds.cloudstack.features.SessionClient;
|
||||||
import org.jclouds.crypto.CryptoStreams;
|
import org.jclouds.crypto.CryptoStreams;
|
||||||
import org.jclouds.domain.Credentials;
|
import org.jclouds.domain.Credentials;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import com.google.common.base.Function;
|
||||||
import javax.inject.Singleton;
|
|
||||||
import java.io.File;
|
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class LoginWithPasswordCredentials implements Function<Credentials, LoginResponse> {
|
public class LoginWithPasswordCredentials implements Function<Credentials, LoginResponse> {
|
||||||
|
|
|
@ -20,17 +20,19 @@ package org.jclouds.cloudstack.functions;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import org.jclouds.http.HttpResponse;
|
||||||
|
import org.jclouds.http.functions.ParseFirstJsonValueNamed;
|
||||||
|
import org.jclouds.json.internal.GsonWrapper;
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.ImmutableSet.Builder;
|
import com.google.common.collect.ImmutableSet.Builder;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.TypeLiteral;
|
import com.google.inject.TypeLiteral;
|
||||||
import org.jclouds.http.HttpResponse;
|
|
||||||
import org.jclouds.http.functions.ParseFirstJsonValueNamed;
|
|
||||||
import org.jclouds.json.internal.GsonWrapper;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Vijay Kiran
|
* @author Vijay Kiran
|
||||||
|
|
|
@ -1,17 +1,18 @@
|
||||||
package org.jclouds.cloudstack.functions;
|
package org.jclouds.cloudstack.functions;
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import com.google.common.base.Splitter;
|
import static com.google.common.collect.Iterables.get;
|
||||||
import com.google.inject.Inject;
|
import static com.google.common.collect.Iterables.getOnlyElement;
|
||||||
import com.google.inject.TypeLiteral;
|
|
||||||
import org.jclouds.cloudstack.domain.LoginResponse;
|
import org.jclouds.cloudstack.domain.LoginResponse;
|
||||||
import org.jclouds.http.HttpResponse;
|
import org.jclouds.http.HttpResponse;
|
||||||
import org.jclouds.http.functions.ParseFirstJsonValueNamed;
|
import org.jclouds.http.functions.ParseFirstJsonValueNamed;
|
||||||
import org.jclouds.json.internal.GsonWrapper;
|
import org.jclouds.json.internal.GsonWrapper;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import com.google.common.base.Function;
|
||||||
import static com.google.common.collect.Iterables.get;
|
import com.google.common.base.Splitter;
|
||||||
import static com.google.common.collect.Iterables.getOnlyElement;
|
import com.google.inject.Inject;
|
||||||
|
import com.google.inject.TypeLiteral;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Andrei Savu
|
* @author Andrei Savu
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue