Source code for idem_aws.exec.aws.ec2.key_pair
from typing import Dict
from typing import List
[docs]async def get(
hub,
ctx,
name,
resource_id: str = None,
filters: List[Dict[str, str]] = None,
) -> Dict:
"""Get a key_pair resource from AWS.
Supply one of the inputs as the filter to find a key pair. If more than one resource is found, the first resource
returned from AWS will be used. The function returns None when no resource is found.
Args:
name(str):
The name of the Idem state.
resource_id(str, Optional):
AWS key pair id to identify the resource.
filters(list[dict[str, str]], Optional):
One or more filters. For example: {"Name": "key-pair-id", "Values": [resource_id]}, A complete list of filters
can be found at https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_key_pairs
"""
result = dict(comment=[], ret=None, result=True)
ret = await hub.tool.aws.ec2.key_pair.search_raw(
ctx=ctx,
name=name,
resource_id=resource_id,
filters=filters,
)
if not ret["result"]:
if "InvalidKeyPair.NotFound" in str(ret["comment"]):
result["comment"].append(
hub.tool.aws.comment_utils.get_empty_comment(
resource_type="aws.ec2.key_pair", name=name
)
)
result["comment"] += list(ret["comment"])
return result
result["comment"] += list(ret["comment"])
result["result"] = False
return result
if not ret["ret"]["KeyPairs"]:
result["comment"].append(
hub.tool.aws.comment_utils.get_empty_comment(
resource_type="aws.ec2.key_pair", name=name
)
)
return result
if len(ret["ret"]["KeyPairs"]) > 1:
result["comment"].append(
hub.tool.aws.comment_utils.find_more_than_one(
resource_type="aws.ec2.key_pair", name=name
)
)
resource = ret["ret"]["KeyPairs"][0]
result["ret"] = hub.tool.aws.ec2.conversion_utils.convert_raw_key_pair_to_present(
raw_resource=resource
)
return result