From 2b5e0639855db44d5d1fbf96d7e244dc1930f4e0 Mon Sep 17 00:00:00 2001 From: Refael Ackermann Date: Thu, 12 Jul 2018 15:12:47 -0400 Subject: [PATCH] ansible: make code compatible with python3 (3.6) and `flake8` styled --- ansible/plugins/inventory/nodejs_yaml.py | 32 ++++++++++-------------- ansible/plugins/library/ssh_config.py | 6 +++-- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/ansible/plugins/inventory/nodejs_yaml.py b/ansible/plugins/inventory/nodejs_yaml.py index eb5aff917..b3075e7ad 100755 --- a/ansible/plugins/inventory/nodejs_yaml.py +++ b/ansible/plugins/inventory/nodejs_yaml.py @@ -27,14 +27,9 @@ import configparser except ImportError: import ConfigParser as configparser -try: - from itertools import ifilter -except ImportError: - from itertools import filter as ifilter import json + import yaml -import os -import sys valid = { @@ -86,7 +81,7 @@ def main(): config.read('ansible.cfg') for host_types in hosts['hosts']: - for host_type, providers in host_types.iteritems(): + for host_type, providers in host_types.items(): export[host_type] = {} export[host_type]['hosts'] = [] @@ -96,8 +91,8 @@ def main(): } for provider in providers: - for provider_name, hosts in provider.iteritems(): - for host, metadata in hosts.iteritems(): + for provider_name, hosts in provider.items(): + for host, metadata in hosts.items(): # some hosts have metadata appended to provider # which requires underscore @@ -111,9 +106,9 @@ def main(): try: parsed_host = parse_host(hostname) - for k, v in parsed_host.iteritems(): + for k, v in parsed_host.items(): c.update({k: v[0] if type(v) is dict else v}) - except Exception, e: + except Exception as e: raise Exception('Failed to parse host: %s' % e) c.update({'ansible_host': metadata['ip']}) @@ -135,13 +130,13 @@ def main(): c.update({'vs': metadata['vs']}) # add specific options from config - for option in ifilter(lambda s: s.startswith('hosts:'), - config.sections()): - # remove `hosts:` - if option[6:] in hostname: - for o in config.items(option): - # configparser returns tuples of key, value - c.update({o[0]: o[1]}) + for section in filter( + lambda s: s.startswith('hosts:') and s[6:] in hostname, + config.sections() + ): + for k, v in config.items(section, raw=True): + # configparser returns tuples of key, value + c.update({k: v}) export['_meta']['hostvars'][hostname] = {} export['_meta']['hostvars'][hostname].update(c) @@ -175,7 +170,6 @@ def has_metadata(info): metadata by underscore. Not used anywhere at the moment for anything other than descriptiveness""" - param = dict() metadata = info.split('_', 1) try: diff --git a/ansible/plugins/library/ssh_config.py b/ansible/plugins/library/ssh_config.py index e69a3e0b6..55492968d 100755 --- a/ansible/plugins/library/ssh_config.py +++ b/ansible/plugins/library/ssh_config.py @@ -22,11 +22,13 @@ # IN THE SOFTWARE. # -from ansible.module_utils.basic import * -from jinja2 import Environment, Template, filters import os import re +from ansible.module_utils.basic import AnsibleModule +from jinja2 import Environment + + pre_match = '# begin: node.js template' post_match = '# end: node.js template' match = re.compile(r'^' + re.escape(pre_match) + '(.*)' + re.escape(post_match),