From 06e11411064e0acb944465ae6805b47192e91c25 Mon Sep 17 00:00:00 2001 From: jctanner Date: Wed, 9 Nov 2016 13:46:18 -0500 Subject: [PATCH] replace type() with isinstance() (#5541) Replace all use of type() with isintance() Addresses https://github.com/ansible/ansible/issues/18310 --- lib/ansible/modules/cloud/amazon/ec2.py | 14 +++++++------- .../modules/cloud/amazon/rds_param_group.py | 2 +- lib/ansible/modules/cloud/amazon/route53.py | 4 ++-- lib/ansible/modules/cloud/azure/azure.py | 2 +- lib/ansible/modules/cloud/docker/_docker.py | 2 +- lib/ansible/modules/cloud/openstack/os_server.py | 8 ++++---- .../modules/utilities/logic/async_wrapper.py | 2 +- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/lib/ansible/modules/cloud/amazon/ec2.py b/lib/ansible/modules/cloud/amazon/ec2.py index a773561b1c..6c5607ca1d 100755 --- a/lib/ansible/modules/cloud/amazon/ec2.py +++ b/lib/ansible/modules/cloud/amazon/ec2.py @@ -612,7 +612,7 @@ def find_running_instances_by_count_tag(module, ec2, count_tag, zone=None): def _set_none_to_blank(dictionary): result = dictionary for k in result.iterkeys(): - if type(result[k]) == dict: + if isinstance(result[k], dict): result[k] = _set_none_to_blank(result[k]) elif not result[k]: result[k] = "" @@ -626,27 +626,27 @@ def get_reservations(module, ec2, tags=None, state=None, zone=None): if tags is not None: - if type(tags) is str: + if isinstance(tags, str): try: tags = literal_eval(tags) except: pass # if string, we only care that a tag of that name exists - if type(tags) is str: + if isinstance(tags, str): filters.update({"tag-key": tags}) # if list, append each item to filters - if type(tags) is list: + if isinstance(tags, list): for x in tags: - if type(x) is dict: + if isinstance(x, dict): x = _set_none_to_blank(x) filters.update(dict(("tag:"+tn, tv) for (tn,tv) in x.iteritems())) else: filters.update({"tag-key": x}) # if dict, add the key and value to the filter - if type(tags) is dict: + if isinstance(tags, dict): tags = _set_none_to_blank(tags) filters.update(dict(("tag:"+tn, tv) for (tn,tv) in tags.iteritems())) @@ -906,7 +906,7 @@ def enforce_count(module, ec2, vpc): # ensure all instances are dictionaries all_instances = [] for inst in instances: - if type(inst) is not dict: + if not isinstance(inst, dict): inst = get_instance_info(inst) all_instances.append(inst) diff --git a/lib/ansible/modules/cloud/amazon/rds_param_group.py b/lib/ansible/modules/cloud/amazon/rds_param_group.py index 6ec938cb77..566fcfb415 100644 --- a/lib/ansible/modules/cloud/amazon/rds_param_group.py +++ b/lib/ansible/modules/cloud/amazon/rds_param_group.py @@ -159,7 +159,7 @@ def set_parameter(param, value, immediate): # may be based on a variable (ie. {foo*3/4}) so # just pass it on through to boto converted_value = str(value) - elif type(value) == bool: + elif isinstance(value, bool): converted_value = 1 if value else 0 else: converted_value = int(value) diff --git a/lib/ansible/modules/cloud/amazon/route53.py b/lib/ansible/modules/cloud/amazon/route53.py index 4068a3a7dd..49c1dd4506 100644 --- a/lib/ansible/modules/cloud/amazon/route53.py +++ b/lib/ansible/modules/cloud/amazon/route53.py @@ -450,10 +450,10 @@ def main(): value_list = () - if type(value_in) is str: + if isinstance(value_in, str): if value_in: value_list = sorted([s.strip() for s in value_in.split(',')]) - elif type(value_in) is list: + elif isinstance(value_in, list): value_list = sorted(value_in) if zone_in[-1:] != '.': diff --git a/lib/ansible/modules/cloud/azure/azure.py b/lib/ansible/modules/cloud/azure/azure.py index 54ed5a2dd7..f1a06f9e17 100644 --- a/lib/ansible/modules/cloud/azure/azure.py +++ b/lib/ansible/modules/cloud/azure/azure.py @@ -602,7 +602,7 @@ class Wrapper(object): raise AttributeError(name) def _wrap(self, func, args, kwargs): - if type(func) == MethodType: + if isinstance(func, MethodType): result = self._handle_temporary_redirects(lambda: func(*args, **kwargs)) else: result = self._handle_temporary_redirects(lambda: func(self.other, *args, **kwargs)) diff --git a/lib/ansible/modules/cloud/docker/_docker.py b/lib/ansible/modules/cloud/docker/_docker.py index a966fd0c84..40689d4cb9 100644 --- a/lib/ansible/modules/cloud/docker/_docker.py +++ b/lib/ansible/modules/cloud/docker/_docker.py @@ -1307,7 +1307,7 @@ class DockerManager(object): for name, value in self.module.params.get('labels').iteritems(): expected_labels[name] = str(value) - if type(container['Config']['Labels']) is dict: + if isinstance(container['Config']['Labels'], dict): actual_labels = container['Config']['Labels'] else: for container_label in container['Config']['Labels'] or []: diff --git a/lib/ansible/modules/cloud/openstack/os_server.py b/lib/ansible/modules/cloud/openstack/os_server.py index 3f712f3422..4acd6c8c3d 100644 --- a/lib/ansible/modules/cloud/openstack/os_server.py +++ b/lib/ansible/modules/cloud/openstack/os_server.py @@ -388,7 +388,7 @@ def _exit_hostvars(module, cloud, server, changed=True): def _parse_nics(nics): for net in nics: - if type(net) == str: + if isinstance(net, str): for nic in net.split(','): yield dict((nic.split('='),)) else: @@ -398,11 +398,11 @@ def _network_args(module, cloud): args = [] nics = module.params['nics'] - if type(nics) != list: + if not isinstance(nics, list): module.fail_json(msg='The \'nics\' parameter must be a list.') for net in _parse_nics(nics): - if type(net) != dict: + if not isinstance(net, dict): module.fail_json( msg='Each entry in the \'nics\' parameter must be a dict.') @@ -459,7 +459,7 @@ def _create_server(module, cloud): nics = _network_args(module, cloud) - if type(module.params['meta']) is str: + if isinstance(module.params['meta'], str): metas = {} for kv_str in module.params['meta'].split(","): k, v = kv_str.split("=") diff --git a/lib/ansible/modules/utilities/logic/async_wrapper.py b/lib/ansible/modules/utilities/logic/async_wrapper.py index b2af4067f2..0d8c41ac32 100644 --- a/lib/ansible/modules/utilities/logic/async_wrapper.py +++ b/lib/ansible/modules/utilities/logic/async_wrapper.py @@ -143,7 +143,7 @@ def _run_module(wrapped_cmd, jid, job_path): if json_warnings: # merge JSON junk warnings with any existing module warnings module_warnings = result.get('warnings', []) - if type(module_warnings) is not list: + if not isinstance(module_warnings, list): module_warnings = [module_warnings] module_warnings.extend(json_warnings) result['warnings'] = module_warnings