org.jclouds.chef.internal
Class BaseChefService

java.lang.Object
  extended by org.jclouds.chef.internal.BaseChefService
All Implemented Interfaces:
ChefService

@Singleton
public class BaseChefService
extends Object
implements ChefService


Field Summary
protected  org.jclouds.logging.Logger logger
           
 
Constructor Summary
protected BaseChefService(ChefContext chefContext, ChefApi api, CleanupStaleNodesAndClients cleanupStaleNodesAndClients, CreateNodeAndPopulateAutomaticAttributes createNodeAndPopulateAutomaticAttributes, DeleteAllNodesInList deleteAllNodesInList, ListNodes listNodes, DeleteAllClientsInList deleteAllClientsInList, ListClients listClients, ListCookbookVersions listCookbookVersions, UpdateAutomaticAttributesOnNode updateAutomaticAttributesOnNode, com.google.common.base.Supplier<PrivateKey> privateKey, String databag, GroupToBootScript groupToBootScript, BootstrapConfigForGroup bootstrapConfigForGroup, RunListForGroup runListForGroup, ListEnvironments listEnvironments, ListNodesInEnvironment listNodesInEnvironment, ListCookbookVersionsInEnvironment listCookbookVersionsInEnvironment, org.jclouds.json.Json json, org.jclouds.crypto.Crypto crypto)
           
 
Method Summary
 void cleanupStaleNodesAndClients(String prefix, int secondsStale)
          Removes the nodes and clients that have been inactive for a given amount of time.
 org.jclouds.scriptbuilder.domain.Statement createBootstrapScriptForGroup(String group)
          Creates all steps necessary to bootstrap the node.
 Node createNodeAndPopulateAutomaticAttributes(String nodeName, Iterable<String> runList)
          Creates a new node and populates the automatic attributes.
 byte[] decrypt(com.google.common.io.InputSupplier<? extends InputStream> supplier)
          Decrypts the given input stream.
 void deleteAllClientsInList(Iterable<String> names)
          Deletes the given clients.
 void deleteAllNodesInList(Iterable<String> names)
          Deletes the given nodes.
 byte[] encrypt(com.google.common.io.InputSupplier<? extends InputStream> supplier)
          Encrypts the given input stream.
 org.jclouds.domain.JsonBall getBootstrapConfigForGroup(String group)
          Gets the bootstrap configuration for a given group.
 ChefContext getContext()
          Gets the context that created this service.
 List<String> getRunListForGroup(String group)
          Gets the run list for the given group.
 Iterable<? extends Client> listClients()
          Lists the details of all existing clients.
 Iterable<? extends Client> listClients(ExecutorService executorService)
          Lists the details of all existing clients, but executing concurrently using the threads available in the ExecutorService.
 Iterable<? extends CookbookVersion> listCookbookVersions()
          Lists the details of all existing cookbooks.
 Iterable<? extends CookbookVersion> listCookbookVersions(ExecutorService executorService)
          Lists the details of all existing cookbooks.
 Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(String environmentName)
          Lists the details of all existing cookbooks in an environment.
 Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(String environmentName, ExecutorService executorService)
          Lists the details of all existing cookbooks in an environment.
 Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(String environmentName, String numVersions)
          Lists the details of all existing cookbooks in an environment limiting number of versions.
 Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(String environmentName, String numVersions, ExecutorService executorService)
          Lists the details of all existing cookbooks in an environment limiting number of versions.
 Iterable<? extends Environment> listEnvironments()
          Lists the details of all existing environments.
 Iterable<? extends Node> listNodes()
          Lists the details of all existing nodes.
 Iterable<? extends Node> listNodes(ExecutorService executorService)
          Lists the details of all existing nodes, executing concurrently using the executorService.
 Iterable<? extends Node> listNodesInEnvironment(String environmentName)
          Lists the details of all existing nodes in the given environment.
 Iterable<? extends Node> listNodesInEnvironment(String environmentName, ExecutorService executorService)
          Lists the details of all existing nodes in the given environment, using the ExecutorService to paralleling the execution.
 void updateAutomaticAttributesOnNode(String nodeName)
          Updates and populate the automatic attributes of the given node.
 void updateBootstrapConfigForGroup(String group, BootstrapConfig bootstrapConfig)
          Configures how the nodes of a certain group will be bootstrapped
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

@Named(value="jclouds.chef")
protected org.jclouds.logging.Logger logger
Constructor Detail

BaseChefService

