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
FieldsFields inherited from class org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet
addNodeWithGroupStrategy, customizeNodeAndAddToGoodMapOrPutExceptionIntoBadMapFactory, listNodesStrategy, logger, namingConvention, userExecutor
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
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
Modifier and TypeMethodDescriptionprotected 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.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 Details
-
JCLOUDS_SG_PREFIX
- See Also:
-
-
Constructor Details
-
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 Details
-
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 isinvalid reference
running
@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
invalid reference
Status#RUNNING
-