Skip to content

Commit a3bd082

Browse files
committed
fixup! [4/4] Upgrade GitLab to Amazon Linux 2023 (#6160)
1 parent f1cb76d commit a3bd082

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

scripts/resolve_container_path.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
import sys
55

66
import docker
7+
from more_itertools import (
8+
one,
9+
)
710

811
from azul.logging import (
912
configure_script_logging,
@@ -31,19 +34,22 @@ def resolve_container_path(container_path):
3134
try:
3235
with open(mountinfo) as f:
3336
log.info('Found %s', mountinfo)
34-
# Entries in /proc/self/mountinfo look like this:
35-
# 752 744 259:2 /docker/containers/dc61d93…ID…/hosts
37+
# Entries of interest in /proc/self/mountinfo look as follows:
38+
# 752 744 259:2 /docker/containers/dc61d9…CONTAINER_ID…/<variable>
3639
prefix = '/docker/containers'
37-
contents = csv.reader(f, delimiter=' ')
38-
for line in contents:
40+
log.info('cgroup v2 prefix is %s', prefix)
41+
containers = set()
42+
for line in csv.reader(f, delimiter=' '):
3943
path = line[3]
4044
if path.startswith(prefix):
41-
log.info('Extracting the container ID from %s', path)
42-
parts = path.rsplit('/', maxsplit=2)[:-1]
43-
assert len(parts) == 2 and parts[0] == prefix, parts
44-
container_id = parts[1]
45+
log.info('Extracting container ID from %s', path)
46+
prfx, id, var = path.rsplit('/', maxsplit=2)
47+
assert var in ('hosts', 'hostname', 'resolv.conf'), var
48+
assert prfx == prefix, prfx
49+
containers.add(id)
50+
container_id = one(containers)
4551
except FileNotFoundError:
46-
log.info('Did not find %s', proc_cgroup)
52+
log.info('Did not find %s', mountinfo)
4753
else:
4854
api = docker.client.from_env().api
4955
for mount in api.inspect_container(container_id)['Mounts']:

0 commit comments

Comments
 (0)