mirror of
https://github.com/containers/podman-compose.git
synced 2025-06-01 16:06:46 +02:00
pylint cleanups
This commit is contained in:
parent
de1e59d1d5
commit
cbd6f6b1b6
@ -11,7 +11,6 @@ import sys
|
|||||||
import os
|
import os
|
||||||
import argparse
|
import argparse
|
||||||
import subprocess
|
import subprocess
|
||||||
import textwrap
|
|
||||||
import time
|
import time
|
||||||
import re
|
import re
|
||||||
import hashlib
|
import hashlib
|
||||||
@ -585,9 +584,9 @@ def assert_cnt_nets(compose, cnt):
|
|||||||
default_net_name = net if is_ext else f"{proj_name}_{net}"
|
default_net_name = net if is_ext else f"{proj_name}_{net}"
|
||||||
net_name = ext_desc.get("name", None) or net_desc.get("name", None) or default_net_name
|
net_name = ext_desc.get("name", None) or net_desc.get("name", None) or default_net_name
|
||||||
try: compose.podman.output([], "network", ["exists", net_name])
|
try: compose.podman.output([], "network", ["exists", net_name])
|
||||||
except subprocess.CalledProcessError:
|
except subprocess.CalledProcessError as e:
|
||||||
if is_ext:
|
if is_ext:
|
||||||
raise RuntimeError(f"External network [{net_name}] does not exists")
|
raise RuntimeError(f"External network [{net_name}] does not exists") from e
|
||||||
args = [
|
args = [
|
||||||
"create",
|
"create",
|
||||||
"--label", "io.podman.compose.project={}".format(proj_name),
|
"--label", "io.podman.compose.project={}".format(proj_name),
|
||||||
@ -640,7 +639,8 @@ def get_net_args(compose, cnt):
|
|||||||
# NOTE: A container will only have access to aliases on the first network that it joins. This is a limitation that will be removed in a later release.
|
# NOTE: A container will only have access to aliases on the first network that it joins. This is a limitation that will be removed in a later release.
|
||||||
ip = None
|
ip = None
|
||||||
if cnt_nets and is_dict(cnt_nets):
|
if cnt_nets and is_dict(cnt_nets):
|
||||||
for net_key, net_value in cnt_nets.items():
|
# cnt_nets is {net_key: net_value, ...}
|
||||||
|
for net_value in cnt_nets.values():
|
||||||
aliases.extend(norm_as_list(net_value.get("aliases", None)))
|
aliases.extend(norm_as_list(net_value.get("aliases", None)))
|
||||||
if ip: continue
|
if ip: continue
|
||||||
ip = net_value.get("ipv4_address", None)
|
ip = net_value.get("ipv4_address", None)
|
||||||
@ -719,10 +719,10 @@ def container_to_args(compose, cnt, detached=True):
|
|||||||
assert_cnt_nets(compose, cnt)
|
assert_cnt_nets(compose, cnt)
|
||||||
podman_args.extend(get_net_args(compose, cnt))
|
podman_args.extend(get_net_args(compose, cnt))
|
||||||
|
|
||||||
log = cnt.get('logging')
|
logging = cnt.get('logging', None)
|
||||||
if log is not None:
|
if logging is not None:
|
||||||
podman_args.append(f'--log-driver={log.get("driver", "k8s-file")}')
|
podman_args.append(f'--log-driver={logging.get("driver", "k8s-file")}')
|
||||||
log_opts = log.get('options') or {}
|
log_opts = logging.get('options') or {}
|
||||||
podman_args += [f'--log-opt={name}={value}' for name, value in log_opts.items()]
|
podman_args += [f'--log-opt={name}={value}' for name, value in log_opts.items()]
|
||||||
for secret in cnt.get('secrets', []):
|
for secret in cnt.get('secrets', []):
|
||||||
podman_args.extend(get_secret_args(compose, cnt, secret))
|
podman_args.extend(get_secret_args(compose, cnt, secret))
|
||||||
@ -973,7 +973,7 @@ def normalize(compose):
|
|||||||
convert compose dict of some keys from string or dicts into arrays
|
convert compose dict of some keys from string or dicts into arrays
|
||||||
"""
|
"""
|
||||||
services = compose.get("services", None) or {}
|
services = compose.get("services", None) or {}
|
||||||
for service_name, service in services.items():
|
for service in services.values():
|
||||||
normalize_service(service)
|
normalize_service(service)
|
||||||
return compose
|
return compose
|
||||||
|
|
||||||
@ -1069,7 +1069,9 @@ COMPOSE_DEFAULT_LS = [
|
|||||||
|
|
||||||
class PodmanCompose:
|
class PodmanCompose:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
self.podman = None
|
||||||
self.podman_version = None
|
self.podman_version = None
|
||||||
|
self.environ = {}
|
||||||
self.exit_code = None
|
self.exit_code = None
|
||||||
self.commands = {}
|
self.commands = {}
|
||||||
self.global_args = None
|
self.global_args = None
|
||||||
@ -1083,8 +1085,10 @@ class PodmanCompose:
|
|||||||
self.declared_secrets = None
|
self.declared_secrets = None
|
||||||
self.container_names_by_service = None
|
self.container_names_by_service = None
|
||||||
self.container_by_name = None
|
self.container_by_name = None
|
||||||
|
self.services = None
|
||||||
self.all_services = set()
|
self.all_services = set()
|
||||||
self.prefer_volume_over_mount = True
|
self.prefer_volume_over_mount = True
|
||||||
|
self.merged_yaml = None
|
||||||
self.yaml_hash = ''
|
self.yaml_hash = ''
|
||||||
self.console_colors = ["\x1B[1;32m", "\x1B[1;33m", "\x1B[1;34m", "\x1B[1;35m", "\x1B[1;36m"]
|
self.console_colors = ["\x1B[1;32m", "\x1B[1;33m", "\x1B[1;34m", "\x1B[1;35m", "\x1B[1;36m"]
|
||||||
|
|
||||||
@ -1140,7 +1144,7 @@ class PodmanCompose:
|
|||||||
|
|
||||||
def _parse_compose_file(self):
|
def _parse_compose_file(self):
|
||||||
args = self.global_args
|
args = self.global_args
|
||||||
cmd = args.command
|
# cmd = args.command
|
||||||
pathsep = os.environ.get("COMPOSE_PATH_SEPARATOR", None) or os.pathsep
|
pathsep = os.environ.get("COMPOSE_PATH_SEPARATOR", None) or os.pathsep
|
||||||
if not args.file:
|
if not args.file:
|
||||||
default_str = os.environ.get("COMPOSE_FILE", None)
|
default_str = os.environ.get("COMPOSE_FILE", None)
|
||||||
@ -1163,10 +1167,10 @@ class PodmanCompose:
|
|||||||
files = list(map(os.path.realpath, files))
|
files = list(map(os.path.realpath, files))
|
||||||
filename = files[0]
|
filename = files[0]
|
||||||
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
|
||||||
host_env = None
|
# host_env = None
|
||||||
dirname = os.path.realpath(os.path.dirname(filename))
|
dirname = os.path.realpath(os.path.dirname(filename))
|
||||||
dir_basename = os.path.basename(dirname)
|
dir_basename = os.path.basename(dirname)
|
||||||
self.dirname = dirname
|
self.dirname = dirname
|
||||||
@ -1214,7 +1218,7 @@ class PodmanCompose:
|
|||||||
# debug mode
|
# debug mode
|
||||||
if len(files)>1:
|
if len(files)>1:
|
||||||
log(" ** merged:\n", json.dumps(compose, indent = 2))
|
log(" ** merged:\n", json.dumps(compose, indent = 2))
|
||||||
ver = compose.get('version', None)
|
# ver = compose.get('version', None)
|
||||||
services = compose.get('services', None)
|
services = compose.get('services', None)
|
||||||
if services is None:
|
if services is None:
|
||||||
services = {}
|
services = {}
|
||||||
@ -1325,8 +1329,8 @@ class PodmanCompose:
|
|||||||
subparsers = parser.add_subparsers(title='command', dest='command')
|
subparsers = parser.add_subparsers(title='command', dest='command')
|
||||||
subparser = subparsers.add_parser('help', help='show help')
|
subparser = subparsers.add_parser('help', help='show help')
|
||||||
for cmd_name, cmd in self.commands.items():
|
for cmd_name, cmd in self.commands.items():
|
||||||
subparser = subparsers.add_parser(cmd_name, help=cmd._cmd_desc)
|
subparser = subparsers.add_parser(cmd_name, help=cmd._cmd_desc) # pylint: disable=protected-access
|
||||||
for cmd_parser in cmd._parse_args:
|
for cmd_parser in cmd._parse_args: # pylint: disable=protected-access
|
||||||
cmd_parser(subparser)
|
cmd_parser(subparser)
|
||||||
self.global_args = parser.parse_args()
|
self.global_args = parser.parse_args()
|
||||||
if self.global_args.version:
|
if self.global_args.version:
|
||||||
@ -1368,7 +1372,7 @@ podman_compose = PodmanCompose()
|
|||||||
# decorators to add commands and parse options
|
# decorators to add commands and parse options
|
||||||
###################
|
###################
|
||||||
|
|
||||||
class cmd_run:
|
class cmd_run: # pylint: disable=invalid-name
|
||||||
def __init__(self, compose, cmd_name, cmd_desc):
|
def __init__(self, compose, cmd_name, cmd_desc):
|
||||||
self.compose = compose
|
self.compose = compose
|
||||||
self.cmd_name = cmd_name
|
self.cmd_name = cmd_name
|
||||||
@ -1383,7 +1387,7 @@ class cmd_run:
|
|||||||
self.compose.commands[self.cmd_name] = wrapped
|
self.compose.commands[self.cmd_name] = wrapped
|
||||||
return wrapped
|
return wrapped
|
||||||
|
|
||||||
class cmd_parse:
|
class cmd_parse: # pylint: disable=invalid-name
|
||||||
def __init__(self, compose, cmd_names):
|
def __init__(self, compose, cmd_names):
|
||||||
self.compose = compose
|
self.compose = compose
|
||||||
self.cmd_names = cmd_names if is_list(cmd_names) else [cmd_names]
|
self.cmd_names = cmd_names if is_list(cmd_names) else [cmd_names]
|
||||||
@ -1481,17 +1485,15 @@ def build_one(compose, args, cnt):
|
|||||||
def compose_build(compose, args):
|
def compose_build(compose, args):
|
||||||
if args.services:
|
if args.services:
|
||||||
container_names_by_service = compose.container_names_by_service
|
container_names_by_service = compose.container_names_by_service
|
||||||
|
compose.assert_services(args.services)
|
||||||
for service in args.services:
|
for service in args.services:
|
||||||
try:
|
|
||||||
cnt = compose.container_by_name[container_names_by_service[service][0]]
|
cnt = compose.container_by_name[container_names_by_service[service][0]]
|
||||||
except:
|
|
||||||
raise ValueError("unknown service: " + service)
|
|
||||||
build_one(compose, args, cnt)
|
build_one(compose, args, cnt)
|
||||||
else:
|
else:
|
||||||
for cnt in compose.containers:
|
for cnt in compose.containers:
|
||||||
build_one(compose, args, cnt)
|
build_one(compose, args, cnt)
|
||||||
|
|
||||||
def create_pods(compose, args):
|
def create_pods(compose, args): # pylint: disable=unused-argument
|
||||||
for pod in compose.pods:
|
for pod in compose.pods:
|
||||||
podman_args = [
|
podman_args = [
|
||||||
"create",
|
"create",
|
||||||
@ -1508,16 +1510,6 @@ def create_pods(compose, args):
|
|||||||
podman_args.extend(['-p', str(i)])
|
podman_args.extend(['-p', str(i)])
|
||||||
compose.podman.run([], "pod", podman_args)
|
compose.podman.run([], "pod", podman_args)
|
||||||
|
|
||||||
|
|
||||||
def up_specific(compose, args):
|
|
||||||
deps = []
|
|
||||||
if not args.no_deps:
|
|
||||||
for service in args.services:
|
|
||||||
deps.extend([])
|
|
||||||
# args.always_recreate_deps
|
|
||||||
log("services", args.services)
|
|
||||||
raise NotImplementedError("starting specific services is not yet implemented")
|
|
||||||
|
|
||||||
def get_excluded(compose, args):
|
def get_excluded(compose, args):
|
||||||
excluded = set()
|
excluded = set()
|
||||||
if args.services:
|
if args.services:
|
||||||
@ -1576,7 +1568,7 @@ def compose_up(compose, args):
|
|||||||
color_idx = i % len(compose.console_colors)
|
color_idx = i % len(compose.console_colors)
|
||||||
color = compose.console_colors[color_idx]
|
color = compose.console_colors[color_idx]
|
||||||
space_suffix=' ' * (max_service_length - len(cnt["_service"]) + 1)
|
space_suffix=' ' * (max_service_length - len(cnt["_service"]) + 1)
|
||||||
log_formatter = 's/^/{}[{}]{}|\x1B[0m\ /;'.format(color, cnt["_service"], space_suffix)
|
log_formatter = 's/^/{}[{}]{}|\x1B[0m\\ /;'.format(color, cnt["_service"], space_suffix)
|
||||||
log_formatter = ["sed", "-e", log_formatter]
|
log_formatter = ["sed", "-e", log_formatter]
|
||||||
if cnt["_service"] in excluded:
|
if cnt["_service"] in excluded:
|
||||||
log("** skipping: ", cnt['name'])
|
log("** skipping: ", cnt['name'])
|
||||||
@ -1614,7 +1606,6 @@ def get_volume_names(compose, cnt):
|
|||||||
|
|
||||||
@cmd_run(podman_compose, 'down', 'tear down entire stack')
|
@cmd_run(podman_compose, 'down', 'tear down entire stack')
|
||||||
def compose_down(compose, args):
|
def compose_down(compose, args):
|
||||||
proj_name = compose.project_name
|
|
||||||
excluded = get_excluded(compose, args)
|
excluded = get_excluded(compose, args)
|
||||||
podman_args=[]
|
podman_args=[]
|
||||||
timeout=getattr(args, 'timeout', None)
|
timeout=getattr(args, 'timeout', None)
|
||||||
@ -1788,7 +1779,7 @@ def compose_logs(compose, args):
|
|||||||
compose.podman.run([], 'logs', podman_args)
|
compose.podman.run([], 'logs', podman_args)
|
||||||
|
|
||||||
@cmd_run(podman_compose, 'config', "displays the compose file")
|
@cmd_run(podman_compose, 'config', "displays the compose file")
|
||||||
def compose_config(compose, args):
|
def compose_config(compose, args): # pylint: disable=unused-argument
|
||||||
print(compose.merged_yaml)
|
print(compose.merged_yaml)
|
||||||
|
|
||||||
###################
|
###################
|
||||||
|
Loading…
x
Reference in New Issue
Block a user