<div dir="ltr"><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif">Hi Stackers,<br></div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif"><br></div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif">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.</div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif"><br></div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif">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.</div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif"><br></div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif">In short, it has been advised not to use "<i>context.get_admin_context()</i>".</div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif"><br></div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif"><a href="https://review.openstack.org/#/c/102511/15/cinder/volume/drivers/cloudbyte/cloudbyte.py">https://review.openstack.org/#/c/102511/15/cinder/volume/drivers/cloudbyte/cloudbyte.py</a><br></div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif"><br></div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif">However, i get errors trying to use the default context as shown below:</div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif"><br></div><div class="gmail_default"><div class="gmail_default"><font face="trebuchet ms, sans-serif"><i>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</i></font></div><div class="gmail_default"><font face="trebuchet ms, sans-serif"><i>2014-12-19 12:18:17.880 TRACE oslo.messaging.rpc.dispatcher     return context.is_admin</i></font></div><div class="gmail_default"><font face="trebuchet ms, sans-serif"><i>2014-12-19 12:18:17.880 TRACE oslo.messaging.rpc.dispatcher AttributeError: 'module' object has no attribute 'is_admin'</i></font></div></div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif"><br></div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif">So what is the proper way to run these DB operations from within a driver ?</div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif"><br></div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif"><br></div><div><div class="gmail_signature"><div dir="ltr"><div><font style="background-color:rgb(255,255,255)" color="#000000" face="trebuchet ms, sans-serif">Regards,</font></div><font style="background-color:rgb(255,255,255)" color="#000000" face="trebuchet ms, sans-serif">Amit</font><div><a href="http://www.cloudbyte.com/" target="_blank"><font style="background-color:rgb(255,255,255)" color="#0000ff" face="trebuchet ms, sans-serif"><i>CloudByte Inc.</i></font></a></div></div></div></div>
</div>