[Kimchi-devel] [PATCHv2 1/2] Make vms model to be a singleton

lvroyce at linux.vnet.ibm.com lvroyce at linux.vnet.ibm.com
Wed Mar 5 08:14:51 UTC 2014


From: Royce Lv <lvroyce at linux.vnet.ibm.com>

In vms model __init__ function, a backgroud task is started:

    self.guests_stats_thread = BackgroundTask(GUESTS_STATS_INTERVAL,
                                              self._update_guests_stats)
    self.guests_stats_thread.start()

when VMsModel.get_list() need to be called
([PATCH]Add volume ref_cnt: Add model and mockmodel implementation)
one more background task is started.

This is not able to be fixed by staticmethod
because connection will not be passed by controller.
So make vms model a singleton.

Signed-off-by: Royce Lv <lvroyce at linux.vnet.ibm.com>
---
 src/kimchi/model/vms.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/kimchi/model/vms.py b/src/kimchi/model/vms.py
index 3f3a152..0d029eb 100644
--- a/src/kimchi/model/vms.py
+++ b/src/kimchi/model/vms.py
@@ -27,6 +27,7 @@ from cherrypy.process.plugins import BackgroundTask
 
 from kimchi import vnc
 from kimchi import xmlutils
+from kimchi.basemodel import Singleton
 from kimchi.config import READONLY_POOL_TYPE
 from kimchi.exception import InvalidOperation, InvalidParameter
 from kimchi.exception import MissingParameter, NotFoundError, OperationFailed
@@ -53,6 +54,8 @@ stats = {}
 
 
 class VMsModel(object):
+    __metaclass__ = Singleton
+
     def __init__(self, **kargs):
         self.conn = kargs['conn']
         self.objstore = kargs['objstore']
-- 
1.8.1.2




More information about the Kimchi-devel mailing list