[openstack-dev] [Sahara] Question about Sahara db code

Chen, Ken ken.chen at intel.com
Tue Mar 31 15:49:52 UTC 2015

Hi all,
I have some confusions on Sahara conductor codes. Maybe the questions are silly, but please let me know if you have the answer. Thanks.

1.       In Sahara conf we have an option "db_driver", whose default value is "sahara.db". Is it possible we do not use sahara.db? I think it should be the only choice for Sahara, so why do we have this option? For different db engine backend we already have another option "db_backend" whose default value is "sqlalchemy".

2.       In sahara/db/ directory we have a base.py, which defines Base class where use the db_driver to initialize self.db in Base. Thus we have below calling sequence (use cluster_create method as an example):
sahara.conductor.manager.ConductorManager().cluster_create  ==> sahara.db.Base().db.cluster_create ==> sahara.db.cluster_create ==> sahara.db.api.cluster_create ==> IMPL.cluster_create
                So why we do not just discard base.py, and assign sahara.conductor.manager.ConductorManager().db_api = sahara.db.api, and let the flow be like
sahara.conductor.manager.ConductorManager().cluster_create  ==> sahara.db_api.cluster_create ==> IMPL.cluster_create ?
This is what Heat codes is like. Current Sahara implementation seems copied from nova. There we also have a "db_driver" whose default value is "nova.db". In fact I also have the similar questions on nova ("db_driver" and base.py seem redundant).

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150331/d8e16080/attachment.html>

More information about the OpenStack-dev mailing list