feat(ec2): Add Instance Monitoring attribute (#6678)
This commit is contained in:
parent
45cffb6cd8
commit
0b4889ad37
@ -120,6 +120,7 @@ class Instance(TaggedEC2Resource, BotoInstance, CloudFormationModel):
|
|||||||
in_ec2_classic = not bool(self.subnet_id)
|
in_ec2_classic = not bool(self.subnet_id)
|
||||||
self.key_name = kwargs.get("key_name")
|
self.key_name = kwargs.get("key_name")
|
||||||
self.ebs_optimized = kwargs.get("ebs_optimized", False)
|
self.ebs_optimized = kwargs.get("ebs_optimized", False)
|
||||||
|
self.monitoring_state = kwargs.get("monitoring_state", "disabled")
|
||||||
self.source_dest_check = "true"
|
self.source_dest_check = "true"
|
||||||
self.launch_time = utc_date_and_time()
|
self.launch_time = utc_date_and_time()
|
||||||
self.ami_launch_index = kwargs.get("ami_launch_index", 0)
|
self.ami_launch_index = kwargs.get("ami_launch_index", 0)
|
||||||
|
@ -84,6 +84,9 @@ class InstanceResponse(EC2BaseResponse):
|
|||||||
or None,
|
or None,
|
||||||
"iam_instance_profile_arn": self._get_param("IamInstanceProfile.Arn")
|
"iam_instance_profile_arn": self._get_param("IamInstanceProfile.Arn")
|
||||||
or None,
|
or None,
|
||||||
|
"monitoring_state": "enabled"
|
||||||
|
if self._get_param("Monitoring.Enabled") == "true"
|
||||||
|
else "disabled",
|
||||||
}
|
}
|
||||||
if len(kwargs["nics"]) and kwargs["subnet_id"]:
|
if len(kwargs["nics"]) and kwargs["subnet_id"]:
|
||||||
raise InvalidParameterCombination(
|
raise InvalidParameterCombination(
|
||||||
@ -472,7 +475,7 @@ EC2_RUN_INSTANCES = """<RunInstancesResponse xmlns="http://ec2.amazonaws.com/doc
|
|||||||
<tenancy>default</tenancy>
|
<tenancy>default</tenancy>
|
||||||
</placement>
|
</placement>
|
||||||
<monitoring>
|
<monitoring>
|
||||||
<state>enabled</state>
|
<state> {{ instance.monitoring_state }} </state>
|
||||||
</monitoring>
|
</monitoring>
|
||||||
{% if instance.subnet_id %}
|
{% if instance.subnet_id %}
|
||||||
<subnetId>{{ instance.subnet_id }}</subnetId>
|
<subnetId>{{ instance.subnet_id }}</subnetId>
|
||||||
@ -632,7 +635,7 @@ EC2_DESCRIBE_INSTANCES = """<DescribeInstancesResponse xmlns="http://ec2.amazona
|
|||||||
<platform>{{ instance.platform }}</platform>
|
<platform>{{ instance.platform }}</platform>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<monitoring>
|
<monitoring>
|
||||||
<state>disabled</state>
|
<state>{{ instance.monitoring_state }}</state>
|
||||||
</monitoring>
|
</monitoring>
|
||||||
{% if instance.subnet_id %}
|
{% if instance.subnet_id %}
|
||||||
<subnetId>{{ instance.subnet_id }}</subnetId>
|
<subnetId>{{ instance.subnet_id }}</subnetId>
|
||||||
|
@ -2664,3 +2664,35 @@ def test_run_multiple_instances_with_single_nic_template():
|
|||||||
instance_1_ip = enis[1]["PrivateIpAddresses"][0]["PrivateIpAddress"]
|
instance_1_ip = enis[1]["PrivateIpAddresses"][0]["PrivateIpAddress"]
|
||||||
|
|
||||||
assert instance_0_ip != instance_1_ip
|
assert instance_0_ip != instance_1_ip
|
||||||
|
|
||||||
|
|
||||||
|
@mock_ec2
|
||||||
|
def test_describe_instance_without_enhanced_monitoring():
|
||||||
|
conn = boto3.client("ec2", region_name="us-west-1")
|
||||||
|
|
||||||
|
instance = conn.run_instances(
|
||||||
|
ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1, Monitoring={"Enabled": True}
|
||||||
|
)
|
||||||
|
assert instance["Instances"][0]["Monitoring"] == {"State": "enabled"}
|
||||||
|
|
||||||
|
result = conn.describe_instances(
|
||||||
|
InstanceIds=[instance["Instances"][0]["InstanceId"]]
|
||||||
|
)["Reservations"][0]["Instances"]
|
||||||
|
|
||||||
|
assert result[0]["Monitoring"] == {"State": "enabled"}
|
||||||
|
|
||||||
|
|
||||||
|
@mock_ec2
|
||||||
|
def test_describe_instance_with_enhanced_monitoring():
|
||||||
|
conn = boto3.client("ec2", region_name="us-west-1")
|
||||||
|
|
||||||
|
instance = conn.run_instances(
|
||||||
|
ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1, Monitoring={"Enabled": False}
|
||||||
|
)
|
||||||
|
assert instance["Instances"][0]["Monitoring"] == {"State": "disabled"}
|
||||||
|
|
||||||
|
result = conn.describe_instances(
|
||||||
|
InstanceIds=[instance["Instances"][0]["InstanceId"]]
|
||||||
|
)["Reservations"][0]["Instances"]
|
||||||
|
|
||||||
|
assert result[0]["Monitoring"] == {"State": "disabled"}
|
||||||
|
Loading…
Reference in New Issue
Block a user