From 38d2c752c7370477cba16ea3b47c66fea755de46 Mon Sep 17 00:00:00 2001 From: yufangzhang Date: Wed, 20 Jul 2016 09:44:00 +0100 Subject: [PATCH] Refactor code for unittest --- bootstrap_cfn/fab_tasks.py | 24 ++++-------------------- bootstrap_cfn/r53.py | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/bootstrap_cfn/fab_tasks.py b/bootstrap_cfn/fab_tasks.py index 05bc11a..03891d1 100755 --- a/bootstrap_cfn/fab_tasks.py +++ b/bootstrap_cfn/fab_tasks.py @@ -397,25 +397,26 @@ def set_stack_name(): """ # create a stack id + r53_conn = get_connection(R53) + zone_name = get_zone_name() + zone_id = get_zone_id() stack_suffix = uuid.uuid4().__str__()[-8:] if hasattr(env, 'tag'): if env.tag == 'active': raise ActiveTagExistConflictError(stack_suffix) - elif hastag(env.tag): + elif r53_conn.hastag(zone_name, zone_id, get_tag_record_name(env.tag)): raise TagRecordExistConflictError(env.tag) else: stack_tag = env.tag else: stack_tag = stack_suffix env.tag = stack_tag - zone_id = get_zone_id() record = "{}.{}".format(get_tag_record_name(stack_tag), get_zone_name()) logger.info("fab_tasks::set_stack_name: " "Creating stack suffix {} " "for record '{}' " "in zone id '{}'...".format(stack_suffix, record, zone_id)) # Let DNS update DNSServerError propogate - r53_conn = get_connection(R53) try: r53_conn.update_dns_record(zone_id, record, 'TXT', '"{0}"'.format(stack_suffix)) env.stack_name = "{0}-{1}".format(get_legacy_name(), stack_suffix) @@ -424,22 +425,6 @@ def set_stack_name(): return env.stack_name -def hastag(stack_tag): - """ - Check if stack_tag is in use - Args: - stack_tag: the tag of stack - Returns: - String if stack exists - None if not. - """ - r53_conn = get_connection(R53) - zone_id = get_zone_id() - record_name = get_tag_record_name(stack_tag) - hasrecord = r53_conn.get_record(get_zone_name(), zone_id, record_name, 'TXT') - return hasrecord - - def get_zone_name(): zone_name = get_basic_config().get('master_zone', None) if not zone_name: @@ -552,7 +537,6 @@ def cfn_delete(force=False, pre_delete_callbacks=None): stack_id = stack_name.split('-')[-1] zone_name = get_zone_name() zone_id = r53_conn.get_hosted_zone_id(zone_name) - elb = get_first_public_elb() if hasattr(env, "tag") and env.tag != 'active': # delete inactive stack stack_tag = env.tag diff --git a/bootstrap_cfn/r53.py b/bootstrap_cfn/r53.py index 27b2c67..9b5a292 100644 --- a/bootstrap_cfn/r53.py +++ b/bootstrap_cfn/r53.py @@ -162,3 +162,17 @@ def get_full_record(self, zone_name, zone_id, record_name, record_type): if rr.type == record_type and rr.name == record_fqdn: return rr return None + + def hastag(self, zone_name, zone_id, record_name): + """ + Check if stack_tag is in use + Args: + zone_name: + zone_id: + record_name: + Returns: + String if stack exists + None if not. + """ + hasrecord = self.get_record(zone_name, zone_id, record_name, 'TXT') + return hasrecord