Interface ComputeServiceAdapter<N,H,I,L>

All Known Subinterfaces:
JCloudsNativeComputeServiceAdapter
All Known Implementing Classes:
AzureComputeServiceAdapter, BYONComputeServiceAdapter, CloudStackComputeServiceAdapter, DigitalOcean2ComputeServiceAdapter, DockerComputeServiceAdapter, ElasticStackComputeServiceAdapter, GleSYSComputeServiceAdapter, GoGridComputeServiceAdapter, GoogleComputeEngineServiceAdapter, NovaComputeServiceAdapter, PacketComputeServiceAdapter, ProfitBricksComputeServiceAdapter, ServerManagerComputeServiceAdapter, SoftLayerComputeServiceAdapter, 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.
  • Method Details

    • 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
      invalid reference
      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:
    • 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:
    • 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:
    • getImage

      @Nullable I getImage(String id)
      get a specific image by id
      Parameters:
      id -
      invalid reference
      Image#getId
      , which is not necessarily
      invalid reference
      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)