removing hardcoded rules, to give more flexibility into defining new source-destinations

This commit is contained in:
Hossein Shafagh 2019-04-09 20:49:07 -07:00
parent d2e969b836
commit f3d0536800
3 changed files with 7 additions and 4 deletions

View File

@ -234,14 +234,15 @@ def sync_source(source):
@celery.task()
def sync_source_destination():
"""
This celery task will sync destination and source, to make sure all new destinations are also present in source.
This celery task will sync destination and source, to make sure all new destinations are also present as source.
Some destinations do not qualify as sources, and hence should be excluded from being added as sources
"""
current_app.logger.debug("Syncing source and destination")
for dst in destinations_service.get_all():
if dst.plugin_name == 'aws-destination' and not sources_service.get_by_label(dst.label):
destination_plugin = plugins.get(dst.plugin_name)
if destination_plugin.sync_as_source and not sources_service.get_by_label(dst.label):
sources_service.create(label=dst.label,
plugin_name='aws-source',
plugin_name=destination_plugin.sync_as_source_name,
options=dst.options,
description=dst.description)
current_app.logger.info("Source: %s added", dst.label)

View File

@ -13,6 +13,7 @@ class DestinationPlugin(Plugin):
type = 'destination'
requires_key = True
sync_as_source = False
sync_as_source_name = ''
def upload(self, name, body, private_key, cert_chain, options, **kwargs):
raise NotImplementedError

View File

@ -154,6 +154,8 @@ class AWSDestinationPlugin(DestinationPlugin):
slug = 'aws-destination'
description = 'Allow the uploading of certificates to AWS IAM'
version = aws.VERSION
sync_as_source = True
sync_as_source_name = 'aws-source'
author = 'Kevin Glisson'
author_url = 'https://github.com/netflix/lemur'
@ -195,7 +197,6 @@ class AWSSourcePlugin(SourcePlugin):
slug = 'aws-source'
description = 'Discovers all SSL certificates and ELB endpoints in an AWS account'
version = aws.VERSION
sync_as_source = True
author = 'Kevin Glisson'
author_url = 'https://github.com/netflix/lemur'