forked from extern/podman-compose
apply formating and add pylintrc
This commit is contained in:
parent
844c23d553
commit
4733c7ef94
13
.pylintrc
Normal file
13
.pylintrc
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
[MESSAGES CONTROL]
|
||||||
|
disable=W0614,C0410,C0321,C0111,I0011,C0103
|
||||||
|
# allow _ for ignored variables
|
||||||
|
# allow generic names like a,b,c and i,j,k,l,m,n and x,y,z
|
||||||
|
# allow k,v for key/value
|
||||||
|
# allow e for exceptions, it for iterator
|
||||||
|
# allow w,h for width, height
|
||||||
|
# allow op for operation/operator/opcode
|
||||||
|
# allow t, t0, t1, t2, and t3 for time
|
||||||
|
# allow dt for delta time
|
||||||
|
# allow db for database
|
||||||
|
# allow ls for list
|
||||||
|
good-names=_,a,b,c,dt,db,e,f,fn,fd,i,j,k,v,kv,kw,l,m,n,ls,t,t0,t1,t2,t3,w,h,x,y,z,it,op
|
@ -21,12 +21,17 @@ import yaml
|
|||||||
|
|
||||||
# helpers
|
# helpers
|
||||||
|
|
||||||
def try_int(i, fallback = None):
|
|
||||||
try: return int(i)
|
def try_int(i, fallback=None):
|
||||||
except ValueError: pass
|
try:
|
||||||
except TypeError: pass
|
return int(i)
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
except TypeError:
|
||||||
|
pass
|
||||||
return fallback
|
return fallback
|
||||||
|
|
||||||
|
|
||||||
def norm_as_list(src):
|
def norm_as_list(src):
|
||||||
"""
|
"""
|
||||||
given a dictionary {key1:value1, key2: None} or list
|
given a dictionary {key1:value1, key2: None} or list
|
||||||
@ -42,6 +47,7 @@ def norm_as_list(src):
|
|||||||
dst = [src]
|
dst = [src]
|
||||||
return dst
|
return dst
|
||||||
|
|
||||||
|
|
||||||
def norm_as_dict(src):
|
def norm_as_dict(src):
|
||||||
"""
|
"""
|
||||||
given a list ["key1=value1", "key2"]
|
given a list ["key1=value1", "key2"]
|
||||||
@ -52,7 +58,7 @@ def norm_as_dict(src):
|
|||||||
elif isinstance(src, dict):
|
elif isinstance(src, dict):
|
||||||
dst = dict(src)
|
dst = dict(src)
|
||||||
elif hasattr(src, '__iter__'):
|
elif hasattr(src, '__iter__'):
|
||||||
dst = [ i.split("=", 1) for i in src if i ]
|
dst = [i.split("=", 1) for i in src if i]
|
||||||
dst = dict([(a if len(a) == 2 else (a[0], None)) for a in dst])
|
dst = dict([(a if len(a) == 2 else (a[0], None)) for a in dst])
|
||||||
else:
|
else:
|
||||||
raise ValueError("dictionary or iterable is expected")
|
raise ValueError("dictionary or iterable is expected")
|
||||||
@ -61,7 +67,7 @@ def norm_as_dict(src):
|
|||||||
|
|
||||||
# transformation helpers
|
# transformation helpers
|
||||||
|
|
||||||
def adj_hosts(services, cnt, dst = "127.0.0.1"):
|
def adj_hosts(services, cnt, dst="127.0.0.1"):
|
||||||
"""
|
"""
|
||||||
adjust container cnt in-place to add hosts pointing to dst for services
|
adjust container cnt in-place to add hosts pointing to dst for services
|
||||||
"""
|
"""
|
||||||
@ -80,6 +86,7 @@ def adj_hosts(services, cnt, dst = "127.0.0.1"):
|
|||||||
extra_hosts.append("{}:{}".format(alias, dst))
|
extra_hosts.append("{}:{}".format(alias, dst))
|
||||||
cnt["extra_hosts"] = extra_hosts
|
cnt["extra_hosts"] = extra_hosts
|
||||||
|
|
||||||
|
|
||||||
def move_list(dst, containers, key):
|
def move_list(dst, containers, key):
|
||||||
"""
|
"""
|
||||||
move key (like port forwarding) from containers to dst (a pod or a infra container)
|
move key (like port forwarding) from containers to dst (a pod or a infra container)
|
||||||
@ -90,7 +97,9 @@ def move_list(dst, containers, key):
|
|||||||
if a0:
|
if a0:
|
||||||
a.update(a0)
|
a.update(a0)
|
||||||
del cnt[key]
|
del cnt[key]
|
||||||
if a: dst[key] = list(a)
|
if a:
|
||||||
|
dst[key] = list(a)
|
||||||
|
|
||||||
|
|
||||||
def move_port_fw(dst, containers):
|
def move_port_fw(dst, containers):
|
||||||
"""
|
"""
|
||||||
@ -98,6 +107,7 @@ def move_port_fw(dst, containers):
|
|||||||
"""
|
"""
|
||||||
move_list(dst, containers, "ports")
|
move_list(dst, containers, "ports")
|
||||||
|
|
||||||
|
|
||||||
def move_extra_hosts(dst, containers):
|
def move_extra_hosts(dst, containers):
|
||||||
"""
|
"""
|
||||||
move port forwarding from containers to dst (a pod or a infra container)
|
move port forwarding from containers to dst (a pod or a infra container)
|
||||||
@ -108,10 +118,13 @@ def move_extra_hosts(dst, containers):
|
|||||||
# transformations
|
# transformations
|
||||||
|
|
||||||
transformations = {}
|
transformations = {}
|
||||||
|
|
||||||
|
|
||||||
def trans(func):
|
def trans(func):
|
||||||
transformations[func.__name__.replace("tr_", "")] = func
|
transformations[func.__name__.replace("tr_", "")] = func
|
||||||
return func
|
return func
|
||||||
|
|
||||||
|
|
||||||
@trans
|
@trans
|
||||||
def tr_identity(project_name, services, given_containers):
|
def tr_identity(project_name, services, given_containers):
|
||||||
containers = []
|
containers = []
|
||||||
@ -119,48 +132,53 @@ def tr_identity(project_name, services, given_containers):
|
|||||||
containers.append(dict(cnt))
|
containers.append(dict(cnt))
|
||||||
return [], containers
|
return [], containers
|
||||||
|
|
||||||
|
|
||||||
@trans
|
@trans
|
||||||
def tr_publishall(project_name, services, given_containers):
|
def tr_publishall(project_name, services, given_containers):
|
||||||
containers = []
|
containers = []
|
||||||
for cnt0 in given_containers:
|
for cnt0 in given_containers:
|
||||||
cnt = dict(cnt0, publishall = True)
|
cnt = dict(cnt0, publishall=True)
|
||||||
# adjust hosts to point to the gateway, TODO: adjust host env
|
# adjust hosts to point to the gateway, TODO: adjust host env
|
||||||
adj_hosts(services, cnt, '10.0.2.2')
|
adj_hosts(services, cnt, '10.0.2.2')
|
||||||
containers.append(cnt)
|
containers.append(cnt)
|
||||||
return [], containers
|
return [], containers
|
||||||
|
|
||||||
|
|
||||||
@trans
|
@trans
|
||||||
def tr_hostnet(project_name, services, given_containers):
|
def tr_hostnet(project_name, services, given_containers):
|
||||||
containers = []
|
containers = []
|
||||||
for cnt0 in given_containers:
|
for cnt0 in given_containers:
|
||||||
cnt = dict(cnt0, network_mode = "host")
|
cnt = dict(cnt0, network_mode="host")
|
||||||
# adjust hosts to point to localhost, TODO: adjust host env
|
# adjust hosts to point to localhost, TODO: adjust host env
|
||||||
adj_hosts(services, cnt, '127.0.0.1')
|
adj_hosts(services, cnt, '127.0.0.1')
|
||||||
containers.append(cnt)
|
containers.append(cnt)
|
||||||
return [], containers
|
return [], containers
|
||||||
|
|
||||||
|
|
||||||
@trans
|
@trans
|
||||||
def tr_cntnet(project_name, services, given_containers):
|
def tr_cntnet(project_name, services, given_containers):
|
||||||
containers = []
|
containers = []
|
||||||
infra_name = project_name + "_infra"
|
infra_name = project_name + "_infra"
|
||||||
infra = dict(
|
infra = dict(
|
||||||
name = infra_name,
|
name=infra_name,
|
||||||
image = "k8s.gcr.io/pause:3.1",
|
image="k8s.gcr.io/pause:3.1",
|
||||||
)
|
)
|
||||||
for cnt0 in given_containers:
|
for cnt0 in given_containers:
|
||||||
cnt = dict(cnt0, network_mode = "container:"+infra_name)
|
cnt = dict(cnt0, network_mode="container:"+infra_name)
|
||||||
deps = cnt.get("depends") or []
|
deps = cnt.get("depends") or []
|
||||||
deps.append(infra_name)
|
deps.append(infra_name)
|
||||||
cnt["depends"] = deps
|
cnt["depends"] = deps
|
||||||
# adjust hosts to point to localhost, TODO: adjust host env
|
# adjust hosts to point to localhost, TODO: adjust host env
|
||||||
adj_hosts(services, cnt, '127.0.0.1')
|
adj_hosts(services, cnt, '127.0.0.1')
|
||||||
if "hostname" in cnt: del cnt["hostname"]
|
if "hostname" in cnt:
|
||||||
|
del cnt["hostname"]
|
||||||
containers.append(cnt)
|
containers.append(cnt)
|
||||||
move_port_fw(infra, containers)
|
move_port_fw(infra, containers)
|
||||||
move_extra_hosts(infra, containers)
|
move_extra_hosts(infra, containers)
|
||||||
containers.insert(0, infra)
|
containers.insert(0, infra)
|
||||||
return [], containers
|
return [], containers
|
||||||
|
|
||||||
|
|
||||||
@trans
|
@trans
|
||||||
def tr_1pod(project_name, services, given_containers):
|
def tr_1pod(project_name, services, given_containers):
|
||||||
"""
|
"""
|
||||||
@ -168,16 +186,17 @@ def tr_1pod(project_name, services, given_containers):
|
|||||||
services: {service_name: ["container_name1", "..."]}, currently only one is supported
|
services: {service_name: ["container_name1", "..."]}, currently only one is supported
|
||||||
given_containers: [{}, ...]
|
given_containers: [{}, ...]
|
||||||
"""
|
"""
|
||||||
pod = dict(name = project_name)
|
pod = dict(name=project_name)
|
||||||
containers = []
|
containers = []
|
||||||
for cnt0 in given_containers:
|
for cnt0 in given_containers:
|
||||||
cnt = dict(cnt0, pod = project_name)
|
cnt = dict(cnt0, pod=project_name)
|
||||||
# services can be accessed as localhost because they are on one pod
|
# services can be accessed as localhost because they are on one pod
|
||||||
# adjust hosts to point to localhost, TODO: adjust host env
|
# adjust hosts to point to localhost, TODO: adjust host env
|
||||||
adj_hosts(services, cnt, '127.0.0.1')
|
adj_hosts(services, cnt, '127.0.0.1')
|
||||||
containers.append(cnt)
|
containers.append(cnt)
|
||||||
return [pod], containers
|
return [pod], containers
|
||||||
|
|
||||||
|
|
||||||
@trans
|
@trans
|
||||||
def tr_1podfw(project_name, services, given_containers):
|
def tr_1podfw(project_name, services, given_containers):
|
||||||
pods, containers = tr_1pod(project_name, services, given_containers)
|
pods, containers = tr_1pod(project_name, services, given_containers)
|
||||||
@ -185,19 +204,24 @@ def tr_1podfw(project_name, services, given_containers):
|
|||||||
move_port_fw(pod, containers)
|
move_port_fw(pod, containers)
|
||||||
return pods, containers
|
return pods, containers
|
||||||
|
|
||||||
|
|
||||||
def down(project_name, dirname, pods, containers, dry_run, podman_path):
|
def down(project_name, dirname, pods, containers, dry_run, podman_path):
|
||||||
for cnt in containers:
|
for cnt in containers:
|
||||||
cmd = """{} stop -t=1 '{name}'""".format(podman_path, **cnt)
|
cmd = """{} stop -t=1 '{name}'""".format(podman_path, **cnt)
|
||||||
print(cmd)
|
print(cmd)
|
||||||
if dry_run == False: subprocess.Popen(cmd, shell = True).wait()
|
if dry_run == False:
|
||||||
|
subprocess.Popen(cmd, shell=True).wait()
|
||||||
for cnt in containers:
|
for cnt in containers:
|
||||||
cmd = """{} rm '{name}'""".format(podman_path, **cnt)
|
cmd = """{} rm '{name}'""".format(podman_path, **cnt)
|
||||||
print(cmd)
|
print(cmd)
|
||||||
if dry_run == False: subprocess.Popen(cmd, shell = True).wait()
|
if dry_run == False:
|
||||||
|
subprocess.Popen(cmd, shell=True).wait()
|
||||||
for pod in pods:
|
for pod in pods:
|
||||||
cmd = """{} pod rm '{name}'""".format(podman_path, **pod)
|
cmd = """{} pod rm '{name}'""".format(podman_path, **pod)
|
||||||
print(cmd)
|
print(cmd)
|
||||||
if dry_run == False: subprocess.Popen(cmd, shell = True).wait()
|
if dry_run == False:
|
||||||
|
subprocess.Popen(cmd, shell=True).wait()
|
||||||
|
|
||||||
|
|
||||||
def container_to_args(cnt, dirname, podman_path):
|
def container_to_args(cnt, dirname, podman_path):
|
||||||
pod = cnt.get('pod') or ''
|
pod = cnt.get('pod') or ''
|
||||||
@ -213,7 +237,7 @@ def container_to_args(cnt, dirname, podman_path):
|
|||||||
args.append('--read-only')
|
args.append('--read-only')
|
||||||
for i in cnt.get('labels', []):
|
for i in cnt.get('labels', []):
|
||||||
args.extend(['--label', i])
|
args.extend(['--label', i])
|
||||||
net=cnt.get("network_mode")
|
net = cnt.get("network_mode")
|
||||||
if net:
|
if net:
|
||||||
args.extend(['--network', net])
|
args.extend(['--network', net])
|
||||||
env = norm_as_list(cnt.get('environment', {}))
|
env = norm_as_list(cnt.get('environment', {}))
|
||||||
@ -249,7 +273,7 @@ def container_to_args(cnt, dirname, podman_path):
|
|||||||
if cnt.get('tty'):
|
if cnt.get('tty'):
|
||||||
args.append('--tty')
|
args.append('--tty')
|
||||||
# currently podman shipped by fedora does not package this
|
# currently podman shipped by fedora does not package this
|
||||||
#if cnt.get('init'):
|
# if cnt.get('init'):
|
||||||
# args.append('--init')
|
# args.append('--init')
|
||||||
entrypoint = cnt.get('entrypoint')
|
entrypoint = cnt.get('entrypoint')
|
||||||
if entrypoint is not None:
|
if entrypoint is not None:
|
||||||
@ -264,32 +288,41 @@ def container_to_args(cnt, dirname, podman_path):
|
|||||||
args.extend(command)
|
args.extend(command)
|
||||||
return args
|
return args
|
||||||
|
|
||||||
|
|
||||||
def rec_deps(services, container_by_name, cnt, init_service):
|
def rec_deps(services, container_by_name, cnt, init_service):
|
||||||
deps = cnt["_deps"]
|
deps = cnt["_deps"]
|
||||||
for dep in deps:
|
for dep in deps:
|
||||||
dep_cnts = services.get(dep)
|
dep_cnts = services.get(dep)
|
||||||
if not dep_cnts: continue
|
if not dep_cnts:
|
||||||
|
continue
|
||||||
dep_cnt = container_by_name.get(dep_cnts[0])
|
dep_cnt = container_by_name.get(dep_cnts[0])
|
||||||
if dep_cnt:
|
if dep_cnt:
|
||||||
# TODO: avoid creating loops, A->B->A
|
# TODO: avoid creating loops, A->B->A
|
||||||
if init_service and init_service in dep_cnt["_deps"]: continue
|
if init_service and init_service in dep_cnt["_deps"]:
|
||||||
new_deps = rec_deps(services, container_by_name, dep_cnt, init_service)
|
continue
|
||||||
|
new_deps = rec_deps(services, container_by_name,
|
||||||
|
dep_cnt, init_service)
|
||||||
deps.update(new_deps)
|
deps.update(new_deps)
|
||||||
return deps
|
return deps
|
||||||
|
|
||||||
|
|
||||||
def flat_deps(services, container_by_name):
|
def flat_deps(services, container_by_name):
|
||||||
for name, cnt in container_by_name.items():
|
for name, cnt in container_by_name.items():
|
||||||
deps = set([(c.split(":")[0] if ":" in c else c) for c in cnt.get("links", []) ])
|
deps = set([(c.split(":")[0] if ":" in c else c)
|
||||||
|
for c in cnt.get("links", [])])
|
||||||
deps.update(cnt.get("depends", []))
|
deps.update(cnt.get("depends", []))
|
||||||
cnt["_deps"] = deps
|
cnt["_deps"] = deps
|
||||||
for name, cnt in container_by_name.items():
|
for name, cnt in container_by_name.items():
|
||||||
rec_deps(services, container_by_name, cnt, cnt.get('_service'))
|
rec_deps(services, container_by_name, cnt, cnt.get('_service'))
|
||||||
|
|
||||||
|
|
||||||
def up(project_name, dirname, pods, containers, no_cleanup, dry_run, podman_path):
|
def up(project_name, dirname, pods, containers, no_cleanup, dry_run, podman_path):
|
||||||
if dry_run == False: os.chdir(dirname)
|
if dry_run == False:
|
||||||
|
os.chdir(dirname)
|
||||||
|
|
||||||
# no need remove them if they have same hash label
|
# no need remove them if they have same hash label
|
||||||
if no_cleanup == False: down(project_name, dirname, pods, containers, dry_run, podman_path)
|
if no_cleanup == False:
|
||||||
|
down(project_name, dirname, pods, containers, dry_run, podman_path)
|
||||||
|
|
||||||
for pod in pods:
|
for pod in pods:
|
||||||
args = [
|
args = [
|
||||||
@ -314,9 +347,11 @@ def up(project_name, dirname, pods, containers, no_cleanup, dry_run, podman_path
|
|||||||
if dry_run == False:
|
if dry_run == False:
|
||||||
subprocess.Popen(args).wait()
|
subprocess.Popen(args).wait()
|
||||||
# subprocess.Popen(args, bufsize = 0, executable = None, stdin = None, stdout = None, stderr = None, preexec_fn = None, close_fds = False, shell = False, cwd = None, env = None, universal_newlines = False, startupinfo = None, creationflags = 0)
|
# subprocess.Popen(args, bufsize = 0, executable = None, stdin = None, stdout = None, stderr = None, preexec_fn = None, close_fds = False, shell = False, cwd = None, env = None, universal_newlines = False, startupinfo = None, creationflags = 0)
|
||||||
if dry_run == False: time.sleep(1)
|
if dry_run == False:
|
||||||
|
time.sleep(1)
|
||||||
|
|
||||||
def main(command, filename, project_name, no_ansi, no_cleanup, dry_run, transform_policy, podman_path, host_env = None):
|
|
||||||
|
def main(command, filename, project_name, no_ansi, no_cleanup, dry_run, transform_policy, podman_path, host_env=None):
|
||||||
filename = os.path.realpath(filename)
|
filename = os.path.realpath(filename)
|
||||||
dirname = os.path.dirname(filename)
|
dirname = os.path.dirname(filename)
|
||||||
dir_basename = os.path.basename(dirname)
|
dir_basename = os.path.basename(dirname)
|
||||||
@ -326,7 +361,9 @@ def main(command, filename, project_name, no_ansi, no_cleanup, dry_run, transfor
|
|||||||
podman_path = os.path.realpath(podman_path)
|
podman_path = os.path.realpath(podman_path)
|
||||||
else:
|
else:
|
||||||
# this also works if podman hasn't been installed now
|
# this also works if podman hasn't been installed now
|
||||||
if dry_run == False: raise IOError("Binary {} has not been found.".format(podman_path))
|
if dry_run == False:
|
||||||
|
raise IOError(
|
||||||
|
"Binary {} has not been found.".format(podman_path))
|
||||||
|
|
||||||
if not project_name:
|
if not project_name:
|
||||||
project_name = dir_basename
|
project_name = dir_basename
|
||||||
@ -355,13 +392,14 @@ def main(command, filename, project_name, no_ansi, no_cleanup, dry_run, transfor
|
|||||||
container_names_by_service[service_name] = []
|
container_names_by_service[service_name] = []
|
||||||
for num in range(1, replicas+1):
|
for num in range(1, replicas+1):
|
||||||
name = "{project_name}_{service_name}_{num}".format(
|
name = "{project_name}_{service_name}_{num}".format(
|
||||||
project_name = project_name,
|
project_name=project_name,
|
||||||
service_name = service_name,
|
service_name=service_name,
|
||||||
num = num,
|
num=num,
|
||||||
)
|
)
|
||||||
container_names_by_service[service_name].append(name)
|
container_names_by_service[service_name].append(name)
|
||||||
# print(service_name,service_desc)
|
# print(service_name,service_desc)
|
||||||
cnt = dict(name = name, num = num, service_name = service_name, **service_desc)
|
cnt = dict(name=name, num=num,
|
||||||
|
service_name=service_name, **service_desc)
|
||||||
labels = norm_as_list(cnt.get('labels'))
|
labels = norm_as_list(cnt.get('labels'))
|
||||||
labels.extend(podman_compose_labels)
|
labels.extend(podman_compose_labels)
|
||||||
labels.extend([
|
labels.extend([
|
||||||
@ -375,50 +413,53 @@ def main(command, filename, project_name, no_ansi, no_cleanup, dry_run, transfor
|
|||||||
flat_deps(container_names_by_service, container_by_name)
|
flat_deps(container_names_by_service, container_by_name)
|
||||||
#print("deps:", [(c["name"], c["_deps"]) for c in given_containers])
|
#print("deps:", [(c["name"], c["_deps"]) for c in given_containers])
|
||||||
given_containers = container_by_name.values()
|
given_containers = container_by_name.values()
|
||||||
given_containers.sort(key = lambda c: len(c.get('_deps') or []))
|
given_containers.sort(key=lambda c: len(c.get('_deps') or []))
|
||||||
#print("sorted:", [c["name"] for c in given_containers])
|
#print("sorted:", [c["name"] for c in given_containers])
|
||||||
tr = transformations[transform_policy]
|
tr = transformations[transform_policy]
|
||||||
pods, containers = tr(project_name, container_names_by_service, given_containers)
|
pods, containers = tr(
|
||||||
|
project_name, container_names_by_service, given_containers)
|
||||||
cmd = command[0]
|
cmd = command[0]
|
||||||
if cmd == "up":
|
if cmd == "up":
|
||||||
up(project_name, dirname, pods, containers, no_cleanup, dry_run, podman_path)
|
up(project_name, dirname, pods, containers,
|
||||||
|
no_cleanup, dry_run, podman_path)
|
||||||
elif cmd == "down":
|
elif cmd == "down":
|
||||||
down(project_name, dirname, pods, containers, dry_run, podman_path)
|
down(project_name, dirname, pods, containers, dry_run, podman_path)
|
||||||
else:
|
else:
|
||||||
raise NotImplementedError("command {} is not implemented".format(cmd))
|
raise NotImplementedError("command {} is not implemented".format(cmd))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('command', metavar = 'command',
|
parser.add_argument('command', metavar='command',
|
||||||
help = 'command to run',
|
help='command to run',
|
||||||
choices = ['up', 'down'], nargs = 1, default = "up")
|
choices=['up', 'down'], nargs=1, default="up")
|
||||||
parser.add_argument("-f", "--file",
|
parser.add_argument("-f", "--file",
|
||||||
help = "Specify an alternate compose file (default: docker-compose.yml)",
|
help="Specify an alternate compose file (default: docker-compose.yml)",
|
||||||
type = str, default = "docker-compose.yml")
|
type=str, default="docker-compose.yml")
|
||||||
parser.add_argument("-p", "--project-name",
|
parser.add_argument("-p", "--project-name",
|
||||||
help = "Specify an alternate project name (default: directory name)",
|
help="Specify an alternate project name (default: directory name)",
|
||||||
type = str, default = None)
|
type=str, default=None)
|
||||||
parser.add_argument("--podman-path",
|
parser.add_argument("--podman-path",
|
||||||
help = "Specify an alternate path to podman (default: use location in $PATH variable)",
|
help="Specify an alternate path to podman (default: use location in $PATH variable)",
|
||||||
type = str, default = "podman")
|
type=str, default="podman")
|
||||||
parser.add_argument("--no-ansi",
|
parser.add_argument("--no-ansi",
|
||||||
help = "Do not print ANSI control characters", action = 'store_true')
|
help="Do not print ANSI control characters", action='store_true')
|
||||||
parser.add_argument("--no-cleanup",
|
parser.add_argument("--no-cleanup",
|
||||||
help = "Do not stop and remove existing pod & containers", action = 'store_true')
|
help="Do not stop and remove existing pod & containers", action='store_true')
|
||||||
parser.add_argument("--dry-run",
|
parser.add_argument("--dry-run",
|
||||||
help = "No action; perform a simulation of commands", action = 'store_true')
|
help="No action; perform a simulation of commands", action='store_true')
|
||||||
parser.add_argument("-t", "--transform_policy",
|
parser.add_argument("-t", "--transform_policy",
|
||||||
help = "how to translate docker compose to podman [1pod|hostnet|accurate]",
|
help="how to translate docker compose to podman [1pod|hostnet|accurate]",
|
||||||
choices = ['1pod', '1podfw', 'hostnet', 'cntnet', 'publishall', 'identity'], default = '1podfw')
|
choices=['1pod', '1podfw', 'hostnet', 'cntnet', 'publishall', 'identity'], default='1podfw')
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
main (
|
main(
|
||||||
command = args.command,
|
command=args.command,
|
||||||
filename = args.file,
|
filename=args.file,
|
||||||
project_name = args.project_name,
|
project_name=args.project_name,
|
||||||
no_ansi = args.no_ansi,
|
no_ansi=args.no_ansi,
|
||||||
no_cleanup = args.no_cleanup,
|
no_cleanup=args.no_cleanup,
|
||||||
dry_run = args.dry_run,
|
dry_run=args.dry_run,
|
||||||
transform_policy = args.transform_policy,
|
transform_policy=args.transform_policy,
|
||||||
podman_path = args.podman_path
|
podman_path=args.podman_path
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user