diff options
author | Jhon Honce <jhonce@redhat.com> | 2018-06-27 21:37:42 -0700 |
---|---|---|
committer | Jhon Honce <jhonce@redhat.com> | 2018-07-13 11:29:28 -0700 |
commit | 44b523c946c88e540b50d7ba59f441b5f8e0bad0 (patch) | |
tree | 744c09508b139c1aca3d7fc995fad7ff354e3667 /contrib/python/cmd/remote_client.py | |
parent | 14a6d51a8432fc0c3324fec02e8729d3032f2af2 (diff) | |
download | podman-44b523c946c88e540b50d7ba59f441b5f8e0bad0.tar.gz podman-44b523c946c88e540b50d7ba59f441b5f8e0bad0.tar.bz2 podman-44b523c946c88e540b50d7ba59f441b5f8e0bad0.zip |
remote python client for podman
* Use podman library for access
* Verbose error checking
* Planned windows and macosx ports
Signed-off-by: Jhon Honce <jhonce@redhat.com>
Diffstat (limited to 'contrib/python/cmd/remote_client.py')
-rw-r--r-- | contrib/python/cmd/remote_client.py | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/contrib/python/cmd/remote_client.py b/contrib/python/cmd/remote_client.py deleted file mode 100644 index 9bb5a0d9a..000000000 --- a/contrib/python/cmd/remote_client.py +++ /dev/null @@ -1,136 +0,0 @@ -import os -import getpass -import argparse -import images -import ps, rm, rmi -import sys -from utils import write_err -import pytoml - -default_conf_path = "/etc/containers/podman_client.conf" - -class HelpByDefaultArgumentParser(argparse.ArgumentParser): - - def error(self, message): - write_err('%s: %s' % (self.prog, message)) - write_err("Try '%s --help' for more information." % self.prog) - sys.exit(2) - - def print_usage(self, message="too few arguments"): # pylint: disable=arguments-differ - self.prog = " ".join(sys.argv) - self.error(message) - - -def create_parser(help_text): - parser = HelpByDefaultArgumentParser(description=help_text) - parser.add_argument('-v', '--version', action='version', version="0.0", - help=("show rpodman version and exit")) - parser.add_argument('--debug', default=False, action='store_true', - help=("show debug messages")) - parser.add_argument('--run_dir', dest="run_dir", - help=("directory to place socket bindings")) - parser.add_argument('--user', dest="user", - help=("remote user")) - parser.add_argument('--host', dest="host", - help=("remote host")) - parser.add_argument('--remote_socket_path', dest="remote_socket_path", - help=("remote socket path")) - parser.add_argument('--identity_file', dest="identity_file", - help=("path to identity file")) - subparser = parser.add_subparsers(help=("commands")) - images.cli(subparser) - ps.cli(subparser) - rm.cli(subparser) - rmi.cli(subparser) - - return parser - -def load_toml(path): - # Lets load the configuration file - with open(path) as stream: - return pytoml.load(stream) - -if __name__ == '__main__': - - host = None - remote_socket_path = None - user = None - run_dir = None - - aparser = create_parser("podman remote tool") - args = aparser.parse_args() - if not os.path.exists(default_conf_path): - conf = {"default": {}} - else: - conf = load_toml("/etc/containers/podman_client.conf") - - # run_dir - if "run_dir" in os.environ: - run_dir = os.environ["run_dir"] - elif "run_dir" in conf["default"] and conf["default"]["run_dir"] is not None: - run_dir = conf["default"]["run_dir"] - else: - xdg = os.environ["XDG_RUNTIME_DIR"] - run_dir = os.path.join(xdg, "podman") - - # make the run_dir if it doesnt exist - if not os.path.exists(run_dir): - os.makedirs(run_dir) - - local_socket_path = os.path.join(run_dir, "podman.socket") - - # remote host - if "host" in os.environ: - host = os.environ["host"] - elif getattr(args, "host") is not None: - host = getattr(args, "host") - else: - host = conf["default"]["host"] if "host" in conf["default"] else None - - # remote user - if "user" in os.environ: - user = os.environ["user"] - elif getattr(args, "user") is not None: - user = getattr(args, "user") - elif "user" in conf["default"] and conf["default"]["user"] is not None: - user = conf["default"]["user"] - else: - user = getpass.getuser() - - # remote path - if "remote_socket_path" in os.environ: - remote_socket_path = os.environ["remote_socket_path"] - elif getattr(args, "remote_socket_path") is not None: - remote_socket_path = getattr(args, "remote_socket_path") - elif "remote_socket_path" in conf["default"] and conf["default"]["remote_socket_path"]: - remote_socket_path = conf["default"]["remote_socket_path"] - else: - remote_socket_path = None - - - # identity file - if "identity_file" in os.environ: - identity_file = os.environ["identity_file"] - elif getattr(args, "identity_file") is not None: - identity_file = getattr(args, "identity_file") - elif "identity_file" in conf["default"] and conf["default"]["identity_file"] is not None: - identity_file = conf["default"]["identity_file"] - else: - identity_file = None - - if None in [host, local_socket_path, user, remote_socket_path]: - print("missing input for local_socket, user, host, or remote_socket_path") - sys.exit(1) - - local_uri = "unix:{}".format(local_socket_path) - remote_uri = "ssh://{}@{}{}".format(user, host, remote_socket_path) - - _class = args._class() # pylint: disable=protected-access - _class.set_args(args, local_uri, remote_uri, identity_file) - - if "func" in args: - _func = getattr(_class, args.func) - sys.exit(_func()) - else: - aparser.print_usage() - sys.exit(1)
\ No newline at end of file |