[openstack-dev] [cinder] [driver] DB operations

Amit Das amit.das at cloudbyte.com
Sat Dec 20 14:36:06 UTC 2014


Got it Duncan.

I will re-check if I can arrive at any solution without accessing the
database.

Regards,
Amit
*CloudByte Inc.* <http://www.cloudbyte.com/>

On Sat, Dec 20, 2014 at 7:35 PM, Duncan Thomas <duncan.thomas at gmail.com>
wrote:

> No, I mean that if drivers are going to access database, then they should
> do it via a defined interface that limits what they can do to a sane set of
> operations. I'd still prefer that they didn't need extra access beyond the
> model update, but I don't know if that is possible.
>
> Duncan Thomas
> On Dec 19, 2014 6:43 PM, "Amit Das" <amit.das at cloudbyte.com> wrote:
>
>> Thanks Duncan.
>> Do you mean hepler methods in the specific driver class?
>> On 19 Dec 2014 14:51, "Duncan Thomas" <duncan.thomas at gmail.com> wrote:
>>
>>> So our general advice has historical been 'drivers should not be
>>> accessing the db directly'. I haven't had chance to look at your driver
>>> code yet, I've been on vacation, but my suggestion is that if you
>>> absolutely must store something in the admin metadata rather than somewhere
>>> that is covered by the model update (generally provider location and
>>> provider auth) then writing some helper methods that wrap the context bump
>>> and db call would be better than accessing it directly from the driver.
>>>
>>> Duncan Thomas
>>> On Dec 18, 2014 11:41 PM, "Amit Das" <amit.das at cloudbyte.com> wrote:
>>>
>>>> Hi Stackers,
>>>>
>>>> I have been developing a Cinder driver for CloudByte storage and have
>>>> come across some scenarios where the driver needs to do create, read &
>>>> update operations on cinder database (volume_admin_metadata table). This is
>>>> required to establish a mapping between OpenStack IDs with the backend
>>>> storage IDs.
>>>>
>>>> Now, I have got some review comments w.r.t the usage of DB related
>>>> operations esp. w.r.t raising the context to admin.
>>>>
>>>> In short, it has been advised not to use "*context.get_admin_context()*
>>>> ".
>>>>
>>>>
>>>> https://review.openstack.org/#/c/102511/15/cinder/volume/drivers/cloudbyte/cloudbyte.py
>>>>
>>>> However, i get errors trying to use the default context as shown below:
>>>>
>>>> *2014-12-19 12:18:17.880 TRACE oslo.messaging.rpc.dispatcher   File
>>>> "/opt/stack/cinder/cinder/db/sqlalchemy/api.py", line 103, in
>>>> is_admin_context*
>>>> *2014-12-19 12:18:17.880 TRACE oslo.messaging.rpc.dispatcher     return
>>>> context.is_admin*
>>>> *2014-12-19 12:18:17.880 TRACE oslo.messaging.rpc.dispatcher
>>>> AttributeError: 'module' object has no attribute 'is_admin'*
>>>>
>>>> So what is the proper way to run these DB operations from within a
>>>> driver ?
>>>>
>>>>
>>>> Regards,
>>>> Amit
>>>> *CloudByte Inc.* <http://www.cloudbyte.com/>
>>>>
>>>> _______________________________________________
>>>> OpenStack-dev mailing list
>>>> OpenStack-dev at lists.openstack.org
>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>>
>>>>
>>> _______________________________________________
>>> OpenStack-dev mailing list
>>> OpenStack-dev at lists.openstack.org
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>
>>>
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20141220/c8c1b351/attachment.html>


More information about the OpenStack-dev mailing list