From ef4809bf73c7777799c57711bdfbb92481973a63 Mon Sep 17 00:00:00 2001 From: russellballestrini Date: Mon, 15 May 2017 14:27:50 -0400 Subject: [PATCH] refresh db_instances tool modified: builders.py modified: plugins/refresh.py --- botoform/builders.py | 6 ++++++ botoform/plugins/refresh.py | 15 ++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/botoform/builders.py b/botoform/builders.py index 429c0ed..4d17bbe 100644 --- a/botoform/builders.py +++ b/botoform/builders.py @@ -752,9 +752,15 @@ def finish_instance_roles(self, instance_role_cfg, instances=None): def db_instances(self, db_instance_cfg): """Build RDS DB Instances.""" + existing_rds_names = self.evpc.rds.get_related_db_ids() for rds_name, db_cfg in db_instance_cfg.items(): + if rds_name in existing_rds_names: + msg = 'skipping RDS db_instance: {} (it already exists)' + self.log.emit(msg.format(rds_name), 'debug') + continue + self.log.emit('creating {} RDS db_instance ...'.format(rds_name)) # make list of security group ids. diff --git a/botoform/plugins/refresh.py b/botoform/plugins/refresh.py index 4b8a415..cf03192 100644 --- a/botoform/plugins/refresh.py +++ b/botoform/plugins/refresh.py @@ -59,7 +59,7 @@ def instance_roles(args, evpc): def load_balancers(args, evpc): """ - Refresh elb Load_balancers. + Refresh ELB load_balancers. :param args: The parsed arguments and flags from the CLI. :param evpc: An instance of :meth:`botoform.enriched.vpc.EnrichedVPC`. @@ -69,6 +69,18 @@ def load_balancers(args, evpc): builder = get_builder_for_existing_vpc(evpc, args) builder.load_balancers(builder.config.get('load_balancers', no_cfg)) +def db_instances(args, evpc): + """ + Refresh RDS db_instances. + + :param args: The parsed arguments and flags from the CLI. + :param evpc: An instance of :meth:`botoform.enriched.vpc.EnrichedVPC`. + + :returns: None + """ + builder = get_builder_for_existing_vpc(evpc, args) + builder.db_instances(builder.config.get('db_instances', no_cfg)) + def private_zone(args, evpc): """ Refresh private zone with new records / values. @@ -135,6 +147,7 @@ def security_groups(args, evpc): 'instance_roles' : instance_roles, 'security_groups' : security_groups, 'load_balancers' : load_balancers, + 'db_instances' : db_instances, } class Refresh(object):