removing hardcoded rules, to give more flexibility into defining new source-destinations
This commit is contained in:
parent
d2e969b836
commit
f3d0536800
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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'
|
||||||
|
|
Loading…
Reference in New Issue