@Inject
protected BaseChefService(ChefContext chefContext,
                                 ChefApi api,
                                 CleanupStaleNodesAndClients cleanupStaleNodesAndClients,
                                 CreateNodeAndPopulateAutomaticAttributes createNodeAndPopulateAutomaticAttributes,
                                 DeleteAllNodesInList deleteAllNodesInList,
                                 ListNodes listNodes,
                                 DeleteAllClientsInList deleteAllClientsInList,
                                 ListClients listClients,
                                 ListCookbookVersions listCookbookVersions,
                                 UpdateAutomaticAttributesOnNode updateAutomaticAttributesOnNode,
                                 com.google.common.base.Supplier<PrivateKey> privateKey,
                                 @Named(value="chef.bootstrap-databag")
                                 String databag,
                                 GroupToBootScript groupToBootScript,
                                 BootstrapConfigForGroup bootstrapConfigForGroup,
                                 RunListForGroup runListForGroup,
                                 ListEnvironments listEnvironments,
                                 ListNodesInEnvironment listNodesInEnvironment,
                                 ListCookbookVersionsInEnvironment listCookbookVersionsInEnvironment,
                                 org.jclouds.json.Json json,
                                 org.jclouds.crypto.Crypto crypto)
Method Detail

getContext

public ChefContext getContext()
Description copied from interface: ChefService
Gets the context that created this service.

Specified by:
getContext in interface ChefService
Returns:
The context that created the service.

encrypt

public byte[] encrypt(com.google.common.io.InputSupplier<? extends InputStream> supplier)
               throws IOException
Description copied from interface: ChefService
Encrypts the given input stream.

Specified by:
encrypt in interface ChefService
Parameters:
supplier - The input stream to encrypt.
Returns:
The encrypted bytes for the given input stream.
Throws:
IOException - If there is an error reading from the input stream.

decrypt

public byte[] decrypt(com.google.common.io.InputSupplier<? extends InputStream> supplier)
               throws IOException
Description copied from interface: ChefService
Decrypts the given input stream.

Specified by:
decrypt in interface ChefService
Parameters:
supplier - The input stream to decrypt.
Returns:
The decrypted bytes for the given input stream.
Throws:
IOException - If there is an error reading from the input stream.

createBootstrapScriptForGroup

public org.jclouds.scriptbuilder.domain.Statement createBootstrapScriptForGroup(String group)
Description copied from interface: ChefService
Creates all steps necessary to bootstrap the node.

Specified by:
createBootstrapScriptForGroup in interface ChefService
Parameters:
group - corresponds to a configured ChefProperties#CHEF_BOOTSTRAP_DATABAG data bag where run_list and other information are stored.
Returns:
The script used to bootstrap the node.

updateBootstrapConfigForGroup

public void updateBootstrapConfigForGroup(String group,
                                          BootstrapConfig bootstrapConfig)
Description copied from interface: ChefService
Configures how the nodes of a certain group will be bootstrapped

Specified by:
updateBootstrapConfigForGroup in interface ChefService
Parameters:
group - The group where the given bootstrap configuration will be applied.
bootstrapConfig - The configuration to be applied to the nodes in the group.

getRunListForGroup

public List<String> getRunListForGroup(String group)
Description copied from interface: ChefService
Gets the run list for the given group.

Specified by:
getRunListForGroup in interface ChefService
Returns:
run list for all nodes bootstrapped with a certain group

getBootstrapConfigForGroup

public org.jclouds.domain.JsonBall getBootstrapConfigForGroup(String group)
Description copied from interface: ChefService
Gets the bootstrap configuration for a given group.

The bootstrap configuration is a Json object containing the run list and the configured attributes.

Specified by:
getBootstrapConfigForGroup in interface ChefService
Parameters:
group - The name of the group.
Returns:
The bootstrap configuration for the given group.

cleanupStaleNodesAndClients

public void cleanupStaleNodesAndClients(String prefix,
                                        int secondsStale)
Description copied from interface: ChefService
Removes the nodes and clients that have been inactive for a given amount of time.

Specified by:
cleanupStaleNodesAndClients in interface ChefService
Parameters:
prefix - The prefix for the nodes and clients to delete.
secondsStale - The seconds of inactivity to consider a node and client obsolete.

createNodeAndPopulateAutomaticAttributes

public Node createNodeAndPopulateAutomaticAttributes(String nodeName,
                                                     Iterable<String> runList)
Description copied from interface: ChefService
Creates a new node and populates the automatic attributes.

Specified by:
createNodeAndPopulateAutomaticAttributes in interface ChefService
Parameters:
nodeName - The name of the node to create.
runList - The run list for the created node.
Returns:
The created node with the automatic attributes populated.
See Also:
OhaiModule, ChefUtils#ohaiAutomaticAttributeBinder(com.google.inject.Binder)

updateAutomaticAttributesOnNode

public void updateAutomaticAttributesOnNode(String nodeName)
Description copied from interface: ChefService
Updates and populate the automatic attributes of the given node.

Specified by:
updateAutomaticAttributesOnNode in interface ChefService
Parameters:
nodeName - The node to update.

deleteAllNodesInList

