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
9378c8e2
Commit
9378c8e2
authored
Sep 02, 2015
by
Abhijit Menon-Sen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make the paramiko plugin use locking
parent
5887e96b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
13 deletions
+9
-13
lib/ansible/plugins/connections/paramiko_ssh.py
+9
-13
No files found.
lib/ansible/plugins/connections/paramiko_ssh.py
View file @
9378c8e2
...
@@ -71,16 +71,15 @@ class MyAddPolicy(object):
...
@@ -71,16 +71,15 @@ class MyAddPolicy(object):
local L{HostKeys} object, and saving it. This is used by L{SSHClient}.
local L{HostKeys} object, and saving it. This is used by L{SSHClient}.
"""
"""
def
__init__
(
self
,
new_stdin
):
def
__init__
(
self
,
new_stdin
,
connection
):
self
.
_new_stdin
=
new_stdin
self
.
_new_stdin
=
new_stdin
self
.
connection
=
connection
def
missing_host_key
(
self
,
client
,
hostname
,
key
):
def
missing_host_key
(
self
,
client
,
hostname
,
key
):
if
C
.
HOST_KEY_CHECKING
:
if
C
.
HOST_KEY_CHECKING
:
# FIXME: need to fix lock file stuff
self
.
connection
.
lock_connection
()
#fcntl.lockf(self.runner.process_lockfile, fcntl.LOCK_EX)
#fcntl.lockf(self.runner.output_lockfile, fcntl.LOCK_EX)
old_stdin
=
sys
.
stdin
old_stdin
=
sys
.
stdin
sys
.
stdin
=
self
.
_new_stdin
sys
.
stdin
=
self
.
_new_stdin
...
@@ -94,17 +93,11 @@ class MyAddPolicy(object):
...
@@ -94,17 +93,11 @@ class MyAddPolicy(object):
inp
=
raw_input
(
AUTHENTICITY_MSG
%
(
hostname
,
ktype
,
fingerprint
))
inp
=
raw_input
(
AUTHENTICITY_MSG
%
(
hostname
,
ktype
,
fingerprint
))
sys
.
stdin
=
old_stdin
sys
.
stdin
=
old_stdin
self
.
connection
.
unlock_connection
()
if
inp
not
in
[
'yes'
,
'y'
,
''
]:
if
inp
not
in
[
'yes'
,
'y'
,
''
]:
# FIXME: lock file stuff
#fcntl.flock(self.runner.output_lockfile, fcntl.LOCK_UN)
#fcntl.flock(self.runner.process_lockfile, fcntl.LOCK_UN)
raise
AnsibleError
(
"host connection rejected by user"
)
raise
AnsibleError
(
"host connection rejected by user"
)
# FIXME: lock file stuff
#fcntl.lockf(self.runner.output_lockfile, fcntl.LOCK_UN)
#fcntl.lockf(self.runner.process_lockfile, fcntl.LOCK_UN)
key
.
_added_by_ansible_this_time
=
True
key
.
_added_by_ansible_this_time
=
True
# existing implementation below:
# existing implementation below:
...
@@ -159,7 +152,7 @@ class Connection(ConnectionBase):
...
@@ -159,7 +152,7 @@ class Connection(ConnectionBase):
pass
# file was not found, but not required to function
pass
# file was not found, but not required to function
ssh
.
load_system_host_keys
()
ssh
.
load_system_host_keys
()
ssh
.
set_missing_host_key_policy
(
MyAddPolicy
(
self
.
_new_stdin
))
ssh
.
set_missing_host_key_policy
(
MyAddPolicy
(
self
.
_new_stdin
,
self
))
allow_agent
=
True
allow_agent
=
True
...
@@ -365,6 +358,9 @@ class Connection(ConnectionBase):
...
@@ -365,6 +358,9 @@ class Connection(ConnectionBase):
if
C
.
HOST_KEY_CHECKING
and
C
.
PARAMIKO_RECORD_HOST_KEYS
and
self
.
_any_keys_added
():
if
C
.
HOST_KEY_CHECKING
and
C
.
PARAMIKO_RECORD_HOST_KEYS
and
self
.
_any_keys_added
():
# add any new SSH host keys -- warning -- this could be slow
# add any new SSH host keys -- warning -- this could be slow
# (This doesn't acquire the connection lock because it needs
# to exclude only other known_hosts writers, not connections
# that are starting up.)
lockfile
=
self
.
keyfile
.
replace
(
"known_hosts"
,
".known_hosts.lock"
)
lockfile
=
self
.
keyfile
.
replace
(
"known_hosts"
,
".known_hosts.lock"
)
dirname
=
os
.
path
.
dirname
(
self
.
keyfile
)
dirname
=
os
.
path
.
dirname
(
self
.
keyfile
)
makedirs_safe
(
dirname
)
makedirs_safe
(
dirname
)
...
...
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