mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-31 00:51:23 -07:00
Refactoring to avoid duplication of code which manages the decompression of database dumps in various formats
This commit is contained in:
parent
9b83311471
commit
e34c7f31dc
1 changed files with 5 additions and 21 deletions
|
@ -172,32 +172,16 @@ def db_import(module, host, user, password, db_name, target, all_databases, port
|
||||||
cmd += " --host=%s --port=%i" % (pipes.quote(host), port)
|
cmd += " --host=%s --port=%i" % (pipes.quote(host), port)
|
||||||
if not all_databases:
|
if not all_databases:
|
||||||
cmd += " -D %s" % pipes.quote(db_name)
|
cmd += " -D %s" % pipes.quote(db_name)
|
||||||
|
|
||||||
|
comp_prog_path = None
|
||||||
if os.path.splitext(target)[-1] == '.gz':
|
if os.path.splitext(target)[-1] == '.gz':
|
||||||
comp_prog_path = module.get_bin_path('gzip', required=True)
|
comp_prog_path = module.get_bin_path('gzip', required=True)
|
||||||
p1 = subprocess.Popen([comp_prog_path, '-dc', target], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
||||||
p2 = subprocess.Popen(cmd.split(' '), stdin=p1.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
||||||
(stdout2, stderr2) = p2.communicate()
|
|
||||||
p1.stdout.close()
|
|
||||||
p1.wait()
|
|
||||||
if p1.returncode != 0:
|
|
||||||
stderr1 = p1.stderr.read()
|
|
||||||
return p1.returncode, '', stderr1
|
|
||||||
else:
|
|
||||||
return p2.returncode, stdout2, stderr2
|
|
||||||
elif os.path.splitext(target)[-1] == '.bz2':
|
elif os.path.splitext(target)[-1] == '.bz2':
|
||||||
comp_prog_path = module.get_bin_path('bzip2', required=True)
|
comp_prog_path = module.get_bin_path('bzip2', required=True)
|
||||||
p1 = subprocess.Popen([comp_prog_path, '-dc', target], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
||||||
p2 = subprocess.Popen(cmd.split(' '), stdin=p1.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
||||||
(stdout2, stderr2) = p2.communicate()
|
|
||||||
p1.stdout.close()
|
|
||||||
p1.wait()
|
|
||||||
if p1.returncode != 0:
|
|
||||||
stderr1 = p1.stderr.read()
|
|
||||||
return p1.returncode, '', stderr1
|
|
||||||
else:
|
|
||||||
return p2.returncode, stdout2, stderr2
|
|
||||||
elif os.path.splitext(target)[-1] == '.xz':
|
elif os.path.splitext(target)[-1] == '.xz':
|
||||||
comp_prog_path = module.get_bin_path('xz', required=True)
|
comp_prog_path = module.get_bin_path('xz', required=True)
|
||||||
|
|
||||||
|
if comp_prog_path:
|
||||||
p1 = subprocess.Popen([comp_prog_path, '-dc', target], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
p1 = subprocess.Popen([comp_prog_path, '-dc', target], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
p2 = subprocess.Popen(cmd.split(' '), stdin=p1.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
p2 = subprocess.Popen(cmd.split(' '), stdin=p1.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
(stdout2, stderr2) = p2.communicate()
|
(stdout2, stderr2) = p2.communicate()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue