summaryrefslogtreecommitdiff
path: root/contrib/python/cmd/remote_client.py
diff options
context:
space:
mode:
authorJhon Honce <jhonce@redhat.com>2018-06-27 21:37:42 -0700
committerJhon Honce <jhonce@redhat.com>2018-07-13 11:29:28 -0700
commit44b523c946c88e540b50d7ba59f441b5f8e0bad0 (patch)
tree744c09508b139c1aca3d7fc995fad7ff354e3667 /contrib/python/cmd/remote_client.py
parent14a6d51a8432fc0c3324fec02e8729d3032f2af2 (diff)
downloadpodman-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.py136
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