[ 
https://issues.apache.org/jira/browse/JCLOUDS-812?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kasper Madsen updated JCLOUDS-812:
----------------------------------
    Description: 
Code that works on 1.7.0, breaks with error after updated to version 1.8.1 (it 
works without the .overrideLoginCredentials setting). The following command 
breaks:

_newNodes = (Set<NodeMetadata>) _compute.createNodesInGroup(
   _clustername,
   _nodeids.size(),
   _compute.templateBuilder()
      .hardwareId(_instanceType)
      .locationId(_region)
      .imageId(_image)
      .options(
         new TemplateOptions()
               .runAsRoot(false)
               .wrapInInitScript(true)
               .inboundPorts(Tools.getPortsToOpen())
               .userMetadata("daemons", _daemons.toString())
               .runScript(new StatementList(_initScript))
              
.overrideLoginCredentials(Tools.getPrivateKeyCredentials(_username))
               .authorizePublicKey(Tools.getPublicKey()))
         .build());


I get the following error:


2015-01-26 00:23:50 [ERROR] << problem customizing node(eu-west-1/i-6130e886): 
java.lang.IllegalStateException: Optional.get() cannot be called on an absent 
value
        at com.google.common.base.Absent.get(Absent.java:47)
        at 
org.jclouds.compute.callables.SudoAwareInitManager.execScriptAsRoot(SudoAwareInitManager.java:116)
        at 
org.jclouds.compute.callables.SudoAwareInitManager.runAction(SudoAwareInitManager.java:84)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.doCall(RunScriptOnNodeAsInitScriptUsingSsh.java:131)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.future(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:64)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.doCall(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:56)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.call(RunScriptOnNodeAsInitScriptUsingSsh.java:73)
        at 
org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:121)
        at 
org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:49)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
2015-01-26 00:25:19 [ERROR] Problem launching instance
org.jclouds.compute.RunNodesException: error running 1 node group(kxperiment) 
location(eu-west-1) image(ami-f1f80a86) size(m1.medium) 
options({loginUser=ubuntu, loginPrivateKeyPresent=true, authenticateSudo=true, 
inboundPorts=[22, 6627, 8080, 80], scriptPresent=true, publicKeyPresent=true, 
userMetadata={daemons=[ZK, MASTER, UI]}, userDataCksum=2f4a740b})
Execution failures:

0 error[s]
Node failures:

1) IllegalStateException on node eu-west-1/i-6130e886:
java.lang.IllegalStateException: Optional.get() cannot be called on an absent 
value
        at com.google.common.base.Absent.get(Absent.java:47)
        at 
org.jclouds.compute.callables.SudoAwareInitManager.execScriptAsRoot(SudoAwareInitManager.java:116)
        at 
org.jclouds.compute.callables.SudoAwareInitManager.runAction(SudoAwareInitManager.java:84)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.doCall(RunScriptOnNodeAsInitScriptUsingSsh.java:131)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.future(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:64)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.doCall(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:56)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.call(RunScriptOnNodeAsInitScriptUsingSsh.java:73)
        at 
org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:121)
        at 
org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:49)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)


1 error[s]
        at 
org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:222)
        at 
org.jclouds.ec2.compute.EC2ComputeService.createNodesInGroup(EC2ComputeService.java:148)
        at 
dk.kaspergsm.stormdeploy.LaunchNodeThread.run(LaunchNodeThread.java:76)


  was:
Code that works on 1.7.0, breaks with error after I have updated to version 
1.8.1 (it works without the .overrideLoginCredentials setting). The following 
command breaks:

_newNodes = (Set<NodeMetadata>) _compute.createNodesInGroup(
   _clustername,
   _nodeids.size(),
   _compute.templateBuilder()
      .hardwareId(_instanceType)
      .locationId(_region)
      .imageId(_image)
      .options(
         new TemplateOptions()
               .runAsRoot(false)
               .wrapInInitScript(true)
               .inboundPorts(Tools.getPortsToOpen())
               .userMetadata("daemons", _daemons.toString())
               .runScript(new StatementList(_initScript))
              
.overrideLoginCredentials(Tools.getPrivateKeyCredentials(_username))
               .authorizePublicKey(Tools.getPublicKey()))
         .build());


I get the following error:


2015-01-26 00:23:50 [ERROR] << problem customizing node(eu-west-1/i-6130e886): 
java.lang.IllegalStateException: Optional.get() cannot be called on an absent 
value
        at com.google.common.base.Absent.get(Absent.java:47)
        at 
org.jclouds.compute.callables.SudoAwareInitManager.execScriptAsRoot(SudoAwareInitManager.java:116)
        at 
org.jclouds.compute.callables.SudoAwareInitManager.runAction(SudoAwareInitManager.java:84)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.doCall(RunScriptOnNodeAsInitScriptUsingSsh.java:131)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.future(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:64)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.doCall(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:56)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.call(RunScriptOnNodeAsInitScriptUsingSsh.java:73)
        at 
org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:121)
        at 
org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:49)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
2015-01-26 00:25:19 [ERROR] Problem launching instance
org.jclouds.compute.RunNodesException: error running 1 node group(kxperiment) 
location(eu-west-1) image(ami-f1f80a86) size(m1.medium) 
options({loginUser=ubuntu, loginPrivateKeyPresent=true, authenticateSudo=true, 
inboundPorts=[22, 6627, 8080, 80], scriptPresent=true, publicKeyPresent=true, 
userMetadata={daemons=[ZK, MASTER, UI]}, userDataCksum=2f4a740b})
Execution failures:

