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
>

Reply via email to