Replace .iteritems() with six.iteritems()

Replace .iteritems() with six.iteritems() everywhere except in
module_utils (because there's no 'six' on the remote host).  And except
in lib/ansible/galaxy/data/metadata_template.j2, because I'm not sure
six is available there.
This commit is contained in:
Marius Gedminas
2015-09-03 09:23:27 +03:00
parent 9e1bc434c7
commit 823677b490
28 changed files with 81 additions and 41 deletions

View File

@@ -24,6 +24,8 @@ import termios
import traceback
import textwrap
from six import iteritems
from ansible import constants as C
from ansible.errors import AnsibleError, AnsibleOptionsError
from ansible.plugins import module_loader
@@ -101,7 +103,7 @@ class DocCLI(CLI):
if doc is not None:
all_keys = []
for (k,v) in doc['options'].iteritems():
for (k,v) in iteritems(doc['options']):
all_keys.append(k)
all_keys = sorted(all_keys)
doc['option_keys'] = all_keys

View File

@@ -21,6 +21,8 @@ __metaclass__ = type
import fnmatch
from six import iteritems
from ansible import constants as C
from ansible.errors import *
@@ -322,7 +324,7 @@ class PlayIterator:
self._host_states[host.name] = s
def get_failed_hosts(self):
return dict((host, True) for (host, state) in self._host_states.iteritems() if state.run_state == self.ITERATING_COMPLETE and state.fail_state != self.FAILED_NONE)
return dict((host, True) for (host, state) in iteritems(self._host_states) if state.run_state == self.ITERATING_COMPLETE and state.fail_state != self.FAILED_NONE)
def get_original_task(self, host, task):
'''

View File

@@ -20,6 +20,8 @@ from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
from six.moves import queue
from six import iteritems
import multiprocessing
import os
import signal
@@ -157,7 +159,7 @@ class ResultProcess(multiprocessing.Process):
# if this task is registering facts, do that now
item = result_item.get('item', None)
if result._task.action in ('set_fact', 'include_vars'):
for (key, value) in result_item['ansible_facts'].iteritems():
for (key, value) in iteritems(result_item['ansible_facts']):
self._send_result(('set_host_var', result._host, result._task, item, key, value))
else:
self._send_result(('set_host_facts', result._host, result._task, item, result_item['ansible_facts']))

View File

@@ -25,6 +25,8 @@ import subprocess
import sys
import time
from six import iteritems
from ansible import constants as C
from ansible.errors import AnsibleError, AnsibleParserError, AnsibleUndefinedVariable
from ansible.playbook.conditional import Conditional
@@ -289,7 +291,7 @@ class TaskExecutor:
# And filter out any fields which were set to default(omit), and got the omit token value
omit_token = variables.get('omit')
if omit_token is not None:
self._task.args = dict(filter(lambda x: x[1] != omit_token, self._task.args.iteritems()))
self._task.args = dict(filter(lambda x: x[1] != omit_token, iteritems(self._task.args)))
# Read some values from the task, so that we can modify them if need be
retries = self._task.retries

View File

@@ -22,9 +22,10 @@ __metaclass__ = type
import os
import subprocess
import sys
from collections import Mapping
from six import iteritems
from ansible import constants as C
from ansible.errors import *
from ansible.inventory.host import Host
@@ -122,7 +123,7 @@ class InventoryScript:
raise AnsibleError("You defined a group \"%s\" with bad "
"data for variables:\n %s" % (group_name, data))
for k, v in data['vars'].iteritems():
for k, v in iteritems(data['vars']):
if group.name == all.name:
all.set_variable(k, v)
else:

View File

@@ -25,6 +25,8 @@ import pipes
import random
import re
from six import iteritems
from ansible import constants as C
from ansible.errors import AnsibleError
from ansible.playbook.attribute import Attribute, FieldAttribute
@@ -308,7 +310,7 @@ class PlayContext(Base):
# finally, use the MAGIC_VARIABLE_MAPPING dictionary to update this
# connection info object with 'magic' variables from the variable list
for (attr, variable_names) in MAGIC_VARIABLE_MAPPING.iteritems():
for (attr, variable_names) in iteritems(MAGIC_VARIABLE_MAPPING):
for variable_name in variable_names:
if variable_name in variables:
setattr(new_info, attr, variables[variable_name])

View File

@@ -21,6 +21,8 @@ __metaclass__ = type
import os
from six import iteritems
from ansible.errors import AnsibleParserError
from ansible.parsing.splitter import split_args, parse_kv
from ansible.parsing.yaml.objects import AnsibleBaseYAMLObject, AnsibleMapping
@@ -95,7 +97,7 @@ class PlaybookInclude(Base, Conditional, Taggable):
if isinstance(ds, AnsibleBaseYAMLObject):
new_ds.ansible_pos = ds.ansible_pos
for (k,v) in ds.iteritems():
for (k,v) in iteritems(ds):
if k == 'include':
self._preprocess_include(ds, new_ds, k, v)
else:

View File

@@ -51,7 +51,7 @@ def hash_params(params):
return params
else:
s = set()
for k,v in params.iteritems():
for k,v in iteritems(params):
if isinstance(v, dict):
s.update((k, hash_params(v)))
elif isinstance(v, list):
@@ -105,7 +105,7 @@ class Role(Base, Become, Conditional, Taggable):
params['tags'] = role_include.tags
hashed_params = hash_params(params)
if role_include.role in play.ROLE_CACHE:
for (entry, role_obj) in play.ROLE_CACHE[role_include.role].iteritems():
for (entry, role_obj) in iteritems(play.ROLE_CACHE[role_include.role]):
if hashed_params == entry:
if parent_role:
role_obj.add_parent(parent_role)

View File

@@ -181,7 +181,7 @@ class RoleDefinition(Base, Become, Conditional, Taggable):
for (key, value) in iteritems(ds):
# use the list of FieldAttribute values to determine what is and is not
# an extra parameter for this role (or sub-class of this role)
if key not in [attr_name for (attr_name, attr_value) in self._get_base_attributes().iteritems()]:
if key not in [attr_name for (attr_name, attr_value) in iteritems(self._get_base_attributes())]:
# this key does not match a field attribute, so it must be a role param
role_params[key] = value
else:

View File

@@ -19,7 +19,7 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
from six import string_types
from six import iteritems, string_types
from ansible.errors import AnsibleError
@@ -118,7 +118,7 @@ class Task(Base, Conditional, Taggable, Become):
return ds
elif isinstance(ds, dict):
buf = ""
for (k,v) in ds.iteritems():
for (k,v) in iteritems(ds):
if k.startswith('_'):
continue
buf = buf + "%s=%s " % (k,v)
@@ -180,7 +180,7 @@ class Task(Base, Conditional, Taggable, Become):
else:
new_ds['vars'] = dict()
for (k,v) in ds.iteritems():
for (k,v) in iteritems(ds):
if k in ('action', 'local_action', 'args', 'connection') or k == action or k == 'shell':
# we don't want to re-assign these values, which were
# determined by the ModuleArgsParser() above

View File

@@ -18,6 +18,7 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
from six import iteritems
from ansible.errors import AnsibleError
from ansible.plugins.action import ActionBase
@@ -32,7 +33,7 @@ class ActionModule(ActionBase):
def run(self, tmp=None, task_vars=dict()):
facts = dict()
if self._task.args:
for (k, v) in self._task.args.iteritems():
for (k, v) in iteritems(self._task.args):
k = self._templar.template(k)
if not isidentifier(k):

View File

@@ -60,7 +60,7 @@ class FactCache(MutableMapping):
def copy(self):
""" Return a primitive copy of the keys and values from the cache. """
return dict([(k, v) for (k, v) in self.iteritems()])
return dict([(k, v) for (k, v) in iteritems(self)])
def keys(self):
return self._plugin.keys()

View File

@@ -39,6 +39,8 @@ import sys
from termios import tcflush, TCIFLUSH
from binascii import hexlify
from six import iteritems
from ansible import constants as C
from ansible.errors import AnsibleError, AnsibleConnectionFailure, AnsibleFileNotFound
from ansible.plugins.connections import ConnectionBase
@@ -306,8 +308,8 @@ class Connection(ConnectionBase):
def _any_keys_added(self):
added_any = False
for hostname, keys in self.ssh._host_keys.iteritems():
for keytype, key in keys.iteritems():
for hostname, keys in iteritems(self.ssh._host_keys):
for keytype, key in iteritems(keys):
added_this_time = getattr(key, '_added_by_ansible_this_time', False)
if added_this_time:
return True
@@ -327,18 +329,18 @@ class Connection(ConnectionBase):
f = open(filename, 'w')
for hostname, keys in self.ssh._host_keys.iteritems():
for hostname, keys in iteritems(self.ssh._host_keys):
for keytype, key in keys.iteritems():
for keytype, key in iteritems(keys):
# was f.write
added_this_time = getattr(key, '_added_by_ansible_this_time', False)
if not added_this_time:
f.write("%s %s %s\n" % (hostname, keytype, key.get_base64()))
for hostname, keys in self.ssh._host_keys.iteritems():
for hostname, keys in iteritems(self.ssh._host_keys):
for keytype, key in keys.iteritems():
for keytype, key in iteritems(keys):
added_this_time = getattr(key, '_added_by_ansible_this_time', False)
if added_this_time:
f.write("%s %s %s\n" % (hostname, keytype, key.get_base64()))

View File

@@ -38,6 +38,7 @@ import uuid
import yaml
from jinja2.filters import environmentfilter
from distutils.version import LooseVersion, StrictVersion
from six import iteritems
from ansible import errors
from ansible.parsing.yaml.dumper import AnsibleDumper
@@ -245,7 +246,7 @@ def combine(*terms, **kwargs):
if recursive:
return reduce(merge_hash, terms)
else:
return dict(itertools.chain(*map(dict.iteritems, terms)))
return dict(itertools.chain(*map(iteritems, terms)))
class FilterModule(object):
''' Ansible core jinja2 filters '''

View File

@@ -20,6 +20,8 @@ from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
from six.moves import queue as Queue
from six import iteritems
import time
from ansible import constants as C
@@ -207,7 +209,7 @@ class StrategyBase:
if task_result._task._role is not None and result[0] in ('host_task_ok', 'host_task_failed'):
# lookup the role in the ROLE_CACHE to make sure we're dealing
# with the correct object and mark it as executed
for (entry, role_obj) in iterator._play.ROLE_CACHE[task_result._task._role._role_name].iteritems():
for (entry, role_obj) in iteritems(iterator._play.ROLE_CACHE[task_result._task._role._role_name]):
if role_obj._uuid == task_result._task._role._uuid:
role_obj._had_task_run[host.name] = True
@@ -358,7 +360,7 @@ class StrategyBase:
groups[group_name] = []
groups[group_name].append(host)
for group_name, hosts in groups.iteritems():
for group_name, hosts in iteritems(groups):
new_group = self._inventory.get_group(group_name)
if not new_group:
# create the new group and add it to inventory

View File

@@ -19,6 +19,8 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
from six import iteritems
from ansible.errors import AnsibleError
from ansible.executor.play_iterator import PlayIterator
from ansible.playbook.block import Block
@@ -63,7 +65,7 @@ class StrategyModule(StrategyBase):
lowest_cur_block = len(iterator._blocks)
display.debug("counting tasks in each state of execution")
for (k, v) in host_tasks.iteritems():
for (k, v) in iteritems(host_tasks):
if v is None:
continue

View File

@@ -19,6 +19,7 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
from six import iteritems
from jinja2.utils import missing
__all__ = ['AnsibleJ2Vars']
@@ -46,7 +47,7 @@ class AnsibleJ2Vars:
self._extras = extras
self._locals = dict()
if isinstance(locals, dict):
for key, val in locals.iteritems():
for key, val in iteritems(locals):
if key[:2] == 'l_' and val is not missing:
self._locals[key[2:]] = val