@Singleton public class AWSEC2ComputeService extends EC2ComputeService
context, credentialStore, logger
Modifier | Constructor and Description |
---|---|
protected |
AWSEC2ComputeService(ComputeServiceContext context,
Map<String,Credentials> credentialStore,
com.google.common.base.Supplier<Set<? extends Image>> images,
com.google.common.base.Supplier<Set<? extends Hardware>> sizes,
com.google.common.base.Supplier<Set<? extends Location>> locations,
ListNodesStrategy listNodesStrategy,
GetNodeMetadataStrategy getNodeMetadataStrategy,
CreateNodesInGroupThenAddToSet runNodesAndAddToSetStrategy,
RebootNodeStrategy rebootNodeStrategy,
DestroyNodeStrategy destroyNodeStrategy,
ResumeNodeStrategy startNodeStrategy,
SuspendNodeStrategy stopNodeStrategy,
Provider<TemplateBuilder> templateBuilderProvider,
Provider<TemplateOptions> templateOptionsProvider,
com.google.common.base.Predicate<AtomicReference<NodeMetadata>> nodeRunning,
com.google.common.base.Predicate<AtomicReference<NodeMetadata>> nodeTerminated,
com.google.common.base.Predicate<AtomicReference<NodeMetadata>> nodeSuspended,
InitializeRunScriptOnNodeOrPlaceInBadMap.Factory initScriptRunnerFactory,
RunScriptOnNode.Factory runScriptOnNodeFactory,
InitAdminAccess initAdminAccess,
PersistNodeCredentials persistNodeCredentials,
ComputeServiceConstants.Timeouts timeouts,
ExecutorService executor,
AWSEC2Client ec2Client,
ConcurrentMap<RegionAndName,KeyPair> credentialsMap,
com.google.common.cache.LoadingCache<RegionAndName,String> securityGroupMap,
com.google.common.cache.LoadingCache<RegionAndName,String> placementGroupMap,
com.google.common.base.Predicate<PlacementGroup> placementGroupDeleted,
boolean generateInstanceNames,
AWSEC2AsyncClient aclient) |
Modifier and Type | Method and Description |
---|---|
protected void |
addTagsToNodesFromUserMetadataInTemplate(Set<? extends NodeMetadata> nodes,
String group,
Template template) |
protected Set<? extends NodeMetadata> |
addUserMetadataFromTemplateOptionsToNodes(Template template,
String group,
Set<? extends NodeMetadata> nodes) |
protected void |
cleanUpIncidentalResources(String region,
String group) |
Set<? extends NodeMetadata> |
createNodesInGroup(String group,
int count,
Template template)
The compute api treats nodes as a group based on the name you specify.
|
EC2TemplateOptions |
templateOptions()
returns template options, except of type
EC2TemplateOptions . |
protected boolean |
templateWasASpotRequestWithUserMetadata(Template template) |
cleanUpIncidentalResourcesOfDeadNodes, extractIdsFromInstances, usingKeyPairAndNotDead
createNodesInGroup, createNodesInGroup, destroyNode, destroyNodesMatching, doDestroyNode, getContext, getNodeMetadata, listAssignableLocations, listHardwareProfiles, listImages, listNodes, listNodesDetailsMatching, rebootNode, rebootNodesMatching, resumeNode, resumeNodesMatching, runScriptOnNode, runScriptOnNode, runScriptOnNode, runScriptOnNode, runScriptOnNodesMatching, runScriptOnNodesMatching, runScriptOnNodesMatching, runScriptOnNodesMatching, submitScriptOnNode, suspendNode, suspendNodesMatching, templateBuilder, updateNodeWithCredentialsIfPresent
@Inject protected AWSEC2ComputeService(ComputeServiceContext context, Map<String,Credentials> credentialStore, com.google.common.base.Supplier<Set<? extends Image>> images, com.google.common.base.Supplier<Set<? extends Hardware>> sizes, com.google.common.base.Supplier<Set<? extends Location>> locations, ListNodesStrategy listNodesStrategy, GetNodeMetadataStrategy getNodeMetadataStrategy, CreateNodesInGroupThenAddToSet runNodesAndAddToSetStrategy, RebootNodeStrategy rebootNodeStrategy, DestroyNodeStrategy destroyNodeStrategy, ResumeNodeStrategy startNodeStrategy, SuspendNodeStrategy stopNodeStrategy, Provider<TemplateBuilder> templateBuilderProvider, Provider<TemplateOptions> templateOptionsProvider, @Named(value="NODE_RUNNING") com.google.common.base.Predicate<AtomicReference<NodeMetadata>> nodeRunning, @Named(value="NODE_TERMINATED") com.google.common.base.Predicate<AtomicReference<NodeMetadata>> nodeTerminated, @Named(value="NODE_SUSPENDED") com.google.common.base.Predicate<AtomicReference<NodeMetadata>> nodeSuspended, InitializeRunScriptOnNodeOrPlaceInBadMap.Factory initScriptRunnerFactory, RunScriptOnNode.Factory runScriptOnNodeFactory, InitAdminAccess initAdminAccess, PersistNodeCredentials persistNodeCredentials, ComputeServiceConstants.Timeouts timeouts, @Named(value="jclouds.user-threads") ExecutorService executor, AWSEC2Client ec2Client, ConcurrentMap<RegionAndName,KeyPair> credentialsMap, @Named(value="SECURITY") com.google.common.cache.LoadingCache<RegionAndName,String> securityGroupMap, @Named(value="PLACEMENT") com.google.common.cache.LoadingCache<RegionAndName,String> placementGroupMap, @Named(value="DELETED") com.google.common.base.Predicate<PlacementGroup> placementGroupDeleted, @Named(value="jclouds.ec2.generate-instance-names") boolean generateInstanceNames, AWSEC2AsyncClient aclient)
public Set<? extends NodeMetadata> createNodesInGroup(String group, int count, Template template) throws RunNodesException
ComputeService
if (node.getCredentials().key.startsWith("-----BEGIN RSA PRIVATE KEY-----")) // it is a private key, not a password.Note. if all you want to do is execute a script at bootup, you should consider use of the runscript option. If resources such as security groups are needed, they will be reused or created for you. Inbound port 22 will always be opened up.
createNodesInGroup
in interface ComputeService
createNodesInGroup
in class BaseComputeService
group
- - common identifier to group nodes by, cannot contain hyphenscount
- - how many to fire up.template
- - how to configure the nodesRunNodesException
- when there's a problem applying options to nodes. Note that successful and failed
nodes are a part of this exception, so be sure to inspect this carefully.protected void addTagsToNodesFromUserMetadataInTemplate(Set<? extends NodeMetadata> nodes, String group, Template template)
protected boolean templateWasASpotRequestWithUserMetadata(Template template)
protected Set<? extends NodeMetadata> addUserMetadataFromTemplateOptionsToNodes(Template template, String group, Set<? extends NodeMetadata> nodes)
protected void cleanUpIncidentalResources(String region, String group)
cleanUpIncidentalResources
in class EC2ComputeService
public EC2TemplateOptions templateOptions()
EC2TemplateOptions
.templateOptions
in interface ComputeService
templateOptions
in class EC2ComputeService
Copyright © 2009-2012 jclouds. All Rights Reserved.