public void deleteAllNodesInList(Iterable<String> names)
Description copied from interface: ChefService
Deletes the given nodes.

Specified by:
deleteAllNodesInList in interface ChefService
Parameters:
names - The names of the nodes to delete.

deleteAllClientsInList

public void deleteAllClientsInList(Iterable<String> names)
Description copied from interface: ChefService
Deletes the given clients.

Specified by:
deleteAllClientsInList in interface ChefService
Parameters:
names - The names of the client to delete.

listNodes

public Iterable<? extends Node> listNodes()
Description copied from interface: ChefService
Lists the details of all existing nodes.

Specified by:
listNodes in interface ChefService
Returns:
The details of all existing nodes.

listNodes

public Iterable<? extends Node> listNodes(ExecutorService executorService)
Description copied from interface: ChefService
Lists the details of all existing nodes, executing concurrently using the executorService.

Specified by:
listNodes in interface ChefService
Returns:
The details of all existing nodes.

listClients

public Iterable<? extends Client> listClients()
Description copied from interface: ChefService
Lists the details of all existing clients.

Specified by:
listClients in interface ChefService
Returns:
The details of all existing clients.

listClients

public Iterable<? extends Client> listClients(ExecutorService executorService)
Description copied from interface: ChefService
Lists the details of all existing clients, but executing concurrently using the threads available in the ExecutorService.

Specified by:
listClients in interface ChefService
Returns:
The details of all existing clients.

listCookbookVersions

public Iterable<? extends CookbookVersion> listCookbookVersions()
Description copied from interface: ChefService
Lists the details of all existing cookbooks.

Specified by:
listCookbookVersions in interface ChefService
Returns:
The details of all existing cookbooks.

listCookbookVersions

public Iterable<? extends CookbookVersion> listCookbookVersions(ExecutorService executorService)
Description copied from interface: ChefService
Lists the details of all existing cookbooks. This method is executed concurrently, using the threads available in the ExecutorService.

Specified by:
listCookbookVersions in interface ChefService
Returns:
The details of all existing cookbooks.

listCookbookVersionsInEnvironment

public Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(String environmentName)
Description copied from interface: ChefService
Lists the details of all existing cookbooks in an environment.

Specified by:
listCookbookVersionsInEnvironment in interface ChefService
Parameters:
environmentName - The environment name.
Returns:
The details of all existing cookbooks in an environment.

listCookbookVersionsInEnvironment

public Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(String environmentName,
                                                                             ExecutorService executorService)
Description copied from interface: ChefService
Lists the details of all existing cookbooks in an environment.

Specified by:
listCookbookVersionsInEnvironment in interface ChefService
Parameters:
environmentName - The environment name.
executorService - The thread pool to do the concurrent execution.
Returns:
The details of all existing cookbooks in an environment.

listCookbookVersionsInEnvironment

public Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(String environmentName,
                                                                             String numVersions)
Description copied from interface: ChefService
Lists the details of all existing cookbooks in an environment limiting number of versions.

Specified by:
listCookbookVersionsInEnvironment in interface ChefService
Parameters:
environmentName - The environment name.
numVersions - The number of cookbook versions to include. Use 'all' to return all cookbook versions.
Returns:
The details of all existing cookbooks in environment.

listCookbookVersionsInEnvironment

public Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(String environmentName,
                                                                             String numVersions,
                                                                             ExecutorService executorService)
Description copied from interface: ChefService
Lists the details of all existing cookbooks in an environment limiting number of versions.

Specified by:
listCookbookVersionsInEnvironment in interface ChefService
Parameters:
environmentName - The environment name.
numVersions - The number of cookbook versions to include. Use 'all' to return all cookbook versions.
executorService - The executorService used to do this operation concurrently.
Returns:
The details of all existing cookbooks in environment.

listEnvironments

public Iterable<? extends Environment> listEnvironments()
Description copied from interface: ChefService
Lists the details of all existing environments.

Specified by:
listEnvironments in interface ChefService
Returns:
The details of all existing environments.

listNodesInEnvironment

public Iterable<? extends Node> listNodesInEnvironment(String environmentName)
Description copied from interface: ChefService
Lists the details of all existing nodes in the given environment.

Specified by:
listNodesInEnvironment in interface ChefService
Parameters:
environmentName - The name fo the environment.
Returns:
The details of all existing nodes in the given environment.

listNodesInEnvironment

public Iterable<? extends Node> listNodesInEnvironment(String environmentName,
                                                       ExecutorService executorService)
Description copied from interface: ChefService
Lists the details of all existing nodes in the given environment, using the ExecutorService to paralleling the execution.

Specified by:
listNodesInEnvironment in interface ChefService
Parameters:
environmentName - The name fo the environment.
executorService - The thread pool used in this operation
Returns:
The details of all existing nodes in the given environment.


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