import click import os import subprocess @click.group() def ceph(): pass @ceph.command("setup") @click.option("--ceph_url", required=True) @click.option("--ssh_username", required=True) def setup(ceph_url, ssh_username): try: os.makedirs("/etc/ceph", exist_ok=True) command = f"sftp -b ./ceph_batch_cmd {ssh_username}@{ceph_url}:/etc/ceph" subprocess.check_output(command.split()) except Exception: p = subprocess.check_output(f"ssh-keyscan {ceph_url}".split()) keys = p.decode("utf-8").strip().split("\n") keys = "\n".join(keys) with open(os.path.expanduser("~/.ssh/known_hosts"), "a") as known_hosts: known_hosts.write(keys) os.makedirs("/etc/ceph", exist_ok=True) command = f"sftp -b ./ceph_batch_cmd {ssh_username}@{ceph_url}:/etc/ceph" subprocess.check_output(command.split())