BTW, where I said "sensible" I meant "sentitive" :)
On 12 December 2016 at 16:40, Ignasi Barrera <ignasi.barr...@gmail.com> wrote: > Hi! > > I'll try to answer inline: > >>> 1. So is it possible to use an existing key pair created from amazon >>> console and consume from jclouds while launching an instance. >>> Say keyPair(poornima). >>> As per my knowledge it can create an instance without error but while >>> executing script using runScriptOnNodesMatching() gives 'no nodes matched >>> filter' with groupName poornima. > > That's right > >>> 2. In above case we should create key pair from jclouds and consume from >>> jclouds. Other option would be create a keypair with prefix "jclouds#jcloud" > > You can create the keypairs yourself or let jclodus create them for > you. You just need to take the mentioned limitation into account, so > the group can be resolved. > Take also into account that the group name is also resolved from the > security groups, so if you configure access to your instance using the > TemplateOptions#inboundPorts method, or you create the security groups > following the jclouds naming convention, jclodus should eb able to > resolve the group from the security groups the instance is assigned > to, and you should be able to use whatever name you prefer for the key > pair. > But again, this is very sensible and you're relying on this limitation > of jclouds. > >>> 3. if keyPair Name is 'jclouds#Testkeypair' groupname should be >>> TestKeyPair while creating an instance? > > Yes > >>> 4. In case of tags can u please elaborate on tags limitation > > Here you have the tag restrictions: > http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-restrictions > > Adding to above points if i want to create keypair using jcloud is it >> necessary for me to use >> >> "jclouds#" prefix while calling createKeyPairInRegion(region,name) >> >> If i use without prefix i will get below, > > When you access directly the jclouds EC2/AWSEC2 APIs you get a client > to their API without any addition. Any call you perform using those > APIs directly will be translated into direct calls to the AWS API. So > yes, you need to put the prefix if you're doing that. Take into > account that the value of the prefix can be customized by setting the > ComputeServiceProperties.RESOURCENAME_PREFIX property, so you'd better > read that value to make sure you are always setting the right value > for the prefix. > > > HTH! > > I. > > > [1] > https://jclouds.apache.org/reference/javadoc/2.0.x/org/jclouds/compute/config/ComputeServiceProperties.html#RESOURCENAME_PREFIX > > > > On 12 December 2016 at 13:05, Poornima BS <poornimabs.g...@gmail.com> wrote: >> Also, >> >> Adding to above points if i want to create keypair using jcloud is it >> necessary for me to use >> >> "jclouds#" prefix while calling createKeyPairInRegion(region,name) >> >> If i use without prefix i will get below, >> >> java.util.NoSuchElementException: no nodes matched filter: >> inGroup(production) >> at >> org.jclouds.compute.internal.BaseComputeService.nodesMatchingFilterAndNotTerminatedExceptionIfNotFound(BaseComputeService.java:325) >> at >> org.jclouds.compute.internal.BaseComputeService.runScriptOnNodesMatching(BaseComputeService.java:579) >> at org.jclouds.examples.compute.basics.MainApp.main(MainApp.java:187) >> error: no nodes matched filter: inGroup(production) >> >> Any suggestion would be helpful >> >> Thanks & Regards, >> Poornima.BS >> >> On Mon, Dec 12, 2016 at 4:29 PM, Poornima BS <poornimabs.g...@gmail.com> >> wrote: >> >>> Hi, >>> >>> Thanks for your reply. >>> >>> I have some doubts, >>> >>> 1. So is it possible to use an existing key pair created from amazon >>> console and consume from jclouds while launching an instance. >>> Say keyPair(poornima). >>> As per my knowledge it can create an instance without error but while >>> executing script using runScriptOnNodesMatching() gives 'no nodes matched >>> filter' with groupName poornima. >>> >>> 2. In above case we should create key pair from jclouds and consume from >>> jclouds. Other option would be create a keypair with prefix "jclouds#jcloud" >>> >>> 3. if keyPair Name is 'jclouds#Testkeypair' groupname should be >>> TestKeyPair while creating an instance? Is there any workaround for same >>> >>> 4. In case of tags can u please elaborate on tags limitation >>> >>> Does it mean each instance in amazon can have 50 tags or overall account >>> can have 50 tags. >>> I want this to be clarified because i am planning to use >>> userMetaData("Name", "Test") option while launching instance so that we can >>> identify machine. >>> >>> Please correct me if i am wrong in all above points. >>> >>> >>> Thanks & Regards, >>> Poornima.BS >>> >>> On Fri, Dec 9, 2016 at 10:49 PM, Ignasi Barrera <n...@apache.org> wrote: >>> >>>> Hi Poornima, >>>> >>>> This is a limitation specific to the aws-ec2 provider implementation. >>>> jclouds uses a naming convention and creates the key pairs and >>>> security groups with a prefix (usually 'jclouds') and a suffix that is >>>> the "group". When getting the list of nodes, it parses the keys and >>>> groups an instance is assigned to, and tries to extract the group from >>>> there. >>>> >>>> We could definitely do better by storing the group in an instance tag, >>>> but instance tags are limited to 50, and tags and user metadata key >>>> value pairs are stored there. It is possible that we run out of tags >>>> if we follow that approach, although I believe that won't be the >>>> common pattern and it is a much consistent approach. (Mind opening a >>>> JIRA [1] issue to track this?). >>>> >>>> In your case, since you are assigning the key pair "jclouds#jcloud", >>>> jclouds believes it belongs to the "jcloud" group. That's why the >>>> runScript method does not find groups. If you enable the >>>> "jclouds.compute" logger at debug level [2] you should see relevant >>>> logs. >>>> >>>> >>>> HTH! >>>> >>>> I. >>>> >>>> [1] https://issues.apache.org/jira/browse/JCLOUDS >>>> [2] https://jclouds.apache.org/reference/logging/ >>>> >>>> On 9 December 2016 at 05:56, Poornima BS <poornimabs.g...@gmail.com> >>>> wrote: >>>> > Hi, >>>> > >>>> > Please let me know how jcloud works wrt groupName and keypair >>>> > >>>> > 1. Suppose my groupName and key pair is as below >>>> > >>>> > String groupName = "jcloud"; >>>> > >>>> > keyPair("jclouds#jcloud") - keypairname created in AWS >>>> > >>>> > Then execution of script works fine i.e runScriptOnNodesMatching >>>> > >>>> > 2. if i give a different groupName say, >>>> > >>>> > String groupName = "jcloudTest"; >>>> > >>>> > and use an existing keypair say keyPair("jclouds#jcloud") >>>> > >>>> > Then runScriptOnNodesMatching gives error: no nodes matched filter: >>>> > inGroup(jcloudTest) >>>> > >>>> > Please let me know how groupName and keypair work together >>>> > >>>> > 3. Also keypair is expected to be appended with "jclouds#" i.e. jclouds >>>> > finds for keypair with jclouds# prefix >>>> > >>>> > The groupName and keypair name should be same, then how can i create >>>> > machines in multiple groups. >>>> > >>>> > Can u please let me know what is going wrong with using existing >>>> keypair. >>>> > >>>> > ```` >>>> > Template template = templateBuilder.build(); >>>> > >>>> > template.getOptions().as(AWSEC2TemplateOptions.class).subnet >>>> Id("subnet-a1e1d08b"). >>>> > >>>> > keyPair("jclouds#jcloud").overrideLoginPrivateKey(login.credential) >>>> > ```` >>>> > By using above template options i dont get issues while launching >>>> instance, >>>> > but while executing service i get below error, >>>> > >>>> > ```` >>>> > java.util.NoSuchElementException: no nodes matched filter: >>>> inGroup(jcloud1) >>>> > at org.jclouds.compute.internal.BaseComputeService. >>>> > nodesMatchingFilterAndNotTerminatedExceptionIfNotFound( >>>> > BaseComputeService.java:325) >>>> > at org.jclouds.compute.internal.BaseComputeService.runScriptOnN >>>> odesMatching( >>>> > BaseComputeService.java:579) >>>> > at org.jclouds.examples.compute.basics.MainApp.main(MainApp.java:187) >>>> > error: no nodes matched filter: inGroup(jcloud1) >>>> > ```` >>>> > >>>> > >>>> > Thanks & Regards, >>>> > Poornima.BS >>>> >>> >>>