org.jclouds.compute.stub.config
Class StubComputeServiceAdapter

java.lang.Object
  extended by org.jclouds.compute.stub.config.StubComputeServiceAdapter
All Implemented Interfaces:
ComputeServiceAdapter<NodeMetadata,Hardware,Image,org.jclouds.domain.Location>, JCloudsNativeComputeServiceAdapter

@Singleton
public class StubComputeServiceAdapter
extends Object
implements JCloudsNativeComputeServiceAdapter


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.jclouds.compute.JCloudsNativeComputeServiceAdapter
JCloudsNativeComputeServiceAdapter.NodeWithInitialCredentials
 
Nested classes/interfaces inherited from interface org.jclouds.compute.ComputeServiceAdapter
ComputeServiceAdapter.NodeAndInitialCredentials<N>
 
Constructor Summary
StubComputeServiceAdapter(ConcurrentMap<String,NodeMetadata> nodes, com.google.common.util.concurrent.ListeningExecutorService ioExecutor, com.google.common.base.Supplier<org.jclouds.domain.Location> location, javax.inject.Provider<Integer> idProvider, String publicIpPrefix, String privateIpPrefix, String passwordPrefix, org.jclouds.location.suppliers.all.JustProvider locationSupplier, Map<OsFamily,Map<String,String>> osToVersionMap, com.google.common.collect.Multimap<String,SecurityGroup> groupsForNodes, javax.inject.Provider<Integer> groupIdProvider, com.google.common.base.Optional<SecurityGroupExtension> securityGroupExtension)
           
 
Method Summary
 JCloudsNativeComputeServiceAdapter.NodeWithInitialCredentials createNodeWithGroupEncodedIntoName(String group, String name, Template template)
          ComputeService.createNodesInGroup(String, int, Template) generates the parameters passed into this method such that each node in the set has a unique name.
 void destroyNode(String id)
          
 Image getImage(String id)
          get a specific image by id
 NodeMetadata getNode(String id)
          
 Iterable<Hardware> listHardwareProfiles()
          Hardware profiles describe available cpu, memory, and disk configurations that can be used to run a node.
 Iterable<Image> listImages()
          Images are the available configured operating systems that someone can run a node with.
 Iterable<org.jclouds.domain.Location> listLocations()
          
 Iterable<NodeMetadata> listNodes()
          
 Iterable<NodeMetadata> listNodesByIds(Iterable<String> ids)
           
 void rebootNode(String id)
          
 void resumeNode(String id)
           
protected  void setStateOnNode(NodeMetadata.Status status, NodeMetadata node)
           
protected  void setStateOnNodeAfterDelay(NodeMetadata.Status status, NodeMetadata node, long millis)
           
 void suspendNode(String id)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StubComputeServiceAdapter

@Inject
public StubComputeServiceAdapter(ConcurrentMap<String,NodeMetadata> nodes,
                                        @Named(value="jclouds.io-worker-threads")
                                        com.google.common.util.concurrent.ListeningExecutorService ioExecutor,
                                        com.google.common.base.Supplier<org.jclouds.domain.Location> location,
                                        @Named(value="NODE_ID")
                                        javax.inject.Provider<Integer> idProvider,
                                        @Named(value="PUBLIC_IP_PREFIX")
                                        String publicIpPrefix,
                                        @Named(value="PRIVATE_IP_PREFIX")
                                        String privateIpPrefix,
                                        @Named(value="PASSWORD_PREFIX")
                                        String passwordPrefix,
                                        org.jclouds.location.suppliers.all.JustProvider locationSupplier,
                                        Map<OsFamily,Map<String,String>> osToVersionMap,
                                        com.google.common.collect.Multimap<String,SecurityGroup> groupsForNodes,
                                        @Named(value="GROUP_ID")
                                        javax.inject.Provider<Integer> groupIdProvider,
                                        com.google.common.base.Optional<SecurityGroupExtension> securityGroupExtension)
Method Detail

setStateOnNode

protected void setStateOnNode(NodeMetadata.Status status,
                              NodeMetadata node)

setStateOnNodeAfterDelay

protected void setStateOnNodeAfterDelay(NodeMetadata.Status status,
                                        NodeMetadata node,
                                        long millis)

createNodeWithGroupEncodedIntoName

public JCloudsNativeComputeServiceAdapter.NodeWithInitialCredentials createNodeWithGroupEncodedIntoName(String group,
                                                                                                        String name,
                                                                                                        Template template)
Description copied from interface: JCloudsNativeComputeServiceAdapter
ComputeService.createNodesInGroup(String, int, Template) generates the parameters passed into this method such that each node in the set has a unique name.

note

It is intentional to return the library native node object, as generic type N. If you are not using library-native objects (such as libvirt Domain) use JCloudsNativeComputeServiceAdapter instead.

