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() @celery.task()
def sync_source_destination(): 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 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") current_app.logger.debug("Syncing source and destination")
for dst in destinations_service.get_all(): 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, sources_service.create(label=dst.label,
plugin_name='aws-source', plugin_name=destination_plugin.sync_as_source_name,
options=dst.options, options=dst.options,
description=dst.description) description=dst.description)
current_app.logger.info("Source: %s added", dst.label) current_app.logger.info("Source: %s added", dst.label)

View File

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

View File

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