)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10796,"name":"Deepak C Shetty (deepakcs)","email":"dpkshetty@gmail.com","username":"deepakcs"},"change_message_id":"b42094f4c5b1f94e80909715252bf560d0dd088f","unresolved":false,"context_lines":[{"line_number":13,"context_line":"could be done. The following patch makes the switch to"},{"line_number":14,"context_line":"use oslo_versionedobjects."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Implements: blueprint cinder-objects"},{"line_number":17,"context_line":"Change-Id: I883f387c8247e8d79da82016a624cef2180cde88"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"bab921fb_5b07451c","line":16,"updated":"2015-04-24 07:02:01.000000000","message":"I wasn\u0027t able to find the blueprint for this. Clicking the link doesn\u0027t find anything. Searching in cinder blueprints also didn\u0027t yeild anything. Is there a bp created for this in lp ?","commit_id":"6e87427a7ae5e74ce0895cd58ba2ab2d42fd08c1"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"10a769317dbb5593e97e1be96370bcfb2b69f750","unresolved":false,"context_lines":[{"line_number":13,"context_line":"could be done. The following patch makes the switch to"},{"line_number":14,"context_line":"use oslo_versionedobjects."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Implements: blueprint cinder-objects"},{"line_number":17,"context_line":"Change-Id: I883f387c8247e8d79da82016a624cef2180cde88"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"bab921fb_2dcb1e74","line":16,"in_reply_to":"bab921fb_5b07451c","updated":"2015-04-24 14:14:03.000000000","message":"FYI, you should not put a -1 for a question, unless it is a technical objection.  The blueprint does exist - https://blueprints.launchpad.net/cinder/+spec/cinder-objects.  Gerrit does not properly link it.  This is a continuation of the blueprint.","commit_id":"6e87427a7ae5e74ce0895cd58ba2ab2d42fd08c1"}],"cinder/exception.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"82eb026c8ca46ff4aba016d329368d6124246c3a","unresolved":false,"context_lines":[{"line_number":42,"context_line":"# ]"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"CONF \u003d cfg.CONF"},{"line_number":45,"context_line":"# CONF.register_opts(exc_log_opts)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class ConvertedException(webob.exc.WSGIHTTPException):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_498fac23","line":45,"updated":"2015-03-02 01:21:05.000000000","message":"Getting a devstack build exception if this is left in place -\n\noslo_config.cfg.DuplicateOptError: duplicate option: fatal_exception_format_errors\n\nFor now, comment it out until I can figure how to handle it.","commit_id":"fa9b79a137aa6664cbbdbe38d7ee2e022b20d256"}],"cinder/objects/base.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"aff09b6ad19c457226420437646255f823d0d818","unresolved":false,"context_lines":[{"line_number":91,"context_line":"class CinderObjectSerializer(base.VersionedObjectSerializer):"},{"line_number":92,"context_line":"    OBJ_BASE_CLASS \u003d CinderObject"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def _process_iterable(self, context, action_fn, values):"},{"line_number":95,"context_line":"        \"\"\"Process an iterable, taking an action on each value."},{"line_number":96,"context_line":"        :param:context: Request context"},{"line_number":97,"context_line":"        :param:action_fn: Action to take on each item in values"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_4b5db546","line":94,"updated":"2015-03-06 11:23:05.000000000","message":"We should use standard method provided by oslo_versionedobjects.","commit_id":"0ca583ceee608cc45fdc20d5eafa97c51d60a689"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"77b947d7ce10bc21c9ce6a381e569c93ee887e12","unresolved":false,"context_lines":[{"line_number":91,"context_line":"class CinderObjectSerializer(base.VersionedObjectSerializer):"},{"line_number":92,"context_line":"    OBJ_BASE_CLASS \u003d CinderObject"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def _process_iterable(self, context, action_fn, values):"},{"line_number":95,"context_line":"        \"\"\"Process an iterable, taking an action on each value."},{"line_number":96,"context_line":"        :param:context: Request context"},{"line_number":97,"context_line":"        :param:action_fn: Action to take on each item in values"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_caa356b0","line":94,"in_reply_to":"9a80dd14_4b5db546","updated":"2015-03-06 15:10:36.000000000","message":"Done","commit_id":"0ca583ceee608cc45fdc20d5eafa97c51d60a689"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"aff09b6ad19c457226420437646255f823d0d818","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            return iterable([action_fn(context, value) for value in values])"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"def obj_to_primitive(obj):"},{"line_number":116,"context_line":"    \"\"\"Recursively turn an object into a python primitive."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    A CinderObject becomes a dict, and anything that implements ObjectListBase"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_0b873dd8","line":115,"updated":"2015-03-06 11:23:05.000000000","message":"We can use obj_to_primitive method of VersionedObject instead of writing our own.","commit_id":"0ca583ceee608cc45fdc20d5eafa97c51d60a689"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"77b947d7ce10bc21c9ce6a381e569c93ee887e12","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            return iterable([action_fn(context, value) for value in values])"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"def obj_to_primitive(obj):"},{"line_number":116,"context_line":"    \"\"\"Recursively turn an object into a python primitive."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    A CinderObject becomes a dict, and anything that implements ObjectListBase"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_2ab872e4","line":115,"in_reply_to":"9a80dd14_0b873dd8","updated":"2015-03-06 15:10:36.000000000","message":"Done","commit_id":"0ca583ceee608cc45fdc20d5eafa97c51d60a689"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"aff09b6ad19c457226420437646255f823d0d818","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    else:"},{"line_number":134,"context_line":"        return obj"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"def obj_make_list(context, list_obj, item_cls, db_list, **extra_args):"},{"line_number":138,"context_line":"    \"\"\"Construct an object list from a list of primitives."},{"line_number":139,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_4b25b507","line":136,"updated":"2015-03-06 11:23:05.000000000","message":"We can use version from the oslo_versionedobjects.base instead of forking it.","commit_id":"0ca583ceee608cc45fdc20d5eafa97c51d60a689"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"77b947d7ce10bc21c9ce6a381e569c93ee887e12","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    else:"},{"line_number":134,"context_line":"        return obj"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"def obj_make_list(context, list_obj, item_cls, db_list, **extra_args):"},{"line_number":138,"context_line":"    \"\"\"Construct an object list from a list of primitives."},{"line_number":139,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_aac38255","line":136,"in_reply_to":"9a80dd14_4b25b507","updated":"2015-03-06 15:10:36.000000000","message":"Done","commit_id":"0ca583ceee608cc45fdc20d5eafa97c51d60a689"}],"cinder/objects/fields.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"4ab73b638e894b820eb5eaee5be2afb24cde5fa0","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from oslo_versionedobjects.fields import *  # noqa"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_48a4c407","line":15,"updated":"2015-03-06 19:02:45.000000000","message":"The reason I put this here is because it would allow cinder to create custom/additional fields later on, and the modules importing fields would not have to be changed from \"from oslo_versionedobjects import fields\" to \"from cinder import fields\".  The fields in oslo_versionedobjects is only a base to start from, and I assume that cinder will have some custom fields needed later on.","commit_id":"3cc7026db40cf4305de552ef664d3848a6c6ee84"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"6ba959c127d972c08a7efda954b1371f70a309da","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from oslo_versionedobjects.fields import *  # noqa"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_8b6be8b5","line":15,"in_reply_to":"9a80dd14_48a4c407","updated":"2015-03-09 13:48:39.000000000","message":"I strongly disagree with this approach. We should use namespaces in modules where we would need Cinder\u0027s own fields:\n\n    from oslo_versionedobjects import fields\n    from cinder.objects import fields as cinder_fields\n\nIn your approach if Cinder has it\u0027s own field \u0027foo\u0027 and then new version of oslo_versionedobjects would implement a field named \u0027foo\u0027 - it would become unclear which one is used when importing this file.","commit_id":"3cc7026db40cf4305de552ef664d3848a6c6ee84"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"c6066fddecb2eac73d0519cdbd94398cff3ce3a5","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from oslo_versionedobjects.fields import *  # noqa"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a80dd14_de703c42","line":15,"updated":"2015-03-09 14:04:58.000000000","message":"(Moving discussion to most recent patchset)\n\nI strongly disagree with this approach. We should use namespaces in modules where we would need Cinder\u0027s own fields:\n\n    from oslo_versionedobjects import fields\n    from cinder.objects import fields as cinder_fields\n\nIn your approach if Cinder has it\u0027s own field \u0027foo\u0027 and then new version of oslo_versionedobjects would implement a field named \u0027foo\u0027 - it would become unclear which one is used when importing this file.","commit_id":"151910a6ec444fe7898c115fe5ed47545330d765"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"30c59050f6f225f860786f6747600f6a4e7f1027","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from oslo_versionedobjects.fields import *  # noqa"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a80dd14_81758965","line":15,"in_reply_to":"9a80dd14_de703c42","updated":"2015-03-09 14:07:09.000000000","message":"I see your point.  I was trying to make the import a little cleaner.  For now, I will just use oslo_versionedobjects.fields directly, and until cinder has custom fields, we will not have this file.","commit_id":"151910a6ec444fe7898c115fe5ed47545330d765"}]}