note

Your responsibility is to create a node with the underlying library and return after storing its credentials in the supplied map corresponding to credentialStore

Specified by:
createNodeWithGroupEncodedIntoName in interface ComputeServiceAdapter<NodeMetadata,Hardware,Image,org.jclouds.domain.Location>
Specified by:
createNodeWithGroupEncodedIntoName in interface JCloudsNativeComputeServiceAdapter
Parameters:
group - used to aggregate nodes with identical configuration
name - unique supplied name for the node, which has the group encoded into it.
template - includes imageId, locationId, and hardwareId used to resume the instance.
Returns:
library-native representation of a node. TODO: return typed exception on createNodeFailure
See Also:
ComputeService.createNodesInGroup(String, int, Template)

listHardwareProfiles

public Iterable<Hardware> listHardwareProfiles()
Description copied from interface: JCloudsNativeComputeServiceAdapter
Hardware profiles describe available cpu, memory, and disk configurations that can be used to run a node.

To implement this method, return the library native hardware profiles available to the user. These will be used to launch nodes as a part of the template.

Specified by:
listHardwareProfiles in interface ComputeServiceAdapter<NodeMetadata,Hardware,Image,org.jclouds.domain.Location>
Specified by:
listHardwareProfiles in interface JCloudsNativeComputeServiceAdapter
Returns:
a non-null iterable of available hardware profiles.
See Also:
ComputeService.listHardwareProfiles()

listImages

public Iterable<Image> listImages()
Description copied from interface: JCloudsNativeComputeServiceAdapter
Images are the available configured operating systems that someone can run a node with.

To implement this method, return the library native images available to the user. These will be used to launch nodes as a part of the template.

Specified by:
listImages in interface ComputeServiceAdapter<NodeMetadata,Hardware,Image,org.jclouds.domain.Location>
Specified by:
listImages in interface JCloudsNativeComputeServiceAdapter
Returns:
a non-null iterable of available images.
See Also:
ComputeService.listImages()

getImage

public Image getImage(String id)
Description copied from interface: ComputeServiceAdapter
get a specific image by id

Specified by:
getImage in interface ComputeServiceAdapter<NodeMetadata,Hardware,Image,org.jclouds.domain.Location>
Parameters:
id - Image#getId, which is not necessarily Image#getProviderId
Returns:
image or null if not exists.

listNodes

public Iterable<NodeMetadata> listNodes()
Description copied from interface: JCloudsNativeComputeServiceAdapter

Specified by:
listNodes in interface ComputeServiceAdapter<NodeMetadata,Hardware,Image,org.jclouds.domain.Location>
Specified by:
listNodes in interface JCloudsNativeComputeServiceAdapter

listNodesByIds

public Iterable<NodeMetadata> listNodesByIds(Iterable<String> ids)
Specified by:
listNodesByIds in interface ComputeServiceAdapter<NodeMetadata,Hardware,Image,org.jclouds.domain.Location>

listLocations

public Iterable<org.jclouds.domain.Location> listLocations()
Description copied from interface: JCloudsNativeComputeServiceAdapter

Specified by:
listLocations in interface ComputeServiceAdapter<NodeMetadata,Hardware,Image,org.jclouds.domain.Location>
Specified by:
listLocations in interface JCloudsNativeComputeServiceAdapter

getNode

public NodeMetadata getNode(String id)
Description copied from interface: JCloudsNativeComputeServiceAdapter

Specified by:
getNode in interface ComputeServiceAdapter<NodeMetadata,Hardware,Image,org.jclouds.domain.Location>
Specified by:
getNode in interface JCloudsNativeComputeServiceAdapter

destroyNode

public void destroyNode(String id)
Description copied from interface: JCloudsNativeComputeServiceAdapter

Specified by:
destroyNode in interface ComputeServiceAdapter<NodeMetadata,Hardware,Image,org.jclouds.domain.Location>
Specified by:
destroyNode in interface JCloudsNativeComputeServiceAdapter

rebootNode

public void rebootNode(String id)
Description copied from interface: JCloudsNativeComputeServiceAdapter

Specified by:
rebootNode in interface ComputeServiceAdapter<NodeMetadata,Hardware,Image,org.jclouds.domain.Location>
Specified by:
rebootNode in interface JCloudsNativeComputeServiceAdapter

resumeNode

public void resumeNode(String id)
Specified by:
resumeNode in interface ComputeServiceAdapter<NodeMetadata,Hardware,Image,org.jclouds.domain.Location>

suspendNode

public void suspendNode(String id)
Specified by:
suspendNode in interface ComputeServiceAdapter<NodeMetadata,Hardware,Image,org.jclouds.domain.Location>


Copyright © 2009-2014 The Apache Software Foundation. All Rights Reserved.