0 error[s]
Node failures:

1) IllegalStateException on node eu-west-1/i-6130e886:
java.lang.IllegalStateException: Optional.get() cannot be called on an absent 
value
        at com.google.common.base.Absent.get(Absent.java:47)
        at 
org.jclouds.compute.callables.SudoAwareInitManager.execScriptAsRoot(SudoAwareInitManager.java:116)
        at 
org.jclouds.compute.callables.SudoAwareInitManager.runAction(SudoAwareInitManager.java:84)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.doCall(RunScriptOnNodeAsInitScriptUsingSsh.java:131)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.future(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:64)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.doCall(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:56)
        at 
org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.call(RunScriptOnNodeAsInitScriptUsingSsh.java:73)
        at 
org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:121)
        at 
org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:49)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)


1 error[s]
        at 
org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:222)
        at 
org.jclouds.ec2.compute.EC2ComputeService.createNodesInGroup(EC2ComputeService.java:148)
        at 
dk.kaspergsm.stormdeploy.LaunchNodeThread.run(LaunchNodeThread.java:76)



> IllegalStateException when launching node on EC2 with 
> overrideLoginCredentials defined
> --------------------------------------------------------------------------------------
>
>                 Key: JCLOUDS-812
>                 URL: https://issues.apache.org/jira/browse/JCLOUDS-812
>             Project: jclouds
>          Issue Type: Bug
>    Affects Versions: 1.8.1
>         Environment: Ubuntu 13.04
> Java 1.7
>            Reporter: Kasper Madsen
>
> Code that works on 1.7.0, breaks with error after updated to version 1.8.1 
> (it works without the .overrideLoginCredentials setting). The following 
> command breaks:
> _newNodes = (Set<NodeMetadata>) _compute.createNodesInGroup(
>    _clustername,
>    _nodeids.size(),
>    _compute.templateBuilder()
>       .hardwareId(_instanceType)
>       .locationId(_region)
>       .imageId(_image)
>       .options(
>          new TemplateOptions()
>                .runAsRoot(false)
>                .wrapInInitScript(true)
>                .inboundPorts(Tools.getPortsToOpen())
>                .userMetadata("daemons", _daemons.toString())
>                .runScript(new StatementList(_initScript))
>               
> .overrideLoginCredentials(Tools.getPrivateKeyCredentials(_username))
>                .authorizePublicKey(Tools.getPublicKey()))
>          .build());
> I get the following error:
> 2015-01-26 00:23:50 [ERROR] << problem customizing 
> node(eu-west-1/i-6130e886): 
> java.lang.IllegalStateException: Optional.get() cannot be called on an absent 
> value
>       at com.google.common.base.Absent.get(Absent.java:47)
>       at 
> org.jclouds.compute.callables.SudoAwareInitManager.execScriptAsRoot(SudoAwareInitManager.java:116)
>       at 
> org.jclouds.compute.callables.SudoAwareInitManager.runAction(SudoAwareInitManager.java:84)
>       at 
> org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.doCall(RunScriptOnNodeAsInitScriptUsingSsh.java:131)
>       at 
> org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.future(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:64)
>       at 
> org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.doCall(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:56)
>       at 
> org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.call(RunScriptOnNodeAsInitScriptUsingSsh.java:73)
>       at 
> org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:121)
>       at 
> org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:49)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:745)
> 2015-01-26 00:25:19 [ERROR] Problem launching instance
> org.jclouds.compute.RunNodesException: error running 1 node group(kxperiment) 
> location(eu-west-1) image(ami-f1f80a86) size(m1.medium) 
> options({loginUser=ubuntu, loginPrivateKeyPresent=true, 
> authenticateSudo=true, inboundPorts=[22, 6627, 8080, 80], scriptPresent=true, 
> publicKeyPresent=true, userMetadata={daemons=[ZK, MASTER, UI]}, 
> userDataCksum=2f4a740b})
> Execution failures:
> 0 error[s]
> Node failures:
> 1) IllegalStateException on node eu-west-1/i-6130e886:
> java.lang.IllegalStateException: Optional.get() cannot be called on an absent 
> value
>       at com.google.common.base.Absent.get(Absent.java:47)
>       at 
> org.jclouds.compute.callables.SudoAwareInitManager.execScriptAsRoot(SudoAwareInitManager.java:116)
>       at 
> org.jclouds.compute.callables.SudoAwareInitManager.runAction(SudoAwareInitManager.java:84)
>       at 
> org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.doCall(RunScriptOnNodeAsInitScriptUsingSsh.java:131)
>       at 
> org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.future(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:64)
>       at 
> org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.doCall(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:56)
>       at 
> org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.call(RunScriptOnNodeAsInitScriptUsingSsh.java:73)
>       at 
> org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:121)
>       at 
> org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:49)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:745)
> 1 error[s]
>       at 
> org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:222)
>       at 
> org.jclouds.ec2.compute.EC2ComputeService.createNodesInGroup(EC2ComputeService.java:148)
>       at 
> dk.kaspergsm.stormdeploy.LaunchNodeThread.run(LaunchNodeThread.java:76)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to