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

Shu Ming shuming at linux.vnet.ibm.com
Wed Mar 5 15:47:09 UTC 2014


Reviewed-by: Shu Ming <shuming at linux.vnet.ibm.com>
2014/3/5 16:14, lvroyce at linux.vnet.ibm.com:
> 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']




More information about the Kimchi-devel mailing list