iam_server_certificate_facts: list all certs

If a server name isn't passed, retrieve all server certificates by
default. Change return value to a dict with the server_cert_name being
the key.
pull/18777/head
Allen Sanabria 8 years ago committed by Matt Clay
parent f5fd2a418f
commit 885bdf3a4e

@ -94,8 +94,8 @@ except ImportError:
HAS_BOTO3 = False
def get_server_cert(iam, name=None):
"""Retrieve the attributes of a server certificate if it exists
def get_server_certs(iam, name=None):
"""Retrieve the attributes of a server certificate if it exists or all certs.
Args:
iam (botocore.client.IAM): The boto3 iam instance.
@ -107,41 +107,46 @@ def get_server_cert(iam, name=None):
>>> iam = boto3.client('iam')
>>> name = "server-cert-name"
>>> results = get_server_cert(iam, name)
[
{
"upload_date": "2015-04-25T00:36:40+00:00",
"server_certificate_id": "ADWAJXWTZAXIPIMQHMJPO",
"certificate_body": "-----BEGIN CERTIFICATE-----\nbunch of random data\n-----END CERTIFICATE-----",
"server_certificate_name": "server-cert-name",
"expiration": "2017-06-15T12:00:00+00:00",
"path": "/",
"arn": "arn:aws:iam::911277865346:server-certificate/server-cert-name"
}
]
{
"upload_date": "2015-04-25T00:36:40+00:00",
"server_certificate_id": "ADWAJXWTZAXIPIMQHMJPO",
"certificate_body": "-----BEGIN CERTIFICATE-----\nbunch of random data\n-----END CERTIFICATE-----",
"server_certificate_name": "server-cert-name",
"expiration": "2017-06-15T12:00:00+00:00",
"path": "/",
"arn": "arn:aws:iam::911277865346:server-certificate/server-cert-name"
}
"""
results = []
results = dict()
try:
server_cert = iam.get_server_certificate(ServerCertificateName=name)['ServerCertificate']
cert_md = server_cert['ServerCertificateMetadata']
cert_data = {
'certificate_body': server_cert['CertificateBody'],
'server_certificate_id': cert_md['ServerCertificateId'],
'server_certificate_name': cert_md['ServerCertificateName'],
'arn': cert_md['Arn'],
'path': cert_md['Path'],
'expiration': cert_md['Expiration'].isoformat(),
'upload_date': cert_md['UploadDate'].isoformat(),
}
results.append(cert_data)
if name:
server_certs = [iam.get_server_certificate(ServerCertificateName=name)['ServerCertificate']]
else:
server_certs = iam.list_server_certificates()['ServerCertificateMetadataList']
for server_cert in server_certs:
if not name:
server_cert = iam.get_server_certificate(ServerCertificateName=server_cert['ServerCertificateName'])['ServerCertificate']
cert_md = server_cert['ServerCertificateMetadata']
results[cert_md['ServerCertificateName']] = {
'certificate_body': server_cert['CertificateBody'],
'server_certificate_id': cert_md['ServerCertificateId'],
'server_certificate_name': cert_md['ServerCertificateName'],
'arn': cert_md['Arn'],
'path': cert_md['Path'],
'expiration': cert_md['Expiration'].isoformat(),
'upload_date': cert_md['UploadDate'].isoformat(),
}
except botocore.exceptions.ClientError:
pass
return results
def main():
argument_spec = ec2_argument_spec()
argument_spec.update(dict(
name=dict(required=True, type='str'),
name=dict(type='str'),
))
module = AnsibleModule(argument_spec=argument_spec,)

Loading…
Cancel
Save