org.jclouds.vcloud.compute.strategy
Class VCloudComputeServiceAdapter

java.lang.Object
  extended by org.jclouds.vcloud.compute.strategy.VCloudComputeServiceAdapter
All Implemented Interfaces:
ComputeServiceAdapter<VApp,VAppTemplate,VAppTemplate,Location>

@Singleton
public class VCloudComputeServiceAdapter
extends Object
implements ComputeServiceAdapter<VApp,VAppTemplate,VAppTemplate,Location>

defines the connection between the VCloudClient implementation and the jclouds ComputeService


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.jclouds.compute.ComputeServiceAdapter
ComputeServiceAdapter.NodeAndInitialCredentials<N>
 
Field Summary
protected  InstantiateVAppTemplateWithGroupEncodedIntoNameThenCustomizeDeployAndPowerOn booter
           
protected  VCloudClient client
           
protected  Logger logger
           
protected  com.google.common.base.Supplier<Map<String,Org>> nameToOrg
           
protected  com.google.common.base.Predicate<URI> successTester
           
protected  com.google.common.base.Supplier<Set<VAppTemplate>> templates
           
protected  com.google.common.base.Function<VAppTemplate,Envelope> templateToEnvelope
           
 
Constructor Summary
protected VCloudComputeServiceAdapter(VCloudClient client, com.google.common.base.Predicate<URI> successTester, InstantiateVAppTemplateWithGroupEncodedIntoNameThenCustomizeDeployAndPowerOn booter, com.google.common.base.Supplier<Map<String,Org>> nameToOrg, VAppTemplatesSupplier templates, com.google.common.base.Function<VAppTemplate,Envelope> templateToEnvelope)
           
 
Method Summary
 ComputeServiceAdapter.NodeAndInitialCredentials<VApp> 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)
           
 VApp getNode(String in)
           
 Iterable<VAppTemplate> listHardwareProfiles()
          Hardware profiles describe available cpu, memory, and disk configurations that can be used to run a node.
 Iterable<VAppTemplate> listImages()
          Images are the available configured operating systems that someone can run a node with.
 Iterable<Location> listLocations()
           
 Iterable<VApp> listNodes()
           
 void rebootNode(String in)
           
 void resumeNode(String in)
           
 void suspendNode(String in)
           
 void waitForTask(Task task)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

@Named(value="jclouds.compute")
protected Logger logger

client

protected final VCloudClient client

successTester

protected final com.google.common.base.Predicate<URI> successTester

booter

protected final InstantiateVAppTemplateWithGroupEncodedIntoNameThenCustomizeDeployAndPowerOn booter

nameToOrg

protected final com.google.common.base.Supplier<Map<String,Org>> nameToOrg

templates

protected final com.google.common.base.Supplier<Set<VAppTemplate>> templates

templateToEnvelope

protected final com.google.common.base.Function<VAppTemplate,Envelope> templateToEnvelope
Constructor Detail

VCloudComputeServiceAdapter

@Inject
protected VCloudComputeServiceAdapter(VCloudClient client,
                                             com.google.common.base.Predicate<URI> successTester,
                                             InstantiateVAppTemplateWithGroupEncodedIntoNameThenCustomizeDeployAndPowerOn booter,
                                             com.google.common.base.Supplier<Map<String,Org>> nameToOrg,
                                             VAppTemplatesSupplier templates,
                                             com.google.common.base.Function<VAppTemplate,Envelope> templateToEnvelope)
Method Detail

createNodeWithGroupEncodedIntoName

public ComputeServiceAdapter.NodeAndInitialCredentials<VApp> createNodeWithGroupEncodedIntoName(String group,
                                                                                                String name,
                                                                                                Template template)
Description copied from interface: ComputeServiceAdapter
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<VApp,VAppTemplate,VAppTemplate,Location>
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.
Returns:
library-native representation of a node. TODO: return typed exception on createNodeFailure
See Also:
ComputeService.createNodesInGroup(String, int, Template)

listHardwareProfiles

public Iterable<VAppTemplate> listHardwareProfiles()
Description copied from interface: ComputeServiceAdapter
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<VApp,VAppTemplate,VAppTemplate,Location>
Returns:
a non-null iterable of available hardware profiles.
See Also:
ComputeService.listHardwareProfiles()

listImages

public Iterable<VAppTemplate> listImages()
Description copied from interface: ComputeServiceAdapter
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<VApp,VAppTemplate,VAppTemplate,Location>
Returns:
a non-null iterable of available images.
See Also:
ComputeService.listImages()

listNodes

public Iterable<VApp> listNodes()
Specified by:
listNodes in interface ComputeServiceAdapter<VApp,VAppTemplate,VAppTemplate,Location>

listLocations

public Iterable<Location> listLocations()
Specified by:
listLocations in interface ComputeServiceAdapter<VApp,VAppTemplate,VAppTemplate,Location>

getNode

public VApp getNode(String in)
Specified by:
getNode in interface ComputeServiceAdapter<VApp,VAppTemplate,VAppTemplate,Location>

destroyNode

public void destroyNode(String id)
Specified by:
destroyNode in interface ComputeServiceAdapter<VApp,VAppTemplate,VAppTemplate,Location>

waitForTask

public void waitForTask(Task task)

rebootNode

public void rebootNode(String in)
Specified by:
rebootNode in interface ComputeServiceAdapter<VApp,VAppTemplate,VAppTemplate,Location>

resumeNode

public void resumeNode(String in)
Specified by:
resumeNode in interface ComputeServiceAdapter<VApp,VAppTemplate,VAppTemplate,Location>

suspendNode

public void suspendNode(String in)
Specified by:
suspendNode in interface ComputeServiceAdapter<VApp,VAppTemplate,VAppTemplate,Location>


Copyright © 2009-2012 jclouds. All Rights Reserved.