org.jclouds.softlayer.compute.strategy
Class SoftLayerComputeServiceAdapter

java.lang.Object
  extended by org.jclouds.softlayer.compute.strategy.SoftLayerComputeServiceAdapter
All Implemented Interfaces:
ComputeServiceAdapter<VirtualGuest,Iterable<ProductItem>,ProductItem,Datacenter>

@Singleton
public class SoftLayerComputeServiceAdapter
extends Object
implements ComputeServiceAdapter<VirtualGuest,Iterable<ProductItem>,ProductItem,Datacenter>

defines the connection between the SoftLayerClient implementation and the jclouds ComputeService


Nested Class Summary
static class SoftLayerComputeServiceAdapter.VirtualGuestHasLoginDetailsPresent
           
 
Nested classes/interfaces inherited from interface org.jclouds.compute.ComputeServiceAdapter
ComputeServiceAdapter.NodeAndInitialCredentials<N>
 
Field Summary
protected  Logger logger
           
 
Constructor Summary
SoftLayerComputeServiceAdapter(SoftLayerClient client, SoftLayerComputeServiceAdapter.VirtualGuestHasLoginDetailsPresent virtualGuestHasLoginDetailsPresent, com.google.common.base.Supplier<ProductPackage> productPackageSupplier, Iterable<ProductItemPrice> prices, String cpuRegex, String disk0Type, float portSpeed, long guestLoginDelay)
           
 
Method Summary
 ComputeServiceAdapter.NodeAndInitialCredentials<VirtualGuest> 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)
           
 VirtualGuest getNode(String id)
           
 Iterable<Iterable<ProductItem>> listHardwareProfiles()
          Hardware profiles describe available cpu, memory, and disk configurations that can be used to run a node.
 Iterable<ProductItem> listImages()
          Images are the available configured operating systems that someone can run a node with.
 Iterable<Datacenter> listLocations()
           
 Iterable<VirtualGuest> 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
 

Field Detail

logger

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

SoftLayerComputeServiceAdapter

@Inject
public SoftLayerComputeServiceAdapter(SoftLayerClient client,
                                             SoftLayerComputeServiceAdapter.VirtualGuestHasLoginDetailsPresent virtualGuestHasLoginDetailsPresent,
                                             com.google.common.base.Supplier<ProductPackage> productPackageSupplier,
                                             Iterable<ProductItemPrice> prices,
                                             @Named(value="jclouds.softlayer.virtualguest.cpu-regex")
                                             String cpuRegex,
                                             @Named(value="jclouds.softlayer.virtualguest.disk0-type")
                                             String disk0Type,
                                             @Named(value="jclouds.softlayer.virtualguest.port-speed")
                                             float portSpeed,
                                             @Named(value="jclouds.softlayer.virtualguest.order-delay")
                                             long guestLoginDelay)
Method Detail

createNodeWithGroupEncodedIntoName

public ComputeServiceAdapter.NodeAndInitialCredentials<VirtualGuest> 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<VirtualGuest,Iterable<ProductItem>,ProductItem,Datacenter>
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<Iterable<ProductItem>> 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<VirtualGuest,Iterable<ProductItem>,ProductItem,Datacenter>
Returns:
a non-null iterable of available hardware profiles.
See Also:
ComputeService.listHardwareProfiles()

listImages

public Iterable<ProductItem> 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<VirtualGuest,Iterable<ProductItem>,ProductItem,Datacenter>
Returns:
a non-null iterable of available images.
See Also:
ComputeService.listImages()

listNodes

public Iterable<VirtualGuest> listNodes()
Specified by:
listNodes in interface ComputeServiceAdapter<VirtualGuest,Iterable<ProductItem>,ProductItem,Datacenter>

listLocations

public Iterable<Datacenter> listLocations()
Specified by:
listLocations in interface ComputeServiceAdapter<VirtualGuest,Iterable<ProductItem>,ProductItem,Datacenter>

getNode

public VirtualGuest getNode(String id)
Specified by:
getNode in interface ComputeServiceAdapter<VirtualGuest,Iterable<ProductItem>,ProductItem,Datacenter>

destroyNode

public void destroyNode(String id)
Specified by:
destroyNode in interface ComputeServiceAdapter<VirtualGuest,Iterable<ProductItem>,ProductItem,Datacenter>

rebootNode

public void rebootNode(String id)
Specified by:
rebootNode in interface ComputeServiceAdapter<VirtualGuest,Iterable<ProductItem>,ProductItem,Datacenter>

resumeNode

public void resumeNode(String id)
Specified by:
resumeNode in interface ComputeServiceAdapter<VirtualGuest,Iterable<ProductItem>,ProductItem,Datacenter>

suspendNode

public void suspendNode(String id)
Specified by:
suspendNode in interface ComputeServiceAdapter<VirtualGuest,Iterable<ProductItem>,ProductItem,Datacenter>


Copyright © 2009-2012 jclouds. All Rights Reserved.