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.
This commit is contained in:
parent
4615a6cc76
commit
f36ec115fc
1 changed files with 33 additions and 28 deletions
|
@ -94,8 +94,8 @@ except ImportError:
|
||||||
HAS_BOTO3 = False
|
HAS_BOTO3 = False
|
||||||
|
|
||||||
|
|
||||||
def get_server_cert(iam, name=None):
|
def get_server_certs(iam, name=None):
|
||||||
"""Retrieve the attributes of a server certificate if it exists
|
"""Retrieve the attributes of a server certificate if it exists or all certs.
|
||||||
Args:
|
Args:
|
||||||
iam (botocore.client.IAM): The boto3 iam instance.
|
iam (botocore.client.IAM): The boto3 iam instance.
|
||||||
|
|
||||||
|
@ -107,41 +107,46 @@ def get_server_cert(iam, name=None):
|
||||||
>>> iam = boto3.client('iam')
|
>>> iam = boto3.client('iam')
|
||||||
>>> name = "server-cert-name"
|
>>> name = "server-cert-name"
|
||||||
>>> results = get_server_cert(iam, name)
|
>>> results = get_server_cert(iam, name)
|
||||||
[
|
{
|
||||||
{
|
"upload_date": "2015-04-25T00:36:40+00:00",
|
||||||
"upload_date": "2015-04-25T00:36:40+00:00",
|
"server_certificate_id": "ADWAJXWTZAXIPIMQHMJPO",
|
||||||
"server_certificate_id": "ADWAJXWTZAXIPIMQHMJPO",
|
"certificate_body": "-----BEGIN CERTIFICATE-----\nbunch of random data\n-----END CERTIFICATE-----",
|
||||||
"certificate_body": "-----BEGIN CERTIFICATE-----\nbunch of random data\n-----END CERTIFICATE-----",
|
"server_certificate_name": "server-cert-name",
|
||||||
"server_certificate_name": "server-cert-name",
|
"expiration": "2017-06-15T12:00:00+00:00",
|
||||||
"expiration": "2017-06-15T12:00:00+00:00",
|
"path": "/",
|
||||||
"path": "/",
|
"arn": "arn:aws:iam::911277865346:server-certificate/server-cert-name"
|
||||||
"arn": "arn:aws:iam::911277865346:server-certificate/server-cert-name"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
"""
|
|
||||||
results = []
|
|
||||||
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)
|
"""
|
||||||
|
results = dict()
|
||||||
|
try:
|
||||||
|
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:
|
except botocore.exceptions.ClientError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
argument_spec = ec2_argument_spec()
|
argument_spec = ec2_argument_spec()
|
||||||
argument_spec.update(dict(
|
argument_spec.update(dict(
|
||||||
name=dict(required=True, type='str'),
|
name=dict(type='str'),
|
||||||
))
|
))
|
||||||
|
|
||||||
module = AnsibleModule(argument_spec=argument_spec,)
|
module = AnsibleModule(argument_spec=argument_spec,)
|
||||||
|
|
Loading…
Reference in a new issue