Hi Archana, There is no explicit support to pass the IAM role based authentication when creating the jclouds context. It has to be created with the access and secret key. I don't know the internals of the simian army, but if you have access to the instance metadata you could query it to get the access keys and then build the jclodus context.
On 20 June 2018 at 09:30, archiep...@gmail.com <archiep...@gmail.com> wrote: > Hi Andrea, > Thanks for the reply. I am somewhat new ( learning today) to Jclouds. But > after facing this issue for the past 2 days and reading some blog posts, a > lot of places say it might be an IAM role issue. Here is the stacktrace: > > 2018-06-18 03:52:56.701 - WARN ChaosInstance - [ChaosInstance.java:105] > Error making SSH connection to instance > org.jclouds.rest.AuthorizationException: POST https://ec2.us-east-1. > amazonaws.com/ HTTP/1.1 -> HTTP/1.1 401 Unauthorized > at org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent. > refineException(ParseAWSErrorFromXmlContent.java:122) > at org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent. > handleError(ParseAWSErrorFromXmlContent.java:89) > at org.jclouds.http.handlers.DelegatingErrorHandler.handleError( > DelegatingErrorHandler.java:65) > at org.jclouds.http.internal.BaseHttpCommandExecutorService > .shouldContinue(BaseHttpCommandExecutorService.java:132) > at org.jclouds.http.internal.BaseHttpCommandExecutorService > .invoke(BaseHttpCommandExecutorService.java:101) > at org.jclouds.rest.internal.InvokeHttpMethod.invoke( > InvokeHttpMethod.java:90) > at org.jclouds.rest.internal.InvokeHttpMethod.apply( > InvokeHttpMethod.java:73) > at org.jclouds.rest.internal.InvokeHttpMethod.apply( > InvokeHttpMethod.java:44) > at org.jclouds.reflect.FunctionalReflection$ > FunctionalInvocationHandler.handleInvocation( > FunctionalReflection.java:117) > at com.google.common.reflect.AbstractInvocationHandler.invoke( > AbstractInvocationHandler.java:87) > at com.sun.proxy.$Proxy174.describeRegions(Unknown Source) > at org.jclouds.ec2.suppliers.DescribeRegionsForRegionURIs.get( > DescribeRegionsForRegionURIs.java:50) > at org.jclouds.ec2.suppliers.DescribeRegionsForRegionURIs.get( > DescribeRegionsForRegionURIs.java:38) > at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOn > AuthorizationExceptionSupplier$SetAndThrowAuthorizationExcept > ionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOn > AuthorizationExceptionSupplier.java:73) > at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOn > AuthorizationExceptionSupplier$SetAndThrowAuthorizationExcept > ionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOn > AuthorizationExceptionSupplier.java:57) > at com.google.common.cache.LocalCache$LoadingValueReference. > loadFuture(LocalCache.java:3542) > at com.google.common.cache.LocalCache$Segment.loadSync( > LocalCache.java:2323) > at com.google.common.cache.LocalCache$Segment. > lockedGetOrLoad(LocalCache.java:2286) > at com.google.common.cache.LocalCache$Segment.get( > LocalCache.java:2201) > at com.google.common.cache.LocalCache.get(LocalCache.java:3953) > at com.google.common.cache.LocalCache.getOrLoad( > LocalCache.java:3957) > at com.google.common.cache.LocalCache$LocalLoadingCache. > get(LocalCache.java:4875) > at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOn > AuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOn > AuthorizationExceptionSupplier.java:119) > at org.jclouds.location.suppliers.derived. > RegionIdsFromRegionIdToURIKeySet.get(RegionIdsFromRegionIdToURIKeyS > et.java:45) > at org.jclouds.location.suppliers.derived. > RegionIdsFromRegionIdToURIKeySet.get(RegionIdsFromRegionIdToURIKeyS > et.java:33) > at com.google.common.base.Suppliers$SupplierComposition. > get(Suppliers.java:68) > at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOn > AuthorizationExceptionSupplier$SetAndThrowAuthorizationExcept > ionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOn > AuthorizationExceptionSupplier.java:73) > at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOn > AuthorizationExceptionSupplier$SetAndThrowAuthorizationExcept > ionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOn > AuthorizationExceptionSupplier.java:57) > at com.google.common.cache.LocalCache$LoadingValueReference. > loadFuture(LocalCache.java:3542) > at com.google.common.cache.LocalCache$Segment.loadSync( > LocalCache.java:2323) > at com.google.common.cache.LocalCache$Segment. > lockedGetOrLoad(LocalCache.java:2286) > at com.google.common.cache.LocalCache$Segment.get( > LocalCache.java:2201) > at com.google.common.cache.LocalCache.get(LocalCache.java:3953) > at com.google.common.cache.LocalCache.getOrLoad( > LocalCache.java:3957) > at com.google.common.cache.LocalCache$LocalLoadingCache. > get(LocalCache.java:4875) > at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOn > AuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOn > AuthorizationExceptionSupplier.java:119) > at org.jclouds.aws.ec2.compute.strategy.AWSEC2ListNodesStrategy. > pollRunningInstances(AWSEC2ListNodesStrategy.java:65) > at org.jclouds.ec2.compute.strategy.EC2ListNodesStrategy. > listDetailsOnNodesMatching(EC2ListNodesStrategy.java:107) > at org.jclouds.ec2.compute.strategy.EC2ListNodesStrategy. > listNodes(EC2ListNodesStrategy.java:86) > at org.jclouds.ec2.compute.strategy.EC2ListNodesStrategy. > listNodes(EC2ListNodesStrategy.java:58) > at org.jclouds.compute.internal.BaseComputeService.listNodes( > BaseComputeService.java:335) > at com.netflix.simianarmy.client.aws.AWSClient.getJcloudsNode( > AWSClient.java:910) > at com.netflix.simianarmy.client.aws.AWSClient.connectSsh( > AWSClient.java:888) > at com.netflix.simianarmy.chaos.ChaosInstance.connectSsh( > ChaosInstance.java:122) > at com.netflix.simianarmy.chaos.ChaosInstance.canConnectSsh( > ChaosInstance.java:101) > at com.netflix.simianarmy.chaos.ScriptChaosType.canApply( > ScriptChaosType.java:60) > at com.netflix.simianarmy.basic.chaos.BasicChaosMonkey. > pickChaosType(BasicChaosMonkey.java:141) > at com.netflix.simianarmy.basic.chaos.BasicChaosMonkey. > doMonkeyBusiness(BasicChaosMonkey.java:121) > at com.netflix.simianarmy.Monkey.run(Monkey.java:134) > at com.netflix.simianarmy.Monkey$1.run(Monkey.java:155) > at java.util.concurrent.Executors$RunnableAdapter. > call(Executors.java:511) > at java.util.concurrent.FutureTask.runAndReset( > FutureTask.java:308) > at java.util.concurrent.ScheduledThreadPoolExecutor$ > ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) > at java.util.concurrent.ScheduledThreadPoolExecutor$ > ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) > at java.util.concurrent.ThreadPoolExecutor.runWorker( > ThreadPoolExecutor.java:1149) > at java.util.concurrent.ThreadPoolExecutor$Worker.run( > ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > Caused by: org.jclouds.http.HttpResponseException: request: POST > https://ec2.us-east-1.amazonaws.com/ HTTP/1.1 [Action=DescribeRegions] > failed with response: HTTP/1.1 401 Unauthorized > at org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent. > handleError(ParseAWSErrorFromXmlContent.java:63) > ... 55 more > 2018-06-18 03:52:56.742 - WARN ScriptChaosType - > [ScriptChaosType.java:61] Strategy disabled because SSH credentials failed >