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,Location>, JCloudsNativeComputeServiceAdapter

@Singleton
public class StubComputeServiceAdapter
extends Object
implements JCloudsNativeComputeServiceAdapter

Author:
Adrian Cole

Constructor Summary
StubComputeServiceAdapter(ConcurrentMap<String,NodeMetadata> nodes, com.google.common.base.Supplier<Location> location, javax.inject.Provider<Integer> idProvider, String publicIpPrefix, String privateIpPrefix, String passwordPrefix, JustProvider locationSupplier, Map<OsFamily,Map<String,String>> osToVersionMap, Map<String,Credentials> credentialStore)
           
 
Method Summary
 NodeMetadata createNodeWithGroupEncodedIntoNameThenStoreCredentials(String group, String name, Template template, Map<String,Credentials> credentialStore)
          ComputeService.runNodesWithTag(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)
          
 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<Location> listLocations()
          
 Iterable<NodeMetadata> listNodes()
          
 void rebootNode(String id)
          
 void resumeNode(String id)
           
 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,
                                        com.google.common.base.Supplier<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,
                                        JustProvider locationSupplier,
                                        Map<OsFamily,Map<String,String>> osToVersionMap,
                                        Map<String,Credentials> credentialStore)
Method Detail

createNodeWithGroupEncodedIntoNameThenStoreCredentials

public NodeMetadata createNodeWithGroupEncodedIntoNameThenStoreCredentials(String group,
                                                                           String name,
                                                                           Template template,
                                                                           Map<String,Credentials> credentialStore)
Description copied from interface: JCloudsNativeComputeServiceAdapter
ComputeService.runNodesWithTag(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:
createNodeWithGroupEncodedIntoNameThenStoreCredentials in interface ComputeServiceAdapter<NodeMetadata,Hardware,Image,Location>
Specified by:
createNodeWithGroupEncodedIntoNameThenStoreCredentials in interface JCloudsNativeComputeServiceAdapter
Parameters:
group - used to aggregate nodes with identical configuration
name - unique supplied name for the node, which has the tag encoded into it.
template - includes imageId, locationId, and hardwareId used to resume the instance.
credentialStore - once the node is resumeed, its login user and password must be stored keyed on node#id.
Returns:
library-native representation of a node.
See Also:
ComputeService.runNodesWithTag(String, int, Template), ComputeServiceContext.getCredentialStore()

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,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,Location>
Specified by:
listImages in interface JCloudsNativeComputeServiceAdapter
Returns:
a non-null iterable of available images.
See Also:
ComputeService.listImages()

listNodes

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

Specified by:
listNodes in interface ComputeServiceAdapter<NodeMetadata,Hardware,Image,Location>
Specified by:
listNodes in interface JCloudsNativeComputeServiceAdapter

listLocations

public Iterable<Location> listLocations()
Description copied from interface: JCloudsNativeComputeServiceAdapter

Specified by:
listLocations in interface ComputeServiceAdapter<NodeMetadata,Hardware,Image,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,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,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,Location>
Specified by:
rebootNode in interface JCloudsNativeComputeServiceAdapter

resumeNode

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

suspendNode

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


Copyright © 2009-2011 jclouds. All Rights Reserved.