Aled Sage created BROOKLYN-412:
----------------------------------
Summary: Provisioning fails in aws-ec2:us-west-2 (i.e. new London
region): m3.medium does not exist?
Key: BROOKLYN-412
URL: https://issues.apache.org/jira/browse/BROOKLYN-412
Project: Brooklyn
Issue Type: Bug
Reporter: Aled Sage
I attempted to deploy a VM to the new London region in aws, using the defaults:
{noformat}
name: machine@eu-west-2
location: aws-ec2:eu-west-2
services:
- type: org.apache.brooklyn.entity.machine.MachineEntity
{noformat}
It failed with the error shown below:
{noformat}
2016-12-16 12:33:08,706 DEBUG 122 o.a.b.l.j.JcloudsLocation [r-SipZthFa-38985]
jclouds using template {image={id=eu-west-2/ami-d9c1cbbd,
providerId=ami-d9c1cbbd,
name=ubuntu/images/hvm/ubuntu-trusty-14.04-amd64-server-20161109,
location={scope=REGION, id=eu-west-2, description=eu-west-2, parent=aw
s-ec2}, os={family=ubuntu, arch=hvm, version=14.04,
description=099720109477/ubuntu/images/hvm/ubuntu-trusty-14.04-amd64-server-20161109,
is64Bit=true},
description=099720109477/ubuntu/images/hvm/ubuntu-trusty-14.04-amd64-server-20161109,
version=20161109, status=AVAILABLE[available], loginUser=ub
untu, userMetadata={owner=099720109477, rootDeviceType=ebs,
virtualizationType=hvm, hypervisor=xen}}, hardware={id=m3.medium,
providerId=m3.medium, processors=[{cores=1.0, speed=3.0}], ram=3840,
volumes=[{type=LOCAL, size=10.0, device=/dev/sda1, bootDevice=true,
durable=false}, {type=LOCAL, size=4
.0, device=/dev/sdb, bootDevice=false, durable=false}],
supportsImage=And(ALWAYS_TRUE,Or(requiresVirtualizationType(hvm),requiresVirtualizationType(paravirtual)),ALWAYS_TRUE,ALWAYS_TRUE)},
location={scope=REGION, id=eu-west-2, description=eu-west-2, parent=aws-ec2},
options={scriptPresent=true,
userMetadata={Name=brooklyn-oia2v5-aled-applicati-rglx-machine-entity-xmd5-amwp,
brooklyn-user=aled, brooklyn-app-id=rglxestjop, brooklyn-app-name=Application
(rglxestjop), brooklyn-entity-id=xmd5xl5ed4, brooklyn-entity-name=Machine
Entity, brooklyn-server-creation-date=2016-12-16-1233},
userDataCksum=2f4a740b}} / options {scriptPresent=true,
userMetadata={Name=brooklyn-oia2v5-aled-applicati-rglx-machine-entity-xmd5-amwp,
brooklyn-user=aled, brooklyn-app-id=rglxestjop, brooklyn-app-name=Application
(rglxestjop), brooklyn-entity-id=xmd5xl5ed4, brooklyn-entity-name=Machine
Entity, brooklyn-server-creation-date=2016-12-16-1233}, userDataCksum=2f4a740b}
to provision machine in null
...
// snip - successfully created key pair, security group, etc
...
2016-12-16 12:33:09,836 DEBUG 101 o.j.r.i.InvokeHttpMethod [r-SipZthFa-38985]
>> invoking RunInstances
2016-12-16 12:33:09,839 DEBUG 101 o.j.h.i.JavaUrlHttpCommandExecutorService
[r-SipZthFa-38985] Sending request -967320187: POST
https://ec2.eu-west-2.amazonaws.com/ HTTP/1.1
2016-12-16 12:33:10,143 DEBUG 101 o.j.h.i.JavaUrlHttpCommandExecutorService
[r-SipZthFa-38985] Receiving response -967320187: HTTP/1.1 400 Bad Request
2016-12-16 12:33:10,151 ERROR 122 o.a.b.l.j.JcloudsLocation [r-SipZthFa-38985]
Failed to start VM for null after 5.14s (semaphore obtained in 0ms; template
built in 3.69s;): request POST https://ec2.eu-west-2.amazonaws.com/ HTTP/1.1
failed with code 400, error:
AWSError{requestId='48028be9-da45-4c92-9838-e01d686b3eb5', requestToken='null',
code='Unsupported', message='The requested configuration is currently not
supported. Please check the documentation for supported configurations.',
context='{Response=, Errors=}'}
2016-12-16 12:33:10,152 DEBUG 122 o.a.b.l.j.JcloudsLocation [r-SipZthFa-38985]
org.jclouds.aws.AWSResponseException: request POST
https://ec2.eu-west-2.amazonaws.com/ HTTP/1.1 failed with code 400, error:
AWSError{requestId='48028be9-da45-4c92-9838-e01d686b3eb5', requestToken='null',
code='Unsupported', message='The requested configuration is currently not
supported. Please check the documentation for supported configurations.',
context='{Response=, Errors=}'}
at
org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.handleError(ParseAWSErrorFromXmlContent.java:75)
at
org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
at
org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:136)
at
org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:105)
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.$Proxy171.runInstancesInRegion(Unknown Source)
at
org.jclouds.ec2.compute.strategy.EC2CreateNodesInGroupThenAddToSet.createNodesInRegionAndZone(EC2CreateNodesInGroupThenAddToSet.java:240)
at
org.jclouds.aws.ec2.compute.strategy.AWSEC2CreateNodesInGroupThenAddToSet.createNodesInRegionAndZone(AWSEC2CreateNodesInGroupThenAddToSet.java:105)
at
org.jclouds.ec2.compute.strategy.EC2CreateNodesInGroupThenAddToSet.createKeyPairAndSecurityGroupsAsNeededThenRunInstances(EC2CreateNodesInGroupThenAddToSet.java:215)
at
org.jclouds.ec2.compute.strategy.EC2CreateNodesInGroupThenAddToSet.runInstancesAndWarnOnInvisible(EC2CreateNodesInGroupThenAddToSet.java:151)
at
org.jclouds.ec2.compute.strategy.EC2CreateNodesInGroupThenAddToSet.execute(EC2CreateNodesInGroupThenAddToSet.java:132)
at
org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:210)
at
org.jclouds.ec2.compute.EC2ComputeService.createNodesInGroup(EC2ComputeService.java:149)
at
org.apache.brooklyn.location.jclouds.JcloudsLocation.obtainOnce(JcloudsLocation.java:740)
at
org.apache.brooklyn.location.jclouds.JcloudsLocation.obtain(JcloudsLocation.java:628)
at
org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ObtainLocationTask.call(MachineLifecycleEffectorTasks.java:443)
at
org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ObtainLocationTask.call(MachineLifecycleEffectorTasks.java:433)
at
org.apache.brooklyn.util.core.task.Tasks.withBlockingDetails(Tasks.java:106)
at
org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ProvisionMachineTask.call(MachineLifecycleEffectorTasks.java:414)
at
org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ProvisionMachineTask.call(MachineLifecycleEffectorTasks.java:390)
at
org.apache.brooklyn.util.core.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:359)
at
org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:522)
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)
{noformat}
However, the blueprint below works:
{noformat}
name: machine@eu-west-2
location:
aws-ec2:eu-west-2:
imageId: eu-west-2/ami-d6cbc1b2
hardwareId: t2.micro
services:
- type: org.apache.brooklyn.entity.machine.MachineEntity
{noformat}
I believe the issue is with the auto-selected hardware id: {{m3.medium}}. When
I manually provision a VM through the aws web-console, that hardare type is not
listed in
https://eu-west-2.console.aws.amazon.com/ec2/v2/home?region=eu-west-2#LaunchInstanceWizard:
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)