mirror of
https://gitee.com/jack_whh/ssh-scp-ssh-pipelines.git
synced 2026-03-10 06:52:55 +08:00
Merge pull request #5 from thebaptiste/metwork
feat: the action should fail in case of authentification, ssh or scp errors
This commit is contained in:
31
app.py
31
app.py
@@ -60,8 +60,14 @@ def connect(callback=None):
|
|||||||
ssh.connect(INPUT_HOST, port=INPUT_PORT, username=INPUT_USER,
|
ssh.connect(INPUT_HOST, port=INPUT_PORT, username=INPUT_USER,
|
||||||
pkey=p_key, password=INPUT_PASS,
|
pkey=p_key, password=INPUT_PASS,
|
||||||
timeout=convert_to_seconds(INPUT_CONNECT_TIMEOUT))
|
timeout=convert_to_seconds(INPUT_CONNECT_TIMEOUT))
|
||||||
|
except Exception as err:
|
||||||
|
print(f"Connect error\n{err}")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
else:
|
||||||
if callback:
|
if callback:
|
||||||
callback(ssh)
|
callback(ssh)
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
os.unlink(tmp.name)
|
os.unlink(tmp.name)
|
||||||
tmp.close()
|
tmp.close()
|
||||||
@@ -89,7 +95,7 @@ def ssh_process(ssh, input_ssh):
|
|||||||
print(command_str)
|
print(command_str)
|
||||||
|
|
||||||
stdin, stdout, stderr = ssh.exec_command(command_str)
|
stdin, stdout, stderr = ssh.exec_command(command_str)
|
||||||
|
|
||||||
out = "".join(stdout.readlines())
|
out = "".join(stdout.readlines())
|
||||||
out = out.strip() if out is not None else None
|
out = out.strip() if out is not None else None
|
||||||
if out:
|
if out:
|
||||||
@@ -98,11 +104,9 @@ def ssh_process(ssh, input_ssh):
|
|||||||
err = "".join(stderr.readlines())
|
err = "".join(stderr.readlines())
|
||||||
err = err.strip() if err is not None else None
|
err = err.strip() if err is not None else None
|
||||||
if err:
|
if err:
|
||||||
if out is None:
|
print(f"Error: \n{err}")
|
||||||
raise Exception(err)
|
sys.exit(1)
|
||||||
else:
|
|
||||||
print(f"Error: \n{err}")
|
|
||||||
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@@ -128,10 +132,19 @@ def scp_process(ssh, input_scp):
|
|||||||
with scp.SCPClient(ssh.get_transport(), progress=progress, sanitize=lambda x: x) as conn:
|
with scp.SCPClient(ssh.get_transport(), progress=progress, sanitize=lambda x: x) as conn:
|
||||||
for l2r in copy_list:
|
for l2r in copy_list:
|
||||||
remote = l2r.get('r')
|
remote = l2r.get('r')
|
||||||
ssh.exec_command(f"mkdir -p {remote} || true")
|
try:
|
||||||
|
ssh.exec_command(f"mkdir -p {remote}")
|
||||||
|
except Exception as err:
|
||||||
|
print(f"Remote mkdir error. Can't create {remote}\n{err}")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
for f in [f for f in glob(l2r.get('l'))]:
|
for f in [f for f in glob(l2r.get('l'))]:
|
||||||
conn.put(f, remote_path=remote, recursive=True)
|
try:
|
||||||
print(f"{f} -> {remote}")
|
conn.put(f, remote_path=remote, recursive=True)
|
||||||
|
print(f"{f} -> {remote}")
|
||||||
|
except Exception as err:
|
||||||
|
print(f"Scp error. Can't copy {f} on {remote}\n{err}")
|
||||||
|
sys.exit(1)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,5 +3,8 @@
|
|||||||
echo "+++++++++++++++++++STARTING PIPELINES+++++++++++++++++++"
|
echo "+++++++++++++++++++STARTING PIPELINES+++++++++++++++++++"
|
||||||
|
|
||||||
python3 /opt/tools/app.py
|
python3 /opt/tools/app.py
|
||||||
|
RET=$?
|
||||||
|
|
||||||
echo "+++++++++++++++++++END PIPELINES+++++++++++++++++++"
|
echo "+++++++++++++++++++END PIPELINES+++++++++++++++++++"
|
||||||
|
|
||||||
|
exit $RET
|
||||||
|
|||||||
Reference in New Issue
Block a user