Current implementation is trying to query all entries in lxc root directory, so there's several useless query such as 'instance1.conf' as a instance name. Filter only .conf files for each instance to list actually available instances.
Signed-off-by: Yuto KAWAMURA(kawamuray) <[email protected]> --- lib/hypervisor/hv_lxc.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/hypervisor/hv_lxc.py b/lib/hypervisor/hv_lxc.py index 4971649..1442372 100644 --- a/lib/hypervisor/hv_lxc.py +++ b/lib/hypervisor/hv_lxc.py @@ -199,10 +199,16 @@ class LXCHypervisor(hv_base.BaseHypervisor): @return: [(name, id, memory, vcpus, stat, times),...] """ + UNIQ_SUFFIX = ".conf" data = [] - for name in os.listdir(self._ROOT_DIR): + for filename in os.listdir(self._ROOT_DIR): + if not filename.endswith(UNIQ_SUFFIX): + # listing all files in root directory will include instance root + # directory, console file, and etc, so use .conf as a representation + # of instance listings. + continue try: - info = self.GetInstanceInfo(name) + info = self.GetInstanceInfo(filename[0:-len(UNIQ_SUFFIX)]) except errors.HypervisorError: continue if info: -- 1.8.5.5
