)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"75880bc81d851547921df1ee6c00ff5f711afbc1","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Integration of OVO Provisioning Block"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch integrates OVO for Provisioning"},{"line_number":10,"context_line":"Block DB Model."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I08d373d47dc69c3866f23e3187b1e48b8d68a30b"},{"line_number":13,"context_line":"Partially-Implements: blueprint adopt-oslo-versioned-objects-for-db"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":33,"id":"3a71b18c_4688d022","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":15},"updated":"2016-12-09 15:19:17.000000000","message":"this could fit in the previous line, isn\u0027t it?","commit_id":"4e5bf19a7ee4a263324dfed8b80487c393d83e82"}],"neutron/db/models/provisioning_block.py":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"63e4ea04c4ff4f97273773c602cf4f64670e1b2d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":13,"id":"7a8ec9b2_d97e581a","line":1,"updated":"2016-09-21 19:47:32.000000000","message":"Should we be copying over the copyright info from neutron.db.provisioning_blocks.py in its entirety?\n\ne.g. also include::\n\n    # Copyright 2016 Mirantis, Inc.  All rights reserved.","commit_id":"6631d0441dd38641fb6d16f16a8fd21f68f90df1"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"9e4af0f0cb451906dc5eadb6178354a2430e48e6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":13,"id":"7a8ec9b2_afbf7ace","line":1,"in_reply_to":"7a8ec9b2_d97e581a","updated":"2016-09-21 20:24:10.000000000","message":"Done","commit_id":"6631d0441dd38641fb6d16f16a8fd21f68f90df1"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"49311a8b1aa0a0afdf196b8b18ca018e67d8ee05","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2016 Mirantis, Inc.  All rights reserved."},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a95cdbc_c14738ba","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":56},"updated":"2016-10-07 17:30:57.000000000","message":"Those lines are not needed","commit_id":"288d54a3344c9ac5e24a2eaf561676da34e0d3f1"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"8121b9fc248fdf7ae47582b79cb171b88f3e9448","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2016 Mirantis, Inc.  All rights reserved."},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":18,"id":"fa6399be_a0257eaf","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":56},"in_reply_to":"1a95cdbc_c14738ba","updated":"2016-10-10 19:43:20.000000000","message":"Done","commit_id":"288d54a3344c9ac5e24a2eaf561676da34e0d3f1"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"c04168ff96f6e10bc60a28c27c917a54e64dde0b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":"#"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"from neutron_lib.db import model_base"},{"line_number":15,"context_line":"import sqlalchemy as sa"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa6399be_04c28585","line":12,"updated":"2016-10-11 22:47:57.000000000","message":"nit: please revert this change, to not obfuscate this patch.","commit_id":"419f8d535742e5df3ef9f6c4105325415f0bf097"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"775b8477b8983da82e843df94809a299a9ae376a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":"#"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"from neutron_lib.db import model_base"},{"line_number":15,"context_line":"import sqlalchemy as sa"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa6399be_2da9d37b","line":12,"in_reply_to":"fa6399be_04c28585","updated":"2016-10-13 16:01:38.000000000","message":"Done","commit_id":"419f8d535742e5df3ef9f6c4105325415f0bf097"}],"neutron/db/provisioning_blocks.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"316e8480573182d32f772e3aac81850d5373a2bf","unresolved":false,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"# WARNING: THESE MUST BE THE LAST TWO LINES IN THIS MODULE"},{"line_number":201,"context_line":"_OLD_REF \u003d sys.modules[__name__]"},{"line_number":202,"context_line":"sys.modules[__name__] \u003d _deprecate._DeprecateSubset(globals(), pb_model)"},{"line_number":203,"context_line":"# WARNING: THESE MUST BE THE LAST TWO LINES IN THIS MODULE"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_32efdcb1","line":202,"updated":"2016-08-31 12:37:14.000000000","message":"Needs updating now that https://review.openstack.org/352601 has merged. Please follow the deprecation examples from that patch.","commit_id":"8ed6d4aef5548fd37ea70b8829d3ed5591cd27d3"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"f5af1a86b7d3c9d2b6e67855e981cf13ea90fb48","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                               \"adding provisioning blocks for a new resource \""},{"line_number":172,"context_line":"                               \"you must call add_model_for_resource during \""},{"line_number":173,"context_line":"                               \"initialization for your type.\") % object_type)"},{"line_number":174,"context_line":"    obj \u003d (context.session.query(model).enable_eagerloads(False)."},{"line_number":175,"context_line":"           filter_by(id\u003dobject_id).first())"},{"line_number":176,"context_line":"    # TODO(sshank): Need to use objects to get primary keys and not use models."},{"line_number":177,"context_line":"    #obj \u003d pb_obj.ProvisioningBlock.get_object(context, model\u003dmodel,"},{"line_number":178,"context_line":"    #                                          standard_attr_id\u003dobject_id)"},{"line_number":179,"context_line":"    if not obj:"},{"line_number":180,"context_line":"        # concurrent delete"},{"line_number":181,"context_line":"        LOG.debug(\"Could not find standard attr ID for object %s.\", object_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a8ec9b2_8df98d50","line":178,"range":{"start_line":174,"start_character":0,"end_line":178,"end_character":74},"updated":"2016-09-13 19:14:24.000000000","message":"What about this change?","commit_id":"8e8562cc6b0ff8df696c95a5adc0021549932091"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"499cd1289c5e9e535058869f63cd21cdd1ed5af3","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                               \"adding provisioning blocks for a new resource \""},{"line_number":172,"context_line":"                               \"you must call add_model_for_resource during \""},{"line_number":173,"context_line":"                               \"initialization for your type.\") % object_type)"},{"line_number":174,"context_line":"    obj \u003d (context.session.query(model).enable_eagerloads(False)."},{"line_number":175,"context_line":"           filter_by(id\u003dobject_id).first())"},{"line_number":176,"context_line":"    # TODO(sshank): Need to use objects to get primary keys and not use models."},{"line_number":177,"context_line":"    #obj \u003d pb_obj.ProvisioningBlock.get_object(context, model\u003dmodel,"},{"line_number":178,"context_line":"    #                                          standard_attr_id\u003dobject_id)"},{"line_number":179,"context_line":"    if not obj:"},{"line_number":180,"context_line":"        # concurrent delete"},{"line_number":181,"context_line":"        LOG.debug(\"Could not find standard attr ID for object %s.\", object_id)"},{"line_number":182,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a8ec9b2_99762c3d","line":179,"range":{"start_line":174,"start_character":0,"end_line":179,"end_character":1},"updated":"2016-09-13 21:54:14.000000000","message":"Shashank, could you look at this again? Why this code is commented out? If I understand it correctly, context.session.query should be replaced with object.","commit_id":"7dd868991b32fc7aaa0c9eea5cfd1900f8d16cb8"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"6077ccad35a3d9ceea83ffc51b15160ed437fb95","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                               \"adding provisioning blocks for a new resource \""},{"line_number":172,"context_line":"                               \"you must call add_model_for_resource during \""},{"line_number":173,"context_line":"                               \"initialization for your type.\") % object_type)"},{"line_number":174,"context_line":"    obj \u003d (context.session.query(model).enable_eagerloads(False)."},{"line_number":175,"context_line":"           filter_by(id\u003dobject_id).first())"},{"line_number":176,"context_line":"    # TODO(sshank): Need to use objects to get primary keys and not use models."},{"line_number":177,"context_line":"    #obj \u003d pb_obj.ProvisioningBlock.get_object(context, model\u003dmodel,"},{"line_number":178,"context_line":"    #                                          standard_attr_id\u003dobject_id)"},{"line_number":179,"context_line":"    if not obj:"},{"line_number":180,"context_line":"        # concurrent delete"},{"line_number":181,"context_line":"        LOG.debug(\"Could not find standard attr ID for object %s.\", object_id)"},{"line_number":182,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a8ec9b2_b45f6d0d","line":179,"range":{"start_line":174,"start_character":0,"end_line":179,"end_character":1},"in_reply_to":"7a8ec9b2_99762c3d","updated":"2016-09-13 22:13:03.000000000","message":"I was of the opinion that this query is acting on generic model. I can not use provisioning block object to get standard attribute for a general model. So, I kept it as it is. Will remove the commented out code.","commit_id":"7dd868991b32fc7aaa0c9eea5cfd1900f8d16cb8"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"b9604c6aaddacabc2d3bcd5b5ec65616594af4f1","unresolved":false,"context_lines":[{"line_number":176,"context_line":"                               \"adding provisioning blocks for a new resource \""},{"line_number":177,"context_line":"                               \"you must call add_model_for_resource during \""},{"line_number":178,"context_line":"                               \"initialization for your type.\") % object_type)"},{"line_number":179,"context_line":"    # TODO(sshank): This still needs integration. Need to add a genertic"},{"line_number":180,"context_line":"    # get_object not related to provisioning block."},{"line_number":181,"context_line":"    obj \u003d (context.session.query(model).enable_eagerloads(False)."},{"line_number":182,"context_line":"           filter_by(id\u003dobject_id).first())"},{"line_number":183,"context_line":"    if not obj:"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a8ec9b2_4e647fe3","line":180,"range":{"start_line":179,"start_character":4,"end_line":180,"end_character":51},"updated":"2016-09-15 08:24:59.000000000","message":"This session query is related to fetch Port object, so this note can be removed from here.","commit_id":"73abab058bf1554ce4254a09e345d7f8b40495cc"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"9a07426c8bf06e32508522067fcae0453a0ce08a","unresolved":false,"context_lines":[{"line_number":176,"context_line":"                               \"adding provisioning blocks for a new resource \""},{"line_number":177,"context_line":"                               \"you must call add_model_for_resource during \""},{"line_number":178,"context_line":"                               \"initialization for your type.\") % object_type)"},{"line_number":179,"context_line":"    # TODO(sshank): This still needs integration. Need to add a genertic"},{"line_number":180,"context_line":"    # get_object not related to provisioning block."},{"line_number":181,"context_line":"    obj \u003d (context.session.query(model).enable_eagerloads(False)."},{"line_number":182,"context_line":"           filter_by(id\u003dobject_id).first())"},{"line_number":183,"context_line":"    if not obj:"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a8ec9b2_7f10e059","line":180,"range":{"start_line":179,"start_character":4,"end_line":180,"end_character":51},"in_reply_to":"7a8ec9b2_4e647fe3","updated":"2016-09-15 20:38:12.000000000","message":"Done","commit_id":"73abab058bf1554ce4254a09e345d7f8b40495cc"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"1eca24447a9c8ad6d86ee0e800553ff757fc4f47","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            context, object_id, object_type)"},{"line_number":102,"context_line":"        if not standard_attr_id:"},{"line_number":103,"context_line":"            return False"},{"line_number":104,"context_line":"        record_obj \u003d pb_obj.ProvisioningBlock.get_object("},{"line_number":105,"context_line":"            context,"},{"line_number":106,"context_line":"            standard_attr_id\u003dstandard_attr_id,"},{"line_number":107,"context_line":"            entity\u003dentity)"},{"line_number":108,"context_line":"        if record_obj:"},{"line_number":109,"context_line":"            record_obj.delete()"},{"line_number":110,"context_line":"            return True"},{"line_number":111,"context_line":"        return False"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"fa6399be_186f212c","line":110,"range":{"start_line":104,"start_character":8,"end_line":110,"end_character":23},"updated":"2016-10-12 19:00:59.000000000","message":"Would be more pythonic plus no need to store the instance.\ntry:\n    pb_obj.ProvisioningBlock.get_object(\n            context,\n            standard_attr_id\u003dstandard_attr_id,\n            entity\u003dentity).delete()\n    return True\nexcept AttributeError:\n    return False","commit_id":"419f8d535742e5df3ef9f6c4105325415f0bf097"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"c3992bee072d9ee96c483d3812e0f8ff7aafb436","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            context, object_id, object_type)"},{"line_number":102,"context_line":"        if not standard_attr_id:"},{"line_number":103,"context_line":"            return False"},{"line_number":104,"context_line":"        record_obj \u003d pb_obj.ProvisioningBlock.get_object("},{"line_number":105,"context_line":"            context,"},{"line_number":106,"context_line":"            standard_attr_id\u003dstandard_attr_id,"},{"line_number":107,"context_line":"            entity\u003dentity)"},{"line_number":108,"context_line":"        if record_obj:"},{"line_number":109,"context_line":"            record_obj.delete()"},{"line_number":110,"context_line":"            return True"},{"line_number":111,"context_line":"        return False"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"fa6399be_fecdf25d","line":110,"range":{"start_line":104,"start_character":8,"end_line":110,"end_character":23},"in_reply_to":"fa6399be_186f212c","updated":"2016-10-12 20:59:39.000000000","message":"+1","commit_id":"419f8d535742e5df3ef9f6c4105325415f0bf097"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"775b8477b8983da82e843df94809a299a9ae376a","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            context, object_id, object_type)"},{"line_number":102,"context_line":"        if not standard_attr_id:"},{"line_number":103,"context_line":"            return False"},{"line_number":104,"context_line":"        record_obj \u003d pb_obj.ProvisioningBlock.get_object("},{"line_number":105,"context_line":"            context,"},{"line_number":106,"context_line":"            standard_attr_id\u003dstandard_attr_id,"},{"line_number":107,"context_line":"            entity\u003dentity)"},{"line_number":108,"context_line":"        if record_obj:"},{"line_number":109,"context_line":"            record_obj.delete()"},{"line_number":110,"context_line":"            return True"},{"line_number":111,"context_line":"        return False"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"fa6399be_0dc32f39","line":110,"range":{"start_line":104,"start_character":8,"end_line":110,"end_character":23},"in_reply_to":"fa6399be_186f212c","updated":"2016-10-13 16:01:38.000000000","message":"Done","commit_id":"419f8d535742e5df3ef9f6c4105325415f0bf097"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"775b8477b8983da82e843df94809a299a9ae376a","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            context, object_id, object_type)"},{"line_number":102,"context_line":"        if not standard_attr_id:"},{"line_number":103,"context_line":"            return False"},{"line_number":104,"context_line":"        record_obj \u003d pb_obj.ProvisioningBlock.get_object("},{"line_number":105,"context_line":"            context,"},{"line_number":106,"context_line":"            standard_attr_id\u003dstandard_attr_id,"},{"line_number":107,"context_line":"            entity\u003dentity)"},{"line_number":108,"context_line":"        if record_obj:"},{"line_number":109,"context_line":"            record_obj.delete()"},{"line_number":110,"context_line":"            return True"},{"line_number":111,"context_line":"        return False"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"fa6399be_2dc0f329","line":110,"range":{"start_line":104,"start_character":8,"end_line":110,"end_character":23},"in_reply_to":"fa6399be_fecdf25d","updated":"2016-10-13 16:01:38.000000000","message":"Done","commit_id":"419f8d535742e5df3ef9f6c4105325415f0bf097"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"1eca24447a9c8ad6d86ee0e800553ff757fc4f47","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    if not standard_attr_id:"},{"line_number":165,"context_line":"        # object doesn\u0027t exist so it has no blocks"},{"line_number":166,"context_line":"        return False"},{"line_number":167,"context_line":"    return bool("},{"line_number":168,"context_line":"        pb_obj.ProvisioningBlock.count("},{"line_number":169,"context_line":"            context, standard_attr_id\u003dstandard_attr_id)"},{"line_number":170,"context_line":"    )"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"fa6399be_4d08f92c","line":169,"range":{"start_line":167,"start_character":11,"end_line":169,"end_character":55},"updated":"2016-10-12 19:00:59.000000000","message":"this looks like we could implement an any function for neutron/db/api.py like \ndef any(context, model, **kwargs):\n    return bool(_get_filter_query(context, model, **kwargs).count())","commit_id":"419f8d535742e5df3ef9f6c4105325415f0bf097"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"cc66a512922277e7600e848620aa3d9918e86f79","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    if not standard_attr_id:"},{"line_number":165,"context_line":"        # object doesn\u0027t exist so it has no blocks"},{"line_number":166,"context_line":"        return False"},{"line_number":167,"context_line":"    return bool("},{"line_number":168,"context_line":"        pb_obj.ProvisioningBlock.count("},{"line_number":169,"context_line":"            context, standard_attr_id\u003dstandard_attr_id)"},{"line_number":170,"context_line":"    )"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9a629dbe_55c3f7ec","line":169,"range":{"start_line":167,"start_character":11,"end_line":169,"end_character":55},"in_reply_to":"9a629dbe_dbabc373","updated":"2016-11-09 21:30:45.000000000","message":"Yes. I have introduced it in another patch [1]. The changes are reflected in the newest patch. \n\n[1] - https://review.openstack.org/#/c/395748/","commit_id":"419f8d535742e5df3ef9f6c4105325415f0bf097"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"c3992bee072d9ee96c483d3812e0f8ff7aafb436","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    if not standard_attr_id:"},{"line_number":165,"context_line":"        # object doesn\u0027t exist so it has no blocks"},{"line_number":166,"context_line":"        return False"},{"line_number":167,"context_line":"    return bool("},{"line_number":168,"context_line":"        pb_obj.ProvisioningBlock.count("},{"line_number":169,"context_line":"            context, standard_attr_id\u003dstandard_attr_id)"},{"line_number":170,"context_line":"    )"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"fa6399be_be10daa9","line":169,"range":{"start_line":167,"start_character":11,"end_line":169,"end_character":55},"in_reply_to":"fa6399be_4d08f92c","updated":"2016-10-12 20:59:39.000000000","message":"Similar pattern seems to be used couple times, so probably it\u0027s good idea.","commit_id":"419f8d535742e5df3ef9f6c4105325415f0bf097"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"bf44a2c2e090c95d5e3cda71c36582d79a0e1037","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    if not standard_attr_id:"},{"line_number":165,"context_line":"        # object doesn\u0027t exist so it has no blocks"},{"line_number":166,"context_line":"        return False"},{"line_number":167,"context_line":"    return bool("},{"line_number":168,"context_line":"        pb_obj.ProvisioningBlock.count("},{"line_number":169,"context_line":"            context, standard_attr_id\u003dstandard_attr_id)"},{"line_number":170,"context_line":"    )"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9a629dbe_dbabc373","line":169,"range":{"start_line":167,"start_character":11,"end_line":169,"end_character":55},"in_reply_to":"fa6399be_4d2d27fd","updated":"2016-11-09 16:50:12.000000000","message":"Did this patch ever get introduced? I couldn\u0027t find it.","commit_id":"419f8d535742e5df3ef9f6c4105325415f0bf097"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"775b8477b8983da82e843df94809a299a9ae376a","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    if not standard_attr_id:"},{"line_number":165,"context_line":"        # object doesn\u0027t exist so it has no blocks"},{"line_number":166,"context_line":"        return False"},{"line_number":167,"context_line":"    return bool("},{"line_number":168,"context_line":"        pb_obj.ProvisioningBlock.count("},{"line_number":169,"context_line":"            context, standard_attr_id\u003dstandard_attr_id)"},{"line_number":170,"context_line":"    )"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"fa6399be_4d2d27fd","line":169,"range":{"start_line":167,"start_character":11,"end_line":169,"end_character":55},"in_reply_to":"fa6399be_be10daa9","updated":"2016-10-13 16:01:38.000000000","message":"Thanks for reviews. I will introduce this in a separate patch.","commit_id":"419f8d535742e5df3ef9f6c4105325415f0bf097"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"0333390daad13827e2b8f25d752e0ee3442c4241","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    if not standard_attr_id:"},{"line_number":62,"context_line":"        return"},{"line_number":63,"context_line":"    record \u003d context.session.query(pb_model.ProvisioningBlock).filter_by("},{"line_number":64,"context_line":"        standard_attr_id\u003dstandard_attr_id, entity\u003dentity).first()"},{"line_number":65,"context_line":"    if record:"},{"line_number":66,"context_line":"        # an entry could be leftover from a previous transition that hasn\u0027t"},{"line_number":67,"context_line":"        # yet been provisioned. (e.g. multiple updates in a short period)"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_2f206f9b","side":"PARENT","line":64,"range":{"start_line":64,"start_character":57,"end_line":64,"end_character":65},"updated":"2016-11-07 15:23:06.000000000","message":"Given that is using primary keys as filters the first() method is not required because it\u0027ll retrieve an unique row.","commit_id":"6c5c06da4e7596dbdc4339d806e9e85c3d061c74"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"0333390daad13827e2b8f25d752e0ee3442c4241","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    standard_attr_id \u003d _get_standard_attr_id(context, object_id, object_type)"},{"line_number":62,"context_line":"    if not standard_attr_id:"},{"line_number":63,"context_line":"        return"},{"line_number":64,"context_line":"    record_obj \u003d pb_obj.ProvisioningBlock.get_object("},{"line_number":65,"context_line":"        context, standard_attr_id\u003dstandard_attr_id, entity\u003dentity)"},{"line_number":66,"context_line":"    if record_obj:"},{"line_number":67,"context_line":"        # an entry could be leftover from a previous transition that hasn\u0027t"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_6fafc7e3","line":64,"range":{"start_line":64,"start_character":4,"end_line":64,"end_character":14},"updated":"2016-11-07 15:23:06.000000000","message":"nit: you can keep \u0027record\u0027 as name for this variable","commit_id":"198272f10e835a8fe7998ef91e11ba0300a79436"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"08574afc350c2796c898e85d5912a154fc84775c","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    standard_attr_id \u003d _get_standard_attr_id(context, object_id, object_type)"},{"line_number":62,"context_line":"    if not standard_attr_id:"},{"line_number":63,"context_line":"        return"},{"line_number":64,"context_line":"    record_obj \u003d pb_obj.ProvisioningBlock.get_object("},{"line_number":65,"context_line":"        context, standard_attr_id\u003dstandard_attr_id, entity\u003dentity)"},{"line_number":66,"context_line":"    if record_obj:"},{"line_number":67,"context_line":"        # an entry could be leftover from a previous transition that hasn\u0027t"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_7558fb8a","line":64,"range":{"start_line":64,"start_character":4,"end_line":64,"end_character":14},"in_reply_to":"9a629dbe_6fafc7e3","updated":"2016-11-09 21:28:38.000000000","message":"Done","commit_id":"198272f10e835a8fe7998ef91e11ba0300a79436"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"0333390daad13827e2b8f25d752e0ee3442c4241","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        LOG.debug(\"Ignored duplicate provisioning block setup for %(otype)s \""},{"line_number":70,"context_line":"                  \"%(oid)s by entity %(entity)s.\", log_dict)"},{"line_number":71,"context_line":"        return"},{"line_number":72,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"},{"line_number":73,"context_line":"        record \u003d pb_obj.ProvisioningBlock("},{"line_number":74,"context_line":"            context, standard_attr_id\u003dstandard_attr_id, entity\u003dentity)"},{"line_number":75,"context_line":"        record.create()"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_cf17f3eb","line":72,"range":{"start_line":72,"start_character":4,"end_line":72,"end_character":53},"updated":"2016-11-07 15:23:06.000000000","message":"nit: AFAIK, it\u0027s not required to create a session explicitly.","commit_id":"198272f10e835a8fe7998ef91e11ba0300a79436"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"08574afc350c2796c898e85d5912a154fc84775c","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        LOG.debug(\"Ignored duplicate provisioning block setup for %(otype)s \""},{"line_number":70,"context_line":"                  \"%(oid)s by entity %(entity)s.\", log_dict)"},{"line_number":71,"context_line":"        return"},{"line_number":72,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"},{"line_number":73,"context_line":"        record \u003d pb_obj.ProvisioningBlock("},{"line_number":74,"context_line":"            context, standard_attr_id\u003dstandard_attr_id, entity\u003dentity)"},{"line_number":75,"context_line":"        record.create()"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_955d8f7b","line":72,"range":{"start_line":72,"start_character":4,"end_line":72,"end_character":53},"in_reply_to":"9a629dbe_cf17f3eb","updated":"2016-11-09 21:28:38.000000000","message":"Done","commit_id":"198272f10e835a8fe7998ef91e11ba0300a79436"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"0333390daad13827e2b8f25d752e0ee3442c4241","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                  \"%(oid)s by entity %(entity)s.\", log_dict)"},{"line_number":71,"context_line":"        return"},{"line_number":72,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"},{"line_number":73,"context_line":"        record \u003d pb_obj.ProvisioningBlock("},{"line_number":74,"context_line":"            context, standard_attr_id\u003dstandard_attr_id, entity\u003dentity)"},{"line_number":75,"context_line":"        record.create()"},{"line_number":76,"context_line":"    LOG.debug(\"Transition to ACTIVE for %(otype)s object %(oid)s \""}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_cf8d337d","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":14},"updated":"2016-11-07 15:23:06.000000000","message":"nit: you don\u0027t need to store this information in a variable, basically you can do the creation in the same line like this\n\n    pb_obj.ProvisioningBlock(\n            context, standard_attr_id\u003dstandard_attr_id, entity\u003dentity).create()","commit_id":"198272f10e835a8fe7998ef91e11ba0300a79436"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"08574afc350c2796c898e85d5912a154fc84775c","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                  \"%(oid)s by entity %(entity)s.\", log_dict)"},{"line_number":71,"context_line":"        return"},{"line_number":72,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"},{"line_number":73,"context_line":"        record \u003d pb_obj.ProvisioningBlock("},{"line_number":74,"context_line":"            context, standard_attr_id\u003dstandard_attr_id, entity\u003dentity)"},{"line_number":75,"context_line":"        record.create()"},{"line_number":76,"context_line":"    LOG.debug(\"Transition to ACTIVE for %(otype)s object %(oid)s \""}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_f54c0bca","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":14},"in_reply_to":"9a629dbe_cf8d337d","updated":"2016-11-09 21:28:38.000000000","message":"Done","commit_id":"198272f10e835a8fe7998ef91e11ba0300a79436"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"0333390daad13827e2b8f25d752e0ee3442c4241","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            context, object_id, object_type)"},{"line_number":102,"context_line":"        if not standard_attr_id:"},{"line_number":103,"context_line":"            return False"},{"line_number":104,"context_line":"        try:"},{"line_number":105,"context_line":"            pb_obj.ProvisioningBlock.get_object("},{"line_number":106,"context_line":"                context,"},{"line_number":107,"context_line":"                standard_attr_id\u003dstandard_attr_id,"},{"line_number":108,"context_line":"                entity\u003dentity).delete()"},{"line_number":109,"context_line":"            return True"},{"line_number":110,"context_line":"        except AttributeError:"},{"line_number":111,"context_line":"            return False"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"@db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_0f172ba4","line":111,"range":{"start_line":104,"start_character":8,"end_line":111,"end_character":24},"updated":"2016-11-07 15:23:06.000000000","message":"nit: shouldn\u0027t be better to ensure that get_object method retrieve something like \n\n    pb_obj \u003d pb_obj.ProvisioningBlock.get_object(\n                context,\n                standard_attr_id\u003dstandard_attr_id,\n                entity\u003dentity)\n    if pb_obj:\n        pb_obj.delete()\n        return True\n    return False","commit_id":"198272f10e835a8fe7998ef91e11ba0300a79436"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"a9999ff03b58d008dcd3c45788828d71413ba277","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            context, object_id, object_type)"},{"line_number":102,"context_line":"        if not standard_attr_id:"},{"line_number":103,"context_line":"            return False"},{"line_number":104,"context_line":"        try:"},{"line_number":105,"context_line":"            pb_obj.ProvisioningBlock.get_object("},{"line_number":106,"context_line":"                context,"},{"line_number":107,"context_line":"                standard_attr_id\u003dstandard_attr_id,"},{"line_number":108,"context_line":"                entity\u003dentity).delete()"},{"line_number":109,"context_line":"            return True"},{"line_number":110,"context_line":"        except AttributeError:"},{"line_number":111,"context_line":"            return False"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"@db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_20a2d5ae","line":111,"range":{"start_line":104,"start_character":8,"end_line":111,"end_character":24},"in_reply_to":"9a629dbe_0f172ba4","updated":"2016-11-09 15:04:04.000000000","message":"I like Victor\u0027s approach.","commit_id":"198272f10e835a8fe7998ef91e11ba0300a79436"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"c763f6cd4f6b09ad099ad03d68d58b2bdfe4fc5e","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            context, object_id, object_type)"},{"line_number":102,"context_line":"        if not standard_attr_id:"},{"line_number":103,"context_line":"            return False"},{"line_number":104,"context_line":"        try:"},{"line_number":105,"context_line":"            pb_obj.ProvisioningBlock.get_object("},{"line_number":106,"context_line":"                context,"},{"line_number":107,"context_line":"                standard_attr_id\u003dstandard_attr_id,"},{"line_number":108,"context_line":"                entity\u003dentity).delete()"},{"line_number":109,"context_line":"            return True"},{"line_number":110,"context_line":"        except AttributeError:"},{"line_number":111,"context_line":"            return False"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"@db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_870e5639","line":111,"range":{"start_line":104,"start_character":8,"end_line":111,"end_character":24},"in_reply_to":"9a629dbe_20a2d5ae","updated":"2016-11-09 15:37:03.000000000","message":"Calling the method delete on a ``None`` object would result in an Attribute error. It\u0027s more \u0027pythonic\u0027 (duck typing) the way it is now.","commit_id":"198272f10e835a8fe7998ef91e11ba0300a79436"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"a9999ff03b58d008dcd3c45788828d71413ba277","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                  \"%(entity)s.\", log_dict)"},{"line_number":142,"context_line":"    # now with that committed, check if any records are left. if None, emit"},{"line_number":143,"context_line":"    # an event that provisioning is complete."},{"line_number":144,"context_line":"    records_obj \u003d pb_obj.ProvisioningBlock.count("},{"line_number":145,"context_line":"        context, standard_attr_id\u003dstandard_attr_id)"},{"line_number":146,"context_line":"    if not records_obj:"},{"line_number":147,"context_line":"        LOG.debug(\"Provisioning complete for %(otype)s %(oid)s triggered by \""}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_4093494f","line":144,"range":{"start_line":144,"start_character":4,"end_line":144,"end_character":15},"updated":"2016-11-09 15:04:04.000000000","message":"It is not an object. count() will return integer value. It should be named accordingly.","commit_id":"198272f10e835a8fe7998ef91e11ba0300a79436"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"0333390daad13827e2b8f25d752e0ee3442c4241","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                  \"%(entity)s.\", log_dict)"},{"line_number":142,"context_line":"    # now with that committed, check if any records are left. if None, emit"},{"line_number":143,"context_line":"    # an event that provisioning is complete."},{"line_number":144,"context_line":"    records_obj \u003d pb_obj.ProvisioningBlock.count("},{"line_number":145,"context_line":"        context, standard_attr_id\u003dstandard_attr_id)"},{"line_number":146,"context_line":"    if not records_obj:"},{"line_number":147,"context_line":"        LOG.debug(\"Provisioning complete for %(otype)s %(oid)s triggered by \""}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_32b454f1","line":144,"range":{"start_line":144,"start_character":4,"end_line":144,"end_character":15},"updated":"2016-11-07 15:23:06.000000000","message":"nit: it\u0027s not required to rename the variable","commit_id":"198272f10e835a8fe7998ef91e11ba0300a79436"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"08574afc350c2796c898e85d5912a154fc84775c","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                  \"%(entity)s.\", log_dict)"},{"line_number":142,"context_line":"    # now with that committed, check if any records are left. if None, emit"},{"line_number":143,"context_line":"    # an event that provisioning is complete."},{"line_number":144,"context_line":"    records_obj \u003d pb_obj.ProvisioningBlock.count("},{"line_number":145,"context_line":"        context, standard_attr_id\u003dstandard_attr_id)"},{"line_number":146,"context_line":"    if not records_obj:"},{"line_number":147,"context_line":"        LOG.debug(\"Provisioning complete for %(otype)s %(oid)s triggered by \""}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_55ce972e","line":144,"range":{"start_line":144,"start_character":4,"end_line":144,"end_character":15},"in_reply_to":"9a629dbe_4093494f","updated":"2016-11-09 21:28:38.000000000","message":"Done","commit_id":"198272f10e835a8fe7998ef91e11ba0300a79436"},{"author":{"_account_id":20246,"name":"Aradhana Singh","email":"aradhanamailbox@gmail.com","username":"asingh"},"change_message_id":"d2b53505ad9ed68ba740c00f9489bd24c8ce7943","unresolved":false,"context_lines":[{"line_number":137,"context_line":"                                     standard_attr_id):"},{"line_number":138,"context_line":"        LOG.debug(\"Provisioning for %(otype)s %(oid)s completed by entity \""},{"line_number":139,"context_line":"                  \"%(entity)s.\", log_dict)"},{"line_number":140,"context_line":"    # now with that committed, check if any records are left. if None, emit"},{"line_number":141,"context_line":"    # an event that provisioning is complete."},{"line_number":142,"context_line":"    records \u003d pb_obj.ProvisioningBlock.count("},{"line_number":143,"context_line":"        context, standard_attr_id\u003dstandard_attr_id)"},{"line_number":144,"context_line":"    if not records:"},{"line_number":145,"context_line":"        LOG.debug(\"Provisioning complete for %(otype)s %(oid)s triggered by \""}],"source_content_type":"text/x-python","patch_set":23,"id":"7a77a97e_b69f88b3","line":142,"range":{"start_line":140,"start_character":2,"end_line":142,"end_character":45},"updated":"2016-11-14 17:58:45.000000000","message":"given the usage of records, count method can be replaced by object_exists","commit_id":"d073c672409a078423e4824335407c3606b50056"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"2dbb9e968cf042c683bea6ea1b895b525ebf5481","unresolved":false,"context_lines":[{"line_number":137,"context_line":"                                     standard_attr_id):"},{"line_number":138,"context_line":"        LOG.debug(\"Provisioning for %(otype)s %(oid)s completed by entity \""},{"line_number":139,"context_line":"                  \"%(entity)s.\", log_dict)"},{"line_number":140,"context_line":"    # now with that committed, check if any records are left. if None, emit"},{"line_number":141,"context_line":"    # an event that provisioning is complete."},{"line_number":142,"context_line":"    records \u003d pb_obj.ProvisioningBlock.count("},{"line_number":143,"context_line":"        context, standard_attr_id\u003dstandard_attr_id)"},{"line_number":144,"context_line":"    if not records:"},{"line_number":145,"context_line":"        LOG.debug(\"Provisioning complete for %(otype)s %(oid)s triggered by \""}],"source_content_type":"text/x-python","patch_set":23,"id":"7a77a97e_7295c3e2","line":142,"range":{"start_line":140,"start_character":2,"end_line":142,"end_character":45},"in_reply_to":"7a77a97e_b69f88b3","updated":"2016-11-15 19:29:38.000000000","message":"Done","commit_id":"d073c672409a078423e4824335407c3606b50056"},{"author":{"_account_id":20246,"name":"Aradhana Singh","email":"aradhanamailbox@gmail.com","username":"asingh"},"change_message_id":"d2b53505ad9ed68ba740c00f9489bd24c8ce7943","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    if not standard_attr_id:"},{"line_number":163,"context_line":"        # object doesn\u0027t exist so it has no blocks"},{"line_number":164,"context_line":"        return False"},{"line_number":165,"context_line":"    return pb_obj.ProvisioningBlock.any_object("},{"line_number":166,"context_line":"        context, standard_attr_id\u003dstandard_attr_id)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"9a629dbe_5281b1fa","line":165,"range":{"start_line":165,"start_character":36,"end_line":165,"end_character":46},"updated":"2016-11-14 17:58:45.000000000","message":"this method name needs to be updated to object_exists [1].\nNow you don\u0027t see an error because it is dependent on [2] which is not the latest patchset number.\n[1] https://review.openstack.org/#/c/395748/4/neutron/objects/base.py\n[2] https://review.openstack.org/#/c/395748/2","commit_id":"d073c672409a078423e4824335407c3606b50056"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"2dbb9e968cf042c683bea6ea1b895b525ebf5481","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    if not standard_attr_id:"},{"line_number":163,"context_line":"        # object doesn\u0027t exist so it has no blocks"},{"line_number":164,"context_line":"        return False"},{"line_number":165,"context_line":"    return pb_obj.ProvisioningBlock.any_object("},{"line_number":166,"context_line":"        context, standard_attr_id\u003dstandard_attr_id)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"7a77a97e_b29f5b02","line":165,"range":{"start_line":165,"start_character":36,"end_line":165,"end_character":46},"in_reply_to":"9a629dbe_5281b1fa","updated":"2016-11-15 19:29:38.000000000","message":"Done","commit_id":"d073c672409a078423e4824335407c3606b50056"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"bc8a38101e7a597bb3117080b866cb103f74b27b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                             the standard_attr_id."},{"line_number":95,"context_line":"    :return: boolean indicating whether or not a record was deleted"},{"line_number":96,"context_line":"    \"\"\""},{"line_number":97,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"},{"line_number":98,"context_line":"        standard_attr_id \u003d standard_attr_id or _get_standard_attr_id("},{"line_number":99,"context_line":"            context, object_id, object_type)"},{"line_number":100,"context_line":"        if not standard_attr_id:"}],"source_content_type":"text/x-python","patch_set":28,"id":"7a77a97e_d3a5ae47","line":97,"range":{"start_line":97,"start_character":4,"end_line":97,"end_character":53},"updated":"2016-11-22 12:57:38.000000000","message":"IT should be safe to remove this session.begin, since objects.db.api is taking care of it in get_object() and delete() methods.","commit_id":"c3451023a9b27049ac976862200e1856038ff2d1"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"276fd0287eb78bc22c4ab8eb39bdc30ca54a0569","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                             the standard_attr_id."},{"line_number":95,"context_line":"    :return: boolean indicating whether or not a record was deleted"},{"line_number":96,"context_line":"    \"\"\""},{"line_number":97,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"},{"line_number":98,"context_line":"        standard_attr_id \u003d standard_attr_id or _get_standard_attr_id("},{"line_number":99,"context_line":"            context, object_id, object_type)"},{"line_number":100,"context_line":"        if not standard_attr_id:"}],"source_content_type":"text/x-python","patch_set":28,"id":"7a77a97e_e5380440","line":97,"range":{"start_line":97,"start_character":4,"end_line":97,"end_character":53},"in_reply_to":"7a77a97e_d3a5ae47","updated":"2016-11-22 21:15:33.000000000","message":"Done","commit_id":"c3451023a9b27049ac976862200e1856038ff2d1"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"c42a9960d7cd6392b10ae5b6f8aab44ee64ab788","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            standard_attr_id\u003dstandard_attr_id,"},{"line_number":105,"context_line":"            entity\u003dentity).delete()"},{"line_number":106,"context_line":"        return True"},{"line_number":107,"context_line":"    except AttributeError:"},{"line_number":108,"context_line":"        return False"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"5a74a57a_19abef75","line":107,"updated":"2016-11-23 14:05:09.000000000","message":"Why can\u0027t we use `if` statement like in the old code, why the try block?","commit_id":"e944bcb6a23c987b5439d3b58a8ed081d045a1d6"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"d69ce1ed41d247f347ede2d2fcd6620df9fbdc2f","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            standard_attr_id\u003dstandard_attr_id,"},{"line_number":105,"context_line":"            entity\u003dentity).delete()"},{"line_number":106,"context_line":"        return True"},{"line_number":107,"context_line":"    except AttributeError:"},{"line_number":108,"context_line":"        return False"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"5a74a57a_627c2373","line":107,"in_reply_to":"5a74a57a_19abef75","updated":"2016-11-23 16:22:01.000000000","message":"I was told in older patch sets by other reviewers to write the logic this way. This seems to be a more pythonic approach.","commit_id":"e944bcb6a23c987b5439d3b58a8ed081d045a1d6"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"574dc1f1ee12e1f559dacd64726ae8eca0d084dd","unresolved":false,"context_lines":[{"line_number":29,"context_line":"# identifiers for the various entities that participate in provisioning"},{"line_number":30,"context_line":"DHCP_ENTITY \u003d \u0027DHCP\u0027"},{"line_number":31,"context_line":"L2_AGENT_ENTITY \u003d \u0027L2\u0027"},{"line_number":32,"context_line":"# TODO(sshank): Need to change to port object."},{"line_number":33,"context_line":"_RESOURCE_TO_MODEL_MAP \u003d {resources.PORT: ports.Port}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"_deprecate._moved_global(\u0027ProvisioningBlock\u0027, new_module\u003dpb_model)"}],"source_content_type":"text/x-python","patch_set":33,"id":"3a71b18c_d1d2fc5a","line":32,"updated":"2016-12-08 21:12:46.000000000","message":"Remove the TODO if it\u0027s done","commit_id":"4e5bf19a7ee4a263324dfed8b80487c393d83e82"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"b8b207afbecb6726cd112bf785a4e9b3a60eff7e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"# identifiers for the various entities that participate in provisioning"},{"line_number":30,"context_line":"DHCP_ENTITY \u003d \u0027DHCP\u0027"},{"line_number":31,"context_line":"L2_AGENT_ENTITY \u003d \u0027L2\u0027"},{"line_number":32,"context_line":"# TODO(sshank): Need to change to port object."},{"line_number":33,"context_line":"_RESOURCE_TO_MODEL_MAP \u003d {resources.PORT: ports.Port}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"_deprecate._moved_global(\u0027ProvisioningBlock\u0027, new_module\u003dpb_model)"}],"source_content_type":"text/x-python","patch_set":33,"id":"3a71b18c_bc7c5021","line":32,"in_reply_to":"3a71b18c_d1d2fc5a","updated":"2016-12-09 16:59:25.000000000","message":"Done","commit_id":"4e5bf19a7ee4a263324dfed8b80487c393d83e82"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"75880bc81d851547921df1ee6c00ff5f711afbc1","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    standard_attr_id \u003d _get_standard_attr_id(context, object_id, object_type)"},{"line_number":62,"context_line":"    if not standard_attr_id:"},{"line_number":63,"context_line":"        return"},{"line_number":64,"context_line":"    record \u003d pb_obj.ProvisioningBlock.get_object("},{"line_number":65,"context_line":"        context, standard_attr_id\u003dstandard_attr_id, entity\u003dentity)"},{"line_number":66,"context_line":"    if record:"},{"line_number":67,"context_line":"        # an entry could be leftover from a previous transition that hasn\u0027t"},{"line_number":68,"context_line":"        # yet been provisioned. (e.g. multiple updates in a short period)"},{"line_number":69,"context_line":"        LOG.debug(\"Ignored duplicate provisioning block setup for %(otype)s \""}],"source_content_type":"text/x-python","patch_set":33,"id":"3a71b18c_66b94ccb","line":66,"range":{"start_line":64,"start_character":4,"end_line":66,"end_character":14},"updated":"2016-12-09 15:19:17.000000000","message":"could you use objects_exist method here?","commit_id":"4e5bf19a7ee4a263324dfed8b80487c393d83e82"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"b8b207afbecb6726cd112bf785a4e9b3a60eff7e","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    standard_attr_id \u003d _get_standard_attr_id(context, object_id, object_type)"},{"line_number":62,"context_line":"    if not standard_attr_id:"},{"line_number":63,"context_line":"        return"},{"line_number":64,"context_line":"    record \u003d pb_obj.ProvisioningBlock.get_object("},{"line_number":65,"context_line":"        context, standard_attr_id\u003dstandard_attr_id, entity\u003dentity)"},{"line_number":66,"context_line":"    if record:"},{"line_number":67,"context_line":"        # an entry could be leftover from a previous transition that hasn\u0027t"},{"line_number":68,"context_line":"        # yet been provisioned. (e.g. multiple updates in a short period)"},{"line_number":69,"context_line":"        LOG.debug(\"Ignored duplicate provisioning block setup for %(otype)s \""}],"source_content_type":"text/x-python","patch_set":33,"id":"3a71b18c_fc76c83c","line":66,"range":{"start_line":64,"start_character":4,"end_line":66,"end_character":14},"in_reply_to":"3a71b18c_66b94ccb","updated":"2016-12-09 16:59:25.000000000","message":"Done","commit_id":"4e5bf19a7ee4a263324dfed8b80487c393d83e82"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"574dc1f1ee12e1f559dacd64726ae8eca0d084dd","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    if not standard_attr_id:"},{"line_number":100,"context_line":"        return False"},{"line_number":101,"context_line":"    try:"},{"line_number":102,"context_line":"        pb_obj.ProvisioningBlock.get_object("},{"line_number":103,"context_line":"            context,"},{"line_number":104,"context_line":"            standard_attr_id\u003dstandard_attr_id,"},{"line_number":105,"context_line":"            entity\u003dentity).delete()"}],"source_content_type":"text/x-python","patch_set":33,"id":"3a71b18c_516d0c98","line":102,"updated":"2016-12-08 21:12:46.000000000","message":"I think you can wait for delete_objects method to be used here once it\u0027s merged.\nhttps://review.openstack.org/#/c/403832","commit_id":"4e5bf19a7ee4a263324dfed8b80487c393d83e82"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"b8b207afbecb6726cd112bf785a4e9b3a60eff7e","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    if not standard_attr_id:"},{"line_number":100,"context_line":"        return False"},{"line_number":101,"context_line":"    try:"},{"line_number":102,"context_line":"        pb_obj.ProvisioningBlock.get_object("},{"line_number":103,"context_line":"            context,"},{"line_number":104,"context_line":"            standard_attr_id\u003dstandard_attr_id,"},{"line_number":105,"context_line":"            entity\u003dentity).delete()"}],"source_content_type":"text/x-python","patch_set":33,"id":"3a71b18c_5c925c4c","line":102,"in_reply_to":"3a71b18c_516d0c98","updated":"2016-12-09 16:59:25.000000000","message":"I\u0027ll change this once that patch gets merged.","commit_id":"4e5bf19a7ee4a263324dfed8b80487c393d83e82"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"de4547392e12a88b1706279dd67a17063411f6e1","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from neutron._i18n import _LE"},{"line_number":19,"context_line":"from neutron.callbacks import registry"},{"line_number":20,"context_line":"from neutron.callbacks import resources"},{"line_number":21,"context_line":"from neutron.db import api as db_api"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from neutron.common import _deprecate"},{"line_number":24,"context_line":"from neutron.db.models import provisioning_block as pb_model"}],"source_content_type":"text/x-python","patch_set":35,"id":"1a6eadb0_5a539f6c","side":"PARENT","line":21,"updated":"2016-12-19 08:29:06.000000000","message":":)","commit_id":"75aac5e456b9f30c2eedba65dc1dba475ee0a219"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"de4547392e12a88b1706279dd67a17063411f6e1","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            standard_attr_id\u003dstandard_attr_id,"},{"line_number":107,"context_line":"            entity\u003dentity).delete()"},{"line_number":108,"context_line":"        return True"},{"line_number":109,"context_line":"    except AttributeError:"},{"line_number":110,"context_line":"        return False"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":35,"id":"1a6eadb0_da616f13","line":109,"updated":"2016-12-19 08:29:06.000000000","message":"can you please clarify why we are catching an exception here?\nFirst we should check that the object exists and then delete","commit_id":"d66c2d3cb2df43dde7d744419cabf602d9af683c"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"0ad4033c6fde73497c8f416f6f6de154959f5fd7","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            standard_attr_id\u003dstandard_attr_id,"},{"line_number":107,"context_line":"            entity\u003dentity).delete()"},{"line_number":108,"context_line":"        return True"},{"line_number":109,"context_line":"    except AttributeError:"},{"line_number":110,"context_line":"        return False"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":35,"id":"1a6eadb0_61624f18","line":109,"in_reply_to":"1a6eadb0_da616f13","updated":"2016-12-19 22:09:25.000000000","message":"The exception is moved into delete_objects method which got merged. Now I am using it.","commit_id":"d66c2d3cb2df43dde7d744419cabf602d9af683c"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"303a144a2c7d89d1454b605ff7ab17b40f6ffd48","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    if pb_obj.ProvisioningBlock.delete_objects("},{"line_number":104,"context_line":"        context, standard_attr_id\u003dstandard_attr_id, entity\u003dentity):"},{"line_number":105,"context_line":"        return True"},{"line_number":106,"context_line":"    else:"},{"line_number":107,"context_line":"        return False"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"ba5201f7_5c9170f0","line":106,"range":{"start_line":106,"start_character":4,"end_line":106,"end_character":9},"updated":"2017-01-11 22:20:28.000000000","message":"nit: this else sentence is not needed","commit_id":"2f17d08b163e20253764184e40809840265fca87"}],"neutron/objects/provisioning_blocks.py":[{"author":{"_account_id":22524,"name":"Mohit Malik","email":"mohit.malik@intel.com","username":"mmalik4"},"change_message_id":"ffd7bd719d06cdeca4183ab789b7fcc96af1b8c0","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    primary_keys \u003d [\u0027standard_attr_id\u0027, \u0027entity\u0027]"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    foreign_keys \u003d {\u0027StandardAttribute\u0027: {\u0027standard_attr_id\u0027: \u0027id\u0027}}"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_37424711","line":33,"updated":"2016-08-26 20:39:15.000000000","message":"Does this require StandardAttribute OVO ?","commit_id":"16d1a0d071291d627b450bbcb4f5ed93cbb1ce1c"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"f5af1a86b7d3c9d2b6e67855e981cf13ea90fb48","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"@obj_base.VersionedObjectRegistry.register"},{"line_number":21,"context_line":"class ProvisioningBlock(base.NeutronDbObject):"},{"line_number":22,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    db_model \u003d pb_model.ProvisioningBlock"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a8ec9b2_8da7cd4e","line":22,"updated":"2016-09-13 19:14:24.000000000","message":"You can add comment with info, that this is initial version. Similar to [1]\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/objects/address_scope.py#L25","commit_id":"8e8562cc6b0ff8df696c95a5adc0021549932091"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"b94c312fc86be8de846c389d20c0d6985567a2b9","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"@obj_base.VersionedObjectRegistry.register"},{"line_number":21,"context_line":"class ProvisioningBlock(base.NeutronDbObject):"},{"line_number":22,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    db_model \u003d pb_model.ProvisioningBlock"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a8ec9b2_d90434c8","line":22,"in_reply_to":"7a8ec9b2_8da7cd4e","updated":"2016-09-13 22:47:06.000000000","message":"Done","commit_id":"8e8562cc6b0ff8df696c95a5adc0021549932091"}],"neutron/tests/unit/db/test_provisioning_blocks.py":[{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"574dc1f1ee12e1f559dacd64726ae8eca0d084dd","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class TestStatusBarriers(testlib_api.SqlTestCase):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    CORE_PLUGIN \u003d \u0027neutron.db.db_base_plugin_v2.NeutronDbPluginV2\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def setUp(self):"},{"line_number":32,"context_line":"        super(TestStatusBarriers, self).setUp()"}],"source_content_type":"text/x-python","patch_set":33,"id":"3a71b18c_91fec4ac","line":29,"updated":"2016-12-08 21:12:46.000000000","message":"nit: Constants should be defined after the import section.","commit_id":"4e5bf19a7ee4a263324dfed8b80487c393d83e82"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"75880bc81d851547921df1ee6c00ff5f711afbc1","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class TestStatusBarriers(testlib_api.SqlTestCase):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    CORE_PLUGIN \u003d \u0027neutron.db.db_base_plugin_v2.NeutronDbPluginV2\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def setUp(self):"},{"line_number":32,"context_line":"        super(TestStatusBarriers, self).setUp()"}],"source_content_type":"text/x-python","patch_set":33,"id":"3a71b18c_c6f8607f","line":29,"in_reply_to":"3a71b18c_91fec4ac","updated":"2016-12-09 15:19:17.000000000","message":"+1","commit_id":"4e5bf19a7ee4a263324dfed8b80487c393d83e82"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"b8b207afbecb6726cd112bf785a4e9b3a60eff7e","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class TestStatusBarriers(testlib_api.SqlTestCase):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    CORE_PLUGIN \u003d \u0027neutron.db.db_base_plugin_v2.NeutronDbPluginV2\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def setUp(self):"},{"line_number":32,"context_line":"        super(TestStatusBarriers, self).setUp()"}],"source_content_type":"text/x-python","patch_set":33,"id":"3a71b18c_fcade888","line":29,"in_reply_to":"3a71b18c_c6f8607f","updated":"2016-12-09 16:59:25.000000000","message":"Done","commit_id":"4e5bf19a7ee4a263324dfed8b80487c393d83e82"}],"neutron/tests/unit/objects/test_objects.py":[{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"49311a8b1aa0a0afdf196b8b18ca018e67d8ee05","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    \u0027PortBindingLevel\u0027: \u00271.0-de66a4c61a083b8f34319fa9dde5b060\u0027,"},{"line_number":44,"context_line":"    \u0027PortDNS\u0027: \u00271.0-201cf6d057fde75539c3d1f2bbf05902\u0027,"},{"line_number":45,"context_line":"    \u0027PortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":46,"context_line":"    \u0027AllowedAddressPair\u0027: \u00271.0-9f9186b6f952fbf31d257b0458b852c0\u0027,"},{"line_number":47,"context_line":"    \u0027ProvisioningBlock\u0027: \u00271.0-c19d6d05bfa8143533471c1296066125\u0027,"},{"line_number":48,"context_line":"    \u0027QosBandwidthLimitRule\u0027: \u00271.2-4e44a8f5c2895ab1278399f87b40a13d\u0027,"},{"line_number":49,"context_line":"    \u0027QosDscpMarkingRule\u0027: \u00271.2-0313c6554b34fd10c753cb63d638256c\u0027,"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a95cdbc_8179b0ca","line":46,"range":{"start_line":46,"start_character":4,"end_line":46,"end_character":65},"updated":"2016-10-07 17:30:57.000000000","message":"This entry has been added in the line 32, therefore is not need it.","commit_id":"288d54a3344c9ac5e24a2eaf561676da34e0d3f1"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"8121b9fc248fdf7ae47582b79cb171b88f3e9448","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    \u0027PortBindingLevel\u0027: \u00271.0-de66a4c61a083b8f34319fa9dde5b060\u0027,"},{"line_number":44,"context_line":"    \u0027PortDNS\u0027: \u00271.0-201cf6d057fde75539c3d1f2bbf05902\u0027,"},{"line_number":45,"context_line":"    \u0027PortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":46,"context_line":"    \u0027AllowedAddressPair\u0027: \u00271.0-9f9186b6f952fbf31d257b0458b852c0\u0027,"},{"line_number":47,"context_line":"    \u0027ProvisioningBlock\u0027: \u00271.0-c19d6d05bfa8143533471c1296066125\u0027,"},{"line_number":48,"context_line":"    \u0027QosBandwidthLimitRule\u0027: \u00271.2-4e44a8f5c2895ab1278399f87b40a13d\u0027,"},{"line_number":49,"context_line":"    \u0027QosDscpMarkingRule\u0027: \u00271.2-0313c6554b34fd10c753cb63d638256c\u0027,"}],"source_content_type":"text/x-python","patch_set":18,"id":"fa6399be_e01f7659","line":46,"range":{"start_line":46,"start_character":4,"end_line":46,"end_character":65},"in_reply_to":"1a95cdbc_8179b0ca","updated":"2016-10-10 19:43:20.000000000","message":"Done","commit_id":"288d54a3344c9ac5e24a2eaf561676da34e0d3f1"},{"author":{"_account_id":20246,"name":"Aradhana Singh","email":"aradhanamailbox@gmail.com","username":"asingh"},"change_message_id":"1044761a31552aebbe2f81b4997ec89fde136b03","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027QosMinimumBandwidthRule\u0027: \u00271.2-314c3419f4799067cc31cc319080adff\u0027,"},{"line_number":50,"context_line":"    \u0027QosRuleType\u0027: \u00271.2-e6fd08fcca152c339cbd5e9b94b1b8e7\u0027,"},{"line_number":51,"context_line":"    \u0027QosPolicy\u0027: \u00271.3-2eb3494f990acae59cb51381e7f99443\u0027,"},{"line_number":52,"context_line":"    \u0027ProvisioningBlock\u0027: \u00271.0-c19d6d05bfa8143533471c1296066125\u0027,"},{"line_number":53,"context_line":"    \u0027Route\u0027: \u00271.0-a9883a63b416126f9e345523ec09483b\u0027,"},{"line_number":54,"context_line":"    \u0027SecurityGroup\u0027: \u00271.0-e26b90c409b31fd2e3c6fcec402ac0b9\u0027,"},{"line_number":55,"context_line":"    \u0027SecurityGroupRule\u0027: \u00271.0-e9b8dace9d48b936c62ad40fe1f339d5\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa6399be_94162e4a","line":52,"range":{"start_line":52,"start_character":1,"end_line":52,"end_character":64},"updated":"2016-10-14 21:22:47.000000000","message":"duplicate entry for Provisioning block.\nOVO creation patch [1] has it.\n[1] https://review.openstack.org/#/c/357488/18/neutron/tests/unit/objects/test_objects.py@51","commit_id":"b0187782b077e562446887356304e4569bb4be38"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"e182bf826bd160d9afb62463f50b7e6b0b088631","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027QosMinimumBandwidthRule\u0027: \u00271.2-314c3419f4799067cc31cc319080adff\u0027,"},{"line_number":50,"context_line":"    \u0027QosRuleType\u0027: \u00271.2-e6fd08fcca152c339cbd5e9b94b1b8e7\u0027,"},{"line_number":51,"context_line":"    \u0027QosPolicy\u0027: \u00271.3-2eb3494f990acae59cb51381e7f99443\u0027,"},{"line_number":52,"context_line":"    \u0027ProvisioningBlock\u0027: \u00271.0-c19d6d05bfa8143533471c1296066125\u0027,"},{"line_number":53,"context_line":"    \u0027Route\u0027: \u00271.0-a9883a63b416126f9e345523ec09483b\u0027,"},{"line_number":54,"context_line":"    \u0027SecurityGroup\u0027: \u00271.0-e26b90c409b31fd2e3c6fcec402ac0b9\u0027,"},{"line_number":55,"context_line":"    \u0027SecurityGroupRule\u0027: \u00271.0-e9b8dace9d48b936c62ad40fe1f339d5\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa6399be_1a92474c","line":52,"range":{"start_line":52,"start_character":1,"end_line":52,"end_character":64},"in_reply_to":"fa6399be_94162e4a","updated":"2016-10-14 22:51:32.000000000","message":"Done","commit_id":"b0187782b077e562446887356304e4569bb4be38"}]}
