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
ConstructorsModifierConstructorDescriptionprotectedApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet(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 jcloudsNodeMetadataobject.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:CreateNodesWithGroupEncodedIntoNameThenAddToSetThis 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:
executein interfaceCreateNodesInGroupThenAddToSet- Overrides:
executein classCreateNodesWithGroupEncodedIntoNameThenAddToSet
-
createNodeInGroupWithNameAndTemplate
protected com.google.common.util.concurrent.ListenableFuture<AtomicReference<NodeMetadata>> createNodeInGroupWithNameAndTemplate(String group, String name, Template template) Description copied from class:CreateNodesWithGroupEncodedIntoNameThenAddToSetThis calls logic necessary to create a node and convert it from its provider-specific object to the jcloudsNodeMetadataobject. This call directly precedes customization, such as executing scripts. The outcome of this operation does not imply the node is. 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-creationinvalid 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:
createNodeInGroupWithNameAndTemplatein 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
-