Class ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet
- java.lang.Object
-
- org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet
-
- org.jclouds.openstack.nova.v2_0.compute.strategy.ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet
-
- All Implemented Interfaces:
CreateNodesInGroupThenAddToSet
@Singleton public class ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet extends CreateNodesWithGroupEncodedIntoNameThenAddToSet
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet
CreateNodesWithGroupEncodedIntoNameThenAddToSet.AddNode
-
-
Field Summary
Fields Modifier and Type Field Description static String
JCLOUDS_SG_PREFIX
-
Fields inherited from class org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet
addNodeWithGroupStrategy, customizeNodeAndAddToGoodMapOrPutExceptionIntoBadMapFactory, listNodesStrategy, logger, namingConvention, userExecutor
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet(CreateNodeWithGroupEncodedIntoName addNodeWithTagStrategy, ListNodesStrategy listNodesStrategy, GroupNamingConvention.Factory namingConvention, CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.Factory customizeNodeAndAddToGoodMapOrPutExceptionIntoBadMapFactory, com.google.common.util.concurrent.ListeningExecutorService userExecutor, AllocateAndAddFloatingIpToNode createAndAddFloatingIpToNode, com.google.common.cache.LoadingCache<RegionAndName,SecurityGroup> securityGroupCache, NovaApi novaApi, SecurityGroupExtension securityGroupExtension)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected com.google.common.util.concurrent.ListenableFuture<AtomicReference<NodeMetadata>>
createNodeInGroupWithNameAndTemplate(String group, String name, Template template)
This calls logic necessary to create a node and convert it from its provider-specific object to the jcloudsNodeMetadata
object.Map<?,com.google.common.util.concurrent.ListenableFuture<Void>>
execute(String group, int count, Template template, Set<NodeMetadata> goodNodes, Map<NodeMetadata,Exception> badNodes, com.google.common.collect.Multimap<NodeMetadata,CustomizationResponse> customizationResponses)
This implementation gets a list of acceptable node names to encode the group into, then it simultaneously runs the nodes and applies options to them.-
Methods inherited from class org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet
getNextNames
-
-
-
-
Field Detail
-
JCLOUDS_SG_PREFIX
public static final String JCLOUDS_SG_PREFIX
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet
@Inject protected ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet(CreateNodeWithGroupEncodedIntoName addNodeWithTagStrategy, ListNodesStrategy listNodesStrategy, GroupNamingConvention.Factory namingConvention, CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.Factory customizeNodeAndAddToGoodMapOrPutExceptionIntoBadMapFactory, @Named("jclouds.user-threads") com.google.common.util.concurrent.ListeningExecutorService userExecutor, AllocateAndAddFloatingIpToNode createAndAddFloatingIpToNode, com.google.common.cache.LoadingCache<RegionAndName,SecurityGroup> securityGroupCache, NovaApi novaApi, SecurityGroupExtension securityGroupExtension)
-
-
Method Detail
-
execute
public Map<?,com.google.common.util.concurrent.ListenableFuture<Void>> execute(String group, int count, Template template, Set<NodeMetadata> goodNodes, Map<NodeMetadata,Exception> badNodes, com.google.common.collect.Multimap<NodeMetadata,CustomizationResponse> customizationResponses)
Description copied from class:CreateNodesWithGroupEncodedIntoNameThenAddToSet
This implementation gets a list of acceptable node names to encode the group into, then it simultaneously runs the nodes and applies options to them.- Specified by:
execute
in interfaceCreateNodesInGroupThenAddToSet
- Overrides:
execute
in classCreateNodesWithGroupEncodedIntoNameThenAddToSet
-
createNodeInGroupWithNameAndTemplate
protected com.google.common.util.concurrent.ListenableFuture<AtomicReference<NodeMetadata>> createNodeInGroupWithNameAndTemplate(String group, String name, Template template)
Description copied from class:CreateNodesWithGroupEncodedIntoNameThenAddToSet
This calls logic necessary to create a node and convert it from its provider-specific object to the jcloudsNodeMetadata
object. This call directly precedes customization, such as executing scripts. The outcome of this operation does not imply the node isrunning
. If you want to insert logic after the node is created, yet before an attempt to customize the node, then append your behaviour to this method. ex. to attach an ip address post-creation@Override protected ListenableFuture<AtomicReference<NodeMetadata>> createNodeInGroupWithNameAndTemplate(String group, String name, Template template) { ListenableFuture<AtomicReference<NodeMetadata>> future = super.addNodeIntoGroupWithNameAndTemplate(group, name, template); return Futures.compose(future, new Function<AtomicReference<NodeMetadata>, AtomicReference<NodeMetadata>>() { @Override public AtomicReference<NodeMetadata> apply(AtomicReference<NodeMetadata> input) { NodeMetadata node = input.get(); // allocate and attach an ip input.set(NodeMetadataBuilder.fromNodeMetadata(node).publicAddresses(ImmutableSet.of(ip.getIp())).build()); return input; } }, executor); }
- Overrides:
createNodeInGroupWithNameAndTemplate
in classCreateNodesWithGroupEncodedIntoNameThenAddToSet
- Parameters:
group
- group the node belongs toname
- generated name of the nodetemplate
- user-specified template- Returns:
- node that is created, yet not necessarily in
Status#RUNNING
-
-