From f1f201c234d91e186e56d4cc53fbb018d905c0a4 Mon Sep 17 00:00:00 2001 From: Max Rothman Date: Tue, 24 Nov 2015 14:26:17 -0500 Subject: [PATCH] Fix rds "promote" command never promoting Previously, the `promote` command in the `rds` module would always return OK and never actually promote an instance. This was because `promote_db_instance()` had its conditions backwards: if the instance had the `replication_source` attribute indicating that it **was** a replica, it would set `changed = False` and do nothing. If the instance **wasn't** a replica, it would attempt to run `boto.rds.promote_read_replica()`, which would always fail. --- cloud/amazon/rds.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cloud/amazon/rds.py b/cloud/amazon/rds.py index d8f5a2cea86..19f0bbe58d6 100644 --- a/cloud/amazon/rds.py +++ b/cloud/amazon/rds.py @@ -829,13 +829,17 @@ def promote_db_instance(module, conn): instance_name = module.params.get('instance_name') result = conn.get_db_instance(instance_name) + if not result: + module.fail_json(msg="DB Instance %s does not exist" % instance_name) + if result.get_data().get('replication_source'): - changed = False - else: try: result = conn.promote_read_replica(instance_name, **params) + changed = True except RDSException, e: module.fail_json(msg=e.message) + else: + changed = False if module.params.get('wait'): resource = await_resource(conn, result, 'available', module)