scp a file or files to a remote system
(self, local, remote, makedirs=False)
| 352 | return ret |
| 353 | |
| 354 | def send(self, local, remote, makedirs=False): |
| 355 | """ |
| 356 | scp a file or files to a remote system |
| 357 | """ |
| 358 | if makedirs: |
| 359 | pardir = os.path.dirname(remote) |
| 360 | if not pardir: |
| 361 | log.warning( |
| 362 | "Makedirs called on relative filename: '%s'. Skipping.", remote |
| 363 | ) |
| 364 | else: |
| 365 | ret = self.exec_cmd("mkdir -p " + shlex.quote(pardir)) |
| 366 | if ret[2]: |
| 367 | return ret |
| 368 | |
| 369 | # scp needs [<ipv6>] |
| 370 | host = self.host |
| 371 | if ":" in host: |
| 372 | host = f"[{host}]" |
| 373 | |
| 374 | cmd = f"{local} {host}:{remote}" |
| 375 | cmd = self._cmd_str(cmd, ssh=SCP_PATH) |
| 376 | |
| 377 | logmsg = f"Executing command: {cmd}" |
| 378 | if self.passwd: |
| 379 | logmsg = logmsg.replace(self.passwd, ("*" * 6)) |
| 380 | log.debug(logmsg) |
| 381 | |
| 382 | return self._run_cmd(cmd) |
| 383 | |
| 384 | def _split_cmd(self, cmd): |
| 385 | """ |