mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-09 05:59:00 +00:00
lxc-ls: Add workaround for nested containers
When accessing nested containers, hardcode the path to their config. Signed-off-by: Stéphane Graber <stgraber@ubuntu.com> Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
This commit is contained in:
parent
7f8c403134
commit
cfd149a646
@ -88,7 +88,7 @@ def getTerminalSize():
|
|||||||
return int(cr[1]), int(cr[0])
|
return int(cr[1]), int(cr[0])
|
||||||
|
|
||||||
|
|
||||||
def getSubContainers(container, lxcpath):
|
def getSubContainers(container):
|
||||||
with open(os.devnull, "w") as fd:
|
with open(os.devnull, "w") as fd:
|
||||||
fdnum, path = tempfile.mkstemp()
|
fdnum, path = tempfile.mkstemp()
|
||||||
os.remove(path)
|
os.remove(path)
|
||||||
@ -162,7 +162,9 @@ if not sys.stdout.isatty():
|
|||||||
args.one = True
|
args.one = True
|
||||||
|
|
||||||
# Set the lookup path for the containers
|
# Set the lookup path for the containers
|
||||||
lxcpath = os.environ.get('NESTED', args.lxcpath)
|
# This value will contain the full path for a nested containers
|
||||||
|
# use args.lxcpath if you need the value relative to the container
|
||||||
|
nest_lxcpath = os.environ.get('NESTED', args.lxcpath)
|
||||||
|
|
||||||
# Turn args.fancy_format into a list
|
# Turn args.fancy_format into a list
|
||||||
args.fancy_format = args.fancy_format.strip().split(",")
|
args.fancy_format = args.fancy_format.strip().split(",")
|
||||||
@ -196,7 +198,7 @@ if args.nesting:
|
|||||||
|
|
||||||
# List of containers, stored as dictionaries
|
# List of containers, stored as dictionaries
|
||||||
containers = []
|
containers = []
|
||||||
for container_name in lxc.list_containers(config_path=lxcpath):
|
for container_name in lxc.list_containers(config_path=nest_lxcpath):
|
||||||
entry = {}
|
entry = {}
|
||||||
entry['name'] = container_name
|
entry['name'] = container_name
|
||||||
|
|
||||||
@ -211,6 +213,10 @@ for container_name in lxc.list_containers(config_path=lxcpath):
|
|||||||
|
|
||||||
container = lxc.Container(container_name, args.lxcpath)
|
container = lxc.Container(container_name, args.lxcpath)
|
||||||
|
|
||||||
|
if 'NESTED' in os.environ:
|
||||||
|
container.load_config(os.path.join(nest_lxcpath, container_name,
|
||||||
|
"config"))
|
||||||
|
|
||||||
if container.controllable:
|
if container.controllable:
|
||||||
state = container.state
|
state = container.state
|
||||||
else:
|
else:
|
||||||
@ -272,7 +278,7 @@ for container_name in lxc.list_containers(config_path=lxcpath):
|
|||||||
|
|
||||||
# Nested containers
|
# Nested containers
|
||||||
if args.nesting and container.state == "RUNNING":
|
if args.nesting and container.state == "RUNNING":
|
||||||
sub = getSubContainers(container, args.lxcpath)
|
sub = getSubContainers(container)
|
||||||
if sub:
|
if sub:
|
||||||
for entry in sub:
|
for entry in sub:
|
||||||
if 'nesting_parent' not in entry:
|
if 'nesting_parent' not in entry:
|
||||||
|
Loading…
Reference in New Issue
Block a user