Fixing up some of the sync related code

This commit is contained in:
kevgliss
2015-08-03 13:51:27 -07:00
parent 0360ccc666
commit 7d169f7c4c
10 changed files with 66 additions and 42 deletions

View File

@ -19,17 +19,17 @@ def get_name_from_arn(arn):
return arn.split("/", 1)[1]
def upload_cert(account_number, cert, private_key, cert_chain=None):
def upload_cert(account_number, name, body, private_key, cert_chain=None):
"""
Upload a certificate to AWS
:param account_number:
:param cert:
:param name:
:param private_key:
:param cert_chain:
:return:
"""
return assume_service(account_number, 'iam').upload_server_cert(cert.name, str(cert.body), str(private_key),
return assume_service(account_number, 'iam').upload_server_cert(name, str(body), str(private_key),
cert_chain=str(cert_chain))
@ -57,7 +57,7 @@ def get_all_server_certs(account_number):
result = response['list_server_certificates_response']['list_server_certificates_result']
for cert in result['server_certificate_metadata_list']:
certs.append(cert)
certs.append(cert['arn'])
if result['is_truncated'] == 'true':
marker = result['marker']
@ -72,7 +72,7 @@ def get_cert_from_arn(arn):
:param arn:
:return:
"""
name = arn.split("/", 1)[1]
name = get_name_from_arn(arn)
account_number = arn.split(":")[4]
name = name.split("/")[-1]

View File

@ -13,7 +13,7 @@ from lemur.plugins import lemur_aws as aws
def find_value(name, options):
for o in options:
if o.get(name):
if o['name'] == name:
return o['value']
@ -41,8 +41,8 @@ class AWSDestinationPlugin(DestinationPlugin):
# 'port': {'type': 'int'}
# }
def upload(self, cert, private_key, cert_chain, options, **kwargs):
iam.upload_cert(find_value('accountNumber', options), cert, private_key, cert_chain=cert_chain)
def upload(self, name, body, private_key, cert_chain, options, **kwargs):
iam.upload_cert(find_value('accountNumber', options), name, body, private_key, cert_chain=cert_chain)
e = find_value('elb', options)
if e:
@ -68,14 +68,15 @@ class AWSSourcePlugin(SourcePlugin):
},
]
def get_certificates(self, **kwargs):
def get_certificates(self, options, **kwargs):
certs = []
arns = elb.get_all_server_certs(kwargs['account_number'])
arns = iam.get_all_server_certs(find_value('accountNumber', options))
for arn in arns:
cert_body = iam.get_cert_from_arn(arn)
cert_body, cert_chain = iam.get_cert_from_arn(arn)
cert_name = iam.get_name_from_arn(arn)
cert = dict(
public_certificate=cert_body,
intermediate_certificate=cert_chain,
name=cert_name
)
certs.append(cert)