Package org.jclouds.chef.internal
Class BaseChefService
- java.lang.Object
-
- org.jclouds.chef.internal.BaseChefService
-
- All Implemented Interfaces:
ChefService
@Singleton public class BaseChefService extends Object implements ChefService
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cleanupStaleNodesAndClients(String prefix, int secondsStale)
Removes the nodes and clients that have been inactive for a given amount of time.Statement
createBootstrapScriptForGroup(String group)
Creates all steps necessary to bootstrap the node.Statement
createBootstrapScriptForGroup(String group, String nodeName)
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(InputStream input)
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(InputStream input)
Encrypts the given input stream.BootstrapConfig
getBootstrapConfigForGroup(String group)
Gets the bootstrap configuration for a 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, 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 CookbookVersion>
listCookbookVersionsInEnvironment(String environmentName, ExecutorService executorService)
Lists the details of all existing cookbooks in an environment.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
-
-
-
Field Detail
-
logger
@Named("jclouds.chef") protected Logger logger
-
-
Method Detail
-
encrypt
public byte[] encrypt(InputStream input) throws IOException
Description copied from interface:ChefService
Encrypts the given input stream.- Specified by:
encrypt
in interfaceChefService
- Parameters:
input
- 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(InputStream input) throws IOException
Description copied from interface:ChefService
Decrypts the given input stream.- Specified by:
decrypt
in interfaceChefService
- Parameters:
input
- 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 Statement createBootstrapScriptForGroup(String group, @Nullable String nodeName)
Description copied from interface:ChefService
Creates all steps necessary to bootstrap the node.- Specified by:
createBootstrapScriptForGroup
in interfaceChefService
- Parameters:
group
- corresponds to a configuredChefProperties.CHEF_BOOTSTRAP_DATABAG
data bag where run_list and other information are stored.nodeName
- The name of the node to create.- Returns:
- The script used to bootstrap the node.
-
createBootstrapScriptForGroup
public Statement createBootstrapScriptForGroup(String group)
Description copied from interface:ChefService
Creates all steps necessary to bootstrap the node.- Specified by:
createBootstrapScriptForGroup
in interfaceChefService
- Parameters:
group
- corresponds to a configuredChefProperties.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 interfaceChefService
- Parameters:
group
- The group where the given bootstrap configuration will be applied.bootstrapConfig
- The configuration to be applied to the nodes in the group.
-
getBootstrapConfigForGroup
public BootstrapConfig getBootstrapConfigForGroup(String group)
Description copied from interface:ChefService
Gets the bootstrap configuration for a given group.- Specified by:
getBootstrapConfigForGroup
in interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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 interfaceChefService
- 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.
-
-