Fix problem with jail and zone connection plugins and symlinks from within the jail/zone.
This commit is contained in:
parent
a431098fc5
commit
f0302f2e2d
2 changed files with 18 additions and 7 deletions
|
@ -59,8 +59,6 @@ class Connection(object):
|
||||||
# remove \n
|
# remove \n
|
||||||
return stdout[:-1]
|
return stdout[:-1]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def __init__(self, runner, host, port, *args, **kwargs):
|
def __init__(self, runner, host, port, *args, **kwargs):
|
||||||
self.jail = host
|
self.jail = host
|
||||||
self.runner = runner
|
self.runner = runner
|
||||||
|
@ -73,7 +71,7 @@ class Connection(object):
|
||||||
|
|
||||||
self.jls_cmd = self._search_executable('jls')
|
self.jls_cmd = self._search_executable('jls')
|
||||||
self.jexec_cmd = self._search_executable('jexec')
|
self.jexec_cmd = self._search_executable('jexec')
|
||||||
|
|
||||||
if not self.jail in self.list_jails():
|
if not self.jail in self.list_jails():
|
||||||
raise errors.AnsibleError("incorrect jail name %s" % self.jail)
|
raise errors.AnsibleError("incorrect jail name %s" % self.jail)
|
||||||
|
|
||||||
|
@ -137,7 +135,10 @@ class Connection(object):
|
||||||
vvv("PUT %s TO %s" % (in_path, out_path), host=self.jail)
|
vvv("PUT %s TO %s" % (in_path, out_path), host=self.jail)
|
||||||
|
|
||||||
with open(in_path, 'rb') as in_file:
|
with open(in_path, 'rb') as in_file:
|
||||||
p = self._buffered_exec_command('dd of=%s' % out_path, None, stdin=in_file)
|
try:
|
||||||
|
p = self._buffered_exec_command('dd of=%s' % out_path, None, stdin=in_file)
|
||||||
|
except OSError:
|
||||||
|
raise errors.AnsibleError("jail connection requires dd command in the jail")
|
||||||
try:
|
try:
|
||||||
stdout, stderr = p.communicate()
|
stdout, stderr = p.communicate()
|
||||||
except:
|
except:
|
||||||
|
@ -152,7 +153,10 @@ class Connection(object):
|
||||||
vvv("FETCH %s TO %s" % (in_path, out_path), host=self.jail)
|
vvv("FETCH %s TO %s" % (in_path, out_path), host=self.jail)
|
||||||
|
|
||||||
|
|
||||||
p = self._buffered_exec_command('dd if=%s bs=%s' % (in_path, BUFSIZE), None)
|
try:
|
||||||
|
p = self._buffered_exec_command('dd if=%s bs=%s' % (in_path, BUFSIZE), None)
|
||||||
|
except OSError:
|
||||||
|
raise errors.AnsibleError("jail connection requires dd command in the jail")
|
||||||
|
|
||||||
with open(out_path, 'wb+') as out_file:
|
with open(out_path, 'wb+') as out_file:
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -148,7 +148,10 @@ class Connection(object):
|
||||||
vvv("PUT %s TO %s" % (in_path, out_path), host=self.zone)
|
vvv("PUT %s TO %s" % (in_path, out_path), host=self.zone)
|
||||||
|
|
||||||
with open(in_path, 'rb') as in_file:
|
with open(in_path, 'rb') as in_file:
|
||||||
p = self._buffered_exec_command('dd of=%s' % out_path, None, stdin=in_file)
|
try:
|
||||||
|
p = self._buffered_exec_command('dd of=%s' % out_path, None, stdin=in_file)
|
||||||
|
except OSError:
|
||||||
|
raise errors.AnsibleError("zone connection requires dd command in the zone")
|
||||||
try:
|
try:
|
||||||
stdout, stderr = p.communicate()
|
stdout, stderr = p.communicate()
|
||||||
except:
|
except:
|
||||||
|
@ -163,7 +166,11 @@ class Connection(object):
|
||||||
vvv("FETCH %s TO %s" % (in_path, out_path), host=self.zone)
|
vvv("FETCH %s TO %s" % (in_path, out_path), host=self.zone)
|
||||||
|
|
||||||
|
|
||||||
p = self._buffered_exec_command('dd if=%s bs=%s' % (in_path, BUFSIZE), None)
|
try:
|
||||||
|
p = self._buffered_exec_command('dd if=%s bs=%s' % (in_path, BUFSIZE), None)
|
||||||
|
except OSError:
|
||||||
|
raise errors.AnsibleError("zone connection requires dd command in the zone")
|
||||||
|
|
||||||
|
|
||||||
with open(out_path, 'wb+') as out_file:
|
with open(out_path, 'wb+') as out_file:
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in a new issue