org.jclouds.compute
Interface ComputeServiceAdapter<N,H,I,L>

All Known Subinterfaces:
JCloudsNativeComputeServiceAdapter
All Known Implementing Classes:
StubComputeServiceAdapter

public interface ComputeServiceAdapter<N,H,I,L>

A means of specifying the interface between the ComputeServices and a concrete compute cloud implementation, jclouds or otherwise.

Important

While implementations may cache results of calls to this interface, it is important to not cache within this. Otherwise, status updates will not be visible immediately.


Nested Class Summary
static class ComputeServiceAdapter.NodeAndInitialCredentials<N>
           
 
Method Summary
 ComputeServiceAdapter.NodeAndInitialCredentials<N> 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)
           
 I getImage(String id)
          get a specific image by id
 N getNode(String id)
           
 Iterable<H> listHardwareProfiles()
          Hardware profiles describe available cpu, memory, and disk configurations that can be used to run a node.
 Iterable<I> listImages()
          Images are the available configured operating systems that someone can run a node with.
 Iterable<L> listLocations()
           
 Iterable<N> listNodes()
           
 Iterable<N> listNodesByIds(Iterable<String> ids)
           
 void rebootNode(String id)
           
 void resumeNode(String id)
           
 void suspendNode(String id)
           
 

Method Detail

createNodeWithGroupEncodedIntoName

ComputeServiceAdapter.NodeAndInitialCredentials<N> 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.

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

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

Iterable<H> listHardwareProfiles()
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.

Returns:
a non-null iterable of available hardware profiles.
See Also:
ComputeService.listHardwareProfiles()

listImages

Iterable<I> listImages()
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.

Returns:
a non-null iterable of available images.
See Also:
ComputeService.listImages()

getImage

@Nullable
I getImage(String id)
get a specific image by id

Parameters:
id - Image#getId, which is not necessarily Image#getProviderId
Returns:
image or null if not exists.

listLocations

Iterable<L> listLocations()

getNode

N getNode(String id)

destroyNode

void destroyNode(String id)

rebootNode

void rebootNode(String id)

resumeNode

void resumeNode(String id)

suspendNode

void suspendNode(String id)

listNodes

Iterable<N> listNodes()

listNodesByIds

Iterable<N> listNodesByIds(Iterable<String> ids)


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