)]}'
{"cinder/objects/quota.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"793f5c019453878bb1bba2d1bee8c161b027c6dd","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class Quota(base.CinderPersistentObject, base.CinderObject,"},{"line_number":31,"context_line":"            base.CinderObjectDictCompat):"},{"line_number":32,"context_line":"    # Version 1.0: Initial version"},{"line_number":33,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_75717d43","line":31,"updated":"2015-03-12 17:37:02.000000000","message":"There are a few tables you have to sync with - quotas, quota_classes, quota_usages, and reservations.  Quota object should consider these, e.g.  lazy load of reservations.\n\nThis is a good start, but I think you should look at all the components related to quotas and create a nice Quota class to tie all these tables together.  Again, I suggest you look at nova - https://github.com/openstack/nova/blob/master/nova/objects/quotas.py","commit_id":"beb948900482cdc68f9f2b30b03e9ae7ae28ee3a"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"552f9c4e0d560b3bb36ea2bdd87b06c0868b3186","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        \u0027hard_limit\u0027: fields.IntegerField()"},{"line_number":40,"context_line":"    }"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":43,"context_line":"        super(Quota, self).__init__(*args, **kwargs)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_10eeb88b","line":42,"updated":"2015-03-12 00:23:44.000000000","message":"Whats the point of a ``__init__`` method that just calls its parent (and does nothing else); perhaps leave this out?","commit_id":"beb948900482cdc68f9f2b30b03e9ae7ae28ee3a"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"793f5c019453878bb1bba2d1bee8c161b027c6dd","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        \u0027hard_limit\u0027: fields.IntegerField()"},{"line_number":40,"context_line":"    }"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":43,"context_line":"        super(Quota, self).__init__(*args, **kwargs)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_553479dd","line":42,"in_reply_to":"9a80dd14_10eeb88b","updated":"2015-03-12 17:37:02.000000000","message":"+1","commit_id":"beb948900482cdc68f9f2b30b03e9ae7ae28ee3a"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"552f9c4e0d560b3bb36ea2bdd87b06c0868b3186","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":43,"context_line":"        super(Quota, self).__init__(*args, **kwargs)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":47,"context_line":"        \"\"\"Make an object representation compatible with a target version.\"\"\""},{"line_number":48,"context_line":"        target_version \u003d utils.convert_version_to_tuple(target_version)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_70eb7478","line":45,"updated":"2015-03-12 00:23:44.000000000","message":"Extra new-line.","commit_id":"beb948900482cdc68f9f2b30b03e9ae7ae28ee3a"}]}
