)]}'
{"zun/db/etcd/api.py":[{"author":{"_account_id":25695,"name":"Deepak Mourya","email":"deepakmoriya7@gmail.com","username":"deepak_mourya"},"change_message_id":"cf57f3a3af4ab5b0790f97fc2a26dd247cea3590","unresolved":false,"context_lines":[{"line_number":1329,"context_line":"        except etcd.EtcdKeyNotFound:"},{"line_number":1330,"context_line":"            raise exception.QuotaUsageNotFound()"},{"line_number":1331,"context_line":"        except Exception as e:"},{"line_number":1332,"context_line":"            LOG.error(\u0027Error ovccurred while retrieving quota usage: %s\u0027,"},{"line_number":1333,"context_line":"                      six.text_type(e))"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_bb144245","line":1332,"updated":"2018-05-31 03:12:46.000000000","message":"nit: occurred?","commit_id":"3efb19426860d3d6c9c2e93f9c09d882dba12650"}],"zun/db/sqlalchemy/alembic/versions/012a730926e8_add_quota_usage.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"ace2e65a522cf3895faa37a935b9e4f2dbd2d78e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        sa.Column(\u0027resource\u0027, sa.String(length\u003d255), nullable\u003dFalse),"},{"line_number":40,"context_line":"        sa.Column(\u0027in_use\u0027, sa.Integer, nullable\u003dFalse),"},{"line_number":41,"context_line":"        sa.Column(\u0027reserved\u0027, sa.Integer, nullable\u003dFalse),"},{"line_number":42,"context_line":"        sa.Column(\u0027until_refresh\u0027, sa.Integer),"},{"line_number":43,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027"},{"line_number":44,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_65304957","line":42,"range":{"start_line":42,"start_character":19,"end_line":42,"end_character":32},"updated":"2018-05-31 01:58:48.000000000","message":"Just wonder. Are you going to use this field to implement the quota refresh feature https://specs.openstack.org/openstack/nova-specs/specs/newton/implemented/refresh-quotas-usage.html ?","commit_id":"3efb19426860d3d6c9c2e93f9c09d882dba12650"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"da66004b57db29b5f4e6bcff11be7ec4d445e037","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        sa.Column(\u0027resource\u0027, sa.String(length\u003d255), nullable\u003dFalse),"},{"line_number":40,"context_line":"        sa.Column(\u0027in_use\u0027, sa.Integer, nullable\u003dFalse),"},{"line_number":41,"context_line":"        sa.Column(\u0027reserved\u0027, sa.Integer, nullable\u003dFalse),"},{"line_number":42,"context_line":"        sa.Column(\u0027until_refresh\u0027, sa.Integer),"},{"line_number":43,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027"},{"line_number":44,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_c484ba0d","line":42,"range":{"start_line":42,"start_character":19,"end_line":42,"end_character":32},"in_reply_to":"5f7c97a3_65304957","updated":"2018-05-31 09:33:35.000000000","message":"Yes, i want to do it that way.","commit_id":"3efb19426860d3d6c9c2e93f9c09d882dba12650"}],"zun/db/sqlalchemy/api.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"ace2e65a522cf3895faa37a935b9e4f2dbd2d78e","unresolved":false,"context_lines":[{"line_number":1159,"context_line":"                raise exception.QuotaClassNotFound(class_name\u003dclass_name)"},{"line_number":1160,"context_line":""},{"line_number":1161,"context_line":"    def quota_usage_get_all_by_project(self, context, project_id):"},{"line_number":1162,"context_line":"        rows \u003d model_query(context, models.QuotaUsage, read_deleted\u003d\"no\").\\"},{"line_number":1163,"context_line":"            filter_by(project_id\u003dproject_id).\\"},{"line_number":1164,"context_line":"            all()"},{"line_number":1165,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_e53bf934","line":1162,"range":{"start_line":1162,"start_character":55,"end_line":1162,"end_character":67},"updated":"2018-05-31 01:58:48.000000000","message":"Zun doesn\u0027t support soft deletion so I guess this can be removed?","commit_id":"3efb19426860d3d6c9c2e93f9c09d882dba12650"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"da66004b57db29b5f4e6bcff11be7ec4d445e037","unresolved":false,"context_lines":[{"line_number":1159,"context_line":"                raise exception.QuotaClassNotFound(class_name\u003dclass_name)"},{"line_number":1160,"context_line":""},{"line_number":1161,"context_line":"    def quota_usage_get_all_by_project(self, context, project_id):"},{"line_number":1162,"context_line":"        rows \u003d model_query(context, models.QuotaUsage, read_deleted\u003d\"no\").\\"},{"line_number":1163,"context_line":"            filter_by(project_id\u003dproject_id).\\"},{"line_number":1164,"context_line":"            all()"},{"line_number":1165,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_c49fdaff","line":1162,"range":{"start_line":1162,"start_character":55,"end_line":1162,"end_character":67},"in_reply_to":"5f7c97a3_e53bf934","updated":"2018-05-31 09:33:35.000000000","message":"Done","commit_id":"3efb19426860d3d6c9c2e93f9c09d882dba12650"}],"zun/db/sqlalchemy/models.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"ace2e65a522cf3895faa37a935b9e4f2dbd2d78e","unresolved":false,"context_lines":[{"line_number":510,"context_line":"    project_id \u003d Column(String(255), index\u003dTrue)"},{"line_number":511,"context_line":"    resource \u003d Column(String(255), index\u003dTrue)"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"    in_use \u003d Column(Integer)"},{"line_number":514,"context_line":"    reserved \u003d Column(Integer)"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_25157149","line":513,"range":{"start_line":513,"start_character":4,"end_line":513,"end_character":10},"updated":"2018-05-31 01:58:48.000000000","message":"Do you allow this field to be nullable. The default behavior for non-primary key is nullable\u003dTrue, so \u0027in_use\u0027 can be None. If you don\u0027t want it to be nullable, need to set \"nullable\u003dFalse\".","commit_id":"3efb19426860d3d6c9c2e93f9c09d882dba12650"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"da66004b57db29b5f4e6bcff11be7ec4d445e037","unresolved":false,"context_lines":[{"line_number":510,"context_line":"    project_id \u003d Column(String(255), index\u003dTrue)"},{"line_number":511,"context_line":"    resource \u003d Column(String(255), index\u003dTrue)"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"    in_use \u003d Column(Integer)"},{"line_number":514,"context_line":"    reserved \u003d Column(Integer)"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_848562af","line":513,"range":{"start_line":513,"start_character":4,"end_line":513,"end_character":10},"in_reply_to":"5f7c97a3_25157149","updated":"2018-05-31 09:33:35.000000000","message":"You\u0027re right. I\u0027ve confused it with oslo.versionedobjects nullable attribute, its default value is False.","commit_id":"3efb19426860d3d6c9c2e93f9c09d882dba12650"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"ace2e65a522cf3895faa37a935b9e4f2dbd2d78e","unresolved":false,"context_lines":[{"line_number":511,"context_line":"    resource \u003d Column(String(255), index\u003dTrue)"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"    in_use \u003d Column(Integer)"},{"line_number":514,"context_line":"    reserved \u003d Column(Integer)"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    @property"},{"line_number":517,"context_line":"    def total(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_e50a1924","line":514,"range":{"start_line":514,"start_character":4,"end_line":514,"end_character":12},"updated":"2018-05-31 01:58:48.000000000","message":"Ditto.","commit_id":"3efb19426860d3d6c9c2e93f9c09d882dba12650"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"ace2e65a522cf3895faa37a935b9e4f2dbd2d78e","unresolved":false,"context_lines":[{"line_number":514,"context_line":"    reserved \u003d Column(Integer)"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    @property"},{"line_number":517,"context_line":"    def total(self):"},{"line_number":518,"context_line":"        return self.in_use + self.reserved"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"    until_refresh \u003d Column(Integer, nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_40017b04","line":517,"range":{"start_line":517,"start_character":8,"end_line":517,"end_character":13},"updated":"2018-05-31 01:58:48.000000000","message":"It looks this method is unused. If you are going to use it later, then disregard this comment.","commit_id":"3efb19426860d3d6c9c2e93f9c09d882dba12650"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"da66004b57db29b5f4e6bcff11be7ec4d445e037","unresolved":false,"context_lines":[{"line_number":514,"context_line":"    reserved \u003d Column(Integer)"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    @property"},{"line_number":517,"context_line":"    def total(self):"},{"line_number":518,"context_line":"        return self.in_use + self.reserved"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"    until_refresh \u003d Column(Integer, nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_2457ae28","line":517,"range":{"start_line":517,"start_character":8,"end_line":517,"end_character":13},"in_reply_to":"5f7c97a3_40017b04","updated":"2018-05-31 09:33:35.000000000","message":"I plan to use it later.","commit_id":"3efb19426860d3d6c9c2e93f9c09d882dba12650"}]}
