List more jail details
This commit is contained in:
parent
f030606c83
commit
21eef74929
74
jlmkr.py
74
jlmkr.py
|
@ -1129,7 +1129,7 @@ def create_jail(jail_name="", config_path=None, distro="debian", release="bookwo
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
print("Autostart has been disabled.")
|
print("Autostart has been disabled.")
|
||||||
print("You need to start this jail manually.")
|
print("You need to start this jail manually.")
|
||||||
startup = 0
|
startup = 0
|
||||||
|
@ -1372,46 +1372,56 @@ def list_jails():
|
||||||
print("No jails.")
|
print("No jails.")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
for jail in jail_names:
|
|
||||||
jails[jail] = {"name": jail, "running": False}
|
|
||||||
|
|
||||||
# Get running jails from machinectl
|
# Get running jails from machinectl
|
||||||
running_machines = run_command_and_parse_json(["machinectl", "list", "-o", "json"])
|
running_machines = run_command_and_parse_json(["machinectl", "list", "-o", "json"])
|
||||||
|
|
||||||
# Augment the jails dict with output from machinectl
|
for jail_name in jail_names:
|
||||||
for machine in running_machines:
|
jails[jail_name] = {"name": jail_name, "running": False}
|
||||||
machine_name = machine["machine"]
|
jail = jails[jail_name]
|
||||||
# We're only interested in the list of jails made with jailmaker
|
|
||||||
if machine["service"] == "systemd-nspawn" and machine_name in jails:
|
|
||||||
addresses = (machine.get("addresses") or empty_value_indicator).split("\n")
|
|
||||||
if len(addresses) > 1:
|
|
||||||
addresses = addresses[0] + "…"
|
|
||||||
else:
|
|
||||||
addresses = addresses[0]
|
|
||||||
|
|
||||||
jails[machine_name] = {
|
|
||||||
"name": machine_name,
|
|
||||||
"running": True,
|
|
||||||
"os": machine["os"],
|
|
||||||
"version": machine["version"],
|
|
||||||
"addresses": addresses,
|
|
||||||
}
|
|
||||||
|
|
||||||
# TODO: add additional properties from the jails config file
|
|
||||||
|
|
||||||
for jail_name in jails:
|
|
||||||
config = parse_config_file(get_jail_config_path(jail_name))
|
config = parse_config_file(get_jail_config_path(jail_name))
|
||||||
|
|
||||||
startup = False
|
|
||||||
if config:
|
if config:
|
||||||
startup = bool(int(config.get("startup", "0")))
|
# TODO: also list privileged once this setting is implemented
|
||||||
# TODO: in case config is missing or parsing fails,
|
jail["startup"] = bool(int(config.get("startup", "0")))
|
||||||
# should an error message be thrown here?
|
jail["gpu_intel"] = bool(int(config.get("gpu_passthrough_intel", "0")))
|
||||||
|
jail["gpu_nvidia"] = bool(int(config.get("gpu_passthrough_nvidia", "0")))
|
||||||
|
initial_rootfs_image = config.get("initial_rootfs_image")
|
||||||
|
if initial_rootfs_image:
|
||||||
|
distro, release = config.get("initial_rootfs_image").split()
|
||||||
|
jail["os"] = distro
|
||||||
|
jail["version"] = release
|
||||||
|
|
||||||
jails[jail_name]["startup"] = startup
|
if jail_name in running_machines:
|
||||||
|
machine = running_machines[jail_name]
|
||||||
|
|
||||||
|
# We're only interested in the list of jails made with jailmaker
|
||||||
|
if machine["service"] == "systemd-nspawn":
|
||||||
|
# Augment the jails dict with output from machinectl
|
||||||
|
jail["running"] = True
|
||||||
|
# Override os and version we got from the config file
|
||||||
|
jail["os"] = machine["os"]
|
||||||
|
jail["version"] = machine["version"]
|
||||||
|
|
||||||
|
addresses = machine.get("addresses")
|
||||||
|
if not addresses:
|
||||||
|
jail["addresses"] = empty_value_indicator
|
||||||
|
else:
|
||||||
|
addresses = addresses.split("\n")
|
||||||
|
jail["addresses"] = addresses[0]
|
||||||
|
if len(addresses) > 1:
|
||||||
|
jail["addresses"] += "…"
|
||||||
|
|
||||||
print_table(
|
print_table(
|
||||||
["name", "running", "startup", "os", "version", "addresses"],
|
[
|
||||||
|
"name",
|
||||||
|
"running",
|
||||||
|
"startup",
|
||||||
|
"gpu_intel",
|
||||||
|
"gpu_nvidia",
|
||||||
|
"os",
|
||||||
|
"version",
|
||||||
|
"addresses",
|
||||||
|
],
|
||||||
sorted(jails.values(), key=lambda x: x["name"]),
|
sorted(jails.values(), key=lambda x: x["name"]),
|
||||||
empty_value_indicator,
|
empty_value_indicator,
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue