Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ansible
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
ansible
Commits
ce978745
Commit
ce978745
authored
Sep 02, 2015
by
Toshio Kuratomi
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #12226 from mgedmin/py3k
Replace .iteritems() with six.iteritems()
parents
9e1bc434
823677b4
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
81 additions
and
41 deletions
+81
-41
contrib/inventory/apache-libcloud.py
+2
-1
contrib/inventory/cobbler.py
+4
-2
contrib/inventory/collins.py
+3
-1
contrib/inventory/consul_io.py
+2
-1
contrib/inventory/nova.py
+2
-1
contrib/inventory/proxmox.py
+4
-1
contrib/inventory/rax.py
+3
-1
contrib/inventory/spacewalk.py
+5
-3
examples/scripts/yaml_to_ini.py
+2
-1
hacking/module_formatter.py
+2
-1
lib/ansible/cli/doc.py
+3
-1
lib/ansible/executor/play_iterator.py
+3
-1
lib/ansible/executor/process/result.py
+3
-1
lib/ansible/executor/task_executor.py
+3
-1
lib/ansible/inventory/script.py
+3
-2
lib/ansible/playbook/play_context.py
+3
-1
lib/ansible/playbook/playbook_include.py
+3
-1
lib/ansible/playbook/role/__init__.py
+2
-2
lib/ansible/playbook/role/definition.py
+1
-1
lib/ansible/playbook/task.py
+3
-3
lib/ansible/plugins/action/set_fact.py
+2
-1
lib/ansible/plugins/cache/__init__.py
+1
-1
lib/ansible/plugins/connections/paramiko_ssh.py
+8
-6
lib/ansible/plugins/filter/core.py
+2
-1
lib/ansible/plugins/strategies/__init__.py
+4
-2
lib/ansible/plugins/strategies/linear.py
+3
-1
lib/ansible/template/vars.py
+2
-1
test/units/vars/test_variable_manager.py
+3
-1
No files found.
contrib/inventory/apache-libcloud.py
View file @
ce978745
...
@@ -37,6 +37,7 @@ import re
...
@@ -37,6 +37,7 @@ import re
from
time
import
time
from
time
import
time
import
ConfigParser
import
ConfigParser
from
six
import
iteritems
from
libcloud.compute.types
import
Provider
from
libcloud.compute.types
import
Provider
from
libcloud.compute.providers
import
get_driver
from
libcloud.compute.providers
import
get_driver
import
libcloud.security
as
sec
import
libcloud.security
as
sec
...
@@ -268,7 +269,7 @@ class LibcloudInventory(object):
...
@@ -268,7 +269,7 @@ class LibcloudInventory(object):
elif
key
==
'ec2_region'
:
elif
key
==
'ec2_region'
:
instance_vars
[
key
]
=
value
.
name
instance_vars
[
key
]
=
value
.
name
elif
key
==
'ec2_tags'
:
elif
key
==
'ec2_tags'
:
for
k
,
v
in
value
.
iteritems
(
):
for
k
,
v
in
iteritems
(
value
):
key
=
self
.
to_safe
(
'ec2_tag_'
+
k
)
key
=
self
.
to_safe
(
'ec2_tag_'
+
k
)
instance_vars
[
key
]
=
v
instance_vars
[
key
]
=
v
elif
key
==
'ec2_groups'
:
elif
key
==
'ec2_groups'
:
...
...
contrib/inventory/cobbler.py
View file @
ce978745
...
@@ -72,6 +72,8 @@ try:
...
@@ -72,6 +72,8 @@ try:
except
ImportError
:
except
ImportError
:
import
simplejson
as
json
import
simplejson
as
json
from
six
import
iteritems
# NOTE -- this file assumes Ansible is being accessed FROM the cobbler
# NOTE -- this file assumes Ansible is being accessed FROM the cobbler
# server, so it does not attempt to login with a username and password.
# server, so it does not attempt to login with a username and password.
# this will be addressed in a future version of this script.
# this will be addressed in a future version of this script.
...
@@ -171,7 +173,7 @@ class CobblerInventory(object):
...
@@ -171,7 +173,7 @@ class CobblerInventory(object):
interfaces
=
host
[
'interfaces'
]
interfaces
=
host
[
'interfaces'
]
# hostname is often empty for non-static IP hosts
# hostname is often empty for non-static IP hosts
if
dns_name
==
''
:
if
dns_name
==
''
:
for
(
iname
,
ivalue
)
in
i
nterfaces
.
iteritems
(
):
for
(
iname
,
ivalue
)
in
i
teritems
(
interfaces
):
if
ivalue
[
'management'
]
or
not
ivalue
[
'static'
]:
if
ivalue
[
'management'
]
or
not
ivalue
[
'static'
]:
this_dns_name
=
ivalue
.
get
(
'dns_name'
,
None
)
this_dns_name
=
ivalue
.
get
(
'dns_name'
,
None
)
if
this_dns_name
is
not
None
and
this_dns_name
is
not
""
:
if
this_dns_name
is
not
None
and
this_dns_name
is
not
""
:
...
@@ -203,7 +205,7 @@ class CobblerInventory(object):
...
@@ -203,7 +205,7 @@ class CobblerInventory(object):
self
.
cache
[
dns_name
]
=
host
self
.
cache
[
dns_name
]
=
host
if
"ks_meta"
in
host
:
if
"ks_meta"
in
host
:
for
key
,
value
in
host
[
"ks_meta"
]
.
iteritems
(
):
for
key
,
value
in
iteritems
(
host
[
"ks_meta"
]
):
self
.
cache
[
dns_name
][
key
]
=
value
self
.
cache
[
dns_name
][
key
]
=
value
self
.
write_to_cache
(
self
.
cache
,
self
.
cache_path_cache
)
self
.
write_to_cache
(
self
.
cache
,
self
.
cache_path_cache
)
...
...
contrib/inventory/collins.py
View file @
ce978745
...
@@ -83,6 +83,8 @@ try:
...
@@ -83,6 +83,8 @@ try:
except
ImportError
:
except
ImportError
:
import
simplejson
as
json
import
simplejson
as
json
from
six
import
iteritems
class
CollinsDefaults
(
object
):
class
CollinsDefaults
(
object
):
ASSETS_API_ENDPOINT
=
'
%
s/api/assets'
ASSETS_API_ENDPOINT
=
'
%
s/api/assets'
...
@@ -174,7 +176,7 @@ class CollinsInventory(object):
...
@@ -174,7 +176,7 @@ class CollinsInventory(object):
# the CQL search feature as described here:
# the CQL search feature as described here:
# http://tumblr.github.io/collins/recipes.html
# http://tumblr.github.io/collins/recipes.html
attributes_query
=
[
'='
.
join
(
attr_pair
)
attributes_query
=
[
'='
.
join
(
attr_pair
)
for
attr_pair
in
attributes
.
iteritems
(
)
]
for
attr_pair
in
iteritems
(
attributes
)
]
query_parameters
=
{
query_parameters
=
{
'details'
:
[
'True'
],
'details'
:
[
'True'
],
'operation'
:
[
operation
],
'operation'
:
[
operation
],
...
...
contrib/inventory/consul_io.py
View file @
ce978745
...
@@ -141,6 +141,7 @@ except ImportError as e:
...
@@ -141,6 +141,7 @@ except ImportError as e:
http://python-consul.readthedocs.org/en/latest/#installation'"""
)
http://python-consul.readthedocs.org/en/latest/#installation'"""
)
sys
.
exit
(
1
)
sys
.
exit
(
1
)
from
six
import
iteritems
class
ConsulInventory
(
object
):
class
ConsulInventory
(
object
):
...
@@ -187,7 +188,7 @@ class ConsulInventory(object):
...
@@ -187,7 +188,7 @@ class ConsulInventory(object):
an 'available' or 'unavailable' grouping. The suffix for each group can be
an 'available' or 'unavailable' grouping. The suffix for each group can be
controlled from the config'''
controlled from the config'''
if
self
.
config
.
has_config
(
'availability'
):
if
self
.
config
.
has_config
(
'availability'
):
for
service_name
,
service
in
node
[
'Services'
]
.
iteritems
(
):
for
service_name
,
service
in
iteritems
(
node
[
'Services'
]
):
for
node
in
self
.
consul_api
.
health
.
service
(
service_name
)[
1
]:
for
node
in
self
.
consul_api
.
health
.
service
(
service_name
)[
1
]:
for
check
in
node
[
'Checks'
]:
for
check
in
node
[
'Checks'
]:
if
check
[
'ServiceName'
]
==
service_name
:
if
check
[
'ServiceName'
]
==
service_name
:
...
...
contrib/inventory/nova.py
View file @
ce978745
...
@@ -26,6 +26,7 @@ import re
...
@@ -26,6 +26,7 @@ import re
import
os
import
os
import
ConfigParser
import
ConfigParser
from
novaclient
import
client
as
nova_client
from
novaclient
import
client
as
nova_client
from
six
import
iteritems
try
:
try
:
import
json
import
json
...
@@ -194,7 +195,7 @@ if (len(sys.argv) == 2 and sys.argv[1] == '--list') or len(sys.argv) == 1:
...
@@ -194,7 +195,7 @@ if (len(sys.argv) == 2 and sys.argv[1] == '--list') or len(sys.argv) == 1:
push
(
groups
,
server
.
name
,
access_ip
)
push
(
groups
,
server
.
name
,
access_ip
)
# Run through each metadata item and add instance to it
# Run through each metadata item and add instance to it
for
key
,
value
in
server
.
metadata
.
iteritems
(
):
for
key
,
value
in
iteritems
(
server
.
metadata
):
composed_key
=
to_safe
(
'tag_{0}_{1}'
.
format
(
key
,
value
))
composed_key
=
to_safe
(
'tag_{0}_{1}'
.
format
(
key
,
value
))
push
(
groups
,
composed_key
,
access_ip
)
push
(
groups
,
composed_key
,
access_ip
)
...
...
contrib/inventory/proxmox.py
View file @
ce978745
...
@@ -25,6 +25,9 @@ import os
...
@@ -25,6 +25,9 @@ import os
import
sys
import
sys
from
optparse
import
OptionParser
from
optparse
import
OptionParser
from
six
import
iteritems
class
ProxmoxNodeList
(
list
):
class
ProxmoxNodeList
(
list
):
def
get_names
(
self
):
def
get_names
(
self
):
return
[
node
[
'node'
]
for
node
in
self
]
return
[
node
[
'node'
]
for
node
in
self
]
...
@@ -32,7 +35,7 @@ class ProxmoxNodeList(list):
...
@@ -32,7 +35,7 @@ class ProxmoxNodeList(list):
class
ProxmoxQemu
(
dict
):
class
ProxmoxQemu
(
dict
):
def
get_variables
(
self
):
def
get_variables
(
self
):
variables
=
{}
variables
=
{}
for
key
,
value
in
self
.
iteritems
(
):
for
key
,
value
in
iteritems
(
self
):
variables
[
'proxmox_'
+
key
]
=
value
variables
[
'proxmox_'
+
key
]
=
value
return
variables
return
variables
...
...
contrib/inventory/rax.py
View file @
ce978745
...
@@ -153,6 +153,8 @@ import warnings
...
@@ -153,6 +153,8 @@ import warnings
import
collections
import
collections
import
ConfigParser
import
ConfigParser
from
six
import
iteritems
from
ansible.constants
import
get_config
,
mk_boolean
from
ansible.constants
import
get_config
,
mk_boolean
try
:
try
:
...
@@ -267,7 +269,7 @@ def _list_into_cache(regions):
...
@@ -267,7 +269,7 @@ def _list_into_cache(regions):
hostvars
[
server
.
name
][
'rax_region'
]
=
region
hostvars
[
server
.
name
][
'rax_region'
]
=
region
for
key
,
value
in
server
.
metadata
.
iteritems
(
):
for
key
,
value
in
iteritems
(
server
.
metadata
):
groups
[
'
%
s_
%
s_
%
s'
%
(
prefix
,
key
,
value
)]
.
append
(
server
.
name
)
groups
[
'
%
s_
%
s_
%
s'
%
(
prefix
,
key
,
value
)]
.
append
(
server
.
name
)
groups
[
'instance-
%
s'
%
server
.
id
]
.
append
(
server
.
name
)
groups
[
'instance-
%
s'
%
server
.
id
]
.
append
(
server
.
name
)
...
...
contrib/inventory/spacewalk.py
View file @
ce978745
...
@@ -49,6 +49,8 @@ from optparse import OptionParser
...
@@ -49,6 +49,8 @@ from optparse import OptionParser
import
subprocess
import
subprocess
import
ConfigParser
import
ConfigParser
from
six
import
iteritems
try
:
try
:
import
json
import
json
except
:
except
:
...
@@ -193,10 +195,10 @@ if options.list:
...
@@ -193,10 +195,10 @@ if options.list:
sys
.
exit
(
2
)
sys
.
exit
(
2
)
if
options
.
human
:
if
options
.
human
:
for
group
,
systems
in
groups
.
iteritems
(
):
for
group
,
systems
in
iteritems
(
groups
):
print
(
'[
%
s]
\n
%
s
\n
'
%
(
group
,
'
\n
'
.
join
(
systems
)))
print
(
'[
%
s]
\n
%
s
\n
'
%
(
group
,
'
\n
'
.
join
(
systems
)))
else
:
else
:
final
=
dict
(
[
(
k
,
list
(
s
))
for
k
,
s
in
groups
.
iteritems
(
)
]
)
final
=
dict
(
[
(
k
,
list
(
s
))
for
k
,
s
in
iteritems
(
groups
)
]
)
final
[
"_meta"
]
=
meta
final
[
"_meta"
]
=
meta
print
(
json
.
dumps
(
final
))
print
(
json
.
dumps
(
final
))
#print(json.dumps(groups))
#print(json.dumps(groups))
...
@@ -221,7 +223,7 @@ elif options.host:
...
@@ -221,7 +223,7 @@ elif options.host:
if
options
.
human
:
if
options
.
human
:
print
(
'Host:
%
s'
%
options
.
host
)
print
(
'Host:
%
s'
%
options
.
host
)
for
k
,
v
in
host_details
.
iteritems
(
):
for
k
,
v
in
iteritems
(
host_details
):
print
(
'
%
s:
%
s'
%
(
k
,
'
\n
'
.
join
(
v
.
split
(
';'
))))
print
(
'
%
s:
%
s'
%
(
k
,
'
\n
'
.
join
(
v
.
split
(
';'
))))
else
:
else
:
print
(
json
.
dumps
(
dict
(
(
key
,
(
value
.
split
(
';'
)
if
';'
in
value
else
value
)
)
for
key
,
value
in
host_details
.
items
()
)
)
)
print
(
json
.
dumps
(
dict
(
(
key
,
(
value
.
split
(
';'
)
if
';'
in
value
else
value
)
)
for
key
,
value
in
host_details
.
items
()
)
)
)
...
...
examples/scripts/yaml_to_ini.py
View file @
ce978745
...
@@ -23,6 +23,7 @@ from ansible import utils
...
@@ -23,6 +23,7 @@ from ansible import utils
import
os
import
os
import
yaml
import
yaml
import
sys
import
sys
from
six
import
iteritems
class
InventoryParserYaml
(
object
):
class
InventoryParserYaml
(
object
):
''' Host inventory parser for ansible '''
''' Host inventory parser for ansible '''
...
@@ -176,7 +177,7 @@ if __name__ == "__main__":
...
@@ -176,7 +177,7 @@ if __name__ == "__main__":
groupfh
.
write
(
yaml
.
dump
(
record
.
get_variables
()))
groupfh
.
write
(
yaml
.
dump
(
record
.
get_variables
()))
groupfh
.
close
()
groupfh
.
close
()
for
(
host_name
,
host_record
)
in
yamlp
.
_hosts
.
iteritems
(
):
for
(
host_name
,
host_record
)
in
iteritems
(
yamlp
.
_hosts
):
hostfiledir
=
os
.
path
.
join
(
dirname
,
"host_vars"
)
hostfiledir
=
os
.
path
.
join
(
dirname
,
"host_vars"
)
if
not
os
.
path
.
exists
(
hostfiledir
):
if
not
os
.
path
.
exists
(
hostfiledir
):
print
"* creating:
%
s"
%
hostfiledir
print
"* creating:
%
s"
%
hostfiledir
...
...
hacking/module_formatter.py
View file @
ce978745
...
@@ -34,6 +34,7 @@ import subprocess
...
@@ -34,6 +34,7 @@ import subprocess
import
cgi
import
cgi
import
warnings
import
warnings
from
jinja2
import
Environment
,
FileSystemLoader
from
jinja2
import
Environment
,
FileSystemLoader
from
six
import
iteritems
from
ansible.utils
import
module_docs
from
ansible.utils
import
module_docs
from
ansible.utils.vars
import
merge_hash
from
ansible.utils.vars
import
merge_hash
...
@@ -292,7 +293,7 @@ def process_module(module, options, env, template, outputname, module_map, alias
...
@@ -292,7 +293,7 @@ def process_module(module, options, env, template, outputname, module_map, alias
del
doc
[
'version_added'
]
del
doc
[
'version_added'
]
if
'options'
in
doc
and
doc
[
'options'
]:
if
'options'
in
doc
and
doc
[
'options'
]:
for
(
k
,
v
)
in
doc
[
'options'
]
.
iteritems
(
):
for
(
k
,
v
)
in
iteritems
(
doc
[
'options'
]
):
# don't show version added information if it's too old to be called out
# don't show version added information if it's too old to be called out
if
'version_added'
in
doc
[
'options'
][
k
]
and
too_old
(
doc
[
'options'
][
k
][
'version_added'
]):
if
'version_added'
in
doc
[
'options'
][
k
]
and
too_old
(
doc
[
'options'
][
k
][
'version_added'
]):
del
doc
[
'options'
][
k
][
'version_added'
]
del
doc
[
'options'
][
k
][
'version_added'
]
...
...
lib/ansible/cli/doc.py
View file @
ce978745
...
@@ -24,6 +24,8 @@ import termios
...
@@ -24,6 +24,8 @@ import termios
import
traceback
import
traceback
import
textwrap
import
textwrap
from
six
import
iteritems
from
ansible
import
constants
as
C
from
ansible
import
constants
as
C
from
ansible.errors
import
AnsibleError
,
AnsibleOptionsError
from
ansible.errors
import
AnsibleError
,
AnsibleOptionsError
from
ansible.plugins
import
module_loader
from
ansible.plugins
import
module_loader
...
@@ -101,7 +103,7 @@ class DocCLI(CLI):
...
@@ -101,7 +103,7 @@ class DocCLI(CLI):
if
doc
is
not
None
:
if
doc
is
not
None
:
all_keys
=
[]
all_keys
=
[]
for
(
k
,
v
)
in
doc
[
'options'
]
.
iteritems
(
):
for
(
k
,
v
)
in
iteritems
(
doc
[
'options'
]
):
all_keys
.
append
(
k
)
all_keys
.
append
(
k
)
all_keys
=
sorted
(
all_keys
)
all_keys
=
sorted
(
all_keys
)
doc
[
'option_keys'
]
=
all_keys
doc
[
'option_keys'
]
=
all_keys
...
...
lib/ansible/executor/play_iterator.py
View file @
ce978745
...
@@ -21,6 +21,8 @@ __metaclass__ = type
...
@@ -21,6 +21,8 @@ __metaclass__ = type
import
fnmatch
import
fnmatch
from
six
import
iteritems
from
ansible
import
constants
as
C
from
ansible
import
constants
as
C
from
ansible.errors
import
*
from
ansible.errors
import
*
...
@@ -322,7 +324,7 @@ class PlayIterator:
...
@@ -322,7 +324,7 @@ class PlayIterator:
self
.
_host_states
[
host
.
name
]
=
s
self
.
_host_states
[
host
.
name
]
=
s
def
get_failed_hosts
(
self
):
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
):
def
get_original_task
(
self
,
host
,
task
):
'''
'''
...
...
lib/ansible/executor/process/result.py
View file @
ce978745
...
@@ -20,6 +20,8 @@ from __future__ import (absolute_import, division, print_function)
...
@@ -20,6 +20,8 @@ from __future__ import (absolute_import, division, print_function)
__metaclass__
=
type
__metaclass__
=
type
from
six.moves
import
queue
from
six.moves
import
queue
from
six
import
iteritems
import
multiprocessing
import
multiprocessing
import
os
import
os
import
signal
import
signal
...
@@ -157,7 +159,7 @@ class ResultProcess(multiprocessing.Process):
...
@@ -157,7 +159,7 @@ class ResultProcess(multiprocessing.Process):
# if this task is registering facts, do that now
# if this task is registering facts, do that now
item
=
result_item
.
get
(
'item'
,
None
)
item
=
result_item
.
get
(
'item'
,
None
)
if
result
.
_task
.
action
in
(
'set_fact'
,
'include_vars'
):
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
))
self
.
_send_result
((
'set_host_var'
,
result
.
_host
,
result
.
_task
,
item
,
key
,
value
))
else
:
else
:
self
.
_send_result
((
'set_host_facts'
,
result
.
_host
,
result
.
_task
,
item
,
result_item
[
'ansible_facts'
]))
self
.
_send_result
((
'set_host_facts'
,
result
.
_host
,
result
.
_task
,
item
,
result_item
[
'ansible_facts'
]))
...
...
lib/ansible/executor/task_executor.py
View file @
ce978745
...
@@ -25,6 +25,8 @@ import subprocess
...
@@ -25,6 +25,8 @@ import subprocess
import
sys
import
sys
import
time
import
time
from
six
import
iteritems
from
ansible
import
constants
as
C
from
ansible
import
constants
as
C
from
ansible.errors
import
AnsibleError
,
AnsibleParserError
,
AnsibleUndefinedVariable
from
ansible.errors
import
AnsibleError
,
AnsibleParserError
,
AnsibleUndefinedVariable
from
ansible.playbook.conditional
import
Conditional
from
ansible.playbook.conditional
import
Conditional
...
@@ -289,7 +291,7 @@ class TaskExecutor:
...
@@ -289,7 +291,7 @@ class TaskExecutor:
# And filter out any fields which were set to default(omit), and got the omit token value
# And filter out any fields which were set to default(omit), and got the omit token value
omit_token
=
variables
.
get
(
'omit'
)
omit_token
=
variables
.
get
(
'omit'
)
if
omit_token
is
not
None
:
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
# Read some values from the task, so that we can modify them if need be
retries
=
self
.
_task
.
retries
retries
=
self
.
_task
.
retries
...
...
lib/ansible/inventory/script.py
View file @
ce978745
...
@@ -22,9 +22,10 @@ __metaclass__ = type
...
@@ -22,9 +22,10 @@ __metaclass__ = type
import
os
import
os
import
subprocess
import
subprocess
import
sys
import
sys
from
collections
import
Mapping
from
collections
import
Mapping
from
six
import
iteritems
from
ansible
import
constants
as
C
from
ansible
import
constants
as
C
from
ansible.errors
import
*
from
ansible.errors
import
*
from
ansible.inventory.host
import
Host
from
ansible.inventory.host
import
Host
...
@@ -122,7 +123,7 @@ class InventoryScript:
...
@@ -122,7 +123,7 @@ class InventoryScript:
raise
AnsibleError
(
"You defined a group
\"
%
s
\"
with bad "
raise
AnsibleError
(
"You defined a group
\"
%
s
\"
with bad "
"data for variables:
\n
%
s"
%
(
group_name
,
data
))
"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
:
if
group
.
name
==
all
.
name
:
all
.
set_variable
(
k
,
v
)
all
.
set_variable
(
k
,
v
)
else
:
else
:
...
...
lib/ansible/playbook/play_context.py
View file @
ce978745
...
@@ -25,6 +25,8 @@ import pipes
...
@@ -25,6 +25,8 @@ import pipes
import
random
import
random
import
re
import
re
from
six
import
iteritems
from
ansible
import
constants
as
C
from
ansible
import
constants
as
C
from
ansible.errors
import
AnsibleError
from
ansible.errors
import
AnsibleError
from
ansible.playbook.attribute
import
Attribute
,
FieldAttribute
from
ansible.playbook.attribute
import
Attribute
,
FieldAttribute
...
@@ -308,7 +310,7 @@ class PlayContext(Base):
...
@@ -308,7 +310,7 @@ class PlayContext(Base):
# finally, use the MAGIC_VARIABLE_MAPPING dictionary to update this
# finally, use the MAGIC_VARIABLE_MAPPING dictionary to update this
# connection info object with 'magic' variables from the variable list
# 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
:
for
variable_name
in
variable_names
:
if
variable_name
in
variables
:
if
variable_name
in
variables
:
setattr
(
new_info
,
attr
,
variables
[
variable_name
])
setattr
(
new_info
,
attr
,
variables
[
variable_name
])
...
...
lib/ansible/playbook/playbook_include.py
View file @
ce978745
...
@@ -21,6 +21,8 @@ __metaclass__ = type
...
@@ -21,6 +21,8 @@ __metaclass__ = type
import
os
import
os
from
six
import
iteritems
from
ansible.errors
import
AnsibleParserError
from
ansible.errors
import
AnsibleParserError
from
ansible.parsing.splitter
import
split_args
,
parse_kv
from
ansible.parsing.splitter
import
split_args
,
parse_kv
from
ansible.parsing.yaml.objects
import
AnsibleBaseYAMLObject
,
AnsibleMapping
from
ansible.parsing.yaml.objects
import
AnsibleBaseYAMLObject
,
AnsibleMapping
...
@@ -95,7 +97,7 @@ class PlaybookInclude(Base, Conditional, Taggable):
...
@@ -95,7 +97,7 @@ class PlaybookInclude(Base, Conditional, Taggable):
if
isinstance
(
ds
,
AnsibleBaseYAMLObject
):
if
isinstance
(
ds
,
AnsibleBaseYAMLObject
):
new_ds
.
ansible_pos
=
ds
.
ansible_pos
new_ds
.
ansible_pos
=
ds
.
ansible_pos
for
(
k
,
v
)
in
ds
.
iteritems
(
):
for
(
k
,
v
)
in
iteritems
(
ds
):
if
k
==
'include'
:
if
k
==
'include'
:
self
.
_preprocess_include
(
ds
,
new_ds
,
k
,
v
)
self
.
_preprocess_include
(
ds
,
new_ds
,
k
,
v
)
else
:
else
:
...
...
lib/ansible/playbook/role/__init__.py
View file @
ce978745
...
@@ -51,7 +51,7 @@ def hash_params(params):
...
@@ -51,7 +51,7 @@ def hash_params(params):
return
params
return
params
else
:
else
:
s
=
set
()
s
=
set
()
for
k
,
v
in
params
.
iteritems
(
):
for
k
,
v
in
iteritems
(
params
):
if
isinstance
(
v
,
dict
):
if
isinstance
(
v
,
dict
):
s
.
update
((
k
,
hash_params
(
v
)))
s
.
update
((
k
,
hash_params
(
v
)))
elif
isinstance
(
v
,
list
):
elif
isinstance
(
v
,
list
):
...
@@ -105,7 +105,7 @@ class Role(Base, Become, Conditional, Taggable):
...
@@ -105,7 +105,7 @@ class Role(Base, Become, Conditional, Taggable):
params
[
'tags'
]
=
role_include
.
tags
params
[
'tags'
]
=
role_include
.
tags
hashed_params
=
hash_params
(
params
)
hashed_params
=
hash_params
(
params
)
if
role_include
.
role
in
play
.
ROLE_CACHE
:
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
hashed_params
==
entry
:
if
parent_role
:
if
parent_role
:
role_obj
.
add_parent
(
parent_role
)
role_obj
.
add_parent
(
parent_role
)
...
...
lib/ansible/playbook/role/definition.py
View file @
ce978745
...
@@ -181,7 +181,7 @@ class RoleDefinition(Base, Become, Conditional, Taggable):
...
@@ -181,7 +181,7 @@ class RoleDefinition(Base, Become, Conditional, Taggable):
for
(
key
,
value
)
in
iteritems
(
ds
):
for
(
key
,
value
)
in
iteritems
(
ds
):
# use the list of FieldAttribute values to determine what is and is not
# 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)
# 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
# this key does not match a field attribute, so it must be a role param
role_params
[
key
]
=
value
role_params
[
key
]
=
value
else
:
else
:
...
...
lib/ansible/playbook/task.py
View file @
ce978745
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
from
__future__
import
(
absolute_import
,
division
,
print_function
)
from
__future__
import
(
absolute_import
,
division
,
print_function
)
__metaclass__
=
type
__metaclass__
=
type
from
six
import
string_types
from
six
import
iteritems
,
string_types
from
ansible.errors
import
AnsibleError
from
ansible.errors
import
AnsibleError
...
@@ -118,7 +118,7 @@ class Task(Base, Conditional, Taggable, Become):
...
@@ -118,7 +118,7 @@ class Task(Base, Conditional, Taggable, Become):
return
ds
return
ds
elif
isinstance
(
ds
,
dict
):
elif
isinstance
(
ds
,
dict
):
buf
=
""
buf
=
""
for
(
k
,
v
)
in
ds
.
iteritems
(
):
for
(
k
,
v
)
in
iteritems
(
ds
):
if
k
.
startswith
(
'_'
):
if
k
.
startswith
(
'_'
):
continue
continue
buf
=
buf
+
"
%
s=
%
s "
%
(
k
,
v
)
buf
=
buf
+
"
%
s=
%
s "
%
(
k
,
v
)
...
@@ -180,7 +180,7 @@ class Task(Base, Conditional, Taggable, Become):
...
@@ -180,7 +180,7 @@ class Task(Base, Conditional, Taggable, Become):
else
:
else
:
new_ds
[
'vars'
]
=
dict
()
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'
:
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
# we don't want to re-assign these values, which were
# determined by the ModuleArgsParser() above
# determined by the ModuleArgsParser() above
...
...
lib/ansible/plugins/action/set_fact.py
View file @
ce978745
...
@@ -18,6 +18,7 @@
...
@@ -18,6 +18,7 @@
from
__future__
import
(
absolute_import
,
division
,
print_function
)
from
__future__
import
(
absolute_import
,
division
,
print_function
)
__metaclass__
=
type
__metaclass__
=
type
from
six
import
iteritems
from
ansible.errors
import
AnsibleError
from
ansible.errors
import
AnsibleError
from
ansible.plugins.action
import
ActionBase
from
ansible.plugins.action
import
ActionBase
...
@@ -32,7 +33,7 @@ class ActionModule(ActionBase):
...
@@ -32,7 +33,7 @@ class ActionModule(ActionBase):
def
run
(
self
,
tmp
=
None
,
task_vars
=
dict
()):
def
run
(
self
,
tmp
=
None
,
task_vars
=
dict
()):
facts
=
dict
()
facts
=
dict
()
if
self
.
_task
.
args
:
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
)
k
=
self
.
_templar
.
template
(
k
)
if
not
isidentifier
(
k
):
if
not
isidentifier
(
k
):
...
...
lib/ansible/plugins/cache/__init__.py
View file @
ce978745
...
@@ -60,7 +60,7 @@ class FactCache(MutableMapping):
...
@@ -60,7 +60,7 @@ class FactCache(MutableMapping):
def
copy
(
self
):
def
copy
(
self
):
""" Return a primitive copy of the keys and values from the cache. """
""" 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
):
def
keys
(
self
):
return
self
.
_plugin
.
keys
()
return
self
.
_plugin
.
keys
()
...
...
lib/ansible/plugins/connections/paramiko_ssh.py
View file @
ce978745
...
@@ -39,6 +39,8 @@ import sys
...
@@ -39,6 +39,8 @@ import sys
from
termios
import
tcflush
,
TCIFLUSH
from
termios
import
tcflush
,
TCIFLUSH
from
binascii
import
hexlify
from
binascii
import
hexlify
from
six
import
iteritems
from
ansible
import
constants
as
C
from
ansible
import
constants
as
C
from
ansible.errors
import
AnsibleError
,
AnsibleConnectionFailure
,
AnsibleFileNotFound
from
ansible.errors
import
AnsibleError
,
AnsibleConnectionFailure
,
AnsibleFileNotFound
from
ansible.plugins.connections
import
ConnectionBase
from
ansible.plugins.connections
import
ConnectionBase
...
@@ -306,8 +308,8 @@ class Connection(ConnectionBase):
...
@@ -306,8 +308,8 @@ class Connection(ConnectionBase):
def
_any_keys_added
(
self
):
def
_any_keys_added
(
self
):
added_any
=
False
added_any
=
False
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
)
added_this_time
=
getattr
(
key
,
'_added_by_ansible_this_time'
,
False
)
if
added_this_time
:
if
added_this_time
:
return
True
return
True
...
@@ -327,18 +329,18 @@ class Connection(ConnectionBase):
...
@@ -327,18 +329,18 @@ class Connection(ConnectionBase):
f
=
open
(
filename
,
'w'
)
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
# was f.write
added_this_time
=
getattr
(
key
,
'_added_by_ansible_this_time'
,
False
)
added_this_time
=
getattr
(
key
,
'_added_by_ansible_this_time'
,
False
)
if
not
added_this_time
:
if
not
added_this_time
:
f
.
write
(
"
%
s
%
s
%
s
\n
"
%
(
hostname
,
keytype
,
key
.
get_base64
()))
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
)
added_this_time
=
getattr
(
key
,
'_added_by_ansible_this_time'
,
False
)
if
added_this_time
:
if
added_this_time
:
f
.
write
(
"
%
s
%
s
%
s
\n
"
%
(
hostname
,
keytype
,
key
.
get_base64
()))
f
.
write
(
"
%
s
%
s
%
s
\n
"
%
(
hostname
,
keytype
,
key
.
get_base64
()))
...
...
lib/ansible/plugins/filter/core.py
View file @
ce978745
...
@@ -38,6 +38,7 @@ import uuid
...
@@ -38,6 +38,7 @@ import uuid
import
yaml
import
yaml
from
jinja2.filters
import
environmentfilter
from
jinja2.filters
import
environmentfilter
from
distutils.version
import
LooseVersion
,
StrictVersion
from
distutils.version
import
LooseVersion
,
StrictVersion
from
six
import
iteritems
from
ansible
import
errors
from
ansible
import
errors
from
ansible.parsing.yaml.dumper
import
AnsibleDumper
from
ansible.parsing.yaml.dumper
import
AnsibleDumper
...
@@ -245,7 +246,7 @@ def combine(*terms, **kwargs):
...
@@ -245,7 +246,7 @@ def combine(*terms, **kwargs):
if
recursive
:
if
recursive
:
return
reduce
(
merge_hash
,
terms
)
return
reduce
(
merge_hash
,
terms
)
else
:
else
:
return
dict
(
itertools
.
chain
(
*
map
(
dict
.
iteritems
,
terms
)))
return
dict
(
itertools
.
chain
(
*
map
(
iteritems
,
terms
)))
class
FilterModule
(
object
):
class
FilterModule
(
object
):
''' Ansible core jinja2 filters '''
''' Ansible core jinja2 filters '''
...
...
lib/ansible/plugins/strategies/__init__.py
View file @
ce978745
...
@@ -20,6 +20,8 @@ from __future__ import (absolute_import, division, print_function)
...
@@ -20,6 +20,8 @@ from __future__ import (absolute_import, division, print_function)
__metaclass__
=
type
__metaclass__
=
type
from
six.moves
import
queue
as
Queue
from
six.moves
import
queue
as
Queue
from
six
import
iteritems
import
time
import
time
from
ansible
import
constants
as
C
from
ansible
import
constants
as
C
...
@@ -207,7 +209,7 @@ class StrategyBase:
...
@@ -207,7 +209,7 @@ class StrategyBase:
if
task_result
.
_task
.
_role
is
not
None
and
result
[
0
]
in
(
'host_task_ok'
,
'host_task_failed'
):
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
# lookup the role in the ROLE_CACHE to make sure we're dealing
# with the correct object and mark it as executed
# with the correct object and mark it as executed
for
(
entry
,
role_obj
)
in
iter
ator
.
_play
.
ROLE_CACHE
[
task_result
.
_task
.
_role
.
_role_name
]
.
iteritems
(
):
for
(
entry
,
role_obj
)
in
iter
items
(
iterator
.
_play
.
ROLE_CACHE
[
task_result
.
_task
.
_role
.
_role_name
]
):
if
role_obj
.
_uuid
==
task_result
.
_task
.
_role
.
_uuid
:
if
role_obj
.
_uuid
==
task_result
.
_task
.
_role
.
_uuid
:
role_obj
.
_had_task_run
[
host
.
name
]
=
True
role_obj
.
_had_task_run
[
host
.
name
]
=
True
...
@@ -358,7 +360,7 @@ class StrategyBase:
...
@@ -358,7 +360,7 @@ class StrategyBase:
groups
[
group_name
]
=
[]
groups
[
group_name
]
=
[]
groups
[
group_name
]
.
append
(
host
)
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
)
new_group
=
self
.
_inventory
.
get_group
(
group_name
)
if
not
new_group
:
if
not
new_group
:
# create the new group and add it to inventory
# create the new group and add it to inventory
...
...
lib/ansible/plugins/strategies/linear.py
View file @
ce978745
...
@@ -19,6 +19,8 @@
...
@@ -19,6 +19,8 @@
from
__future__
import
(
absolute_import
,
division
,
print_function
)
from
__future__
import
(
absolute_import
,
division
,
print_function
)
__metaclass__
=
type
__metaclass__
=
type
from
six
import
iteritems
from
ansible.errors
import
AnsibleError
from
ansible.errors
import
AnsibleError
from
ansible.executor.play_iterator
import
PlayIterator
from
ansible.executor.play_iterator
import
PlayIterator
from
ansible.playbook.block
import
Block
from
ansible.playbook.block
import
Block
...
@@ -63,7 +65,7 @@ class StrategyModule(StrategyBase):
...
@@ -63,7 +65,7 @@ class StrategyModule(StrategyBase):
lowest_cur_block
=
len
(
iterator
.
_blocks
)
lowest_cur_block
=
len
(
iterator
.
_blocks
)
display
.
debug
(
"counting tasks in each state of execution"
)
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
:
if
v
is
None
:
continue
continue
...
...
lib/ansible/template/vars.py
View file @
ce978745
...
@@ -19,6 +19,7 @@
...
@@ -19,6 +19,7 @@
from
__future__
import
(
absolute_import
,
division
,
print_function
)
from
__future__
import
(
absolute_import
,
division
,
print_function
)
__metaclass__
=
type
__metaclass__
=
type
from
six
import
iteritems
from
jinja2.utils
import
missing
from
jinja2.utils
import
missing
__all__
=
[
'AnsibleJ2Vars'
]
__all__
=
[
'AnsibleJ2Vars'
]
...
@@ -46,7 +47,7 @@ class AnsibleJ2Vars:
...
@@ -46,7 +47,7 @@ class AnsibleJ2Vars:
self
.
_extras
=
extras
self
.
_extras
=
extras
self
.
_locals
=
dict
()
self
.
_locals
=
dict
()
if
isinstance
(
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
:
if
key
[:
2
]
==
'l_'
and
val
is
not
missing
:
self
.
_locals
[
key
[
2
:]]
=
val
self
.
_locals
[
key
[
2
:]]
=
val
...
...
test/units/vars/test_variable_manager.py
View file @
ce978745
...
@@ -19,6 +19,8 @@
...
@@ -19,6 +19,8 @@
from
__future__
import
(
absolute_import
,
division
,
print_function
)
from
__future__
import
(
absolute_import
,
division
,
print_function
)
__metaclass__
=
type
__metaclass__
=
type
from
six
import
iteritems
from
ansible.compat.tests
import
unittest
from
ansible.compat.tests
import
unittest
from
ansible.compat.tests.mock
import
patch
,
MagicMock
from
ansible.compat.tests.mock
import
patch
,
MagicMock
...
@@ -57,7 +59,7 @@ class TestVariableManager(unittest.TestCase):
...
@@ -57,7 +59,7 @@ class TestVariableManager(unittest.TestCase):
vars
=
v
.
get_vars
(
loader
=
fake_loader
,
use_cache
=
False
)
vars
=
v
.
get_vars
(
loader
=
fake_loader
,
use_cache
=
False
)
for
(
key
,
val
)
in
extra_vars
.
iteritems
(
):
for
(
key
,
val
)
in
iteritems
(
extra_vars
):
self
.
assertEqual
(
vars
.
get
(
key
),
val
)
self
.
assertEqual
(
vars
.
get
(
key
),
val
)
self
.
assertIsNot
(
v
.
extra_vars
,
extra_vars
)
self
.
assertIsNot
(
v
.
extra_vars
,
extra_vars
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment