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

Reply via email to