EC2 - instance lifecycle defaults to None when not using spot (#4321)
This commit is contained in:
parent
5b10671af4
commit
d56a3989eb
@ -566,7 +566,7 @@ class Instance(TaggedEC2Resource, BotoInstance, CloudFormationModel):
|
|||||||
super(Instance, self).__init__()
|
super(Instance, self).__init__()
|
||||||
self.ec2_backend = ec2_backend
|
self.ec2_backend = ec2_backend
|
||||||
self.id = random_instance_id()
|
self.id = random_instance_id()
|
||||||
self.lifecycle = kwargs.get("lifecycle", "")
|
self.lifecycle = kwargs.get("lifecycle")
|
||||||
self.image_id = image_id
|
self.image_id = image_id
|
||||||
self._state = InstanceState("running", 16)
|
self._state = InstanceState("running", 16)
|
||||||
self._reason = ""
|
self._reason = ""
|
||||||
|
@ -386,7 +386,9 @@ EC2_RUN_INSTANCES = (
|
|||||||
<amiLaunchIndex>{{ instance.ami_launch_index }}</amiLaunchIndex>
|
<amiLaunchIndex>{{ instance.ami_launch_index }}</amiLaunchIndex>
|
||||||
<instanceType>{{ instance.instance_type }}</instanceType>
|
<instanceType>{{ instance.instance_type }}</instanceType>
|
||||||
<launchTime>{{ instance.launch_time }}</launchTime>
|
<launchTime>{{ instance.launch_time }}</launchTime>
|
||||||
|
{% if instance.lifecycle %}
|
||||||
<instanceLifecycle>{{ instance.lifecycle }}</instanceLifecycle>
|
<instanceLifecycle>{{ instance.lifecycle }}</instanceLifecycle>
|
||||||
|
{% endif %}
|
||||||
<placement>
|
<placement>
|
||||||
<availabilityZone>{{ instance.placement}}</availabilityZone>
|
<availabilityZone>{{ instance.placement}}</availabilityZone>
|
||||||
<groupName/>
|
<groupName/>
|
||||||
@ -538,7 +540,9 @@ EC2_DESCRIBE_INSTANCES = (
|
|||||||
<productCodes/>
|
<productCodes/>
|
||||||
<instanceType>{{ instance.instance_type }}</instanceType>
|
<instanceType>{{ instance.instance_type }}</instanceType>
|
||||||
<launchTime>{{ instance.launch_time }}</launchTime>
|
<launchTime>{{ instance.launch_time }}</launchTime>
|
||||||
|
{% if instance.lifecycle %}
|
||||||
<instanceLifecycle>{{ instance.lifecycle }}</instanceLifecycle>
|
<instanceLifecycle>{{ instance.lifecycle }}</instanceLifecycle>
|
||||||
|
{% endif %}
|
||||||
<placement>
|
<placement>
|
||||||
<availabilityZone>{{ instance.placement }}</availabilityZone>
|
<availabilityZone>{{ instance.placement }}</availabilityZone>
|
||||||
<groupName/>
|
<groupName/>
|
||||||
|
@ -1786,3 +1786,23 @@ def test_instance_termination_protection():
|
|||||||
instances.should.have.length_of(1)
|
instances.should.have.length_of(1)
|
||||||
instance = instances[0]
|
instance = instances[0]
|
||||||
instance["State"]["Name"].should.equal("terminated")
|
instance["State"]["Name"].should.equal("terminated")
|
||||||
|
|
||||||
|
|
||||||
|
@mock_ec2
|
||||||
|
def test_instance_lifecycle():
|
||||||
|
ec2_resource = boto3.resource("ec2", "us-west-1")
|
||||||
|
|
||||||
|
result = ec2_resource.create_instances(
|
||||||
|
ImageId=EXAMPLE_AMI_ID,
|
||||||
|
MinCount=1,
|
||||||
|
MaxCount=1,
|
||||||
|
BlockDeviceMappings=[
|
||||||
|
{
|
||||||
|
"DeviceName": "/dev/sda1",
|
||||||
|
"Ebs": {"VolumeSize": 50, "DeleteOnTermination": True},
|
||||||
|
}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
instance = result[0]
|
||||||
|
|
||||||
|
assert instance.instance_lifecycle is None
|
||||||
|
@ -312,7 +312,7 @@ def test_launch_instance_instance_lifecycle():
|
|||||||
|
|
||||||
response = client.describe_instances()
|
response = client.describe_instances()
|
||||||
instance = response["Reservations"][0]["Instances"][0]
|
instance = response["Reservations"][0]["Instances"][0]
|
||||||
instance["InstanceLifecycle"].should.equal("")
|
instance.get("InstanceLifecycle").should.equal(None)
|
||||||
|
|
||||||
|
|
||||||
@mock_ec2
|
@mock_ec2
|
||||||
|
Loading…
Reference in New Issue
Block a user