modules: elb_target_group_facts: added targets_health_description (#53902)
* MODULE: elb_target_group_facts add targets_health * MODULE: elb_target_group_facts remove trailing whitespace * MODULE: elb_target_group_facts version_added for collect_targets_health * MODULE: elb_target_group_facts fix sample case * MODULE: elb_target_group_facts improve targets_health_description documentation
This commit is contained in:
parent
ec0babe631
commit
9308b2c8e0
1 changed files with 56 additions and 1 deletions
|
@ -32,6 +32,13 @@ options:
|
|||
description:
|
||||
- The names of the target groups.
|
||||
required: false
|
||||
collect_targets_health:
|
||||
description:
|
||||
- When set to "yes", output contains targets health description
|
||||
required: false
|
||||
default: no
|
||||
type: bool
|
||||
version_added: 2.8
|
||||
|
||||
extends_documentation_fragment:
|
||||
- aws
|
||||
|
@ -146,6 +153,41 @@ target_groups:
|
|||
returned: always
|
||||
type: str
|
||||
sample: "arn:aws:elasticloadbalancing:ap-southeast-2:01234567890:targetgroup/mytargetgroup/aabbccddee0044332211"
|
||||
targets_health_description:
|
||||
description: Targets health description.
|
||||
returned: when collect_targets_health is enabled
|
||||
type: complex
|
||||
contains:
|
||||
health_check_port:
|
||||
description: The port to check target health.
|
||||
returned: always
|
||||
type: string
|
||||
sample: '80'
|
||||
target:
|
||||
description: The target metadata.
|
||||
returned: always
|
||||
type: complex
|
||||
contains:
|
||||
id:
|
||||
description: The ID of the target.
|
||||
returned: always
|
||||
type: string
|
||||
sample: i-0123456789
|
||||
port:
|
||||
description: The port to use to connect with the target.
|
||||
returned: always
|
||||
type: int
|
||||
sample: 80
|
||||
target_health:
|
||||
description: The target health status.
|
||||
returned: always
|
||||
type: complex
|
||||
contains:
|
||||
state:
|
||||
description: The state of the target health.
|
||||
returned: always
|
||||
type: string
|
||||
sample: healthy
|
||||
target_group_name:
|
||||
description: The name of the target group.
|
||||
returned: always
|
||||
|
@ -197,11 +239,20 @@ def get_target_group_tags(connection, module, target_group_arn):
|
|||
module.fail_json(msg=e.message, exception=traceback.format_exc(), **camel_dict_to_snake_dict(e.response))
|
||||
|
||||
|
||||
def get_target_group_targets_health(connection, module, target_group_arn):
|
||||
|
||||
try:
|
||||
return connection.describe_target_health(TargetGroupArn=target_group_arn)['TargetHealthDescriptions']
|
||||
except ClientError as e:
|
||||
module.fail_json(msg=e.message, exception=traceback.format_exc(), **camel_dict_to_snake_dict(e.response))
|
||||
|
||||
|
||||
def list_target_groups(connection, module):
|
||||
|
||||
load_balancer_arn = module.params.get("load_balancer_arn")
|
||||
target_group_arns = module.params.get("target_group_arns")
|
||||
names = module.params.get("names")
|
||||
collect_targets_health = module.params.get("collect_targets_health")
|
||||
|
||||
try:
|
||||
target_group_paginator = connection.get_paginator('describe_target_groups')
|
||||
|
@ -231,6 +282,9 @@ def list_target_groups(connection, module):
|
|||
# Get tags for each target group
|
||||
for snaked_target_group in snaked_target_groups:
|
||||
snaked_target_group['tags'] = get_target_group_tags(connection, module, snaked_target_group['target_group_arn'])
|
||||
if collect_targets_health:
|
||||
snaked_target_group['targets_health_description'] = [camel_dict_to_snake_dict(
|
||||
target) for target in get_target_group_targets_health(connection, module, snaked_target_group['target_group_arn'])]
|
||||
|
||||
module.exit_json(target_groups=snaked_target_groups)
|
||||
|
||||
|
@ -242,7 +296,8 @@ def main():
|
|||
dict(
|
||||
load_balancer_arn=dict(type='str'),
|
||||
target_group_arns=dict(type='list'),
|
||||
names=dict(type='list')
|
||||
names=dict(type='list'),
|
||||
collect_targets_health=dict(default=False, type='bool', required=False)
|
||||
)
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in a new issue